[ chalka @ 29.04.2006. 09:04 ] @
Cao zamolio bi da mi neko pomogne oko ovog zadatka u zadatku je potrebno unijeti nekoliko ucenika(ime, prezime, datum rodjenja, ocjene) i treba de se obrade uneseni podaci a zatim da se sortiraju svi ucenici po prosjeku i na kraju treba ispisati listu u ovom gdje se jedan ucenik(njegovi podaci) ispisuje ovako "Ucenik" ime prezime " rodjen " datum rodjenja "ima prosjek" /"treba ponoviti razred" (u koliko je pao) zadatak je: Prepraviti prilozeni program tako da se umjesto vectora koristi dinamicki alocirani niz (bibliotku vector je zabranjeno koristiti) molio bih vas da mi i malo objasnite ako moze (neki mali komentar) moji pokusaji su bili: ( Ucenik *ucenici=0; ucenici=new Ucenik[broj_predmeta]; ) zatim sam izmjenio umjesto size() prenio sam broj ucenika u funkcije kojima je to potrebno ali onda mi tek nastaju problemi jer ne mogu da skontam sa pokazivacima kad sta prenosim u funkcije (adresu ili vec sta molim vas da mi pomognete uz male komentare pored da bi napokon mogao shvatiti pokazivace i prenose istih u funkciju unaprijed hvala! Code: ——#include<string> #include<vector> #include<iostream> #include<cctype> #include<algorithm> #include<iomanip> using namespace std; const int broj_predmeta(6); struct Datum { int dan,mjesec,godina; }; struct Ucenik { string ime,prezime; Datum datum_rodjenja; int ocjene[broj_predmeta]; double prosjek; bool prolaz; }; int main() { void UU(vector<Ucenik> &ucenici);/*Unesi ucenike*/ void OU(vector<Ucenik> &ucenici);/*obradi ucenike*/ void IU(const vector<Ucenik> &ucenici);/*ispisi ucenike*/ int broj_ucenika; cout<<"Koliko ima ucenika: "; cin>>broj_ucenika; try { vector<Ucenik> ucenici(broj_ucenika); UU(ucenici); OU(ucenici); IU(ucenici); } catch(...) { cout<<"Problemi sa memorijom!!!"; } system("pause"); return 0; } void UU(vector<Ucenik> &ucenici) { void UJU(Ucenik &ucenik);/*Unos jednog uccenika*/ for(int i(0);i<ucenici.size();i++) { cout<<"Unesite podatke"<<i+1<<". ucenika: "; UJU(ucenici[i]); } } void UJU(Ucenik &ucenik) { void UD(Datum &datum); void UO(int ocjene[],int bp); cout<<"ime: "; cin>>ucenik.ime; cout<<"prezime: ";cin>>ucenik.prezime; UD(ucenik.datum_rodjenja);/*Unesi datum*/ UO(ucenik.ocjene,broj_predmeta);/*Unesi ocjene*/ } void UD(Datum &datum) { cout<<"Dan rodjenja: ";cin>>datum.dan; cout<<"Mjesec rodjenja: ";cin>>datum.mjesec; cout<<"Godina rodjenja: ";cin>>datum.godina; } void UO(int ocjene[],int bp) /*unesi ocjene*/ { for(int i(0);i<bp;i++) { cout<<"Ocjena iz "<<i+1<<". predmeta: "; cin>>ocjene[i]; } } void OU(vector<Ucenik> &ucenici) { void OJU(Ucenik &ucenik);/*Obradi jednog ucenika*/ bool BP(const Ucenik &u1,const Ucenik &u2);/*bolji prosek*/ for(int i(0);i<ucenici.size();i++) { OJU(ucenici[i]); } sort(ucenici.begin(),ucenici.end(),BP); } void OJU(Ucenik &ucenik) { double suma(0); ucenik.prosjek=1;ucenik.prolaz=false; for(int i(0);i<broj_predmeta;i++) { if(ucenik.ocjene[i]==1)return; suma+=ucenik.ocjene[i]; } ucenik.prosjek=suma/broj_predmeta; ucenik.prolaz=true; } bool BP(const Ucenik &u1,const Ucenik &u2) { return u1.prosjek > u2.prosjek; } void IU(const vector<Ucenik> &ucenici)/*ispisi cenike*/ { void IJU(const Ucenik &ucenik);/*Ispisi jednog ucenika*/ cout<<endl; for(int i(0);i<ucenici.size();i++) IJU(ucenici[i]); } void IJU(const Ucenik &ucenik) { void ID(const Datum &datum);/*Ispisi datum*/ cout<<"Ucenik "<<ucenik.ime<<" "<<ucenik.prezime<<" rodjen "; ID(ucenik.datum_rodjenja); if(ucenik.prolaz) cout << " ima prosjek " << setw(3) << ucenik.prosjek; else cout<<" mora ponavljati razed!"; cout<<endl; } void ID(const Datum &datum) { cout<<datum.dan<<"."<<datum.mjesec<<"."<<datum.godina; } |