Составители:
Рубрика:
80
{ int ReadFile(); //переопределяем функцию чтения информации из файла
public:
HelpFile():File("help.dat",25){} //имя файла и его размер фиксированы
};
int HelpFile::ReadFile()
{ int i=0;
FILE *fp;
if((fp=fopen(Name,"r"))!=NULL)
{ while(!feof(fp))
{fgets(str[i],80,fp); //считываем содержимое файла в буфер
i++;
}
fclose(fp);
return i-1;
}
return 0;}
main()
{ HelpFile hp; //объект класса «файл с помощью»
hp.display(); //выводим содержимое файла на экран
InfoFile If("info",40); //создаем объект класса «файл с информацией»
If.WriteFile(3); //записываем в файл 3 записи
If.display(); //выводим содержимое файла
на экран
}
Программа, приведенная в листинге 32, работает с файлами двух типов –
информационным файлом (класс InfoFile), предназначенным для хранения про-
стейшей базы данных – нескольких структур типа info, а также файлом помощи
(класс HelpFile), который хранит текстовую информацию, предположительно –
справку о самой программе. Общая сущность двух этих типов файлов, выражаю-
щаяся в имени файла
Name, буфере str для временного хранения информации из
файла, размере используемого файлом буфера n, а также метода display вывода
считанной из файла информации на экран, выделена в родительский класс (класс
File). Схема иерархии классов программы приведена на рис.14.
Рис. 14. Схема иерархии классов программы из листинга 32
File
HelpFile
InfoFile
{ int ReadFile(); //переопределяем функцию чтения информации из файла public: HelpFile():File("help.dat",25){} //имя файла и его размер фиксированы }; int HelpFile::ReadFile() { int i=0; FILE *fp; if((fp=fopen(Name,"r"))!=NULL) { while(!feof(fp)) {fgets(str[i],80,fp); //считываем содержимое файла в буфер i++; } fclose(fp); return i-1; } return 0;} main() { HelpFile hp; //объект класса «файл с помощью» hp.display(); //выводим содержимое файла на экран InfoFile If("info",40); //создаем объект класса «файл с информацией» If.WriteFile(3); //записываем в файл 3 записи If.display(); //выводим содержимое файла на экран } Программа, приведенная в листинге 32, работает с файлами двух типов – информационным файлом (класс InfoFile), предназначенным для хранения про- стейшей базы данных – нескольких структур типа info, а также файлом помощи (класс HelpFile), который хранит текстовую информацию, предположительно – справку о самой программе. Общая сущность двух этих типов файлов, выражаю- File щаяся в имени файла Name, буфере str для временного хранения информации из файла, размере используемого файлом буфера n, а также метода display вывода считанной из файла информации на экран, выделена в родительский класс (класс HelpFile InfoFile File). Схема иерархии классов программы приведена на рис.14. Рис. 14. Схема иерархии классов программы из листинга 32 80