Объектно-ориентированное программирование на языке С++. Лясин Д.Н - 80 стр.

UptoLike

Составители: 

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