к выполнению лабораторной работы №4.
Тема: «Разработка классов и создание ООП обработки текстовых и двоичных файлов».
Задание на ЛР4совпадает с заданием на ЛР3, но дополнительно
1) спроектировать выполнение пунктова) и б)индивидуального задания так,чтобыисходные данные могли считываться из файлов любого типа (текстового или двоичного), а также вводиться с клавиатуры;
2) предусмотреть возможность записи исходных данных и результатов обработки в виде htm – файлов, связанных между собой (должны быть созданы отдельные функции).
Создание htm - файлов – это один из способов представления и просмотра исходных данных и результата обработки через браузер.
Указания по оформлению программного кода
1). Добавить новые методыв класс STUD:
//Создание htm-файлов и связей между ними:
void Print_htm(FILE* ft,int vid,char *Ref=NULL);
//параметр vid – совпадает с номером таблицы:
void Table1_htm(FILE *); // <-- таблица исходных данных
void Table2_htm(FILE *); // <-- таблица результатов
2). Изменить функцию Save(), добавив в нее пункт создания htm-файлов:
//-----------------------------------------
int STUD::Save(){FILE* ft; int L; char NF[15];
//-----------------------------------------
cout<<"\n Save in File: 1 - txt, 2 - bin, 3 -htm, 0 - Exit: "; cin>>L;
if(L>0&&L<3){cout<<"\n Input File Name: ";cin>>NF;}
switch(L){
case 1:ft=fopen(NF,"wt"); Print_table(ft);fclose(ft);break;
case 2:ft=fopen(NF,"wb"); Write_bin(ft); fclose(ft); break;
case 3:ft=fopen("Ish.htm","wt"); Print_htm(ft,1,"Rez.htm"); fclose(ft);
ft=fopen("Rez.htm","wt"); Print_htm(ft,2,"Ish.htm"); fclose(ft);
}
return L; }
3). Описать новые методы:
//Создание htm-файла:
//-------------------------------------------------
void STUD::Print_htm(FILE* ft,int vid, char *Ref){
//-------------------------------------------------
fprintf(ft,"\n <HTML>");
fprintf(ft,"\n <BODY bgcolor=BLUE>"); // цвет фона
switch(vid){
case 1:Table1_htm(ft);break; // <-- таблица исходных данных
case 2:Table2_htm(ft);break; // <-- таблица результатов
}
fprintf(ft,"\n <P align='center'>"); // центрирование текста
if(Ref){
fprintf(ft,"\n <A href=%s>",Ref); // <-- запись ссылки
fprintf(ft,"<FONT size=5 color=RED><B> Переход -> %s </B></FONT> </A>",Ref);
}
fprintf(ft,"\n </P>");
fprintf(ft,"\n </BODY>");
fprintf(ft,"\n </HTML>");
cout<<"\n File_"<<vid<<" *.htm is ready! "; getch();
}
// Таблица исходных данных:
//-----------------------------------------
void STUD::Table1_htm(FILE* ft){int i,j;
//-----------------------------------------
fprintf(ft,"\n <TABLE bgcolor=YELLOW width=700 border=1 align='center'>");
fprintf(ft,"\n <Caption><FONT size=5 color=YELLOW><b> Исходные данные </b></FONT></Caption>");
fprintf(ft,"\n <TR><TH> N </TH><TH> Фамилия </TH><TH> Балл _1 </TH><TH> Балл_2 </TH><TH> Балл _3 </TH></TR>");
for(i=0;i<kol;i++){
fprintf(ft,"\n <TR bgcolor=WHITE><TD>%2d </TD>",i+1);
fprintf(ft,"<TD> %10s </TD>",Mas[i].Fam);
for(j=0;j<3;j++)fprintf(ft,"<TD> %5d </TD>",Mas[i].Bal[j]);
}
fprintf(ft,"</TR>");
fprintf(ft,"\n </TABLE>"); }
// Таблица результатов:
//-----------------------------------------
void STUD::Table2_htm(FILE* ft){int i,j;
//-----------------------------------------
fprintf(ft,"\n <TABLE bgcolor=YELLOW width=700 border=1 align='center'>");
fprintf(ft,"\n <Caption><FONT size=5 color=YELLOW><b> Результат обработки </b></FONT></Caption>");
fprintf(ft,"\n <TR><TH> N </TH><TH> Фамилия</TH><TH> Балл_1 </TH><TH> Балл_2 </TH><TH> Балл_3 </TH>");
fprintf(ft,"\n <TH> Сред.балл </TH></TR>");
for(i=0;i<kol;i++){
fprintf(ft,"\n <TR bgcolor=WHITE><TD>%2d </TD>",i+1);
fprintf(ft,"<TD> %10s </TD>",Mas[i].Fam);
for(j=0;j<3;j++)fprintf(ft,"<TD> %5d </TD>",Mas[i].Bal[j]);
fprintf(ft,"<TH> %8.2f</TH>",Mas[i].SRED);
}
float SR[]={0,0,0,0};
for(i=0;i<kol;i++){ for(j=0;j<3;j++)SR[j]+=Mas[i].Bal[j];
SR[3]+=Mas[i].SRED;
}
if(kol)for(j=0;j<4;j++)SR[j]/=kol;
fprintf(ft,"\n <TR bgcolor=RED><TH>Итог!</TH><TH> Среднее: </TH> ");
for(j=0;j<4;j++){fprintf(ft,"<TH> %6.2f </TH>",SR[j]);}
fprintf(ft,"</TR>");
fprintf(ft,"\n </TABLE>"); }
В результате будут созданы два файла: "Ish.htm" (файл с исходными данными) и "Rez.htm" (файл с результатами обработки),связанные между собой ссылками, позволяющими при их просмотре через браузер переходить от одного файла к другому.