Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <fstream>
- using namespace std;
- ifstream in("input.txt");
- ofstream out("output.txt");
- struct Student {
- string Name;
- string Surname;
- string SecondName;
- int YearOfBirth;
- int mark[5];
- Student() {}
- Student(string Surname, string Name, string SecondName, int YearOfBirth, int mark[5])
- {
- this->Name = Name;
- this->Surname = Surname;
- this->SecondName = SecondName;
- this->YearOfBirth = YearOfBirth;
- for (int i = 0; i < 5; ++i)
- this->mark[i] = mark[i];
- }
- void InitStudent()//ввод данных (фамилия -> имя -> отчество -> год -> оценки
- {
- in >> Surname >> Name >> SecondName >> YearOfBirth;
- for (int i = 0; i < 5; ++i)
- in >> mark[i];
- }
- void Print()//выовд в файл
- {
- out << "Full name : " << Surname << " " << Name << " " << SecondName << endl;
- out << "Year of birth : " << YearOfBirth << endl;
- out << "Marks : ";
- for (int i = 0; i < 5; ++i)
- out << mark[i] << " ";
- out << "\n=================================================\n";
- }
- bool operator <(Student a)//перегрузка оператора <
- {
- if (this->Surname < a.Surname)
- return true;
- if (this->Surname == a.Surname && this->Name < a.Name)
- return true;
- if (this->Surname == a.Surname && this->Name == a.Name && this->SecondName < a.SecondName)
- return true;
- return false;
- }
- bool operator >(Student a)//перегрузка оператора >
- {
- if (this->Surname > a.Surname)
- return true;
- if (this->Surname == a.Surname && this->Name > a.Name)
- return true;
- if (this->Surname == a.Surname && this->Name == a.Name && this->SecondName > a.SecondName)
- return true;
- return false;
- }
- };
- void Sort(Student *arr, int size)//пузырек
- {
- for (int i = 0; i < size - 1; i++) {
- for (int j = 0; j < size - i - 1; j++) {
- if (arr[j] > arr[j + 1]) {
- swap(arr[j], arr[j + 1]);
- }
- }
- }
- }
- void InsertionSort(Student *arr, int size) // сортировка вставками
- {
- Student temp; // временная переменная для хранения значения элемента сортируемого массива
- int item; // индекс предыдущего элемента
- for (int i = 1; i < size; i++)
- {
- temp = arr[i]; // инициализируем временную переменную текущим значением элемента массива
- item = i - 1; // запоминаем индекс предыдущего элемента массива
- while (item >= 0 && arr[item] > temp) // пока индекс не равен 0 и предыдущий элемент массива больше текущего
- {
- arr[item + 1] = arr[item]; // перестановка элементов массива
- arr[item] = temp;
- item--;
- }
- }
- }
- int main()
- {
- int size;
- in >> size;
- Student *a = new Student[size];
- for (int i = 0; i < size; ++i)
- a[i].InitStudent();
- insertionSort(a, size);
- //Sort(a, size);
- for (int i = 0; i < size; ++i)
- a[i].Print();
- /*
- 11
- Bavera Eldred Boreng 2000 1 2 3 4 5
- Neoma Boggs Aung 2000 5 5 5 5 5
- Ahirlene Bode Feros 2000 3 3 3 3 3
- Cong Heston Unofs 2000 5 5 5 3 5
- Mario Beane Quri 2000 4 3 2 3 4
- Cheryll Balderas Roots 2000 4 2 3 4 2
- Shaquana Burkett Gemen 2000 5 5 5 5 4
- Nichole Frances Rasif 2000 3 3 3 3 3
- Euna Draper Daun 2000 5 5 5 5 5
- Carita Henriksen Colers 2000 2 3 4 5 2
- Treena Nicholes Samer 2000 4 3 4 5 2
- */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement