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

Есть готовая рабочая прога. Нужно дописать пару строчек... - C++

Восстановить пароль Регистрация
 
Колямбий
7 / 7 / 0
Регистрация: 18.12.2011
Сообщений: 137
22.12.2011, 23:15     Есть готовая рабочая прога. Нужно дописать пару строчек... #1
Вот программа (полностью рабочая):

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
#include <iostream>
#include <conio.h>
using namespace std;
 
#define N 10
 
template <class TYPE>
class stack {
private:
    enum { 
        EMPTY=-1
    };
    TYPE *s;
    int len, top;
public:
    stack() {             //Создает стек из 1000 элементов
        len=1000; 
        s=new TYPE[1000]; 
        top=EMPTY; 
    }               
    stack(int size) {     //Создает стек из заданного числа элементов
        len=size; 
        s=new TYPE[size]; 
        top=EMPTY; 
    }       
    ~stack() {            //Удаляет стек
        delete s; 
    }                                           
    void reset() {         //Очищает стек
        top=EMPTY; 
    }                                       
    void push(TYPE c) {      //Добавить элемент в стек
        s[++top]=c;  
    }                               
    TYPE pop() {           //Забрать элемент из стека
        return s[top--];  
    }                               
    TYPE top_of() {         //Возвращает верхний элемент стека
        return s[top]; 
    }                               
    bool empty() {        //Проверяет, пустой ли стек
        return bool(top==EMPTY); 
    }                       
    bool full() {         //Проверяет, полный ли стек
        return bool(top==len-1); 
    }                       
};
 
 
void main(){
    
    stack<int> s(N);
    
    int i=0;
    while (!s.full())
        s.push(++i);
 
    cout<<"Stack:\n";
 
    while(!s.empty())
        cout<<s.pop()<<"\n";
 
    getch();
}
Есть два вопроса:
1. Можно ли используя уже созданные конструкторы в классе, вывести по аналогии с int символьные char ? или необхлдимо создавать новые конструкторы?
2. Собственно, помогите, пожалуйста, добавить в прогу, вывод символьных элементов.

Добавлено через 26 минут
вот сам подумал, дописал:

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
#include <iostream>
#include <conio.h>
using namespace std;
 
#define N 10
 
template <class TYPE>
class stack {
private:
    enum { 
        EMPTY=-1
    };
    TYPE *s;
    int len, top;
public:
    stack() {             //Создает стек из 1000 элементов
        len=1000; 
        s=new TYPE[1000]; 
        top=EMPTY; 
    }               
    stack(int size) {     //Создает стек из заданного числа элементов
        len=size; 
        s=new TYPE[size]; 
        top=EMPTY; 
    }       
    ~stack() {            //Удаляет стек
        delete s; 
    }                                           
    void reset() {         //Очищает стек
        top=EMPTY; 
    }                                       
    void push(TYPE c) {      //Добавить элемент в стек
        s[++top]=c;  
    }                               
    TYPE pop() {           //Забрать элемент из стека
        return s[top--];  
    }                               
    TYPE top_of() {         //Возвращает верхний элемент стека
        return s[top]; 
    }                               
    bool empty() {        //Проверяет, пустой ли стек
        return bool(top==EMPTY); 
    }                       
    bool full() {         //Проверяет, полный ли стек
        return bool(top==len-1); 
    }       
    
};
 
 
void main(){
    
    stack<int> s(N);
    
    int i=0;
    while (!s.full())
        s.push(++i);
 
    cout<<"Stack int:\n";
    
    while(!s.empty())
        cout<<s.pop()<<" ";
 
    cout<<endl<<"\n";
    cout<<"Stack char:\n";
    
    stack <char> s_ch(5); // stack из 4 элементов char
    s_ch.push('o');
    s_ch.push('l');
    s_ch.push('l');
    s_ch.push('e');
    s_ch.push('H');
 
    while(!s_ch.empty())
        cout<<s_ch.pop()<<" ";
    
    getch();
}
Работает как по заданию, но скажите это можно организовать как то через цикл с массивом?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2011, 23:15     Есть готовая рабочая прога. Нужно дописать пару строчек...
Посмотрите здесь:

Не могу дописать пару операторов в конце программы... C++
Есть прогрмамма,нужно дописать чтение из файла(срочно) C++
C++ Есть готовая прога,только нужно модифицировать.
C++ найти и поменять местами пару слов, у которых первые три буквы одного совпадают с последними тремя буквами другого (дописать)
C++ Есть ли в с++ готовая функция преобразующая строку в массив?
Поясните пару строчек C++
C++ Готовая прога исправить один недочет
C++ Есть ли готовая функция для работы с массивами?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vetal10
35 / 35 / 5
Регистрация: 25.05.2010
Сообщений: 211
22.12.2011, 23:38     Есть готовая рабочая прога. Нужно дописать пару строчек... #2
массивы надо удалять
C++
1
delete [] s;
и функция ресет не очищает стек.
Yandex
Объявления
22.12.2011, 23:38     Есть готовая рабочая прога. Нужно дописать пару строчек...
Ответ Создать тему
Опции темы

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