Poslao: 24 Apr 2012 17:56
|
offline
- DenisUA98
- Građanin
- Pridružio: 31 Dec 2011
- Poruke: 109
- Gde živiš: Novi Pazar
|
Napisano: 24 Apr 2012 17:54
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
Konkretno imam problem da realizujem metode VOID UCITAJ_STUDENTE i VOID UCITAJ_OCENE jer ne znam kako da pristupim privatnim podacima klase STUDENT. Pocetnik sam u C++ tako da ce mi svako objasnjenje dobro doci. Probao sam da uradim sam ovaj zadatak i zapelo mi je kod ove dve metode. Probao sam da uradim metodu UCITAJ_STUDENTE :
void Predmet::ucitaj_studente(int n){
int i;
cout<<"Unesite elemente niza";
for(i=1;i<n;i++){
cout<<"x["<<i<<"]="<<endl;
cin>>studenti[i];}
}
ali je resenje daleko od onog sto se trazi.
Dopuna: 24 Apr 2012 17:56
Ovo je ono sto sam dosad uradio od zadatka.
#include<iostream.h>
#include<string.h>
class Student
{
char ime[10];
char prezime[15];
int br_indeksa;
public:
Student(){ strcpy(ime,0); strcpy(prezime,0); br_indeksa=0; }
Student(char* i,char* p,int b);
char *setIme(char* im);
char *setPrezime(char* pr);
int setBr_indeksa(int br_i);
char *getIme();
char *getPrezime();
int getBr_indeksa();
void ispis();
};
class Predmet {
int br_studenata;
char ime_prof[10];
char prezime_prof[15];
char *studenti;
int *ocene;
public:
Predmet(){ this->br_studenata=20;
cout<<"Broj studenata na predmetu Programiranje: "<<br_studenata<<endl; }
Predmet(int n){ this->br_studenata=n;
cout<<"Broj studenata na predmetu Programski jezici: "<<n<<endl; }
Predmet(const Predmet &pa);
char *setIme_prof(char* im){ char* ime=im;}
char *setPrezime_prof(char* pr){ char* prezime=pr;}
char *getIme_prof(){ return ime_prof; }
char *getPrezime_prof(){ return prezime_prof; }
void ucitaj_studente(int n);
};
Student::Student(char* i,char* p,int b){
strcpy(ime,i);
strcpy(prezime,p);
br_indeksa=b;
}
void Student::ispis(){
cout<<ime<<" "<<prezime<<" "<<br_indeksa<<endl;
}
char *Student::setPrezime(char* pr)
{ char* prezime=pr;
}
char *Student::setIme(char* im)
{ char* ime=im;
}
int Student::setBr_indeksa(int br_i){
br_indeksa=br_i;
}
char *Student::getPrezime()
{ return prezime;
}
char *Student::getIme()
{ return ime;
}
int Student::getBr_indeksa(){
return br_indeksa;
}
Predmet::Predmet(const Predmet &pa){
br_studenata=pa.br_studenata; }
void Predmet::ucitaj_studente(int n){
int i;
cout<<"Unesite elemente niza";
for(i=1;i<n;i++){
cout<<"x["<<i<<"]="<<endl;
cin>>studenti[i];}
}
void main(){
Student s("Denis","Bogucanin",507);
s.ispis();
Predmet programiranje,programski_jezik(25);
Predmet programiranje1=programiranje;
programiranje.ucitaj_studente(5);
}
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 28 Apr 2012 20:52
|
offline
- clzola
- Građanin
- Pridružio: 10 Mar 2009
- Poruke: 101
- Gde živiš: Podgorica
|
Pa imas metode set, koje bi trebalo da budu public i samo radis ovo:
Student student;
char *ime, *prezime;
int index;
scanf("%s %s %d", ime, prezime, &index);
student.setIme( ime );
student.setPrezime( prezime );
student.setIndex( index );
To je jedan nacin, drugi nacin bi bio preko konstruktora:
// podrazumjevamo da smo vec unijeli podatke ime, prezime i index
Student student( ime, prezime, index );
A ako zelis da dobijes vrijednosti promenljivih ime, prezime i index koje se nalaze unutar klase Student radis sledece
char *ime = student.getIme();
char *prezime = student.getPrezime();
int index = student.getIndex();
Edit
I koliko vidim pogresno si napisao metode set. na primer kod Student::setIme( char* im ) ti pises char* ime = im; sa cime ti kreiras novu promenljivu ime a ne koristis onu koju si deklarisao u privatnom polju klase student.
void Student::setIme( char* im ) {
ime = im; // ili mozda da koristis strcpy ?
}
|
|
|
|
Poslao: 01 Maj 2012 17:16
|
offline
- DenisUA98
- Građanin
- Pridružio: 31 Dec 2011
- Poruke: 109
- Gde živiš: Novi Pazar
|
mycity.rs/must-login.png
Prepravio sam set metodu i ispravio jos poneke greske, ali opet program ne radi. Iznad sam postavio ono sto sam dosad uradio. Ako ti nije problem da mi pomognes oko ovoga je ne mogu da nastavimdalje sa zadatkom bez ove metode. ps. jbg znam da sam naporan.
|
|
|
|
Poslao: 02 Maj 2012 22:53
|
offline
- Pridružio: 27 Nov 2010
- Poruke: 37
|
mycity.rs/must-login.png
E ovako, tu imas odradjenu klasu CStudent i CPredmet (nisam mogao da se snadjem kroz kod i kad sam se snasao bilo mi je tesko da ga debagujem). Napisao sam ti komentare za neke stvari da bi se lakse snasao.. Napravio sam ti metode ucitajStudente i ucitajOcene, ali me malo bune posto ne znam kako je to profesor zamislio, ja u opste ne bih to tako radio, ali napisao sam onako kako mislim da one trebaju, ti svakako prepravi onako kako trebe odgovara.
Pogledaj malo ovde o klasama cplusplus.com/doc/tutorial/classes/
Pozdrav.
|
|
|
|
|
|
Poslao: 05 Maj 2012 20:40
|
offline
- clzola
- Građanin
- Pridružio: 10 Mar 2009
- Poruke: 101
- Gde živiš: Podgorica
|
Ja sam vazda mislio da se brise samo delete ptr i cao
Al nisi morao da stavljas tri uzvicnika xD
|
|
|
|
Poslao: 07 Maj 2012 05:37
|
offline
- luki2010
- Novi MyCity građanin
- Pridružio: 04 Maj 2012
- Poruke: 3
|
#include<iostream.h>
class Tacka {
//atributi klase koji su privatni
int x;
int y;
//metode klase
public:
void inic(int a,int b);
void pozicija();
void translacija(int dx,int dy);
int getX(){return x;}
int getY(){return y;}
void setX(int x){this->x=x;}
void setY(int y){this->y=y;}
};
void inicf(int a,int b,Tacka &t) {
t.setX(a);
t.setY(b);
}
void inicfp(int a,int b,Tacka *pt) {
pt->setX(a);
pt->setY(b);
}
void Tacka::inic(int a,int b)//Automatski se prosledjuje adresa objekta
// na kome je metoda pozvana (int a,int b,Tacka *this)
{
this->x=a; //x=a;
this->y=b; //y=b
}
void Tacka::pozicija(){
cout<<"Tacka t ima kordinate x="<<x<<" y=" <<y<<endl;
}
void Tacka::translacija(int dx,int dy){
x+=dx;//x=x+dx
y+=dy;//y=y+dy
}
int main(){
Tacka t,t1,t2;
t.inic(3,5);
t.translacija(4,5);
t.pozicija();
inicfp(2,3,&t2);
t2.pozicija();
inicf(4,6,t2);
t2.pozicija();
//cout<<"Tacka t ima vrednost"<<t.getX();
}
Pozdrav!
Može li objašnjenje za dve ove dve metode, ne ide mi *od ruke* da ih skontam:
void inicf(int a,int b,Tacka &t) {
t.setX(a);
t.setY(b);
}
void inicfp(int a,int b,Tacka *pt) {
pt->setX(a);
pt->setY(b);
}
Unapred zahvalan !!!
|
|
|
|
|
Poslao: 30 Jun 2012 15:03
|
offline
- luki2010
- Novi MyCity građanin
- Pridružio: 04 Maj 2012
- Poruke: 3
|
Pozdrav!
Zadatak ispod ispisuje razliku datuma (npr. današnjeg datuma i datuma ispita) i to samo za dan i mesec.
Treba da odradim razliku još i za godinu (znači dan, mesec, godina).
Npr.
31.11.2014 (prvi datum)
12.6.2012 (drugi datum)
prvi - drugi
----------------------------
Može li pomoć xD !!! Unapred zahvalan !!!
#include<iostream.h>
class Datum
{
int mesec,dan;
public:
Datum();
Datum(int mesec,int dan);
void setDan(int d);
int getDan();
void setMesec(int m);
int getMesec();
void ispisi();
void izracunajDana(Datum d);
};
Datum::Datum(){
mesec=1;dan=1;
}
Datum::Datum(int mesec,int dan){
this->mesec=mesec;
this->dan=dan;
}
void Datum::setDan(int d){
dan=d;
}
int Datum::getDan(){
return dan;
}
void Datum::setMesec(int m){
mesec=m;
}
int Datum::getMesec(){
return mesec;
}
void Datum::ispisi(){
cout<<"Datum je: "<<dan<<"."<<mesec<<endl;
}
void Datum::izracunajDana(Datum d){
int i,s1,s2;
s1=dan;
s2=d.getDan();
for(i=1;i<mesec;i++)
switch(i){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
s1+=31;
break;
case 2:
s1+=28;
break;
case 4: case 6: case 9: case 11:
s1+=30;
break;
default:
break;
}
for(i=1;i<d.getMesec();i++)
switch(i){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
s2+=31;
break;
case 2:
s2+=28;
break;
case 4: case 6: case 9: case 11:
s2+=30;
break;
default:
break;
}
cout<<"Broj dana izmedju "<<dan<<"."<<mesec<<" i "<<d.getDan()<<"."<<d.getMesec()<<" iznosi:"<<s2-s1<<endl;
}
class Ispit
{
int mesec,dan,sat,predmet;
public:
Ispit();
Ispit(int dan,int mesec,int sat,int predmet);
Ispit(Datum d,int sat,int predmet);
void Ispisi();
};
Ispit::Ispit(){
mesec=1;
dan=1;
sat=9;
predmet=1;
}
Ispit::Ispit(int dan,int mesec,int sat,int predmet){
this->dan=dan;
this->mesec=mesec;
this->sat=sat;
this->predmet=predmet;
}
Ispit::Ispit(Datum d,int sat,int predmet){
dan=d.getDan();
mesec=d.getMesec();
this->sat=sat;
this->predmet=predmet;
}
void Ispit::Ispisi(){
switch(mesec){
case 1:
cout<<"Ispit "<<predmet<<" ce se odrzati "<<dan<<".januara "<<" u "<<sat<<" sati"<<endl;
break;
case 2:
cout<<"Ispit "<<predmet<<" ce se odrzati "<<dan<<".februara "<<" u "<<sat<<" sati"<<endl;;
break;
case 3:
cout<<"Ispit "<<predmet<<" ce se odrzati "<<dan<<".marta "<<" u "<<sat<<" sati"<<endl;;
break;
case 4:
cout<<"Ispit "<<predmet<<" ce se odrzati "<<dan<<".aprila "<<" u "<<sat<<" sati"<<endl;
break;
case 5:
cout<<"Ispit "<<predmet<<" ce se odrzati "<<dan<<".maja "<<" u "<<sat<<" sati"<<endl;
break;
case 6:
cout<<"Ispit "<<predmet<<" ce se odrzati "<<dan<<".juna "<<" u "<<sat<<" sati"<<endl;
break;
case 7:
cout<<"Ispit "<<predmet<<" ce se odrzati "<<dan<<".jula "<<" u "<<sat<<" sati"<<endl;
break;
case 8:
cout<<"Ispit "<<predmet<<" ce se odrzati "<<dan<<".avgusta "<<" u "<<sat<<" sati"<<endl;
break;
case 9:
cout<<"Ispit "<<predmet<<" ce se odrzati "<<dan<<".septembra "<<" u "<<sat<<" sati"<<endl;
break;
case 10:
cout<<"Ispit "<<predmet<<" ce se odrzati "<<dan<<".oktobra "<<" u "<<sat<<" sati"<<endl;
break;
case 11:
cout<<"Ispit "<<predmet<<" ce se odrzati "<<dan<<".novembra "<<" u "<<sat<<" sati"<<endl;
break;
case 12:
cout<<"Ispit "<<predmet<<" ce se odrzati "<<dan<<".decembra "<<" u "<<sat<<" sati"<<endl;
break;
default:
break;
}
}
main()
{
Datum d1,d2(1,3),d3(3,28);
Ispit i1,i2(30,7,12,2),i3(d3,9,3);
d2.izracunajDana(d3);
d1.ispisi();
i1.Ispisi();
i2.Ispisi();
i3.Ispisi();
return 0;
}
|
|
|
|