Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- struct Data {
- unsigned int day{ 0 };
- unsigned int month{ 0 };
- unsigned int year{ 0 };
- };
- struct student {
- unsigned int bookNum{ 0 };
- string name;
- char secondName{ 0 };
- char surname{ 0 };
- Data birthday;
- Data entering;
- float averageGrade{ 0 };
- };
- void dataInput(student& students) {
- cout << "Введите номер зачетной книжки: ";
- cin >> students.bookNum;
- cout << "Введите фамилию студента: ";
- cin >> students.name;
- cout << "Введите инициалы студента, имя и отчество: ";
- cin >> students.secondName;
- cin >> students.surname;
- cout << "Введите дату рождения: ";
- cout << "День: ";
- cin >> students.birthday.day;
- cout << "Месяц: ";
- cin >> students.birthday.month;
- cout << "Год: ";
- cin >> students.birthday.year;
- cout << "Введите дату поступления в университет: ";
- cout << "День: ";
- cin >> students.entering.day;
- cout << "Месяц: ";
- cin >> students.entering.month;
- cout << "Год: ";
- cin >> students.entering.year;
- cout << "Введите средний балл по итогам первой сессии: ";
- cin >> students.averageGrade;
- }
- void dataOutput(student& students) {
- cout << "Номер зачетной книжки: " << students.bookNum;
- cout << "\nФИО: " << students.name << " " << students.secondName << " " << students.surname;
- cout << "\nДата рождения: " << students.birthday.day << "." << students.birthday.month << "." << students.birthday.year;
- cout << "\nДата зачисления: " << students.entering.day << "." << students.entering.month << "." << students.entering.year;
- cout << "\nСредний балл за первую сессию: " << students.averageGrade << endl;
- }
- void sortByEntering(student students[], int n) {
- for (int i = 0; i < n; i++) {
- for (int j = i + 1; j < n; j++) {
- if (students[i].entering.year > students[j].entering.year ||
- students[i].entering.year == students[j].entering.year &&
- students[i].entering.month > students[j].entering.month ||
- students[i].entering.year == students[j].entering.year &&
- students[i].entering.month == students[j].entering.month &&
- students[i].entering.day > students[j].entering.day) {
- student temp = students[j];
- students[j] = students[i];
- students[i] = temp;
- }
- }
- }
- }
- void outOldestAndGreatest(student students[], int n) {
- float maxAverage = 0;
- for (int i = 0; i < n; i++) {
- for (int j = i + 1; j < n; j++) {
- if (students[i].averageGrade > maxAverage) {
- maxAverage = students[i].averageGrade;
- }
- }
- }
- cout << "Студенты с максимальным средним баллом: \n";
- for (int i = 0; i < n; i++) {
- if (students[i].averageGrade == maxAverage) {
- dataOutput(students[i]);
- cout << endl;
- }
- }
- }
- int main() {
- setlocale(LC_ALL, "Rus");
- int n;
- cout << "Ввведите кол-во студентов: ";
- cin >> n;
- student* students = new student[n];
- for (int i = 0; i < n; i++) {
- cout << "Введите данные о " << i + 1 << " студенте: \n";
- dataInput(students[i]);
- }
- cout << "Итоговая информация о всех студентах: \n";
- for (int i = 0; i < n; i++) {
- cout << i + 1 << " студент \n";
- dataOutput(students[i]);
- cout << endl;
- }
- sortByEntering(students, n);
- cout << "\nОтсортированные студенты: \n";
- for (int i = 0; i < n; i++) {
- cout << i + 1 << " студент \n";
- dataOutput(students[i]);
- cout << endl;
- }
- cout << endl;
- outOldestAndGreatest(students, n);
- delete[] students;
- }
Advertisement
Add Comment
Please, Sign In to add comment