return ofs;
}
main()
{ int key=0;
do { cout << “\n Меню ”;
cout << “\n 1 - Ввод ”;
cout << “\n 2 - Вывод ”;
cout << “\n 3 - Конец ”;
cout << “\n Введите номер пункта меню: ”;
cin >> key;
switch(key)
{ case 1: cout << “\n Введите группу”; /* Обработка события выбора пункта */
cin >> group; /* меню- при вводе номера пункта */
vvod(); break; /* происходит выполнение функции, */
case 2: vivod(n); break; /* указанной в соотв. операт. case */
case 3: break;
default: cout << “\n Неверный номер!”;
}
} while (key!=3);
cout << “\n Конец программы.”;
}
vvod()
{ int i, n =0
struct anketa A;
cout << “\n Сколько анкет ввести? ”;
cin >> n;
ofstream fout; // Создание 1 потока с именем fout для вывода
fout.open(group, ios::out|ios::app); /* Связывание потока с файлом (group) и */
for(i=0;i<n;i++) /* определение режимов работы с ним */
{ cout << “\n Ввод ” << i+1 << “-ой анкеты”;
cin >> A;
fout.write((char*)&A,sizeof(struct anketa)); /* Вставка записи размером struct */
/* anketa в из области памяти по */
/* указат. &A в поток вывода fout */
} fout.close(); // Закрытие потока, разрыв связи с файлом
}
void vivod() { struct anketa A;
ofstream fout(otchet,ios::out);
fout << “список студентов группы ” << group;
ifstream fin;
fin.open(group, ios::binary);
while(!fin.read((char*)&A, sizeof(struct anketa)).eof())
{ fout<< A;
}
fout.close();}
\
Задача №3
ДАНО: Файл, имя которого совпадает с названием группы, предназначен для хранения анкетных данных студентов и имеет следующую структуру:
№ |
Фамилия И.О. |
Дата Рождения |
Пол |
Адрес |
ТРЕБУЕТСЯ: По этим данным создать и распечатать экзаменационную ведомость в виде таблицы со следующей структурой строки:
№ |
Фамилия И.О. |
Оценка |
Дата |
Подпись преподавателя |
ОГРАНИЧЕНИЯ:
· разработать программу подготовки экзаменационных ведомостей на языке С++;
· ввод, вывод и работу с файлами организовать через потоки;
· разработать операторную функцию для вывода на печать строки таблицы 2;
· при подготовке экзаменационной ведомости использовать списковые структуры типа очередь.
РЕШЕНИЕ:
//include <stdio.h>
//include <string.h>
//include <iostream.h>
//include <fstream.h>
struct student
{int num;
char FIO[20];
int dd,mm,yyyy;
char pol[2];
char adr[40];
//istream& operator >>(istream& is,student& dan);
//ofstream& operator <<(ofstream&ofs,student& dan);
};
struct vedomost
{int num;
char FIO[20];
char ocenka[10];
chat data[10];
char podpis [20];
ofstream& operator <<(ofstream&ofs,vedomost&sv);
};
ofstream operator<<(ofstream&ofs,vedomost&sv)
{char probel[20]=”____________________”;
char str[80];
sprintf(str,”\n |%5d|%-20.20S|%10.10S|%10.10S|%20.20S|”, sv.num,sv.FIO,probel,probel,probel);
ofs <<str;
return ofs;}
struct ELIST {struct student s; описание
struct ELIST *next; }; списковой структуры
#define line “\n______________________________________ _”
#define shapka “\n |Номер| Фамилия| оценка | Дата | Подпись|”
#define zag “\n Экзаменационная ведомость группы”
char group[10];
struct ELIST *head=Ø ,*ref=Ø, *last=Ø;
void main ()
{ int key;
do {cout << “\n МЕНЮ “
<< “\n “
<< “\n 1-открытие базы данных “
<< “\n 2-распечатать БД “
<< “\n 3- распечатать ведомость“
<< “\n 4- Выход“ ;
cout <<” \n Введите пункт меню: “;
cin >>key;
switch (key)
{case 1: BDOpen(); break;
case 2: BDprint(); break;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.