Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- class ZicanInstrument{
- protected:
- char ime[20];
- int brZici;
- float osnovnaCena;
- public:
- ZicanInstrument(){
- strcpy(ime,"");
- brZici=0;
- osnovnaCena=0;
- }
- ZicanInstrument(char *ime1,int brZici1, float osnovnaCena1){
- strcpy(ime,ime1);
- brZici=brZici1;
- osnovnaCena=osnovnaCena1;
- }
- bool operator ==(ZicanInstrument &z){
- if(brZici==z.brZici){
- return true;
- }else{
- return false;
- }
- }
- ~ZicanInstrument(){}
- virtual float cena()=0;
- virtual int getTip()=0;
- };
- class Mandolina:public ZicanInstrument{
- private:
- char forma[20];
- public:
- Mandolina(){
- strcpy(forma,"");
- }
- Mandolina(char *ime1,int brZici1, float osnovnaCena1, char *forma1)
- :ZicanInstrument(ime1,brZici1,osnovnaCena1){
- strcpy(forma,forma1);
- }
- ~Mandolina(){}
- float cena(){
- cout<<"Cena kaj Mandolina"<<endl;
- if(strcmp(forma,"Neapolitan")==0){
- return osnovnaCena+osnovnaCena*0.15;
- }else{
- return osnovnaCena;
- }
- }
- int getTip(){
- return 1;
- }
- friend ostream& operator <<(ostream &out, Mandolina &m){
- out<<m.ime<<" "<<m.brZici<<" "<<m.osnovnaCena<<" "<<m.forma<<endl;
- return out;
- }
- };
- class Violina:public ZicanInstrument{
- private:
- float golemina;
- public:
- Violina(){
- golemina=0;
- }
- Violina(char *ime1,int brZici1, float osnovnaCena1,float golemina1)
- :ZicanInstrument(ime1,brZici1,osnovnaCena1){
- golemina=golemina1;
- }
- ~Violina(){}
- float cena(){
- cout<<"Cena kaj Violina"<<endl;
- if(golemina==0.25){
- return osnovnaCena+osnovnaCena*0.1;
- }else if(golemina==1.0){
- return osnovnaCena+osnovnaCena*0.2;
- }else{
- return osnovnaCena;
- }
- }
- int getTip(){
- return 2;
- }
- friend ostream& operator <<(ostream &out, Violina &v){
- out<<v.ime<<" "<<v.brZici<<" "<<v.osnovnaCena<<" "<<v.golemina<<endl;
- return out;
- }
- };
- void pecatiInstrumenti(ZicanInstrument &z1, ZicanInstrument **niza,int n){
- int brojacViolini=0;
- int brojacMandolini=0;
- for(int i=0;i<n;i++){
- if(z1==(*niza[i])){
- cout<<niza[i]->cena()<<endl;
- Violina *v=dynamic_cast<Violina*>(niza[i]);
- Mandolina *m=dynamic_cast<Mandolina*>(niza[i]);
- if(v!=0){
- brojacViolini++;
- }else if(m!=0){
- brojacMandolini++;
- }
- }
- }
- cout<<"Violini: "<<brojacViolini<<endl;
- cout<<"Mandolini: "<<brojacMandolini<<endl;
- }
- int main() {
- char ime[20];
- int brojZici;
- float cena;
- char forma[20];
- cin >> ime >> brojZici >> cena >> forma;
- Mandolina m(ime, brojZici, cena, forma);
- int n;
- cin >> n;
- ZicanInstrument **zi = new ZicanInstrument*[2 * n];
- for(int i = 0; i < n; ++i) {
- cin >> ime >> brojZici >> cena >> forma;
- zi[i] = new Mandolina(ime, brojZici, cena, forma);
- }
- for(int i = 0; i < n; ++i) {
- float golemina;
- cin >> ime >> brojZici >> cena >> golemina;
- zi[n + i] = new Violina(ime, brojZici, cena, golemina);
- }
- pecatiInstrumenti(m, zi, 2 * n);
- for(int i = 0; i < 2 * n; ++i) {
- delete zi[i];
- }
- delete [] zi;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement