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

Исправить недочеты в программе (лаба №4) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Арканоид http://www.cyberforum.ru/cpp-beginners/thread30783.html
Здравствуйте! Буду писать игру арканоид. Если кому не трудно, можете написать примерный алгоритм создания?
C++ Массив В прграме обявлен масив int P={0,2,4,5,6,7,9,12}.Какиэ значения приймут выражения а)р б)*р в)*(р+4) г)*(р+р) http://www.cyberforum.ru/cpp-beginners/thread30769.html
Массивы! C++
1.Известно, что в Москве самыми теплыми являются дни с 15 июля по 15 августа. Для проведения фестиваля были выбраны 7 следующих подряд дней, наиболее теплых по данным за последние 10 лет. Составить программу для выполнения этой работы на ЭВМ. 2.Японская радиокомпания провела опрос 250 радиослушателей по трем вопросам: 1). Какое животное Вы связываете с Японией и японцами? 2). Какая черта...
C++ Реализовать класс bankomat
помогите пожалуйста...я совершенно не представляю себе работу с классами а тут такая задачка( реализовать класс Bankomat моделирующий работу банкомата. В классе должны содержатся поля для хранения идентификационного номера банкомата, информации о текущей сумме денег оставшейся в банкомате минимальной и максимальной сумме которой позволяется снять клиенту в один день.Сумма денег представляется...
C++ Как программно можно очистить экран консоли? http://www.cyberforum.ru/cpp-beginners/thread30713.html
Допустим я запустил консольную программку, там что-то она делает, и в результате экран заполняется текстом и т.д. Как программно можно очистить экран консоли?
C++ Упорядочить массив по убыванию элементов, найти минимальный элемент 1) Найдите площадь ромба по его диагоналям. 2)Упорядочить массив В(10) по убыванию элементов, найти минимальный элемент. 3)Дана матрица А(4,3). Вывести на печать все положительные элементы этой матрицы. Найти их произведение. 4)4.1. Совпадают ли буквы в двух словах. 4.2. Вычеркните из двух слов совпадающие гласные буквы. 4.3. Вставьте между буквами в слове “_”. подробнее

Показать сообщение отдельно
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1345 / 878 / 51
Регистрация: 02.01.2009
Сообщений: 2,642
Записей в блоге: 1
21.04.2009, 15:12     Исправить недочеты в программе (лаба №4)
Нужно было просто делать проверку.
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
#include <iostream>
#include <conio.h>
using namespace std;
 
 
struct deque {
    char title[20];
    char author[20];
    int  year;
    deque *prev;
    deque *next;
};
 
deque* create_deque();
deque* push_left(deque* d);
deque* push_right(deque* d);
void is_clear(deque* d);
deque* delete_right_element(deque* d);
deque* empty_deque(deque* d);
void get_right_element(deque* d);
void print_deque(deque* d);
 
 
 
int main() {
 
    // Созданем дек с первым элементом
    deque* deq = create_deque();
 
    char key;
    bool flag = true;
 
BEGIN:
 
    cout << "Press key <1> to push element in left"     << "\n";
    cout << "Press key <2> to push element in right"    << "\n";
    cout << "Press key <3> to check out deque on empty" << "\n";
    cout << "Press key <4> to delete the right element" << "\n";
    cout << "Press key <5> to delete all elements"      << "\n";
    cout << "Press key <6> to get the right element"    << "\n";
    cout << "Press key <7> to print deque"              << "\n";
    cout << "Press key <8> to exit"                     << "\n\n\n";
 
    while (1 && flag) {
        key = getch(); 
        if (key >= 49 && key <= 56) break;
    }
 
    switch (key) {
            case 49: {
                deq = push_left(deq);
                break;
                     }
            case 50: {
                deq = push_right(deq);
                break;
                     }
            case 51: {
                is_clear(deq);
                break;
                     }
            case 52: {
                deq = delete_right_element(deq);
                break;
                     }
            case 53: {
                deq = empty_deque(deq);
                break;
                     }
            case 54: {
                get_right_element(deq);
                break;
                     }
            case 55: {
                print_deque(deq);
                break;
                     }
            case 56: exit(0);
    }
 
    while (1) {
        key = getch(); 
        if (key >= 49 && key <= 56) { 
            flag = false;
            break;
        }
    }
 
    system("cls");
 
    goto BEGIN;
 
 
    return 0;
}
 
 
 
 
deque* create_deque() {
    deque* node = new (deque);
    strcpy((*node).title, "Yazik Ci++");
    strcpy((*node).author, "V.V. Podbelsky");
    (*node).year   = 2007;
    (*node).prev = NULL;
    (*node).next = NULL;
    return node;
} // END OF FUNCTION
 
deque* push_left(deque* d) {
    deque* node = new (deque);
    while ((*d).prev) d = (*d).prev;
    cout << "\t" << "PUSH  LEFT:" << "\n\n";
    cout << "\t" << "    Title:  "; cin >> (*node).title;
    cout << "\t" << "    Author: "; cin >> (*node).author;
    cout << "\t" << "    Year:   "; cin >> (*node).year;
    cout << "\n\t" << "    Data is brought";
    (*node).prev = NULL;
    (*node).next = d;
    (*d).prev = node;
    return node;
} // END OF FUNCTION
 
deque* push_right(deque* d) {
    deque* node = new (deque);
    while ((*d).next) d = (*d).next;
    cout << "\t" << "PUSH  RIGHT:" << "\n\n";
    cout << "\t" << "    Title:  "; cin >> (*node).title;
    cout << "\t" << "    Author: "; cin >> (*node).author;
    cout << "\t" << "    Year:   "; cin >> (*node).year;
    cout << "\n\t" << "    Data is brought";
    (*node).prev = d;
    (*node).next = NULL;
    (*d).next = node;
    return node;
} // END OF FUNCTION
 
void is_clear(deque* d) {
    if (!d) {
        cout << "\tTHE DEQUE IS EMPTY";
    }
    else {
        cout << "\tTHE DEQUE IS NOT EMPTY";
    }
} // END OF FUNCTION
 
deque* delete_right_element(deque* d) {
    if(!d) return d;
    while ((*d).next) d = (*d).next;
    deque* tmp = d;
    d = (*d).prev;
    (*d).next = NULL;
    delete tmp;
    cout << "\tTHE RIGHT ELEMENT IS DELETED";
    return d;
} // END OF FUNCTION
 
deque* empty_deque(deque* d) {
    if(!d) return d;
    while ((*d).next) d = (*d).next;
    while (d) {
        deque* tmp = d;
        d = (*d).prev;
        delete tmp;
    }
    cout << "\tALL ELEMENTS IN DEQUE IS DELETED";
    d = 0;
    return d;
} // END OF FUNCTION
 
void get_right_element(deque* d) {
    if(!d) return;
    while ((*d).next) d = (*d).next;
    cout << "\t" << "THE RIGHT ELEMENT:" << "\n\n";
    cout << "\t" << "    Title:  " << (*d).title  << "\n";
    cout << "\t" << "    Author: " << (*d).author << "\n";
    cout << "\t" << "    Year:   " << (*d).year   << "\n";
} // END OF FUNCTION
 
void print_deque(deque* d) {
    if(!d) return;
    while ((*d).prev) d = (*d).prev;
    cout << "\t" << "PRINT DEQUE:" << "\n\n";
    int count = 1;
    do {
        cout << "\t" << count++ << " > " << "Title:  " << (*d).title  << "\n";
        cout << "\t" << "    Author: "   <<               (*d).author << "\n";
        cout << "\t" << "    Year:   "   <<               (*d).year   << "\n\n";
        d = (*d).next;
    } while (d);
} // END OF FUNCTION
Добавлено через 2 минуты 0 секунд
PS. помоему проще вместо
C++
1
(*d).next;
писать
C++
1
d->next;
 
Текущее время: 10:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru