Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <fstream>
- #include <locale.h>
- #include <wchar.h>
- #include <vector>
- const int N = 5; //Объявляем константу, которая хранит количество оценок.
- using namespace std;
- bool Debt(int subject[]) { //Данная функция возвращает true, если две из трех оценок - двойки.
- int counter = 0;
- for (int i = 0; i < N; i++) {
- if (subject[i] == 2)
- counter++;
- }
- if (counter == 2)
- return true;
- return false;
- }
- int main()
- {
- struct Student //Создаем структуру.
- {
- char name[20]; //Поле структуры, которое хранит фамилию.
- char facul[10];//факультет
- int grNum; //Поле структуры, которое хранит номер группы.
- int course;//курс
- char fm[10];//пол
- char city[10];//город
- int mark[5]; //Поле структуры (массив из 5 элементов), которое хранит оценки.
- char name_dolg[20];
- };
- //Массив структур (на 100 элементов максимум). Хранит вводимые данные по каждому студенту.
- Student data[100];
- setlocale( LC_ALL, "Rus");
- char cur[20];
- ifstream fin("input.txt");
- ofstream fout("output.txt");
- int k;
- string str;
- k = 0;
- while (fin >> data[k].name //Считываем k-ую строку файла (то есть, информацию по каждому студенту).
- >> data[k].fm
- >> data[k].facul
- >> data[k].course
- >> data[k].grNum
- >> data[k].city
- >> data[k].mark[0]
- >> data[k].mark[1]
- >> data[k].mark[2]
- >> data[k].mark[3]
- >> data[k].mark[4])
- {
- k++; //Увеличиваем счетчик на единицу, то есть переходим в файле к новому студенту.
- }
- int coun = 0;
- for (int i = 0; i < k; i++) //Пробегаем в цикле по нашим записям (по файлу с информацией по каждому студенту).
- {
- if (Debt(data[i].mark)) //Если есть ровно две двойки, выводим фамилию студента
- {
- strcpy(data[i].name_dolg, data[i].name);
- coun++;
- }
- }
- for(int i=0;i<coun-1;i++){
- for(int j=i+1;j<coun;j++){
- if(strcmp(data[i].name_dolg,data[j].name_dolg)>0)
- { strcpy(cur,data[i].name_dolg);
- strcpy(data[i].name_dolg,data[j].name_dolg);
- strcpy(data[j].name_dolg,cur);
- }
- }
- }
- for(int i=0;i<coun;i++){
- fout << data[i].name_dolg << " *" << endl;
- }
- fout << endl << endl;
- fout << "Общий список студентов: " << endl << endl;
- for(int i=0;i<k;i++){
- fout << "Имя: " << data[i].name << endl;
- fout << "Пол: " << data[i].fm << endl;
- fout << "Факультет: " << data[i].facul << endl;
- fout << "Курс: " << data[i].course << endl;
- fout << "Группа: " << data[i].grNum << endl;
- fout << "Город: " << data[i].city << endl;
- fout << "Оценки: ";
- for(int j=0;j<5;j++){
- fout << data[i].mark[j] << " ; ";
- }
- fout << endl << endl;
- }
- fin.close(); //Закрываем входной файл
- fout.close(); //Закрываем выходной файл
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement