Форум программистов, компьютерный форум CyberForum.ru

Использованние средств объектно-ориентированного программирования - C++

Восстановить пароль Регистрация
 
melkaya19
0 / 0 / 0
Регистрация: 03.10.2009
Сообщений: 19
14.12.2009, 18:48     Использованние средств объектно-ориентированного программирования #1
Помогите пожалуйста, надо сделать программу используя средства объектно-ориентированного программирования.

Создать класс "Simbol stack", в котором хранится массив с символьными значениями (char) длинной 5 и колличество элементов стека. Для класса создать такие методы:
(1) конструктор,
(2) деструктор, который сообщает о ликвидации объекта и колличество ликвидированных объектов (если во время ликвидации стек не пустой),
(3) метод "Push", который добавляет к стеку элемент, если он не полный,
(4) метод "Pop", который вынимает из стека верхний элемент и возвращает его значение,
(5) метод "Count", который возвращает колличество элементов в стеке,
(6) метод "Top", который возвращает значение ворхнего элемента,
(7) метод "IsEmpty", который выясняет,пустой ли стек,
(8) метод "IsFull", который выясняет, полный ли стек.

Стек(Stack)- динамическая структура данных, из которой данные вынимаются в обратном порядке, не в таком как помещены.

Заголовок класса обязательно поместить в отдельный файл заголовка (*.h). Данные класса по умолчанию скрытые (private),
а методы открытые (public).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2009, 18:48     Использованние средств объектно-ориентированного программирования
Посмотрите здесь:

объектно-ориентированный анализ,объектно-ориентированное проектирование C++
C++ Матрица/связные_списки смежности для ориентированного графа
C++ Помощь в начинание Объектно ориентированного програмирования
Построение ориентированного графа C++
C++ С++. Объектно-ориентированная технология программирования. Обработка матрицы с использованием иерархии классов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
melkaya19
0 / 0 / 0
Регистрация: 03.10.2009
Сообщений: 19
17.12.2009, 20:53  [ТС]     Использованние средств объектно-ориентированного программирования #2
Никто не может помочь?
Aye Aye
 Аватар для Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
17.12.2009, 22:23     Использованние средств объектно-ориентированного программирования #3
вот на. спрашивай если чего непонятно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <conio.h>
#include <iostream>
using namespace std;
class node{
      private:
              node* next;
              char info;
      public:
              node():info(0){};
              node(char cc):info(cc),next(0){};
              int getinfo(){return info;}
              void put(char cc ){info=cc;}
              void del()
              {
                   if (next) next->del();
              
                   cout << info << endl;
                   delete next;
                   next=0;
                   
              }
              node* getnext(){return next;}
              void putnext(node* p){next=p;}
};
                    
class Stack{
      private:
              node* link;
              int number_of_elements;
              int max;
      public:
             Stack(){link=0; number_of_elements=0; max=5;}//конструктор по умолчанию
             Stack(int ii){link=0; number_of_elements=0; max=ii;}//конструктор
             ~Stack()//деструктор
             {
                     if(link && (number_of_elements>0))link->del();
                     delete link;
                     link=0;
                     number_of_elements=0;
             }
             void Push(char cc)
             {
                  if (number_of_elements < max)
                  {
                          node* p=new node(cc);
                          p->putnext(link);
                          link=p;
                          number_of_elements++;
                  }
                  else cout << "Stack overflow\n";
             }
             char Pop()
             {
                  if (link && (number_of_elements > 0))
                  {
                     char temp=link->getinfo();
                     node* p=link;
                     link=link->getnext();
                     delete p;
                     number_of_elements--;
                     return temp;
                  }
                  else cout << "Stack is empty\n";
             }
             int Count(){return number_of_elements;}
             char Top(){if(link && number_of_elements)return link->getinfo();}
             bool IsEmpty(){return number_of_elements==0;}
             bool IsFull() {return number_of_elements==max;}
};
 
int main()
{
    Stack S;
    
    S.Push('r');
    S.Push('g');
    S.Push('a');
    S.Push('b');
    cout << "Top element: "<<S.Top() << endl;
    S.Push('z');
    S.Push('q'); //не добавляется ибо полный
    
    cout << S.IsEmpty() << endl;
    cout << S.IsFull() << endl;
    
    cout << S.Count() << endl;
    
    cout << S.Pop() << endl;
    cout << S.Pop() << endl;
    cout << S.Pop() << endl;
    cout << S.Pop() << endl;
    cout << S.Pop() << endl;
    cout << S.Pop() << endl; //не вынемается ибо пустой стек
    
    cout << S.IsEmpty() << endl;
    cout << S.IsFull() << endl;
    
    getch();
    cout << "Delete stack\n";
    S.Push('c');
    S.Push('x');
    S.~Stack();
    getch();
}
откомпелированно на DEV-C++ 4.9.9.2, все работает.

только обявление класса сам в файл положишь, мне лень
melkaya19
0 / 0 / 0
Регистрация: 03.10.2009
Сообщений: 19
17.12.2009, 23:23  [ТС]     Использованние средств объектно-ориентированного программирования #4
Ну только не сам, а сама а можно как нибудь без put и getch, этого мы ещё не проходили, и так что бы всё самой вводить с клавиатуры?
Sekt
 Аватар для Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
17.12.2009, 23:30     Использованние средств объектно-ориентированного программирования #5
getch(); держит окно консоли.
P.s где вы видели Put?
C++
1
S.~Stack();
Никогда не вызывайте деструктор.
Aye Aye
 Аватар для Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
18.12.2009, 00:15     Использованние средств объектно-ориентированного программирования #6
никогда не буду вызавать дестркуктор.

getch() замени на
C++
1
char cc; while(cc<>(char)0x13) cin >> cc; // а вообще это не обязательно.
а хте put я не знаю
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2009, 00:20     Использованние средств объектно-ориентированного программирования
Еще ссылки по теме:

Как называется движение программирования или теория программы считывающая др. язык программирования C++
C++ Объектно-ориентированного проектирования и проектирования на основе структур данных
C++ Используя методы объектно-ориентированного программирования реализовать класс «Люк»

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
18.12.2009, 00:20     Использованние средств объектно-ориентированного программирования #7
C++
1
char cc; while(cc<>(char)0x13) cin >> cc; // а вообще это не обязательно.
Понравилось, но все же "не равно" обозначается так !=, а не как в паскале <>. Задержку можно сделать так
C++
1
2
fflush(stdin);
std::cin.get();
или так
C++
1
system("pause");
Yandex
Объявления
18.12.2009, 00:20     Использованние средств объектно-ориентированного программирования
Ответ Создать тему
Опции темы

Текущее время: 14:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru