Типизированые файлы (студенты) - Pascal

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

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

мне нужно сформыровать файл о студенте (имя, дата,стать,курс,адреса,телефон,оценка за сесию и стипендия ) . А потом получить информацию о всех студентах которие имеют телефон. сделал наброски и зашел в тупик
program project1;
 
type student=record
imia:string;
data:string;
stat:string;
kyrs:byte;
adresa:string;
tel: longint ;
sesia:byte;
stypyha:char;
end;
  var t:text;
    a,n,i:integer;   d:student;
    mas : array [1..11111]of student ;        
begin
 
   with d do begin
    writeln('vvedit kilkist studentiv');
    readln(n);
    assign(t,'t.txt');
    rewrite(t);
     
      writeln('vvedit prizvuche'); readln(imia); writeln(t,imia);
       writeln('vvedit daty'); readln(data); writeln(t,data);
        writeln('vvedit stat'); readln(stat); writeln(t,stat);
         writeln('vvedit kyrs'); readln(kyrs); writeln(t,kyrs);
         writeln ('vvedit telefon'); readln (tel);writeln (t,tel);
          writeln('vvedit adresu'); readln(adresa); writeln(t,adresa);
           writeln('vvedit ocincy'); readln(sesia); writeln(t,sesia);
            writeln('vvedit chy otrymye stipendiy(+/-)'); readln(stypyha); writeln(t,stypyha);
          
            end;
 
   close(t);
    
   reset (t);
 
    for i:=1 to a do   begin
    writeln(mas[i].imia) ;    
      writeln(mas[i].data);
       writeln(mas[i].stat);
       writeln(mas[i].kyrs);
       writeln (mas[i].tel);
       writeln(mas[i].adresa);
       writeln(mas[i].sesia);
       writeln(mas[i].stypyha);
        
    end;

end.

Решение задачи: «Типизированые файлы (студенты)»

textual
Листинг программы
const
    ans : Array[Boolean] Of String[3] = ('Net', 'Da');
 
type
    F_I_O = record
        familia : String[20];
        imia : String[10];
        otchestvo : String[25];
    end;
    Student = record
        fio : F_I_O;
        date : String[10];
        kurs : Byte;
        adres : String;
        telefon : String[15];
        sessia : Byte;
        stipendia : Boolean;
    end;
 
var
    f : File Of Student;
    i, n : Byte;
    s : Student;
    t : String[3];
 
begin
    Write('n='); ReadLn(n);
    //запись в файл
    Assign(f, 'f.dat'); ReWrite(f);
    for i := 1 to n do
    begin
        with s do
        begin
            with fio do
            begin
                Write('Familia: '); ReadLn(familia);
                Write('Imia: '); ReadLn(imia);
                Write('Otchestvo: '); ReadLn(otchestvo);
            end;
            Write('Data: '); ReadLn(date);
            Write('Kurs: '); ReadLn(kurs);
            Write('Adres: '); ReadLn(adres);
            Write('Telefon: '); ReadLn(telefon);
            Write('Sessia: '); ReadLn(sessia);
            Write('Stipendia [Da / Net]: '); ReadLn(t);
            stipendia := (t = 'Da');
        end;
        Write(f, s);
        WriteLn;
    end;
    Close(f);
    //чтение из файла
    Reset(f); Seek(f, 0);
    i := 0;
    while Not(Eof(f)) do
    begin
        Read(f, s);
        with s do
            if (Length(telefon) > 0) then
            begin
                Inc(i);
                WriteLn(i, '-tyj student:');
                with fio do
                    WriteLn('   FIO: ', familia, ' ', imia, ' ', otchestvo);
                WriteLn('   Data: ', date);
                WriteLn('   Kurs: ', kurs);
                WriteLn('   Adres: ', adres);
                WriteLn('   Telefon: ', telefon);
                WriteLn('   Ocenka za sessiu: ', sessia);
                WriteLn('   Stipendia: ', ans[stipendia]);
            end;
    end;
end.

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

  1. В начале объявляются переменные ans, f_io, student, f, i, n, s, t, date, kurs, adres, telefon, sessia, stipendia.
  2. Переменная ans инициализируется как массив типа String[3] со значениями по умолчанию ('Net', 'Da').
  3. Тип F_I_O определяется как запись с полями: familia (String[20]), imia (String[10]), otchestvo (String[25]).
  4. Тип Student определяется как запись с полями: fio (F_I_O), date (String[10]), kurs (Byte), adres (String), telefon (String[15]), sessia (Byte), stipendia (Boolean).
  5. Переменная f инициализируется как файл типа File Of Student.
  6. Переменная i инициализируется как байт.
  7. Переменная n считывается из файла.
  8. В цикле for происходит запись в файл для каждого студента.
  9. Внутри цикла считывается информация о каждом студенте и записывается в файл.
  10. После окончания записи закрывается файл.
  11. Затем файл переключается на начало и сбрасывается позиция.
  12. В цикле while происходит чтение информации из файла до тех пор, пока не будет достигнут конец файла.
  13. Для каждого студента считанного из файла выводится информация о нем.
  14. В конце программы выводится количество студентов.

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


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

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

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