Результати роботи програми Завдання 6 Обробка типізованих файлів
Файл Студент
Структура запису:
• ПІБ (40 знаків);
• номер курсу (1 знак);
• номер групи (3 знаки);
• успішність - 5 іспитів у кожній з 10 сесій;
• форма навчання (цільова, договірна) (1 знак);
• іспит:
• Найменування предмета (10 знаків);
• Оцінка (1 знак).
Записи впорядковані за номером курсу, всередині курсу - за номером групи, в групі по ПІБ.
Створіть файл Студент. Підрахуйте кількість студентів, що мають добрі та відмінні оцінки за весь період навчання, з кожного курсу, за кожною формою навчання.
Лістинг програми
#include "stdafx.h"
#include <locale>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int menu=1;
struct STUDENT
{
char p[40],i[40],b[40],predm[40],forma;
int numc,numg,yspish,bal;
};
void add()
{
STUDENT student1;
cout<<"===============================================================\nДобавление данных о студенте в базу данных\n ===============================================================\n";
ofstream out("students.txt", ios::out | ios::app);
cout<<"Номер курса: ";
cin>>student1.numc;
out<<student1.numc<<" ";
cout<<"Номер группы: ";
cin>>student1.numg;
out<<student1.numg<<" ";
cout<<"ПIБ: ";
cin>>student1.p;
cin>>student1.i;
cin>>student1.b;
out<<student1.p<<" "<<student1.i<<" "<<student1.b<<" ";
cout<<"Форма обучения (c(англ.)-дневная;d(англ.)-заочная): ";
cin>>student1.forma;
out<<student1.forma<<" ";
cout<<"Успеваемость (средний бал): ";
cin>>student1.yspish;
out<<student1.yspish<<" ";
cout<<"Спецпредмет: ";
cin>>student1.predm;
out<<student1.predm<<" ";
cout<<"Оценка по спецпредмету: ";
cin>>student1.bal;
out<<student1.bal<<"\n";
system("PAUSE");
system("cls");
out.close();
}
void show()
{
STUDENT student1;
int i=0,j=0,x=0,kol=0;
cout<<"===============================================================\nСписок студентов\n ==================== ====== =====================================\n";
ifstream in("students.txt");
while (!in.eof())
{
in>>student1.numc;
in>>student1.numg;
in>>student1.p;
in>>student1.i;
in>>student1.b;
in>>student1.forma;
in>>student1.yspish;
in>>student1.predm;
in>>student1.bal;
if (in.eof()==true){break;}
else {
if (student1.numc<0) {cout<<"Данные о студентах отстутствуют \n" ; break;}
else {
if (student1.yspish>6) kol++;
cout<<"Номер курса: "<<student1.numc<<endl;
cout<<"Номер группы: "<<student1.numg<<endl;
cout<<"ПIБ: "<<student1.p<<" "<<student1.i<<" "<<student1.b<<endl;
cout<<"Форма обучения (c\d): "<<student1.forma<<endl;
cout<<"Успеваемость (средний бал): "<<student1.yspish<<endl;
cout<<"Спецпредмет: "<<student1.predm<<endl;
cout<<"Оценка по спецпредмету: "<<student1.bal<<endl;
cout<<endl;
i++;
}
}
}
in.close();
cout<<"Успевающих студетов: "<<kol<<endl;
system("PAUSE");
system("cls");
}
void autor()
{
STUDENT student1;
cout<<"===============================================================\nАвторы:\n===============================================================\nПапирный Владислав\nГруппа 26-РПО-11-а\nМК ДГМА\n2013 год\nВсе права защищены\n";
system("PAUSE");
system("cls");
}
int main()
{
setlocale(LC_ALL,"Russian");
STUDENT student1;
for (;menu;)
{
cout<<"Меню\n1. Добавить студента\n2. Показать список студентов\n3. Авторы\n4. Выйти\nВведите соответсвующий пункт меню для выбора действия: ";
cin>>menu;
cout<<endl;
switch(menu)
{
case 1: {add();break;};
case 2: {show();break;};
case 3: {autor();break;};
case 4: {menu=0;cout<<"===============================================================\nВыход\n===============================================================\n";break;};
default: {cout<<"Неверный номер пункта меню\n";system("pause");system("cls");break;};
}
}
system("PAUSE");
return 0;
}
