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>
- 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 элементов), которое хранит оценки.
- };
- //Массив структур (на 100 элементов максимум). Хранит вводимые данные по каждому студенту.
- Student data[100];
- setlocale( LC_ALL, "Rus");
- char alfavit[] = { 'A', 'B', 'C', 'D', 'F', 'E', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
- 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++; //Увеличиваем счетчик на единицу, то есть переходим в файле к новому студенту.
- }
- for (int i = 0; i < k; i++) //Пробегаем в цикле по нашим записям (по файлу с информацией по каждому студенту).
- {
- if (Debt(data[i].mark)) //Если есть ровно две двойки, выводим фамилию студента
- {
- for( int j=0; j<k; j++ )//сортировка по англ алфавиту
- for( int i=0; i<k; i++ )
- if( data[i].name[0] == alfavit[j] ) {
- fout << data[i].name << " *" << 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