Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <conio.h>
- #include <iomanip>
- #include <iostream>
- #include <string>
- #include <windows.h>
- using namespace std;
- struct {
- string surname;
- string initials;
- int INN;
- float summa;
- } mas[20];
- string buff;// переменная, использующаяся в программе для очистки буфера
- const int WIDHT = 12; // Ширина ячейки таблицы "Название таблицы"
- const int EDGE = 9; // Граница вывода строки
- const int n = 5;
- void list();
- void inputting();
- void search();
- void search2();
- void menu();
- void outputStr(const int, const int, string);
- int main()
- {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- system("CLS");
- inputting();
- menu();
- return 0;
- }
- void inputting() { // Процедура ввода данных
- for (int i = 0; i < n; i++) {
- system("CLS");
- cout << " Введите данные для " << i + 1 << " записи :" << endl;
- cout << " Фамилия налогоплательщика - ";
- cin >> mas[i].surname;
- getline(cin, buff);
- fflush(stdin);
- cout << " Инициалы налогоплательщика - ";
- getline(cin, mas[i].initials);
- cout << " Код ИНН налогоплательщика: ";
- cin >> mas[i].INN;
- cout << " Сумма налогообложения налогоплательщика: ";
- cin >> mas[i].summa;
- }
- }
- void menu() {
- char v;
- do {
- list();
- cout << " Введите [1] для поиска информации по фамилии налогоплательщика.\n";
- cout << " Введите [2] для поиска информации о налогоплательщиках, чей суммарный налог превышает сумму, которую вы введете.\n";
- cout << " Введите [0] для выхода.\n";
- cout << " Пункт: ";
- do {
- v = _getch();
- if ((v == '1') || (v == '0') || (v == '2'))
- {
- cout << v << '\n';
- }
- else cout << "\r";
- } while ((v != '1') && (v != '0') && (v != '2'));
- if (v == '1') search();
- else if (v == '2') search2();
- } while (v != '0');
- }
- void list()
- {
- system("CLS");
- system("color 1f");
- cout << endl << endl << endl;
- system("color 17");
- cout << " _______________________________________________________________ " << endl;
- cout << " |_____|_____________|____________|_______________|______________|" << endl;
- cout << " | N | Фамилия | Инициалы | ИНН | Сумма |" << endl;
- cout << " | №пп | налогопл-ка | налогопл-ка| налогопл-ка | налогообл-ия |" << endl;
- cout << " |_____|_____________|____________|_______________|______________|" << endl;
- cout << " | | | | | |" << endl;
- for (int i = 0; i < n; i++)
- {
- cout << " | " << i + 1 << " | ";
- outputStr(EDGE - 1, WIDHT - 1, mas[i].surname);
- cout << " | ";
- outputStr(EDGE - 1, WIDHT - 1, mas[i].initials);
- cout << "| " << setw(10) << setprecision(2) << mas[i].INN << " |";
- cout << setw(8) << fixed << mas[i].summa << " |" << endl;
- }
- cout << " |_____|_____________|____________|_______________|______________|" << endl;
- }
- void search()
- {
- string s;
- getline(cin, buff); // очистка буфера
- fflush(stdin);
- cout << " \nВведите фамилию налогоплательщика: ";
- getline(cin, s);;
- system("CLS");
- bool f = true;
- cout << endl << endl << endl;
- cout << " Информация о налогоплательщике " << s << ":\n\n";
- for (int i = 0; i < n; i++)
- if (mas[i].surname == s)
- {
- cout << " Фамилия налогоплательщика: " << mas[i].surname << endl;
- cout << " Инициалы налогоплательщика: " << mas[i].initials << endl;
- cout << " ИНН налогоплательщика: " << setprecision(2) << fixed << mas[i].INN << endl;
- cout << " Сумма налогообложения: " << mas[i].summa << endl;
- f = false;
- }
- if (f) cout << " Такого налогоплательщика нет! Продолжить? " << endl;
- system("pause>nul");
- }
- void search2() { // Процедура поиска информации по стоимости товара
- int s2;
- fflush(stdin);
- getline(cin, buff); //очистка буфера
- cout << " Введите сумму, которую не должен превышать суммарный налог налогоплательщика: \n";
- cin >> s2;
- system("CLS");
- bool f = true;
- cout << " Информация о налогоплательщиках, чей суммарный налог превышает " << s2 << ":\n\n";
- for (int i = 0; i < n; i++)
- if (mas[i].summa <= s2)
- {
- cout << " Фамилия налогоплательщика: " << mas[i].surname << endl;
- cout << " Инициалы налогоплательщика: " << mas[i].initials << endl;
- cout << " ИНН налогоплательщика: " << setprecision(2) << fixed << mas[i].INN << endl;
- cout << " Сумма налогообложения: " << mas[i].summa << endl << endl;
- f = false;
- }
- if (f) cout << " Такого налогоплательщика нет! Продолжить? " << endl;
- system("pause>nul");
- }
- // Вывод строки до определенного кол-ва символов, иначе вывести строку, далее заполнить пробелами до границы.
- void outputStr(const int x, const int w, string str) {
- if (x > str.size()) {
- cout << str;
- int y = w - str.size();
- while (y--)
- cout << ' ';
- return;
- }
- for (int i = 0; i < x; i++)
- cout << str[i];
- cout << "...";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement