Untitled
unknown
plain_text
2 years ago
4.8 kB
3
Indexable
#include <iostream> #include <windows.h> #include <fstream> #include <string> #include <iomanip> using namespace std; //bool empty = true; int n, i; FILE *cities; struct ratio { float male; float female; }; struct city { string name; string mayor; float citizens; ratio procent; }; void enter(); void out(); void sorting(); void choise(); void main() { setlocale(LC_CTYPE, "rus"); SetConsoleCP(1251); SetConsoleOutputCP(1251); //cities.open("города.txt", ios::app); /*cities << left << setw(30) << "Имя" << left << setw(30) << "Мэр" << left << setw(30) << "Жители, млн." << left << setw(30) << "Мужчин, %" << left << setw(30) << "Женщин, %" << endl;*/ do { system("cls"); cout << "Обработка списка:" << endl << endl; cout << "1. Создать список" << endl; cout << "2. Вывести список" << endl; cout << "3. Сортировка" << endl; cout << "4. Выборка" << endl; cout << "5. Удалить список" << endl; cout << "6. Выход из программы" << endl; cin >> n; switch (n) { case 1: enter(); break; case 2: out(); break; case 3: sorting(); break; case 4: choise(); break; case 5: cities = fopen("города.txt", "w"); fclose(cities); case 6: break; } if (n == 6) break; } while (1); } void enter() { cities = fopen("города.txt", "a"); city t; system("cls"); cout << "Данных для скольких городов нужно ввести?" << endl; cin >> i; for (int k = 0; k < i; k++) { printf("Название города \n"); scanf("%s", &t.name); printf("Имя мэра \n"); scanf("%s", &t.mayor); printf("Количество жителей (млн.)\n"); scanf("%f", &t.citizens); printf("Процент мужского населения (до 100.0%) \n"); scanf("%f", &t.procent.male); = t.procent.male; t.procent.female = 100.0 - t.procent.male; cities << left << setw(30) << t.name << left << setw(30) << t.mayor << left << setw(30) << t.citizens << left << setw(30) << t.procent.male << left << t.procent.female << endl; } fclose(cities); } void out() { cities = fopen("города.txt", "r"); city t; system("cls"); /*string buf; string kuf = " "; getline(cities, buf); if (strcmp(buf, kuf))*/ { cout << left << setw(30) << "Имя" << left << setw(30) << "Мэр" << left << setw(30) << "Жители, млн." << left << setw(30) << "Соотношение мужчин и женщин, %" << endl << endl; while (!cities.eof()) { cities >> t.name >> t.mayor >> t.citizens >> t.procent.male >> t.procent.female; if (cities.peek() == EOF) break; cout << left << setw(30) << t.name << left << setw(30) << t.mayor << left << setw(30) << t.citizens << t.procent.male << "|" << t.procent.female << endl; } } cout << endl; fclose(cities); system("pause"); } void sorting() { city m[25], t; int c = 0; cities = fopen("города.txt", "r"); system("cls"); cout << left << setw(30) << "Имя" << left << setw(30) << "Мэр" << left << setw(30) << "Жители, млн." << left << setw(30) << "Соотношение мужчин и женщин, %" << endl << endl; while (!cities.eof()) { cities >> t.name >> t.mayor >> t.citizens >> t.procent.male >> t.procent.female; if (cities.peek() != EOF) { m[c] = t; c++; } } for (int i = 0; i < c - 1; i++) { for (int j = 0; j < c - 1; j++) { float t1 = m[j].citizens + 0.0, t2 = m[j + 1].citizens + 0.0; if (t1 > t2) { t = m[j]; m[j] = m[j + 1]; m[j + 1] = t; } } } for (int i = 0; i < c; i++) { cout << left << setw(30) << m[i].name << left << setw(30) << m[i].mayor << left << setw(30) << m[i].citizens << m[i].procent.male << "|" << m[i].procent.female << endl; } fclose(cities); system("pause"); } void choise() { system("cls"); city t; cities= fopen("города.txt", "r"); cout << "Города с населением больше 100 млн." << endl << left << setw(30) << "Имя" << left << setw(30) << "Мэр" << left << setw(30) << "Жители, млн." << left << setw(30) << "Соотношение мужчин и женщин, %" << endl << endl; while (!cities.eof()) { cities >> t.name >> t.mayor >> t.citizens >> t.procent.male >> t.procent.female; if (cities.peek() == EOF) break; //cout << t.citizens << endl; if (t.citizens > 100) { cout << left << setw(30) << t.name << left << setw(30) << t.mayor << left << setw(30) << t.citizens << t.procent.male << "|" << t.procent.female << endl; } } fclose(cities); system("pause"); }