Организовать файл записей HOSPITAL - Turbo Pascal (35898)

Узнай цену своей работы

Формулировка задачи:

Организовать файл записей HOSPITAL, содержащих следующие поля: фамилия, имя, отчество, номер участка, год рождения, адрес. Написать программу, выполняющую следующие действия: Ввод с клавиатуры данных о 4 пациентах, вывод на экран фамилий пациентов, проживающих на участке, номер которого введён с клавиатуры.

Решение задачи: «Организовать файл записей HOSPITAL»

textual
Листинг программы
const
  csize=4;
 
type
  Hospital=record
    name,sname:string[15];
    fam,addr:string[30];
    num,year:integer;
  end;
  THospital=file of Hospital;
 
var
  f:THospital;
  hos:Hospital;
  n:integer;
 
procedure InputData;
var
  i:byte;
begin
  for i:=1 to csize do begin
    write('Фамилия : ');
    readln(hos.fam);
    write('Имя : ');
    readln(hos.name);
    write('Отчество : ');
    readln(hos.sname);
    write('Год рождения : ');
    readln(hos.year);
    write('Адрес : ');
    readln(hos.addr);
    write('Номер участка : ');
    readln(hos.num);
    writeln;
    write(f,hos);
  end;
end;
 
procedure PrintData;
begin
   writeln('Фамилия : ',hos.fam);
   writeln('Имя : ',hos.name);
   writeln('Отчество : ',hos.sname);
   writeln('Год рождения : ',hos.year);
   writeln('Адрес : ',hos.addr);
   writeln;
end;
 
procedure RequestData(an:integer);
var
  i:byte;
begin
  while not eof(f) do begin
    read(f,hos);
    if n=hos.num then
      PrintData;
  end;
end;
 
begin
  assign(f,'RecFile.dat');
  rewrite(f);
  writeln('Ввод данных.');
  InputData;
  write('Введите номер участка : ');
  readln(n); writeln;
  reset(f);
  RequestData(n);
  close(f);
  readln;
end.

Объяснение кода листинга программы

  1. В процедуре InputData происходит чтение данных из файла Hospital. Данные читаются по одному элементу за раз, используя цикл for.
  2. Каждая строка чтения начинается с запроса на ввод данных, например Фамилия :.
  3. Затем происходит чтение значений переменных фамилия, имя, отчество, год рождения, адрес и номер участка.
  4. После чтения данных они записываются в файл Hospital с помощью функции write.
  5. Запись в файл завершается вызовом функции writeln.
  6. В конце каждой строки чтения вызывается функция readln для перехода на следующую строку.
  7. Если введенный номер участка совпадает с номером участка в записи, то вызывается процедура PrintData для вывода информации о пациенте.
  8. В процедуре RequestData происходит чтение данных из файла Hospital до тех пор, пока не будет достигнут конец файла (не достигнута строка с номером участка, совпадающим с введенным номером).
  9. Если введенный номер участка совпадает с номером участка в записи, то вызывается процедура PrintData для вывода информации о пациенте.
  10. После завершения чтения данных файл сбрасывается с помощью функции reset.
  11. Затем происходит вызов процедуры InputData для продолжения чтения данных.
  12. При закрытии файла вызывается функция close.
  13. В конце программы выводится сообщение Введите номер участка : и происходит чтение введенного номера участка.
  14. Затем происходит вызов процедуры RequestData для вывода информации о пациенте.
  15. После этого программа завершается вызовом функции readln.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.3 из 5
Похожие ответы