Advertisement
PomozMi

jipp_7v.2

May 4th, 2015
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.91 KB | None | 0 0
  1. //  tutaj zrobilem to  o co sie pytalem , chyba dobrze ;)
  2. //
  3. #include <iostream>
  4. #include <string>
  5.  
  6. using namespace std;
  7.  
  8.  
  9. class Stos
  10. {
  11. protected:
  12.         static const int rozmiar = 5;
  13.         int tab[rozmiar];
  14.         int ind;//-1 wskazuje pusty stos, ind wskazuje ostatni zajety obszar w tablicy
  15. public:
  16.         Stos()
  17.         {
  18.                 ind = -1;
  19.         }
  20.         bool pusty()
  21.         {
  22.                 if (ind == -1)
  23.                 {
  24.                         return true;
  25.                 }
  26.                 else
  27.                         return false;
  28.         }
  29.         bool pelny()
  30.         {
  31.                 if (ind == rozmiar - 1)
  32.                 {
  33.                         return true;
  34.                 }
  35.                 else
  36.                         return false;
  37.         }
  38.         void dodaj(int liczba)
  39.         {
  40.                 if (pelny())
  41.                 {
  42.                         string wyjatek = "Blad: nie mozna dodac elementu do stosu pelnego"; throw wyjatek;
  43.                 }
  44.                 else
  45.                 {
  46.                         ind++;
  47.                         tab[ind] = liczba;
  48.                 }
  49.         }
  50.         void usun()
  51.         {
  52.                 if (pusty())
  53.                 {
  54.                         string wyjatek = "Blad: stos jest pusty"; throw wyjatek;
  55.                 }
  56.                 else
  57.                 {
  58.                         cout << "Zdjety: " << tab[ind] << endl;
  59.                         ind--;
  60.                 }
  61.         }
  62.         void szczytowy()
  63.         {
  64.                 if (pusty())
  65.                 {
  66.                         string wyjatek = "Stos jest pusty. "; throw wyjatek;
  67.  
  68.                 }
  69.                 else
  70.                 {
  71.                         cout << "Szczytowy: " << tab[ind] << endl;
  72.                 }
  73.         }
  74.         void oproznij()
  75.         {
  76.                 while (!pusty())
  77.                 {
  78.                         usun();
  79.                 }
  80.         }
  81.         virtual int pojemnosc()
  82.         {
  83.                 return ind + 1;
  84.         }
  85. };
  86. void menu(){
  87.         Stos *moj = new Stos();
  88.         char operacja;
  89.         int liczba;
  90.         cout << "MENU\n";
  91.                 do
  92.                 {
  93.                         cout << "P      pojemnoc stosu\nD       dodaj liczbe\nU usun liczbe\nO  odczytaj\n";
  94.                         cin >> operacja;
  95.                         switch (operacja)
  96.                         {
  97.                         case 'p':
  98.                         case 'P':
  99.                                 cout << "Pojemnosc stosu: " << moj->pojemnosc() << endl;
  100.                                 break;
  101.                         case 'd':
  102.                         case 'D':
  103.                         {
  104.                                 cin >> liczba;
  105.                                 moj->dodaj(liczba);
  106.                         }
  107.                                 break;
  108.                         case 'u':
  109.                         case 'U':
  110.                         {
  111.                                      moj->usun();
  112.                         }
  113.                                 break;
  114.                         case 'o':
  115.                         case 'O':
  116.                         {
  117.                                 moj->szczytowy();
  118.  
  119.                         }
  120.                                 break;
  121.                         case 'k':
  122.                                 operacja = 'K';
  123.                                 break;
  124.                         }
  125.                 } while (operacja != 'K');
  126.  
  127.  
  128. }
  129.  
  130. void zad1(){
  131.  
  132.         Stos *moj = new Stos();
  133.         char operacja;
  134.         int liczba;
  135.         try{
  136.  
  137.                 menu();
  138.  
  139.         }
  140.         catch (string wyjatek){
  141.  
  142.                 cout <<"Tutaj wychodze do domu. \n"<< wyjatek;
  143.         cout << "\n Wracam do menu  \n";
  144.  
  145.         menu(); // wracam
  146.         }
  147. }
  148.  
  149. int main(){
  150.  
  151.  
  152.         zad1();
  153.         //zad2();
  154.         system("pause");
  155.  
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement