Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- #include <vector>
- #include <conio.h>
- /*
- Stworzyc ktore bedzie realizowac stos
- Ktory polega na tym, ze element odkladany na stos zajmuje jego szczyt, zwany rowniez wierzcholkiem stosu
- Do odkladania sluzy funckja push, za to pobranie elementu ze stosu wiaze sie z uzyciem funkcji pop
- ktorej zadanie polega na tym, aby sciagnac ze szczytu stosu wlasciwa dana; Po kazdej tej operacji
- nalezy zaaktualizowac wskaznik wskazujacy na szczyt stosu dodatkowo zaimplementowac nalezy
- funkcje peek ktorej dzialanie polegac bedzie na jedynie odczytaniu badz tez prezentacji danej znajdujacej sie
- na szczycie stosu bez jej faktycznego sciagania, czyli bez aktualizacji wierzcholka stosu
- Dalej zdefiniowac nalezy funkcje wyswietlajaca zawartosc stosu
- Stos zrealizowac przy uzyciu tablicy odpowiedniego typu, maksymalnie 20 elementow, ten parametr nazwiemy size
- natomiast liczba elementow w tablicy ktore sie w niej znajduja bedzie oznaczana przez zmienna lenght
- tablica bedzie gromadzic w sobie elementy bedace obiektami zlozonego typu danych czyli klasy
- elementy wczesniej opisanego pojecia punkt tzn odpowiedniej klasy
- */
- #define size 5
- using namespace std;
- class punkt
- {
- float x, y;
- public:
- punkt();
- void set_x(float x);
- void set_y(float y);
- float get_x();
- float get_y();
- };
- punkt::punkt(){
- }
- void punkt::set_x(float x){
- this->x = x;
- }
- void punkt::set_y(float y){
- this->y = y;
- }
- float punkt::get_x(){
- return x;
- }
- float punkt::get_y(){
- return y;
- }
- /////**************************** klasa stos ********************************
- class stos
- {
- punkt *tab;
- int lenght;
- public:
- stos();
- ~stos();
- void push(int a, int b);
- void pop();
- void peek();
- int getLenght();
- void show(int i);
- };
- stos::stos(){
- tab = new punkt [size];
- lenght = 0;
- }
- stos::~stos(){
- delete [] tab;
- }
- void stos::push(int a, int b) {
- tab[lenght].set_x(a);
- tab[lenght].set_y(b);
- lenght++;
- }
- void stos::pop() {
- lenght--;
- }
- void stos::peek(){
- cout << "(" << tab[lenght].get_x() << "," << tab[lenght].get_x() << ") ";
- }
- int stos::getLenght() {
- return lenght;
- }
- void stos::show(int i){
- cout << "(" << tab[i].get_x() << "," << tab[i].get_y() << ") ";
- }
- int main()
- {
- int x, y, kontrola;
- char znak;
- stos que;
- do
- {
- system("CLS");
- cout << "1 Dodaj" << endl;
- cout << "2 Usun" << endl;
- cout << "3 Wyswietl calosc" << endl;
- kontrola = que.getLenght();
- znak = _getch();
- switch (znak) {
- case'1': {
- if (kontrola == size)
- {
- cout << "Kolejka pelna";
- system("pause");
- break;
- }
- cout << "Wpisujesz x ";
- cin >> x;
- if (cin.fail())
- {
- cin.clear();
- cin.ignore();
- break;
- }
- else
- cout << "Wpisujesz y ";
- cin >> y;
- if (cin.fail())
- {
- cin.clear();
- cin.ignore();
- break;
- }
- else
- que.push(x, y);
- break;
- }
- case'2': {
- if (kontrola <= 0)
- break;
- else
- que.pop();
- break;
- }
- case'3':{
- if (kontrola == 0){
- cout << "Kolejka pusta" << endl;
- break;
- }
- else
- for (int i = 0; i < kontrola; i++)
- {
- que.show(i);
- cout << " ";
- }
- cout << endl;
- system("pause");
- break;
- }
- }
- } while (znak != '27');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement