чё-то там

mail@pastecode.io avatar
unknown
plain_text
a year ago
4.6 kB
3
Indexable
Never
#include <iostream>
#include <windows.h>
#include <fstream>
#include <string>
#include <iomanip>
#include<stdio.h>
#include<conio.h>
#include<string.h>


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: fopen_s(&cities, "города.txt", "w"); fclose(cities);
		case 6: break;
		}
		if (n == 6) break;
	} while (1);
}

void enter() {
	fopen_s(&cities, "города.txt", "a");
	city t;
	system("cls");
	cout << "Данных для скольких городов нужно ввести?" << endl;
	cin >> i;
	for (int k = 0; k < i; k++) {
		printf("Название города \n"); scanf_s("%s", &t.name, 15);
		printf("Имя мэра \n"); scanf_s("%s", &t.mayor, 15);
		printf("Количество жителей (млн.)\n"); scanf_s("%f", &t.citizens, 15);
		printf("Процент мужского населения (до 100.0%) \n"); scanf_s("%f", &t.procent.male, 15); t.procent.female = 100.0 - t.procent.male;
		fwrite(&t, sizeof(city), 1, cities);
	}
	fclose(cities);
}

void out() {/*
	cities = fopen("города.txt", "r");
	city t;
	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) 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");*/
}