[ DenisUA98 @ 26.05.2012. 20:58 ] @
U ovom semestru sam počeo sa radom u C++, i dobio sam prvi zadatak za odbranu semestra i to mi je uslov da bih mogao da izađem na ispit. Tekst zadatka je: Napisati klasu Student i klasu Predmet. Klasa Student sadrzi atribute: Ime -string[10] prezime -string[15] indeks -ceo broj Realizovati Konstruktor bez argumenata Konstruktor sa argumentima (ime,prezime,indeks) set i get metode predstavi se metoda koja ispisuje podatke o studentu Klasa Predmet sadrzi atribute: ime_prof -string[10] prezime_prof -string[15] broj_studenata -ceo broj studenti -dinamicki niz studenata koji slusaju predmet ocene -dinamicki niz ocena za svakog gore navedenog studenta Realizovati: Konstruktor bez argumenata (postavlja broj studenata na 10) Konstruktor sa jednim argumentom broj studenata n Kopi konstruktor void ucitaj_studente (int n) //metoda za ucitavanje prvih n studenata tako sto see navodi njihovo ime prezime i broj indeksa void ucitaj_ocene(int n) //metoda koja ucitava ocene prvih n studenata void setStudent(int k,Student s,int ocena) set i get metoda za ime i prezime profesora void prebroj(); //metoda koja prebrojava broj 5(0),6,7,8,9 i 10 int polozilo(); //metoda koja ispisuje predmet ime i prezime profesora a zatim svakom novom redu ime i prezime, broj studenata koji su polozili ispit Student najStudent(); //metoda koja vraca prvog studenta sa maksimalnom ocenom A ono sto sam dosad uradio je: #include <iostream> #include <cstring> class CStudent { private: char* ime; char* prezime; int index; public: CStudent(){ strcpy(ime,0); strcpy(prezime,0); } CStudent(const char* i, const char* p, int ind); ~CStudent(); void setIme(const char* _ime); void setPrezime(const char* _prezime); void setIndex( int _index ); char* getIme(); char* getPrezime(); int getIndex(); void ispisi(); }; CStudent::CStudent( const char* i, const char* p, int ind ) { ime = new char [10]; prezime = new char [15]; strcpy(ime, i); strcpy(prezime, p); index = ind; } CStudent::~CStudent() { delete ime; delete prezime; } void CStudent::setIme( const char* _ime ) { strcpy(ime, _ime); } void CStudent::setPrezime( const char* _prezime ) { strcpy(prezime, _prezime); } void CStudent::setIndex( int _index ) { index = _index; } char* CStudent::getIme() { return ime; } char* CStudent::getPrezime() { return prezime; } int CStudent::getIndex() { return index; } void CStudent::ispisi() { cout << ime << " " << prezime << " " << index << endl; } class CPredmet { private: char* imeProfesora; char* prezimeProfesora; int brojStudenata; CStudent* studenti; int* ocene; public: CPredmet(); CPredmet( int bs ); CPredmet( const CPredmet& param ); ~CPredmet(); void setImeProfesora( const char* _imeProfesora ); void setPrezimeProfesora( const char* _prezimeProfesora ); void ucitajStudente( int n ); void ucitajOcene( int n ); void setStudent( int k, CStudent s, int o ); void prebroj(); char* getImeProfesora(); char* getPrezimeProfesora(); int polozilo(); int najStudent(); }; CPredmet::CPredmet() { imeProfesora = new char [10]; prezimeProfesora = new char [15]; brojStudenata = 10; studenti = NULL; ocene = NULL; } CPredmet::CPredmet( int bs ) { imeProfesora = new char [10]; prezimeProfesora = new char [15]; brojStudenata = bs; studenti = new CStudent [brojStudenata]; ocene = new int [brojStudenata]; } CPredmet::CPredmet( const CPredmet& param) { imeProfesora = new char [10]; prezimeProfesora = new char [15]; brojStudenata = param.brojStudenata; studenti = new CStudent [brojStudenata]; ocene = new int [brojStudenata]; strcpy( imeProfesora, param.imeProfesora ); /* ne moras da koristis getMetodu */ strcpy( prezimeProfesora, param.prezimeProfesora ); for( int i=0; i<brojStudenata; i++ ) { studenti.setIme( param.studenti.getIme() ); studenti.setPrezime( param.studenti.getPrezime() ); studenti.setIndex( param.studenti.getIndex() ); ocene = param.ocene; } } CPredmet::~CPredmet() { delete imeProfesora; delete prezimeProfesora; delete studenti; delete ocene; } void CPredmet::setImeProfesora( const char* _imeProfesora ) { strcpy( imeProfesora, _imeProfesora ); } void CPredmet::setPrezimeProfesora( const char* _prezimeProfesora ) { strcpy( prezimeProfesora, _prezimeProfesora ); } void CPredmet::ucitajStudente( int n ) { if( studenti == NULL ) { brojStudenata = n; studenti = new CStudent [brojStudenata]; ocene = new int [brojStudenata]; } cout<<"Unesite broj studenata "<<n<<endl; for( int i=0; i<n; i++ ) { char _ime[10], _prezime[15]; int _index; cin >> _ime >> _prezime >> _index; studenti.setIme(_ime); studenti.setPrezime(_prezime); studenti.setIndex(_index); } delete []ocene; } void CPredmet::ucitajOcene( int n ) { if( ocene == NULL ) { n=10; ocene = new int [n]; } for( int i=5; i<n; i++ ) { // opseg ocena od 5 do 10 int o; cin>>o; ocene = o; cout<<" "<<ocene; } delete []ocene; } void setStudent( int k, CStudent s, int o ){ k=1; cout<<"unesi ocenu za prvog studenta: "; cin>>o; } char* CPredmet::getImeProfesora() { return imeProfesora; } char* CPredmet::getPrezimeProfesora() { return prezimeProfesora; } int CPredmet::polozilo(){ int i; for(i=1;i<brojStudenata;i++) if(ocene>5){ cout<<" je polozio kod profesora: "<<imeProfesora<<" "<<prezimeProfesora<<endl; return 1; } else { cout<<" nije polozio kod profesora: "<<imeProfesora<<" "<<prezimeProfesora<<endl; return 0; } } int CPredmet::najStudent(){ int i; for(i=1;i<brojStudenata;i++) if(ocene == 10) return 1; else return 0; } int main() { CStudent student1("Djordjo","Kijelini",256),student2("Mirko", "Vucinic", 123); student1.ispisi();student2.ispisi(); CStudent student3("Milos","Krasic",369); student3.ispisi(); CPredmet predmet1; predmet1.setImeProfesora("Bratislav"); predmet1.setPrezimeProfesora("Miric"); cout << predmet1.getImeProfesora() << " " << predmet1.getPrezimeProfesora() << endl; predmet1.ucitajStudente(3); predmet1.ucitajOcene(3); cout<<"Student "<<student1.getIme()<<" "<<student1.getPrezime()<<" "; cout<<predmet1.polozilo()<<endl; cout<<"Student "<<student2.getIme()<<" "<<student2.getPrezime()<<" "; cout<<predmet1.polozilo()<<endl; cout<<"Student "<<student3.getIme()<<" "<<student3.getPrezime()<<" "; cout<<predmet1.polozilo()<<endl; if(predmet1.najStudent()) cout<<"Student "<<student1.getIme()<<" je dobio 10 iz predmeta: "<<endl; else cout<<"Student "<<student1.getIme()<<" nije dobio 10 iz predmeta: "<<endl; if(predmet1.najStudent()) cout<<"Student "<<student2.getIme()<<" je dobio 10 iz predmeta: "<<endl; else cout<<"Student "<<student2.getIme()<<" nije dobio 10 iz predmeta: "<<endl; if(predmet1.najStudent()) cout<<"Student "<<student3.getIme()<<" je dobio 10 iz predmeta: "<<endl; else cout<<"Student "<<student3.getIme()<<" nije dobio 10 iz predmeta: "<<endl; return 0; } E sad problem je u tome što za niz studenata ne učitava ocenu za svakog studenta u tom nizu pa samim tim na izlazu ne ispisuje metodu najstudent i metodu položio. Svaka pomoć mi je dobro došla jer sam početnik u ovom programskom jeziku i izvinjavam se na nepreglednosti posta to jest preobimnosti. |