imam problem sa zadatkom koji ne znam koliko je za pocetnike, ali ja jesam pocetnik pa imam nekih nejasnoca i nemam rutinu, pa ovako. Ovde imam prilozen dropbox folder sa dva fajla,
1. potraznja zadatka,
2. c++ fajl
ali da ne bih nagomilavao pusticu kod
Pitanja:
1.zadatak trazi da tipovi budu definisani kao string, ja sam stavio char, kako definisem string, ili ga koristim kao i char. malo mi nejasno.
2.zadatak trazi da se uradi u tri fajla, znaci klasa treba da bude "*.h" heder, ali ako stavim tako ne prepoznaje mi biblioteke "E:\Documents\Desktop\Simpozijum\1.h iostream: No such file or directory. " sta uraditi?
3.imam problem sa apstraktnom klasom i virtuelnom funkciom iz 29 linije, koja se odnosi i na 66 liniju ili je to tako dobro?
4. da li je 62 linija dobra (float P1, float P2)
bice ovde jos neko pitanje samo ako bude bilo kandidata za pomoc
#include <iostream>
#include <cstdlib>
using namespace std;
class kSimpozijum
{
private:
//float pKotizacija;
public:
float pKotizacija; //pKotizacija - visina kotizacije |float|, privatni atribut
float tPrevoz;
float tSmestaj;
char pNaziv; // pNaziv - naziv simpozijuma |string|. javni atribut
char pMesto; //pMesto - naziv mesta gde se simpozijum odrzava |string|, javni atribut
kSimpozijum() //Konstruktor - koji upisuje vrednosti koje korisnik unese u atribute.
{
cout<<"\nUnesi naziv Simpozijuma: "; cin>>pNaziv;
cout<<"\nUnesi naziv grada gde se simpozijum odrzava: "; cin>>pMesto;
cout<<"\nUnesi visinu kotizacije: "; cin>>pKotizacija;
}
void fIspis() //funkcija koja ispisuje atribute na ekran(ne prima parametre, ne vraca rezultat)
{
cout<<"\nOvo je Simpozijum "<<pNaziv<<", a odrzava se u "<<pMesto<<"."<<endl;
};
float fDohvatiKot() {return pKotizacija;}
//- fDohvatiKot - funkcija koja vraca vrednost atributa pKotizacija (ne prima parametre, ne vraca rezultat)
virtual float fUcesce( float pKotizacija, float tPrevoz, float tSmestaj)
{return tPrevoz + tSmestaj;}
// fUcesce - cista virtualna funkcija koja izracunava cenu ucesca na simpozijumu, sa troskovima smestaja
// i prevoza, pri cemu se vrednost za troskove smestaja i prevoza prima iz glavnog programa (prima 2 parametra i vraca rezultat)
~kSimpozijum(){} //destruktor
};
class kUcesnik //Kreira klasu kUcesnik
{
public: //javni atributi
char pIme; //- pIme - ime i prezime ucesnika u simpozijumu |string|,
char pUstanova; //- pUstanova - naziv ustanove u kojoj je ucesnik zaposlen |string|
//javne metode
kUcesnik() //- Konstruktor - koji upisuje vrednosti koje korisnik unese u atribute
{
cout<<"\nUnesi Ime i prezime ucesnika simpozijuma: "; cin>>pIme;
cout<<"\nUnesi naziv ustanove u kojoj je ucesnik zaposlen: "; cin>>pUstanova;
}
void fPisiUcesnika() //- fPisiUcesnika - funkcija koja ispisuje vrednosti atributa na ekran
//(ne prima parametre, ne vraca rezultat)
{
cout<<"\nUcesnik simpozijuma "<<pIme<<", je iz ustanove"<<pUstanova<<".";
};
~kUcesnik(){} // destruktor
};
class iStrucniRad:public kSimpozijum, public kUcesnik // Kreira klasu iStrucniRad koja nasledjuje klasu kSimpozijum i kUcesnik
{
public:
char pNazRada; //- pNazRada - naziv rada |string|
int pBrAutora; //- pBrAutora - broj autora knjige |int|
int pPovez; //- pPovez - tip poveza (1- tvrdi povez, 2- meki povez) |int|
//Konstruktor - upisuje vrednosti koje korisnik unese u atribute i nadogradjuje konstruktore klasa kSimpozijum i kUcesnik
iStrucniRad():kSimpozijum(), kUcesnik()
{
cout<<"\nUnesi naziv rada: "; cin>>pNazRada;
cout<<"\nUnesi broj autora: "; cin>>pBrAutora;
cout<<"\nUnesi tip poveza(1-tvrdi, 2-meki): "; cin>>pPovez;
}
void fIspis(float P1, float P2)
//- fIspis - funkcija koja ispituje vrednosti atributa na ekran i poziva funkcije
// - fPisiUcesnika klase kUcesnik
// - fIspis i fUcesce klase kSimpozijum
// (prima 2 parametra, ne vraca rezultat)
{
kUcesnik::fPisiUcesnika();
kSimpozijum::fIspis();
kSimpozijum::fUcesce( pKotizacija, tPrevoz, tSmestaj);
cout<<"\nNaziv rada je "<<pNazRada<<", broj autora je "<<pBrAutora<<", a tip poveza je "<<pPovez<<"."<<endl;
}
virtual float fUcesce()
// fUcesce - cista virtualna funkcija koja izracunava cenu ucesca na simpozijumu, sa troskovima smestaja
// i prevoza, pri cemu se vrednost za troskove smestaja i prevoza prima iz glavnog program
{
float cu=0;
if (pBrAutora<3)
{
cu+=(pKotizacija+tPrevoz+tSmestaj)*pBrAutora;
return cu;
}
else
{
cu+=(0.7*pKotizacija+tPrevoz+tSmestaj)*pBrAutora;
return cu;
}
}
~iStrucniRad(){
}
};