Dopisanie dodatkowej funkcji w bazie

0

Witam,
mam nastepująca bazę z jedną funkcją wyszukującą najlepszego ucznia. Chciałbym dodać tu jeszcze jedną funkcje, która wyswietlalaby wszystkich uczniow lub znajdowala uczniow z danej klasy. Mam problem z tym jak ja tu stworzyc, w ktorym miejscu to wszystko mam umiescic, aby dzialalo, bo kombinowalem i z jedna funkcja jest ok, ale jak dodam druga, to juz są problemy.
[code]#include <iostream.h>
#include <conio.h>
#define NMAX 30
struct uczen
{
char nazwisko[25];
char imie[20];
char klasa[5];
float sr_ocen;
};
//prototypy funkcji
void czytaj (uczen t[],int n);
int najlepszy (uczen t[],int n);
main()
{
clrscr();
uczen tab[NMAX]; //tablica struktur typu uczen
int n; //liczba uczniow
int naj; //przechowuje numer najlepszego ucznia
cout<<"Podaj liczbe uczniow (n<=30): ";
cin>>n;
czytaj(tab,n);
naj=najlepszy(tab,n);
cout<<endl;
cout<<"Oto dane najlepszego ucznia\n";
cout<<"Nazwisko: "<<tab[naj].nazwisko<<endl;
cout<<"Imie: "<<tab[naj].imie<<endl;
cout<<"Klasa: "<<tab[naj].klasa<<endl;
cout<<"Srednia ocen: "<<tab[naj].sr_ocen<<endl;
getch();
return 0;
}
void czytaj (uczen t[],int n)
{
cout<<"Wprowadz dane o uczniach"<<endl;
for (int i=0;i<n;i++)
{
cout<<"Uczen "<<i+1<<endl;
cout<<"Nazwisko: ";
cin>>t[i].nazwisko;
cout<<"Imie: ";
cin>>t[i].imie;
cout<<"Klasa: ";
cin>>t[i].klasa;
cout<<"Srednia ocen: ";
cin>>t[i].sr_ocen;
cout<<endl<<endl;
}
}
int najlepszy (uczen t[],int n)
{
int i,nr;
float sr_max;
sr_max=t[0].sr_ocen;
nr=0;
for (i=1;i<n;i++)
if (t[i].sr_ocen>sr_max)
{
sr_max=t[i].sr_ocen;
nr=i;
}
return nr;
}[/code]

0

mam odpowiedz, ale za nic w swiecie nie moge jej dla ciebie umiescic, a wiec proponuje sie zarejestrowac, albo kontakt mail'em [green]

0
# include <iostream>
# include <cstdlib>
# define NMAX 30

using namespace std;

struct uczen
{
  char nazwisko[25];
  char imie[20];
  char klasa[5];
  float sr_ocen;
};

//prototypy funkcji
void czytaj (uczen t[],int n);
int najlepszy (uczen t[],int n);
void wszyscy(uczen* t, int n);

int main(int argc, char** argv)
{
    //clrscr(); Bo nie ma juz conio ;)
    uczen tab[NMAX];  //tablica struktur typu uczen
    int n;  //liczba uczniow
    int naj;   //przechowuje numer najlepszego ucznia
    cout<<"Podaj liczbe uczniow (n<=30): ";
    cin>>n;
    
    // Przydaloby sie sprawdzenie, czy przypadkiem n > NMAX
    // A tak wogole to proponuje dynamiczny przydzial pamieci(new, delete) :]
    
    czytaj(tab,n);
    naj=najlepszy(tab,n);
    cout<<endl;
    cout<<"Oto dane najlepszego ucznia\n";
    cout<<"Nazwisko:     "<<tab[naj].nazwisko<<endl;
    cout<<"Imie:         "<<tab[naj].imie<<endl;
    cout<<"Klasa:        "<<tab[naj].klasa<<endl;
    cout<<"Srednia ocen: "<<tab[naj].sr_ocen<<endl;
    
    // Wszyscy uczniowie
    wszyscy(tab,n);
    
    //getch(); podobnie jak wyzej
    system("PAUSE"); 
    return EXIT_SUCCESS;
    //return 0;
}

void czytaj (uczen t[],int n)
{
  cout<<"Wprowadz dane o uczniach"<<endl;
  for (int i=0;i<n;i++)
  {
    cout<<"Uczen "<<i+1<<endl;
    cout<<"Nazwisko:     ";
    cin>>t[i].nazwisko;
    cout<<"Imie:         ";
    cin>>t[i].imie;
    cout<<"Klasa:        ";
    cin>>t[i].klasa;
    cout<<"Srednia ocen: ";
    cin>>t[i].sr_ocen;
    cout<<endl<<endl;
  }
}
0
int najlepszy (uczen t[],int n)
{
  int i,nr;
  float sr_max;
  sr_max=t[0].sr_ocen;
  nr=0;
  for (i=1;i<n;i++)
   if (t[i].sr_ocen>sr_max)
   {
     sr_max=t[i].sr_ocen;
     nr=i;
   }
   return nr; 
}

void wszyscy(uczen* t, int n)
{
 cout << "\n";
 for(int i = 0; i < n; ++i)
 {
  cout << "Uczen " << (i+1) << "\n";
  cout << "Nazwisko : " << t[i].nazwisko << "\n";
  // itd...        
  cout << "\n";
 }     
}
0

Ten kod na pewno dziala(pod Dev-Cpp)
Nie wiem o co chodzi, ale nie moglem tego umiescic naraz jako jednego posta [???]

1 użytkowników online, w tym zalogowanych: 0, gości: 1