Guest User

Untitled

a guest
May 9th, 2011
651
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <typeinfo>
  4. #include <fstream>
  5. #include <vector>
  6. #include <string>
  7. using namespace std;
  8.  
  9. class Skladnik{
  10. public:
  11.         virtual string info() = 0;
  12. };
  13. class Marchewka : public Skladnik{
  14. public:
  15.         string info(){
  16.                 string nazwa=typeid(Marchewka).name();
  17.                 nazwa = nazwa.substr(6,nazwa.size()-6);
  18.                 return nazwa;
  19.         }
  20. };
  21. class Pomidor : public Skladnik{
  22. public:
  23.         string info(){
  24.                 string nazwa=typeid(Pomidor).name();
  25.                 nazwa = nazwa.substr(6,nazwa.size()-6);
  26.                 return nazwa;
  27.         }
  28. };
  29. class Kukurydza : public Skladnik{
  30. public:
  31.         string info(){
  32.                 string nazwa=typeid(Kukurydza).name();
  33.                 nazwa = nazwa.substr(6,nazwa.size()-6);
  34.                 return nazwa;
  35.         }
  36. };
  37. class Salatka{
  38. private:
  39.         vector<Skladnik*> skladniki;
  40.         string opis;
  41. public:
  42.         Salatka() { }
  43.         void DodajSkladnik(Skladnik* s){
  44.                 skladniki.push_back(s);
  45.         }
  46.         void DodajOpis(){
  47.             cout << "Podaj sposob przygotowania: " << endl;
  48.             getline(cin,opis);
  49.             getline(cin,opis);
  50.         }
  51.  
  52.         void Wyswietl(){
  53.                 cout << "Skladniki salatki: \n";
  54.                 for(int i=0;i<skladniki.size();i++)
  55.                         cout << (i+1)<<". "<<skladniki[i]->info() << endl;
  56.                 cout <<"Opis przygotowania: \n" << opis << endl;
  57.         }
  58.         void Zapisz(){
  59.             string nazwapliku=typeid(przepis).name();
  60.             nazwapliku = nazwapliku.substr(6,nazwa.size()-6);
  61.             fstream plik(nazwapliku.c_str());
  62.         }
  63. };
  64.  
  65. int main()
  66. {
  67.     int q,r;
  68.     string nazwa;
  69.     bool koniec=false;
  70.     string skladnik;
  71.     vector<string> W;
  72.         cout << "***********KSIAZKA KUCHARSKA**************\n\n\n";
  73.             cout <<"1 - Dodaj przepis\n";
  74.             cin >> q;
  75.             switch(q)
  76.             {
  77.             case 1:
  78.                 cout << "Podaj nazwe przepisu: ";
  79.                 cin >> nazwa;
  80.                 Salatka nazwa;
  81.                 cout << endl;
  82.                 do{
  83.                 cout << "Wybierz skladniki:\n1 - Pomidor\n2 - Marchewka\n3 - Kukurydza\n4 - Koniec\n";
  84.                 cin >> r;
  85.                 switch(r)
  86.                 {
  87.                 case 1: nazwa.DodajSkladnik(new Pomidor());
  88.                     break;
  89.                 case 2: nazwa.DodajSkladnik(new Marchewka());
  90.                     break;
  91.                 case 3: nazwa.DodajSkladnik(new Kukurydza());
  92.                     break;
  93.                 default: koniec=true;
  94.                 }
  95.                 }while(!koniec);
  96.                 nazwa.DodajOpis();
  97.                 nazwa.Wyswietl();
  98.             }
  99.        
  100.         _getch();
  101.         return 0;
  102. }
RAW Paste Data