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

<list> - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Движение по массиву http://www.cyberforum.ru/cpp-beginners/thread122959.html
Нужно задать двумерный массив на С++ из нулей и единиц. Сделать так, чтобы нижний правый элемент двигался по массиву и добрался верхнего левого угла.При этом можно ходить только по нулям, а единица это преграда.
C++ как реализовать такое? не знаю с какого бока подойти к такому: хочу попробовать реализовать следующее - есть серый квадрат,который можно перетаскивать по окну и если серый квадрат попадает на зеленый,то он(зеленый квадрат)меняет цвет на красный. Причем серый после этого исчезает,и это событие(попадание на зеленый) можно обрабатывать...хм ну допустим выскакивать pop-up окно . подскажите или помогите разобраться со... http://www.cyberforum.ru/cpp-beginners/thread122954.html
Запмсь структуры в бин. файл C++
Нужно записать структуру в файл. У меня при этом возникает ошибка при самой записи. Ошыбка отладчика - Debuger Exception Notifycation... #include <vcl.h> #include "stdio.h" #pragma hdrstop #include "Unit1.h" typedef struct { AnsiString s1,s2;
C++ Непрерывные функции и нахождение минимума на отрезке
Помогите реализовать функцию Solve из данной задачи: Задается непрерывная функция f(x). Требуется на интервале с заданной точностью E найти точку (Xmin, Ymin), в которой f(x) принимает наименьшее значение. Точность задается как номер знака, до которого производятся вычисления и округление результата. Требования: Интерфейс реализуются в главной функции Main(). Вычисления реализуются в...
C++ работа с файлами http://www.cyberforum.ru/cpp-beginners/thread122932.html
подскажите пожалуйста a. В текстовом файле хранятся квадратные вещественные матрицы порядка n (n – const). Преобразовать файл, удалив из каждой матрицы элементы побочной диагонали. б. Дан файл целых чисел. Преобразовать его, удалив нечетные числа. Порядок следования четных чисел сохранить
C++ упорядочить столбцы матрицы Характерикой столбца матрицы назовем произведение положительных элементов с четными номерами строк. Упорядочить столбцы матрицы по возрастанию их характеристик. подробнее

Показать сообщение отдельно
Padonok
14 / 14 / 1
Регистрация: 01.02.2009
Сообщений: 23
28.04.2010, 16:39  [ТС]     <list>
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
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
#include <iostream>
#include <algorithm>
#include <list>
#include <string>
#include <windows.h>
 
using namespace std;
 
 
class DATA{
public:
    void SetName(string name) { itsName = name;}
    void SetYear(int year)    { itsYear = year;}
    void SetPrice(int price) { itsPrice = price;}
    void SetAuthor(string author) { itsAuthor = author;} 
    string GetName() { return itsName;}
    void print();
private:
    string itsName;
    string itsAuthor;
    int itsYear;
    int itsPrice;
};
void DATA::print(){
    cout << "Name: " << itsName << endl;
    cout << "Author: " << itsAuthor << endl;
    cout << "Year: " << itsYear << endl;
    cout << "Price: " << itsPrice << endl;
}
 
class Book{
public:
    virtual void SetName(string name)=0; // имя книги
    virtual void SetYear(int year)=0; // год издания книги
    virtual void SetPrice(int price)=0; // цена книги
    virtual void SetAuthor(string author)=0; // автор книги
    virtual string GetName()=0;
    virtual void print()=0; // вывод
};
 
class Science : public Book{
public:
    void SetName(string name) { data.SetName(name); }
    void SetYear(int year) { data.SetYear(year); }
    void SetPrice(int price) { data.SetPrice(price); }
    void SetAuthor(string author) { data.SetAuthor(author); }
    string GetName() { return data.GetName(); }
    void print() { data.print(); }
 
protected:
    DATA data;
};
 
class Directory : public Science{
public:
    void SetType(string type) { itsType = type;} // Словарь, Энциклопедия
    void display() { cout << "Type: " << itsType << endl;}
private:
    string itsType;
 
};
 
class Fiction : public Book{
public:
    void SetName(string name) { data.SetName(name); }
    void SetYear(int year) { data.SetYear(year); }
    void SetPrice(int price) { data.SetPrice(price); }
    void SetAuthor(string author) { data.SetAuthor(author); }
    string GetName() { return data.GetName(); }
    void print() { data.print(); }
 
protected:
    DATA data;
};
 
class Drama : public Fiction{
public:
    void SetType(string type) { itsType = type;} // тип текста: Проза, Роман, Стих
    void SetPeriod(string period) { itsPeriod = period; } // литература по периодам: Античная, Средневековья, Ренессанс, Модерн, Постмодерн
    void display() { cout << "Type: "  << itsType << endl;
                     cout << "Period: " << itsPeriod << endl; 
    }
private:
    string itsType;
    string itsPeriod;
};
 
 
int main(){
    setlocale( LC_ALL,"Russian" );
    list<Book*>book;//список
    list<Book*>::iterator p;
    bool menu = true;
    int year;
    int price;
    string name;
    string author;
 
    
    while(menu){
        int choice;
        system("cls");
        system("color A");
        cout << "*****Меню*****\n";
        cout << "(1)Создать объект\n";
        cout << "(2)Удалить объект\n";
        cout << "(3)Изменить параметры объекта\n";
        cout << "(4)Вывод\n";
        cout << "(5)Выход\n";
        cout << endl;
        cin >> choice;
        switch(choice){
            case 1:{
                system("cls");
                cout << "*****Меню*****\n";
                cout << "(1)Создать Science\n";
                cout << "(2)Создать Directory\n";
                cout << "(3)Создать Fiction\n";
                cout << "(4)Создать Drama\n";
                cout << "(5)Выход\n";
                cin >> choice;
                switch(choice){
                    case 1: {
                        Book * science = new Science();
                        cout << "Название книги: ";
                        cin >> name;
                        science->SetName(name);
                        cout << "\nАвтор: ";
                        cin >> author;
                        science->SetAuthor(author);
                        cout << "\nГод издания: ";
                        cin >> year;
                        science->SetYear(year);
                        cout << "\nЦена: ";
                        cin >> price;
                        science->SetPrice(price);
                        book.push_back(science);// помещения объекта в список
                        
                    }
                    break;
                    case 2: {
                        Book * directory = new Directory();
                        cout << "Название книги: ";
                        cin >> name;
                        directory->SetName(name);
                        cout << "\nАвтор: ";
                        cin >> author;
                        directory->SetAuthor(author);
                        cout << "\nГод издания: ";
                        cin >> year;
                        directory->SetYear(year);
                        cout << "\nЦена: ";
                        cin >> price;
                        directory->SetPrice(price);
                        book.push_back(directory);
                             
                    }
                    break;
                    case 3: {
                        Book * fiction = new Fiction();
                        cout << "Название книги: ";
                        cin >> name;
                        fiction->SetName(name);
                        cout << "\nАвтор: ";
                        cin >> author;
                        fiction->SetAuthor(author);
                        cout << "\nГод издания: ";
                        cin >> year;
                        fiction->SetYear(year);
                        cout << "\nЦена: ";
                        cin >> price;
                        fiction->SetPrice(price);
                        book.push_back(fiction);
                             
                    }
                    break;
                    case 4: {
                        Book * drama = new Drama();
                        cout << "Название книги: ";
                        cin >> name;
                        drama->SetName(name);
                        cout << "\nАвтор: ";
                        cin >> author;
                        drama->SetAuthor(author);
                        cout << "\nГод издания: ";
                        cin >> year;
                        drama->SetYear(year);
                        cout << "\nЦена: ";
                        cin >> price;
                        drama->SetPrice(price);
                        book.push_back(drama);
                             
                    }
                    break;
                   case 5: break;
                }
            }
                
                   
            case 2: {
                int tmp = book.empty();
                if(tmp){ // проверка наличия объектов в списке
                    cout << "Список объектов пустой" << endl;
                    Sleep(1000);
                }
                
 
            }
                    break;
            case 3: break;
            case 4: {
                int tmp = book.empty();
                if(tmp){ // проверка наличия объектов в списке
                    cout << "Созданных объектов нет" << endl;
                    Sleep(1000);
                }
                else{
                    
                    Sleep(1000);
                }
 
            }
                    break;
            case 5: menu = false; break;
            default: {
                cout << "Попробуйте еще раз\n"; 
                     Sleep(1000);
            }
                     break;
        }
    }
    
    return 0;
}
Добавлено через 26 минут
Цитата Сообщение от Roma_F Посмотреть сообщение
C++
1
2
3
4
5
6
std::set<Book *>::iterator it = sel_k.begin();
while (it != sel_k.end())
{
    (*it)->print();
    it++;
}

спасибо)))

Добавлено через 41 минуту
А как можно реализовать удаление со списка по имени книги.
C++
1
2
3
4
5
6
7
8
9
10
11
12
cout << "Имя книги: ";
string N,T;
cin >> N;
list<Book*>::iterator it=book.begin();
while(it != book.end()){
     T=(*it)->GetName();
     if(T == N){
        cout << "ok" << endl;
    book.erase(it);
     }
     it++;
}
Оно то удаляет но после удаления программа рушится (((
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru