Advertisement
Andites

Курсовой

Nov 30th, 2022 (edited)
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.84 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <math.h>
  4. #include <string>
  5. #include <fstream>
  6. #include <sstream>
  7. #include <algorithm>
  8. #include <Windows.h>
  9. #include <iomanip>
  10. #include <C:\termcolor\termcolor.hpp>
  11. #pragma comment( lib, "winmm" )
  12. using namespace std;
  13. const float Price = 6.86;
  14.  
  15. //ИСПРАВИТЬ ВСЕ, СОРТИРОВКУ, ПОИСК И ТД Изменил только добавление и вывод
  16. class Gaz {
  17. private:
  18. string Street;
  19. int House;
  20. int Flat;
  21. int NalZad;
  22. float Penny;
  23. float MetersData;
  24. float PrewMetersData;
  25. float NeedToPay;
  26. public:
  27. Gaz() {
  28. Street = "";
  29. House = NULL;
  30. Flat = NULL;
  31. NalZad = NULL;
  32. Penny = 0;
  33. MetersData = NULL;
  34. PrewMetersData = NULL;
  35. NeedToPay = NULL;
  36. }
  37.  
  38. int get_Flat() { return Flat; } float get_Price() { return Price; } int get_Payment() { return NalZad; } float get_Penny() { return Penny; } string get_Street() { return Street; }
  39. float get_Meters() { return MetersData; } float get_PrewMeters() { return PrewMetersData; } float get_Need() { return NeedToPay; } int get_House() { return House; }
  40.  
  41. void set_Flat(int a) { Flat = a; } void set_Meters(float a) { MetersData = a; } void set_PrewMeters(float a) { PrewMetersData = a; } void set_Need(float a) { NeedToPay = a; }
  42. void set_Payment(int a) { NalZad = a; } void set_Street(string a) { Street = a; } void set_House(int a) { House = a; }
  43.  
  44. void SetData() {
  45. int a = 0, b = 50;
  46. COUT(a, b); cout << "Окно ручного ввода данных\n"; a++;
  47. cout << setw(119) << setfill('-') << "\n";
  48. a = 10; b = 44;
  49. COUT(a, b); cout << "<> Введите название улицы: "; getline(cin, Street); a++;
  50. COUT(a, b); cout << "<> Введите номер дома: "; cin >> House; a++;
  51. COUT(a, b); cout << "<> Введите номер квартиры: "; cin >> Flat; a++;
  52. COUT(a, b); cout << "<> Введие показания прибора учета: "; cin >> MetersData; a++;
  53. if (PrewMetersData == NULL) {
  54. COUT(a, b); cout << "<> Введите показания прибора учета за прошлый месяц: "; cin >> PrewMetersData; a++;
  55. }
  56. COUT(a, b); cout << "<> Наличие задолженности: "; cin >> NalZad; a++;
  57. if (PrewMetersData != NULL && NalZad == 1) {
  58. NeedToPay = (MetersData - PrewMetersData) * Price;
  59. }
  60. system("pause");
  61. system("cls");
  62. }
  63.  
  64. void ShowDataToConsole() {
  65. //cout << termcolor::grey; printf("%95d", '<>'); cout << termcolor::white; cout << "<>" << endl;
  66. cout << " " << char(164) << " Название улицы: " << Street << endl;
  67. cout << " " << char(164) << " Номер дома: " << House << endl;
  68. cout << " " << char(164) << " Номер квартиры: " << Flat << endl;
  69. cout << " " << char(164) << " Показания прибора учета за месяц: " << MetersData << endl ;
  70. if (PrewMetersData != NULL)
  71. {
  72. cout << " " << char(164) << " Предыдущие показания прибора учета: " << PrewMetersData << endl;
  73. }
  74. else
  75. {
  76. cout << " " << char(164) << " Отсутствует информация о прошлых показания прибора учета" << endl;
  77. }
  78. if (NalZad == 1)
  79. {
  80. cout << " " << char(164) << " Требуется оплатить задолженность в размере: " << NeedToPay << endl;
  81. }
  82. else
  83. {
  84. cout << " " << char(164) << " Отсутствует информация о наличии задолженности " << endl;
  85. }
  86. }
  87.  
  88. void COUT(int a, int b) {
  89. HANDLE hCon;
  90. COORD cPos;
  91. hCon = GetStdHandle(STD_OUTPUT_HANDLE);
  92. cPos.Y = a; // координата консоли по У
  93. cPos.X = b; // координата консоли по Х
  94. SetConsoleCursorPosition(hCon, cPos); // Установка курсора в положение (x,y)
  95. }
  96. friend ostream& operator <<(ostream& out, Gaz a);
  97. friend istream& operator >>(istream& in, Gaz a);
  98. };
  99.  
  100. void COUT(int a, int b) {
  101. HANDLE hCon;
  102. COORD cPos;
  103. hCon = GetStdHandle(STD_OUTPUT_HANDLE);
  104. cPos.Y=a; // координата консоли по У
  105. cPos.X = b; // координата консоли по Х
  106. SetConsoleCursorPosition(hCon, cPos); // Установка курсора в положение (x,y)
  107. }
  108.  
  109. istream& operator >>(istream& in, Gaz a) {
  110. in >>a.Street>>a.House >>a.Flat>>a.MetersData >> a.PrewMetersData >> a.NeedToPay;
  111. return in;
  112. }
  113.  
  114. ostream& operator <<(ostream& out, Gaz a) {
  115. out <<a.get_Street()<<endl<<a.get_House()<<endl << a.get_Flat() << endl << a.get_Meters() << endl << a.get_PrewMeters() << endl << a.get_Payment() << endl << a.get_Need() << endl;
  116. return out;
  117. }
  118.  
  119.  
  120. void GetDataFromFile(vector<Gaz>& kv, int &amount) {
  121. system("cls");
  122. kv.clear();
  123. amount = 0;
  124. int a = 10, b = 40;
  125. ifstream Data("Source.dat");
  126. if (!Data.is_open()) {
  127. COUT(a, b); cout <<termcolor::red << "Файл не может быть открыт"<<termcolor::white;
  128. system("pause");
  129. }
  130. if (Data.eof()) {
  131. COUT(a, b); cout << termcolor::red << "В файле отсутствуют данные" << termcolor::white;
  132. system("pause");
  133. }
  134. string line;
  135. int temp = 0;
  136. int h = 0;
  137. while (!Data.eof()) {
  138. getline(Data, line);
  139. temp++;
  140. if (temp == 5) {
  141. h++;
  142. temp = 0;
  143. }
  144.  
  145. }
  146. amount = h;
  147. Data.clear();
  148. Data.seekg(0, ios_base::beg);
  149. Gaz r;
  150. char line2;
  151. for (int i = 0; i < amount; i++) {
  152. int q;
  153. string qq;
  154. Data >> qq;
  155. r.set_Street(qq);
  156. Data >> q;
  157. r.set_House(q);
  158. Data >> q;
  159. r.set_Flat(q);
  160. float w;
  161. Data >> w;
  162. r.set_Meters(w);
  163. Data >> w;
  164. r.set_PrewMeters(w);
  165. Data >> w;
  166. r.set_Payment(w);
  167. Data >> w;
  168. r.set_Need(w);
  169. kv.push_back(r);
  170. }
  171. }
  172.  
  173. int SearchMenu() {
  174. int choose;
  175. int a = 0, b = 50;
  176. COUT(a, b); cout << "Меню поиска\n"; a++;
  177. cout << setw(119) << setfill('-') << "\n";
  178. a = 10; b = 40;
  179. COUT(a, b); cout << "[1]ПОИСК НЕПРАВИЛЬНЫЙ!\n"; a++;
  180. COUT(a, b); cout << "[1]Найти по номеру квартиры\n"; a++;
  181. COUT(a, b); cout << "[2]Найти по показаниям прибора учета за этот месяц\n"; a++;
  182. COUT(a, b); cout << "[3]Найти по показаниям прибора учета за прошлый месяц\n"; a++;
  183. COUT(a, b); cout << "[4]Найти по наличию задолженности\n"; a++;
  184. COUT(a, b); cout << "Введите номер функции: "; cin >> choose;
  185. return choose;
  186. }
  187. //ИСПРАВЬ
  188. void Search(vector<Gaz>& kv, int amount, int g) {
  189. system("cls");
  190. int a = 10, b = 50;
  191. switch (g)
  192. {
  193. case 1:
  194. int choosekv;
  195. COUT(a, b); cout << "Введите номер квартиры: "; cin >> choosekv; a++;
  196. system("cls");
  197. a = 0;
  198. COUT(a, b); cout << "Данные о квартирах #" << choosekv; a++; cout << endl;
  199. cout << setw(119) << setfill('-') << "\n";
  200. for (int i = 0; i < amount; i++) {
  201. if (kv[i].get_Flat() == choosekv) {
  202. cout << "Номер квартиры: " << kv[i].get_Flat() << "\nПоказания прибора учета: " << kv[i].get_Meters() << "\nПоказания прибора учета за прошлый месяц: " << kv[i].get_PrewMeters() << "\nНаличие задолженности: " << kv[i].get_Payment() << "\nК оплате: " << kv[i].get_Need() << endl;
  203. cout << setw(119) << setfill('-') << "\n";
  204. }
  205. }
  206. system("pause");
  207. break;
  208. case 2:
  209. int chooseMeters;
  210. a = 10, b = 40;
  211. COUT(a, b); cout << "Введите искомые показания прибора учета: "; cin >> chooseMeters; a++;
  212. system("cls");
  213. a = 0;
  214. COUT(a, b); cout << "Данные о квартирах с показанием " << chooseMeters << "куб.м\n"; a++;
  215. cout << setw(119) << setfill('-') << "\n";
  216. for (int i = 0; i < amount; i++) {
  217. if (kv[i].get_Meters() == chooseMeters) {
  218. cout << "Номер квартиры: " << kv[i].get_Flat() << "\nПоказания прибора учета: " << kv[i].get_Meters() << "\nПоказания прибора учета за прошлый месяц: " << kv[i].get_PrewMeters() << "\nНаличие задолженности: " << kv[i].get_Payment() << "\nК оплате: " << kv[i].get_Need() << endl;
  219. cout << setw(119) << setfill('-') << "\n";
  220. }
  221. }
  222. system("pause");
  223. break;
  224. case 3:
  225. int choosePrewMeters;
  226. a = 10, b = 30;
  227. COUT(a, b); cout << "Введите искомые показания прибора учета за прошлый месяц: "; cin >> choosePrewMeters; a++;
  228. system("cls");
  229. a = 0;
  230. b = 35;
  231. COUT(a, b); cout << "Данные о квартирах с показанием " << choosePrewMeters << "куб.м за прошлый месяц\n"; a++;
  232. cout << setw(119) << setfill('-') << "\n";
  233. for (int i = 0; i < amount; i++) {
  234. if (kv[i].get_PrewMeters() == choosePrewMeters) {
  235. cout << "Номер квартиры: " << kv[i].get_Flat() << "\nПоказания прибора учета: " << kv[i].get_Meters() << "\nПоказания прибора учета за прошлый месяц: " << kv[i].get_PrewMeters() << "\nНаличие задолженности: " << kv[i].get_Payment() << "\nК оплате: " << kv[i].get_Need() << endl;
  236. cout << setw(119) << setfill('-') << "\n";
  237. }
  238. }
  239. system("pause");
  240. break;
  241. case 4:
  242. int IsZ;
  243. a = 10; b = 40;
  244. COUT(a, b); cout << "Введите, должна ли быть задолженность: "; cin >> IsZ; a++;
  245. system("cls");
  246. b = 40;
  247. if (IsZ == 0) {
  248. a = 0;
  249. COUT(a, b); cout << "Данные о квартирах без задолженности\n"; a++;
  250. cout << setw(119) << setfill('-') << "\n";
  251. for (int i = 0; i < amount; i++) {
  252. if (kv[i].get_Payment() == false) {
  253. cout << "Номер квартиры: " << kv[i].get_Flat() << "\nПоказания прибора учета: " << kv[i].get_Meters() << "\nПоказания прибора учета за прошлый месяц: " << kv[i].get_PrewMeters() << "\nНаличие задолженности: " << kv[i].get_Payment() << "\nК оплате: " << kv[i].get_Need() << endl;
  254. cout << setw(119) << setfill('-') << "\n";
  255. }
  256. }
  257. system("pause");
  258. }
  259. else {
  260. a = 0;
  261. COUT(a, b); cout << "Данные о квартирах с задолженностью\n"; a++;
  262. cout << setw(119) << setfill('-') << "\n";
  263. for (int i = 0; i < amount; i++) {
  264. if (kv[i].get_Payment() == true) {
  265. cout << "Номер квартиры: " << kv[i].get_Flat() << "\nПоказания прибора учета: " << kv[i].get_Meters() << "\nПоказания прибора учета за прошлый месяц: " << kv[i].get_PrewMeters() << "\nНаличие задолженности: " << kv[i].get_Payment() << "\nК оплате: " << kv[i].get_Need() << endl;
  266. cout << setw(119) << setfill('-') << "\n";
  267. }
  268. }
  269. system("pause");
  270. }
  271. break;
  272. }
  273. }
  274.  
  275. void ShowToConsole(vector<Gaz> &kv, int amount) {
  276. system("cls");
  277. //<<setw(68)<<setfill('-')
  278. int b = 50, a = 0;
  279. COUT(a, b); cout << "Окно вывода данных" << "\n";
  280. for (int i = 0; i < amount; i++) {
  281. cout << setw(119) << setfill('-') << "\n";
  282. kv[i].ShowDataToConsole();
  283. }
  284. cout << setw(119) << setfill('-') << "\n";
  285. }
  286.  
  287. void AddToVector(vector<Gaz>& kv, int amount) {
  288. system("cls");
  289. for (int i = 0; i < amount; i++) {
  290. kv[i].SetData();
  291. }
  292. }
  293.  
  294. int ChoosePanel() {
  295. system("cls");
  296. int a=10, b=50;
  297. int temp;
  298. //<<setw(65)<<setfill('-')
  299. COUT(a, b); cout << "Панель выбора" << "\n"; a++;
  300. //<<setw(55)<<setfill('-')
  301. COUT(a, b); cout << "[1]Добавить данные\n"; a++;
  302. COUT(a,b) ; cout<< "[2]Вывод данных\n"; a++;
  303. COUT(a,b) ; cout<< "[3]Найти квартиры в базе данных\n"; a++;
  304. COUT(a, b); cout << "[4]Отсортировать данные\n"; a++;
  305. COUT(a,b) ; cout<< "[5]Очистить всю базу данных\n"; a++;
  306. COUT(a, b); cout << "[6]Выход из программы\n"; a++;
  307. COUT(a,b) ; cout<< "Введите номер функции: "; cin >> temp; a++;
  308. return temp;
  309. }
  310.  
  311. void AddNewData(vector<Gaz> &kv, int &amount) {
  312. system("cls");
  313. Gaz newkv;
  314. newkv.SetData();
  315. kv.push_back(newkv);
  316. amount++;
  317. }
  318.  
  319. void save_data(vector<Gaz> &kv, int &amount) {
  320. ofstream data("Source.dat", ios_base::app);
  321. for (int i = 0; i < amount; i++) {
  322. data << kv[i];
  323. }
  324. data.close();
  325. kv.clear();
  326. amount = 0;
  327. }
  328.  
  329. void clear_all_data() {
  330. fstream data("Source.dat",ios_base::out);
  331. data.close();
  332. }
  333.  
  334. int SortMenu() {
  335. int choose;
  336. int a = 0, b = 50;
  337. COUT(a, b); cout << "Меню сортировки\n"; a++;
  338. cout << setw(119) << setfill('-') << "\n";
  339. a = 10; b = 40;
  340. COUT(a, b); cout << "[1]Отсортировать по номеру квартиры\n"; a++;
  341. COUT(a, b); cout << "[2]Отсортировать по показаниям прибора учета за этот месяц\n"; a++;
  342. COUT(a, b); cout << "[3]Отсортировать по показаниям прибора учета за прошлый месяц\n"; a++;
  343. COUT(a, b); cout << "[4]Отсортировать по задолженности\n"; a++;
  344. COUT(a, b); cout << "Введите номер функции: "; cin >> choose;
  345. return choose;
  346. }
  347. void Sort(vector<Gaz> &kv, int amount, int g) {
  348. int a = 0, b = 40;
  349. system("cls");
  350. vector<Gaz> temp(1);
  351. a = 10; b = 40;
  352. int c;
  353. COUT(a, b); cout << "[1]Сортировка в порядке возрастания\n"; a++;
  354. COUT(a, b); cout << "[2]Сортировка в порядке убывания\n"; a++;
  355. COUT(a, b); cout << "Введите номер функции: "; cin >> c;
  356. a = 0;
  357. system("cls");
  358. switch (c)
  359. {
  360. case 1:
  361. switch (g)
  362. {
  363. case 1:
  364. for(int d=0;d<10;d++){
  365. for (int i = 0; i < amount - 1; i++) {
  366. if (kv[i].get_Flat() > kv[i + 1].get_Flat()) {
  367. temp[0] = kv[i];
  368. kv[i] = kv[i + 1];
  369. kv[i + 1] = temp[0];
  370. }
  371. }
  372. }
  373. b = 35;
  374. COUT(a, b); cout << "Отсортировано по номеру квартиры в порядке возрастания\n"; a++;
  375. cout << setw(119) << setfill('-') << "\n";
  376. for (int i = 0; i < amount; i++) {
  377. cout << "Номер квартиры: " << kv[i].get_Flat() << "\nПоказания прибора учета: " << kv[i].get_Meters() << "\nПоказания прибора учета за прошлый месяц: " << kv[i].get_PrewMeters() << "\nНаличие задолженности: " << kv[i].get_Payment() << "\nК оплате: " << kv[i].get_Need() << endl;
  378. cout << setw(119) << setfill('-') << "\n";
  379. }
  380. system("pause");
  381. break;
  382. case 2:
  383. for (int d = 0; d < 10; d++) {
  384. for (int i = 0; i < amount - 1; i++) {
  385. if (kv[i].get_Meters() > kv[i + 1].get_Meters()) {
  386. temp[0] = kv[i];
  387. kv[i] = kv[i + 1];
  388. kv[i + 1] = temp[0];
  389. }
  390. }
  391. }
  392. b = 30;
  393. COUT(a, b); cout << "Отсортировано по показаниям прибора учета в порядке возрастания\n"; a++;
  394. cout << setw(119) << setfill('-') << "\n";
  395. for (int i = 0; i < amount; i++) {
  396. cout << "Номер квартиры: " << kv[i].get_Flat() << "\nПоказания прибора учета: " << kv[i].get_Meters() << "\nПоказания прибора учета за прошлый месяц: " << kv[i].get_PrewMeters() << "\nНаличие задолженности: " << kv[i].get_Payment() << "\nК оплате: " << kv[i].get_Need() << endl;
  397. cout << setw(119) << setfill('-') << "\n";
  398. }
  399. system("pause");
  400. break;
  401. case 3:
  402. for (int d = 0; d < 10; d++) {
  403. for (int i = 0; i < amount - 1; i++) {
  404. if (kv[i].get_PrewMeters() > kv[i + 1].get_PrewMeters()) {
  405. temp[0] = kv[i];
  406. kv[i] = kv[i + 1];
  407. kv[i + 1] = temp[0];
  408. }
  409. }
  410. }
  411. b = 20;
  412. COUT(a, b); cout << "Отсортировано по показаниям прибора учета за прошлый месяц в порядке возрастания\n"; a++;
  413. cout << setw(119) << setfill('-') << "\n";
  414. for (int i = 0; i < amount; i++) {
  415. cout << "Номер квартиры: " << kv[i].get_Flat() << "\nПоказания прибора учета: " << kv[i].get_Meters() << "\nПоказания прибора учета за прошлый месяц: " << kv[i].get_PrewMeters() << "\nНаличие задолженности: " << kv[i].get_Payment() << "\nК оплате: " << kv[i].get_Need() << endl;
  416. cout << setw(119) << setfill('-') << "\n";
  417. }
  418. system("pause");
  419. break;
  420. case 4:
  421. for (int d = 0; d < 10; d++) {
  422. for (int i = 0; i < amount - 1; i++) {
  423. if (kv[i].get_Need() > kv[i + 1].get_Need()) {
  424. temp[0] = kv[i];
  425. kv[i] = kv[i + 1];
  426. kv[i + 1] = temp[0];
  427. }
  428. }
  429. }
  430. b = 35;
  431. COUT(a, b); cout << "Отсортировано по задолженности в порядке возрастания\n"; a++;
  432. cout << setw(119) << setfill('-') << "\n";
  433. for (int i = 0; i < amount; i++) {
  434. if (kv[i].get_Need() != 0) {
  435. cout << "Номер квартиры: " << kv[i].get_Flat() << "\nПоказания прибора учета: " << kv[i].get_Meters() << "\nПоказания прибора учета за прошлый месяц: " << kv[i].get_PrewMeters() << "\nНаличие задолженности: " << kv[i].get_Payment() << "\nК оплате: " << kv[i].get_Need() << endl;
  436. cout << setw(119) << setfill('-') << "\n";
  437. }
  438. }
  439. system("pause");
  440. break;
  441. }
  442. break;
  443. case 2:
  444. switch (g)
  445. {
  446. case 1:
  447. for (int d = 0; d < 10; d++) {
  448. for (int i = 0; i < amount - 1; i++) {
  449. if (kv[i].get_Flat() < kv[i + 1].get_Flat()) {
  450. temp[0] = kv[i];
  451. kv[i] = kv[i + 1];
  452. kv[i + 1] = temp[0];
  453. }
  454. }
  455. }
  456. b = 35;
  457. COUT(a, b); cout << "Отсортировано по номеру квартиры в порядке убывания\n"; a++;
  458. cout << setw(119) << setfill('-') << "\n";
  459. for (int i = 0; i < amount; i++) {
  460. cout << "Номер квартиры: " << kv[i].get_Flat() << "\nПоказания прибора учета: " << kv[i].get_Meters() << "\nПоказания прибора учета за прошлый месяц: " << kv[i].get_PrewMeters() << "\nНаличие задолженности: " << kv[i].get_Payment() << "\nК оплате: " << kv[i].get_Need() << endl;
  461. cout << setw(119) << setfill('-') << "\n";
  462. }
  463. system("pause");
  464. break;
  465. case 2:
  466. for (int d = 0; d < 10; d++) {
  467. for (int i = 0; i < amount - 1; i++) {
  468. if (kv[i].get_Meters() < kv[i + 1].get_Meters()) {
  469. temp[0] = kv[i];
  470. kv[i] = kv[i + 1];
  471. kv[i + 1] = temp[0];
  472. }
  473. }
  474. }
  475. b = 30;
  476. COUT(a, b); cout << "Отсортировано по показаниям прибора учета в порядке убывания\n"; a++;
  477. cout << setw(119) << setfill('-') << "\n";
  478. for (int i = 0; i < amount; i++) {
  479. cout << "Номер квартиры: " << kv[i].get_Flat() << "\nПоказания прибора учета: " << kv[i].get_Meters() << "\nПоказания прибора учета за прошлый месяц: " << kv[i].get_PrewMeters() << "\nНаличие задолженности: " << kv[i].get_Payment() << "\nК оплате: " << kv[i].get_Need() << endl;
  480. cout << setw(119) << setfill('-') << "\n";
  481. }
  482. system("pause");
  483. break;
  484. case 3:
  485. for (int d = 0; d < 10; d++) {
  486. for (int i = 0; i < amount - 1; i++) {
  487. if (kv[i].get_PrewMeters() < kv[i + 1].get_PrewMeters()) {
  488. temp[0] = kv[i];
  489. kv[i] = kv[i + 1];
  490. kv[i + 1] = temp[0];
  491. }
  492. }
  493. }
  494. b = 20;
  495. COUT(a, b); cout << "Отсортировано по показаниям прибора учета за прошлый месяц в порядке убывания\n"; a++;
  496. cout << setw(119) << setfill('-') << "\n";
  497. for (int i = 0; i < amount; i++) {
  498. cout << "Номер квартиры: " << kv[i].get_Flat() << "\nПоказания прибора учета: " << kv[i].get_Meters() << "\nПоказания прибора учета за прошлый месяц: " << kv[i].get_PrewMeters() << "\nНаличие задолженности: " << kv[i].get_Payment() << "\nК оплате: " << kv[i].get_Need() << endl;
  499. cout << setw(119) << setfill('-') << "\n";
  500. }
  501. system("pause");
  502. break;
  503. case 4:
  504. for (int d = 0; d < 10; d++) {
  505. for (int i = 0; i < amount - 1; i++) {
  506. if (kv[i].get_Need() < kv[i + 1].get_Need()) {
  507. temp[0] = kv[i];
  508. kv[i] = kv[i + 1];
  509. kv[i + 1] = temp[0];
  510. }
  511. }
  512. }
  513. b = 35;
  514. COUT(a, b); cout << "Отсортировано по задолженности в порядке убывания\n"; a++;
  515. cout << setw(119) << setfill('-') << "\n";
  516. for (int i = 0; i < amount; i++) {
  517. cout << "Номер квартиры: " << kv[i].get_Flat() << "\nПоказания прибора учета: " << kv[i].get_Meters() << "\nПоказания прибора учета за прошлый месяц: " << kv[i].get_PrewMeters() << "\nНаличие задолженности: " << kv[i].get_Payment() << "\nК оплате: " << kv[i].get_Need() << endl;
  518. cout << setw(119) << setfill('-') << "\n";
  519. }
  520. system("pause");
  521. break;
  522. }
  523. }
  524.  
  525. }
  526.  
  527.  
  528. int main() {
  529. PlaySound(TEXT("11.wav"), NULL, SND_ASYNC | SND_FILENAME | SND_LOOP);
  530. setlocale(LC_ALL, "Russian");
  531. SetConsoleOutputCP(1251);
  532. SetConsoleCP(1251);
  533. int a = 10, b = 50;
  534. int amount=0;
  535. /*COUT(a,b) ; cout<< "<>Введите количество квартир в доме: "; cin >> amount;*/
  536. vector<Gaz> kv(amount);
  537. bool Cont=true;
  538. string s;
  539. while (Cont == true) {
  540. switch (ChoosePanel())
  541. {
  542. case 1:
  543. system("cls");
  544. int newamount;
  545. COUT(a,b) ; cout<< "<>Введите количество новых квартир: "; cin >> newamount;
  546. for (int i = 0; i < newamount; i++) {
  547. AddNewData(kv, amount);
  548. }
  549. save_data(kv,amount);
  550. kv.clear();
  551. amount = 0;
  552. break;
  553. case 2:
  554. save_data(kv, amount);
  555. GetDataFromFile(kv, amount);
  556. ShowToConsole(kv, amount);
  557. clear_all_data();
  558. save_data(kv, amount);
  559. system("pause");
  560. break;
  561. case 3:
  562. system("cls");
  563. save_data(kv, amount);
  564. GetDataFromFile(kv, amount);
  565. switch (SearchMenu()) {
  566. case 1:
  567. Search(kv, amount, 1);
  568. break;
  569. case 2:
  570. Search(kv, amount, 2);
  571. break;
  572. case 3:
  573. Search(kv,amount, 3);
  574. break;
  575. case 4:
  576. Search(kv, amount, 4);
  577. break;
  578. }
  579. clear_all_data();
  580. save_data(kv, amount);
  581. break;
  582. case 4:
  583. system("cls");
  584. save_data(kv, amount);
  585. GetDataFromFile(kv, amount);
  586. switch (SortMenu())
  587. {
  588. case 1:
  589. Sort(kv, amount, 1);
  590. break;
  591. case 2:
  592. Sort(kv, amount, 2);
  593. break;
  594. case 3:
  595. Sort(kv, amount, 3);
  596. break;
  597. case 4:
  598. Sort(kv, amount, 4);
  599. break;
  600. }
  601. clear_all_data();
  602. save_data(kv, amount);
  603. break;
  604. case 5:
  605. system("cls");
  606. clear_all_data();
  607. //COUT(a,b) ; cout<< setw(55) << setfill(' ') << internal;
  608. s = "База очищена";
  609. COUT(a, b);
  610. cout<< termcolor::on_grey;
  611. for (int i = 0; i < s.length(); i++)
  612. {
  613. /*int n = rand() % 12;
  614. if (n == 0)
  615. {
  616. cout<< termcolor::on_green;
  617. }
  618. if ((n > 1) and (n < 3))
  619. {
  620. cout<< termcolor::on_yellow;
  621. }
  622. if ((n > 3) and (n < 6))
  623. {
  624. cout<< termcolor::on_blue;
  625. }
  626. if ((n > 6) and (n < 9))
  627. {
  628. cout<< termcolor::on_magenta;
  629. }
  630. if ((n > 9) and (n < 12))
  631. {
  632. cout<< termcolor::on_cyan;
  633. }*/
  634. cout<< termcolor::red;
  635. cout<< s[i];
  636. Sleep(100);
  637. }
  638. cout<< "."; Sleep(100); cout<< "."; Sleep(100); cout<< "."; Sleep(100);
  639. Sleep(100);
  640. cout<< termcolor::white;
  641. cout<< termcolor::on_grey;
  642. //system("pause");
  643. break;
  644. case 6:
  645. system("cls");
  646. //<<setw(65)<<setfill(' ')
  647. PlaySound(NULL, NULL, SND_ASYNC);
  648. PlaySound(TEXT("12.wav"), NULL, SND_ASYNC | SND_FILENAME);
  649. s = "Программа завершена";
  650. COUT(a, b);
  651. cout << termcolor::on_grey;
  652. for (int i = 0; i < s.length(); i++) {
  653. cout << termcolor::red;
  654. cout << s[i];
  655. Sleep(100);
  656. }
  657. cout << "."; Sleep(100); cout << "."; Sleep(100); cout << "."; Sleep(100);
  658. Sleep(150);
  659. cout << termcolor::white;
  660. cout << termcolor::on_grey;
  661. Cont = false;
  662. break;
  663. /*case 6:
  664. system("cls");
  665. save_data(kv, amount);
  666. COUT(a, b);
  667. s = "Данные сохранены";
  668. for (int i = 0; i < s.length(); i++) {
  669. cout << termcolor::red;
  670. cout << s[i];
  671. Sleep(100);
  672. }
  673. cout << "."; Sleep(100); cout << "."; Sleep(100); cout << "."; Sleep(100);
  674. Sleep(100);
  675. cout << termcolor::white;
  676. cout << termcolor::on_grey;
  677. break;*/
  678. /*case 8:
  679. GetDataFromFile(kv, amount);
  680. system("pause");
  681. break;*/
  682. /*default:
  683. Cont = false;
  684. break;*/
  685. }
  686. }
  687. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement