Advertisement
gotiobg

OOP-Homework-08-10-15

Oct 7th, 2015
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.95 KB | None | 0 0
  1. //Задача за домашно по ООП (за 08.10.15): Създайте 2 стека за съхранение на символи като използвате следния клас стек...
  2.  
  3. //#include "stdafx.h"
  4. #include <iostream>
  5. using namespace std;
  6. const int stSize = 10;
  7. int k, arrNum;
  8. char c;
  9.  
  10. class stack{
  11.     char st[stSize]; //10 const
  12.     int tos; //top of stack
  13. public:
  14.     void init();
  15.     void push(char c);
  16.     void pop();
  17.     void disp();
  18. };
  19.  
  20. void stack::init(){
  21.     for (int i = 0; i <= stSize; i++){
  22.         st[i] = 0;
  23.     }
  24.     tos = 0;
  25.     k = 0;
  26. }
  27.  
  28. void stack::disp(){
  29.     for (int i = 1; i <= stSize; i++){
  30.         cout << i << "[" << st[i] << "] ";
  31.     }
  32.     k = 0;
  33. }
  34.  
  35. void stack::push(char c){
  36.  
  37.     for (int i = 1; i <= stSize+1; i++){
  38.         if (i > stSize){
  39.             cout << "Sorry, the array was full. Symbol not written.\n";
  40.             break;
  41.         }
  42.         if (st[i] == NULL){
  43.             st[i] = c;
  44.             tos++;
  45.             cout << "Symbol " << c << " successfully written to array.\n";
  46.             break;
  47.         }
  48.     }
  49.     k = 0;
  50. }
  51.  
  52. void stack::pop(){
  53.     int j;
  54.     cout << "Which position do you want to release? Choices: 1-" << stSize << ": ";
  55.     cin >> j;
  56.  
  57.     st[j] = 0;
  58.     tos--;
  59.     cout << "Symbol at " << j << " was removed from array.";
  60.     k = 0;
  61. }
  62.  
  63. void main(){
  64.     stack arr1, arr2;
  65.     do {
  66.         cout << "\n*** Main Menu ***\n";
  67.  
  68.         cout << "1. Initialize\n";
  69.         cout << "2. Display\n";
  70.         cout << "3. Push a symbol\n";
  71.         cout << "4. Pop a symbol\n";
  72.         cout << "5. Exit\n";
  73.  
  74.         cout << "Please, select a number: ";
  75.         cin >> k;
  76.         if (k != 5){
  77.             cout << "Please, select an array: ";
  78.             cin >> arrNum;
  79.         }
  80.  
  81.         switch (k){
  82.         case 1: if (arrNum == 1) arr1.init(); else arr2.init(); break;
  83.         case 2: if (arrNum == 1) arr1.disp(); else arr2.disp(); break;
  84.         case 3: cout<< "Share a symbol, lad: ";
  85.                 cin >> c;
  86.                 if (arrNum == 1) arr1.push(c); else arr2.push(c);
  87.                 break;
  88.         case 4: if (arrNum == 1) arr1.pop(); else arr2.pop(); break;
  89.         case 5: system("exit"); break;
  90.         }
  91.     } while (k <= 0 || k >= 6);
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement