-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.cpp
More file actions
186 lines (183 loc) · 8.02 KB
/
Main.cpp
File metadata and controls
186 lines (183 loc) · 8.02 KB
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
#include "Classes.hpp" // Здесь лежат классы
int main()
{
int choice; // Переменная для выбора действия
string name, author, genre, name_list, new_name_list, new_data, old_data, old_name_list; // Переменные для хранения данных
int year,
id; // Переменная для хранения года издания
while (true) // Бесконечный цикл
{
cout << "\n=== Меню ===\n";
cout << "1: Создать список книг\n";
cout << "2: Добавить книгу в существующий список\n";
cout << "3: Изменить книгу в списке\n";
cout << "4: Выйти\n";
cout << "5: О программе\n";
cout << "6: Изменение названия списка\n";
cout << "Введите номер действия: ";
cin >> choice; // Ввод выбора действия
cin.ignore(); // Очистка буфера ввода
if (choice == 1) // Если выбрано создание списка книг
{
cout << "Введите id: ";
cin >> id;
if (cin.fail())
{
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "Ошибка ввода! Введите число.\n";
continue;
}
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "Введите название списка: ";
getline(cin, name_list);
if (name_list.empty())
{
cout << "Название списка не может быть пустым!\n";
continue;
} // Если название списка пустое
cout << "Введите название книги: ";
getline(cin, name);
if (name.empty())
{
cout << "Название книги не может быть пустым!\n";
continue;
}
cout << "Введите автора: ";
getline(cin, author);
if (author.empty())
{
cout << "Автор не может быть пустым!\n";
continue;
} // Если автор не указан
cout << "Введите жанр: ";
getline(cin, genre);
if (genre.empty())
{
cout << "Жанр не может быть пустым!\n";
continue;
} // Если жанр не указан
cout << "Введите год издания: ";
cin >> year;
if (cin.fail())
{
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "Ошибка ввода! Введите число.\n";
continue;
}
cin.ignore(numeric_limits<streamsize>::max(), '\n');
Book book1(id, name, author, genre, name_list, year);
book1.add_book(id, name, author, genre, name_list, year);
cout << "Список создан!\n";
continue;
}
else if (choice == 2) // Если выбрано добавление книги в существующий список
{
cout << "Введите название списка: ";
getline(cin, name_list);
if (name_list.empty())
{
cout << "Название списка не может быть пустым!\n";
continue;
}
cout << "Введите id: ";
cin >> id;
if (cin.fail())
{
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "Ошибка ввода! Введите число.\n";
continue;
}
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "Введите название книги: ";
getline(cin, name);
if (name.empty())
{
cout << "Название книги не может быть пустым!\n";
continue;
}
cout << "Введите автора: ";
getline(cin, author);
if (author.empty())
{
cout << "Автор не может быть пустым!\n";
continue;
}
cout << "Введите жанр: ";
getline(cin, genre);
if (genre.empty())
{
cout << "Жанр не может быть пустым!\n";
continue;
}
cout << "Введите год издания: ";
cin >> year;
if (cin.fail())
{
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "Ошибка ввода! Введите число.\n";
continue;
}
cin.ignore(numeric_limits<streamsize>::max(), '\n');
Book book1(id, name, author, genre, name_list, year);
book1.add_book_to_list(id, name_list, name, author, genre, year);
cout << "Список обновлен!\n";
continue;
}
else if (choice == 3) // Если выбрано изменение книги в списке
{
cout << "Введите название списка: ";
getline(cin, name_list);
if (name_list.empty())
{
cout << "Название списка не может быть пустым!\n";
}
cout << "Введите id книги: ";
cin >> id;
if (cin.fail())
{
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "Ошибка ввода! Введите число.\n";
continue;
}
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout << "Введите название того, что хотите изменить (пример на английском: name, genre, year, author) ";
getline(cin, name);
cout << "Введите новое значение: ";
getline(cin, new_data);
cout << "Введите старое значение: ";
getline(cin, old_data);
New_data data1(name, name_list, old_data, new_data, id);
data1.change_data(name, name_list, old_data, new_data, id);
continue;
}
else if (choice == 4) // Если выбран выход
{
cout << "Выход из программы..." << endl;
break;
}
else if (choice == 5) // Если выбрана программа
{
cout << "Программа для создания списка книг." << endl;
cout << "Автор: Женя Бородин" << endl;
cout << "Версия: 1.0" << endl;
continue;
}
else if (choice == 6) // Если выбрано изменение названия списка
{
cout << "Введите старое название списка: ";
getline(cin, old_name_list);
cout << "Введите новое название списка: ";
getline(cin, new_name_list);
List list1(old_name_list, new_name_list);
list1.change_name_list(old_name_list, new_name_list);
cout << "Название списка изменено!\n";
continue;
}
}
return 0;
}