Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2020
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.31 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <vector>
  4. #include <conio.h>
  5.  
  6. /*
  7. Stworzyc ktore bedzie realizowac stos
  8. Ktory polega na tym, ze element odkladany na stos zajmuje jego szczyt, zwany rowniez wierzcholkiem stosu
  9. Do odkladania sluzy funckja push, za to pobranie elementu ze stosu wiaze sie z uzyciem funkcji pop
  10. ktorej zadanie polega na tym, aby sciagnac ze szczytu stosu wlasciwa dana; Po kazdej tej operacji
  11. nalezy zaaktualizowac wskaznik wskazujacy na szczyt stosu dodatkowo zaimplementowac nalezy
  12. funkcje peek ktorej dzialanie polegac bedzie na jedynie odczytaniu badz tez prezentacji danej znajdujacej sie
  13. na szczycie stosu bez jej faktycznego sciagania, czyli bez aktualizacji wierzcholka stosu
  14. Dalej zdefiniowac nalezy funkcje wyswietlajaca zawartosc stosu
  15. Stos zrealizowac przy uzyciu tablicy odpowiedniego typu, maksymalnie 20 elementow, ten parametr nazwiemy size
  16. natomiast liczba elementow w tablicy ktore sie w niej znajduja bedzie oznaczana przez zmienna lenght
  17. tablica bedzie gromadzic w sobie elementy bedace obiektami zlozonego typu danych czyli klasy
  18. elementy wczesniej opisanego pojecia punkt tzn odpowiedniej klasy
  19.  
  20.  
  21. */
  22.  
  23.  
  24.  
  25.  
  26. #define size 5
  27.  
  28. using namespace std;
  29.  
  30.  
  31.  
  32.  
  33. class punkt
  34. {
  35. float x, y;
  36.  
  37. public:
  38. punkt();
  39. void set_x(float x);
  40. void set_y(float y);
  41. float get_x();
  42. float get_y();
  43. };
  44.  
  45.  
  46. punkt::punkt(){
  47. }
  48.  
  49. void punkt::set_x(float x){
  50. this->x = x;
  51. }
  52.  
  53. void punkt::set_y(float y){
  54. this->y = y;
  55. }
  56.  
  57. float punkt::get_x(){
  58. return x;
  59. }
  60.  
  61. float punkt::get_y(){
  62. return y;
  63. }
  64.  
  65.  
  66. /////**************************** klasa stos ********************************
  67.  
  68. class stos
  69. {
  70.  
  71. punkt *tab;
  72. int lenght;
  73.  
  74. public:
  75. stos();
  76. ~stos();
  77. void push(int a, int b);
  78. void pop();
  79. void peek();
  80. int getLenght();
  81. void show(int i);
  82. };
  83.  
  84. stos::stos(){
  85. tab = new punkt [size];
  86. lenght = 0;
  87. }
  88.  
  89. stos::~stos(){
  90. delete [] tab;
  91. }
  92.  
  93. void stos::push(int a, int b) {
  94. tab[lenght].set_x(a);
  95. tab[lenght].set_y(b);
  96. lenght++;
  97.  
  98. }
  99.  
  100. void stos::pop() {
  101. lenght--;
  102. }
  103.  
  104. void stos::peek(){
  105. cout << "(" << tab[lenght].get_x() << "," << tab[lenght].get_x() << ") ";
  106. }
  107.  
  108. int stos::getLenght() {
  109. return lenght;
  110. }
  111.  
  112. void stos::show(int i){
  113. cout << "(" << tab[i].get_x() << "," << tab[i].get_y() << ") ";
  114. }
  115.  
  116.  
  117.  
  118.  
  119. int main()
  120. {
  121. int x, y, kontrola;
  122. char znak;
  123. stos que;
  124.  
  125.  
  126. do
  127. {
  128. system("CLS");
  129. cout << "1 Dodaj" << endl;
  130. cout << "2 Usun" << endl;
  131. cout << "3 Wyswietl calosc" << endl;
  132.  
  133. kontrola = que.getLenght();
  134.  
  135. znak = _getch();
  136. switch (znak) {
  137.  
  138. case'1': {
  139.  
  140. if (kontrola == size)
  141. {
  142. cout << "Kolejka pelna";
  143. system("pause");
  144. break;
  145. }
  146.  
  147. cout << "Wpisujesz x ";
  148. cin >> x;
  149. if (cin.fail())
  150. {
  151. cin.clear();
  152. cin.ignore();
  153. break;
  154. }
  155. else
  156.  
  157. cout << "Wpisujesz y ";
  158. cin >> y;
  159. if (cin.fail())
  160. {
  161. cin.clear();
  162. cin.ignore();
  163. break;
  164. }
  165. else
  166. que.push(x, y);
  167. break;
  168. }
  169.  
  170. case'2': {
  171. if (kontrola <= 0)
  172. break;
  173. else
  174. que.pop();
  175. break;
  176. }
  177.  
  178. case'3':{
  179.  
  180. if (kontrola == 0){
  181. cout << "Kolejka pusta" << endl;
  182. break;
  183. }
  184. else
  185.  
  186. for (int i = 0; i < kontrola; i++)
  187. {
  188. que.show(i);
  189. cout << " ";
  190. }
  191. cout << endl;
  192. system("pause");
  193. break;
  194. }
  195.  
  196. }
  197.  
  198. } while (znak != '27');
  199. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement