Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // tutaj zrobilem to o co sie pytalem , chyba dobrze ;)
- //
- #include <iostream>
- #include <string>
- using namespace std;
- class Stos
- {
- protected:
- static const int rozmiar = 5;
- int tab[rozmiar];
- int ind;//-1 wskazuje pusty stos, ind wskazuje ostatni zajety obszar w tablicy
- public:
- Stos()
- {
- ind = -1;
- }
- bool pusty()
- {
- if (ind == -1)
- {
- return true;
- }
- else
- return false;
- }
- bool pelny()
- {
- if (ind == rozmiar - 1)
- {
- return true;
- }
- else
- return false;
- }
- void dodaj(int liczba)
- {
- if (pelny())
- {
- string wyjatek = "Blad: nie mozna dodac elementu do stosu pelnego"; throw wyjatek;
- }
- else
- {
- ind++;
- tab[ind] = liczba;
- }
- }
- void usun()
- {
- if (pusty())
- {
- string wyjatek = "Blad: stos jest pusty"; throw wyjatek;
- }
- else
- {
- cout << "Zdjety: " << tab[ind] << endl;
- ind--;
- }
- }
- void szczytowy()
- {
- if (pusty())
- {
- string wyjatek = "Stos jest pusty. "; throw wyjatek;
- }
- else
- {
- cout << "Szczytowy: " << tab[ind] << endl;
- }
- }
- void oproznij()
- {
- while (!pusty())
- {
- usun();
- }
- }
- virtual int pojemnosc()
- {
- return ind + 1;
- }
- };
- void menu(){
- Stos *moj = new Stos();
- char operacja;
- int liczba;
- cout << "MENU\n";
- do
- {
- cout << "P pojemnoc stosu\nD dodaj liczbe\nU usun liczbe\nO odczytaj\n";
- cin >> operacja;
- switch (operacja)
- {
- case 'p':
- case 'P':
- cout << "Pojemnosc stosu: " << moj->pojemnosc() << endl;
- break;
- case 'd':
- case 'D':
- {
- cin >> liczba;
- moj->dodaj(liczba);
- }
- break;
- case 'u':
- case 'U':
- {
- moj->usun();
- }
- break;
- case 'o':
- case 'O':
- {
- moj->szczytowy();
- }
- break;
- case 'k':
- operacja = 'K';
- break;
- }
- } while (operacja != 'K');
- }
- void zad1(){
- Stos *moj = new Stos();
- char operacja;
- int liczba;
- try{
- menu();
- }
- catch (string wyjatek){
- cout <<"Tutaj wychodze do domu. \n"<< wyjatek;
- cout << "\n Wracam do menu \n";
- menu(); // wracam
- }
- }
- int main(){
- zad1();
- //zad2();
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement