Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <iomanip>
- #include <algorithm>
- using namespace std;
- ifstream in("Input.txt");
- ofstream out("Output.txt");
- struct Student
- {
- string name, secondname, fam;
- int year;
- int mark[5];
- int key;
- void print();
- };
- void Student::print()
- {
- out << setw(12) << left << fam << setw(10) << name << setw(15) << secondname << setw(5) << year;;
- for (int i = 0; i < 5; i++)
- {
- out << setw(3) << mark[i];
- }
- out << setw(5) << key << endl;
- }
- void sort(Student *a, int n)
- {
- Student temp;
- for (int i = 0; i < n; i++)
- {
- int temp = a[i].key;// запомним i-ый элемент
- int j = i - 1;//будем идти начиная с i-1 элемента
- while (j >= 0 && a[j].key > temp)
- // пока не достигли начала массива
- // или не нашли элемент больше i-1-го
- // который храниться в переменной temp
- {
- a[j + 1].key = a[j].key;
- //проталкиваем элемент вверх
- j--;
- }
- a[j + 1].key = temp;
- }
- }
- int main()
- {
- int n = 0, m, i;
- Student stud[10];
- if (!in)
- cout << "Error,file Input.txt doesn't open";
- else
- {
- in >> m;
- while (in.peek() != EOF)
- {
- in >> stud[n].fam;
- in >> stud[n].name;
- in >> stud[n].secondname;
- in >> stud[n].year;
- stud[n].key = 0;
- for (int i = 0; i < 5; i++)
- {
- in >> stud[n].mark[i];
- stud[n].key+=mark[i];
- }
- n++;
- }
- sort(stud, n);
- out << m << endl;
- for (int i = n - 1; i >= 0; i--)
- stud[i].print();
- }
- in.close();
- out.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment