Advertisement
PomozMi

jipp_7v.1

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