Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- #include <iomanip>
- #include <fstream>
- #include <string>
- #include <string.h>
- #include <windows.h>
- #include <cstring>
- #include <conio.h>
- #include <time.h>
- #include <stdlib.h>
- #include <ctime>
- using namespace std;
- const int M = 200;
- const int L = 200;
- struct student
- {
- char name[40];
- char gr[10];
- int day;
- int mout;
- int year;
- };
- void inputMasStudentFile(student x[], int& n);
- void outputMasstudent(student b[], int size);
- void addStudent(student x[], int& n);
- void delelteStudent(student x[], int& n);
- void sort1_input(student a[], int size);
- void sort2_input(student a[], int size);
- void sort3_input(student x[], int n);
- void poiskstudent(student x[], int n);
- void outputMasStudentSort(student y[], int k);
- /*void outputMasStudentFileSort(student x[], int n);*/
- int main()
- {
- SetConsoleCP(1251);// установка кодовой страницы win-cp 1251 в поток ввода (для ввода русского языка)
- SetConsoleOutputCP(1251); // установка кодовой страницы win-cp 1251 в поток вывода (для вывода русского языка)
- setlocale(LC_ALL, "rus");
- student a[M], b[L];
- int m = 0, l = 0, t = 0;
- cout << "Введите кол-во записей: ";
- cin >> l;
- while (1)
- {
- system("CLS");
- cout << " МЕНЮ \n";
- cout << "1. Ввести записи из файла.\n";
- cout << "2. Вывести исходную таблицу записей на экран.\n";
- cout << "3. Добавить студента.\n";
- cout << "4. Удалить студента.\n";
- cout << "5. Сортировка по дню рождения в порядке возрастания.\n";
- cout << "6. Сортировка по дате рождния в порядке возрастания возраста.\n";
- cout << "7. Сортировка по ФИО в алфавитном порядке.\n";
- cout << "8. Поиск самого старшего студента родившегося летом.\n";
- cout << "9. Вывести сортировку на экран.\n";
- cout << "10.Вывести сортировку в файл.\n";
- /*cout << "11.Вывести результат поиск в файл.\n";*/
- cout << "12.Завершить работу.\n";
- cout << "Ваш выбор (1-12): ";
- cin >> t;
- switch (t)
- {
- case 1: inputMasStudentFile(a, m); break;
- case 2: outputMasstudent(a, m); break;
- case 3: addStudent(a, m); break;
- case 4: delelteStudent(a, m); break;
- case 5: sort1_input(a, m); break;
- case 6: sort2_input(a, m); break;
- case 7: sort3_input(a, m); break;
- case 8: poiskstudent(a, m); break;
- case 9: outputMasStudentSort(a, m); break;
- case 10: outputMasStudentSort(a, m); break;
- /*case 11: outputMasStudentFileSort(a, m); break;*/
- case 12: cout << "Конец работы.";
- system("pause");
- return 0;
- default: cout << "Нет такого номера меню.\n";
- system("pause");
- break;
- }
- }
- }
- void inputMasStudentFile(student x[], int& n)//ввод данных из файла
- {
- char file[200], iniz[100];
- n = 0;
- ifstream fin;
- cout << "Введите имя входного файла: ";
- cin >> file;
- strcat_s(file, ".txt");
- fin.open(file);
- if (fin.fail()) {
- cout << "Ошибка! Файл не открывается!\n";
- system("pause");
- return;
- }
- while (!fin.eof())
- {
- fin >> x[n].name >> iniz >> x[n].name >> x[n].year;
- strcat_s(x[n].name, " ");
- strcat_s(x[n].name, iniz);
- n++;
- }
- //n--;
- fin.close();
- cout << "Файл введен.\n";
- system("pause");
- }
- void outputMasstudent(student b[], int size)
- {
- cout << " _________________________________________ " << endl;
- cout << "| ФИО | Группа | Дата рождения |" << endl;
- cout << "____________________________________________" << endl;
- for (int i = 0; i < size; i++)
- {
- cout << "|" << setw(20) << b[i].name << "| " << setw(1) << b[i].day << "." << setw(1) << b[i].mout << "." << setw(4) << b[i].year << " |" << endl;
- }
- }
- void addStudent(student x[], int& n)//добавление строки
- {
- student t;
- char iniz[100];
- if (n == M) {
- cout << "Массив заполнен!\n";
- system("pause");
- return;
- }
- cout << "Фамилия: ";
- cin >> t.name;
- cout << "Инициалы: ";
- cin >> iniz;
- strcat_s(t.name, " ");
- strcat_s(t.name, iniz);
- cout << "Название: ";
- cin >> t.name;
- cout << "Год издания:\n";
- cin >> t.year;
- system("pause");
- cout << "Запись добавлена.\n";
- x[n] = t;
- n = n + 1;
- system("pause");
- }
- void delelteStudent(student x[], int& n)
- {
- int i, j;
- char ch[8];
- outputMasstudent(x, n);
- cout << "Номер удаляемой строки: ";
- cin >> j;
- j--;
- if (j < 0 || j >= n) {
- cout << "Нет такой строки!\n";
- system("pause");
- return;
- }
- cout << j + 1 << "-я строка:\n";
- cout << x[j].name << " " << x[j].year << " " << endl;
- cout << "Удалить: yes/ no?";
- cin >> ch;
- if (strcmp(ch, "no") == 0) return;
- if (strcmp(ch, "yes") != 0) {
- cout << "Неправильно введен ответ!\n";
- system("pause");
- return;
- }
- for (i = j + 1; i < n; i++)
- x[i - 1] = x[i];
- n--;
- cout << "Запись удалена.\n";
- system("pause");
- }
- void sort1_input(student a[], int size)
- {
- {
- for (int i = 0; i < size; i++)
- for (int j = 0; j < size - i; j++)
- if (a[j].day < a[j + 1].day)
- {
- student c = a[j + 1];
- a[j + 1] = a[j];
- a[j] = c;
- }
- }
- system("pause");
- }
- void sort2_input(student a[], int size)
- {
- for (int i = 0; i < size; i++)
- for (int j = 0; j < size - i; j++)
- if (a[j].day > a[j + 1].day)
- {
- student c = a[j + 1];
- a[j + 1] = a[j];
- a[j] = c;
- }
- else if ((a[j].year == a[j + 1].year) && (a[j].mout < a[j + 1].mout))
- {
- student c = a[j + 1];
- a[j + 1] = a[j];
- a[j] = c;
- }
- else if ((a[j].mout == a[j + 1].mout) && (a[j].day < a[j + 1].day))
- {
- student c = a[j + 1];
- a[j + 1] = a[j];
- a[j] = c;
- }
- system("pause");
- }
- void sort3_input(student x[], int n)
- {
- for (int i = 0; i < n; i++)
- for (int j = 0; j < n; j++)
- if ((strcmp(x[j].name, x[j + 1].name) > 0))
- {
- student c = x[j + 1];
- x[j + 1] = x[j];
- x[j] = c;
- }
- system("pause");
- }
- void poiskstudent(student x[], int n )
- {
- int max = 0;
- int j = 0;
- for (int i; i < n; i++)
- {
- if (x[i].mout > 5 && x[i].mout < 9)
- {
- if (x[i].mout > max)
- {
- max = x[i].mout;
- j = i;
- }
- }
- }
- cout << " _______________________________________________________________________\n";
- cout << "| Найденный студент |\n";
- cout << "|______________________________________________________________________|\n";
- cout << "| Фамилия и инициалы | Группа | Дата рождения |\n";
- cout << "|" << setw(20) << x[j].name << "| " << setw(20) << x[j].gr << "| " << setw(1) << x[j].day << "." << setw(1) << x[j].mout << "." << setw(4) << x[j].year << " |" << endl;
- cout << "|______________________________________________________________________|\n";
- system("pause");
- }
- void outputMasStudentSort(student y[], int k)
- {
- cout << " _______________________________________________________________________\n";
- cout << "| Список студентов |\n";
- cout << "|______________________________________________________________________|\n";
- cout << "| Фамилия и инициалы | Группа | Дата рождения |\n";
- for (int i = 0; i < k; i++)
- cout << "|" << setw(20) << y[i].name << "| " << setw(20) << y[i].gr << "| " << setw(1) << y[i].day << "." << setw(1) << y[i].mout << "." << setw(4) << y[i].year << " |" << endl;
- cout << "|______________________________________________________________________|\n";
- system("pause");
- }
- void outputMasStudentFileSort(student x[], int n)//вывод в файл сортировки
- {
- char file[200];
- ofstream fout;
- cout << "Введите имя выходного файла: ";
- cin >> file;
- strcat_s(file, ".txt");
- fout.open(file);
- if (fout.fail()) {
- cout << "Ошибка! Файл не открывается!\n";
- system("pause");
- return;
- }
- fout << " _______________________________________________________________________\n";
- fout << "| Список студентов |\n";
- fout << "|______________________________________________________________________|\n";
- fout << "| Фамилия и инициалы | Группа | Дата рождения |\n";
- for (int i = 0; i < n; i++)
- fout << "|" << setw(20) << x[i].name << "| " << setw(20) << x[i].gr << "| " << setw(1) << x[i].day << "." << setw(1) << x[i].mout << "." << setw(4) << x[i].year << " |" << endl;
- fout << "|______________________________________________________________________|\n";
- system("pause");
- cout << "Массив выведен в файл " << file << ".\n";
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement