Clasa a XI-a STRUCTURI

Rezolvarea problemelor de matematica prin realizarea unor programe.
elev98
junior
junior
Mesaje: 100
Membru din: 25 Aug 2014, 23:47

Clasa a XI-a STRUCTURI

Mesaj de elev98 » 17 Noi 2015, 19:49

Scrieti un program pentru evidenta studentilor unei facultati care sa permita alegerea repetata a uneia dintre optiunile de mai jos cat timp utilizatorul doreste aceasta:
-adaugarea unui student in grupa
-listarea tuturor studentilor din grupa
-afisarea informatiilor despre un anumit student cautat dupa nume.
Despre fiecare student al unei grupe se cunosc numele studentului, media la sfarsitul sesiunii si valoarea bursei.
Aici este ceea ce am incercat eu:



using namespace std;
typedef struct studenti
{
char nume[20];
char prenume[20];
float media;
float bursa;
}st;
st a[200];
st aux;
int main()
{
int n,i,j,k=0;
char optiune;
cout<<"Numarul studentilor este:"<<endl;
cin>>n;
for(i=0;i<n;i++)
{
cin.get();
cout<<"Numele:"<<endl;
cin.get(a.nume,20);
cout<<"Prenume:"<<endl;
cin>>a.prenume;
cout<<"Media:"<<endl;
cin>>a.media;
cout<<"Valoarea bursei:"<<endl;
cin>>a.bursa;
}
cin>>optiune;
cout<<"pentru adaugarea unui student in grupa,alege 1";
cout<<"pentru listarea in functie de medie,alege 2";
cout<<"pentru afisarea informatiilor despre un anumit student,alege 3";
switch (optiune)
{
case 1:
{
n=n+1;
cout<<"Numele:"<<endl;
cin.get(a.nume,20);
cout<<"Prenume:"<<endl;
cin>>a.prenume;
cout<<"Media:"<<endl;
cin>>a.media;
cout<<"Valoarea bursei:"<<endl;
cin>>a.bursa;
};
break;
case 2:
{
for(i=0;i<n;i++)
for(j=i;j<=n;j++)
if(a.medie<a[j].medie)
{
aux=a;
a[i]=a[j];
a[j]=aux;
}
for(i=0;i<n;i++)
cout<<a[i].nume<<" "<<a[i].prenume<<" "<<a[i].medie;
};
break;
case 3:
{

}
}
}



Nu am facut tot... Ultima parte nu am stiu sa o fac. Pe langa asta nici macar nu sunt sigura ca am facut bine pana aici. Ma puteti ajuta, va rog?

A_Cristian
guru
guru
Mesaje: 1975
Membru din: 23 Feb 2015, 17:15

Mesaj de A_Cristian » 18 Noi 2015, 06:22

Cateva consideratii asupra implementarii.

1. Nu exista nici o cerinta care sa contina sortarea dupa ceva.
2. Meniul ar arata mai bine in forma:

Cod: Selectaţi tot

1. Adaugare student
2. Listare studenti
3. Cautare dupa nume
0. Iesire
3. Cu siguranta ai invatat despre functii. Codul scris asa este total neingrijit.
4. Ne poti face o analiza daca exista vreo problema sau nu la adaugarea unui student? Ma refer la faptul ca folosesti ca index variabila "i". Repet, vreau o analiza si nu un raspuns e bine/gresit.
5. Programul ar trebui sa permita repetarea optiunilor pana la alegerea optiunii de terminare a programului.
6. Nu e vina ta, dar codul reprezinta un amalgam de C si C++ total nedorit.

Scrie răspuns