СД
Сергей Демьянов

Помогите решить задачу в паскале.)

Составить список учебной группы, включающей 10 человек. Для каждого студента указать фамилию, имя, отчество, год рождения, год поступления в техникум, семейное положение, оценка (ударник – «3», отличник – «5» и т.д.).
пожалуйста напишите код программы, уж очень надо)

Наташа Демьянова
Наташа Демьянова

программист что ли

AM
Aldynay Mongush

Структура:

type rStudent = record Familia, Imja, Otchestvo : String[30]; Year, Enter : Word; Married : Boolean; Mark : Byte; end;
tSt = ^rSt; rSt = record St : rStudent; Pred, Next : tSt; end;

Глобальные переменные:

var First, Last : tSt;

Начало основного модуля:

First := nil; Last := nil;

Процедура чтения из файла:

procedure ReadFile(Name : String);
var Cur : tSt; F : File of rStudent;
begin
Assign(F, Name);
{$I-} Reset(F); {$I+}
if IOResult <> 0 then Exit;
while Not EOF(F) do
begin
New(Cur);
Read(F, Cur^.St); Cur^.Pred := Last; Cur^.Next := nil;
if First = nil then First := Cur else Last^.Next := Cur; Last := Cur;
end;
Close(F);
end;

Процедура записи в файл:

procedure SaveFile(Name : String);
var Cur : tSt; F : File of rStudent;
begin
Assign(F, Name);
Rewrite(F); Cur := First;
while Cur <> nil do begin Write(F, Cur^.St); Cur := Cur^.Next; end;
Close(F);
end;

Процедура вывода списка на экран:

procedure OutSpis;
var Cur : tSt;
begin
if First = nil then begin WriteLn('Список пуст. '); Exit; end;
Cur := First;
repeat
WriteLn(Cur^.St.Familia, #32, Cur^.St.Imja, #32, Otchestvo);
Write('г/р ', Cur^.St.Year, ' поступил ', Cur^.St.Enter, ' семейное положение: ');
if Not Cur^.St.Mark then Write(' не '); WriteLn('женат/замужем');
Cur := Cur^.Next;
until Cur = nil;
end;

Добавление нового студента:

procedure InsertSt;
var Cur : tSt; Ch : Char;
begin
WriteLn('Введите данные по студенту: ');
New(Cur); Write('Фамилия: '); ReadLn(Cur^.St.Familia);
Write('Имя: '); ReadLn(Cur^.St.Imja);
Write('Отчество: '); ReadLn(Cur^.St.Otchestvo);
Write('Год рождения: '); ReadLn(Cur^.St.Year);
Write('Год поступления: '); ReadLn(Cur^.St.Enter);
Write('Для женатых/замужних ввести 1 иначе не женат/замужняя: '); ReadLn(Ch);
Cur^.St.Married := Ch = #49;
Cur^.Pred := Last; Cur^.Next := nil;
if First = nil then First := Cur else Last^.Next := Cur; Last := Cur;
end;

Основное готово.
Осталось свести в единую программу с выбором действий…

Похожие вопросы
Помогите решить задачу в паскале)
помогите решить задачу на паскале
помогите решить задачи в паскале
Помогите решить задачу в паскале
Помогите решить задачу. Паскаль.
помогите решить задачу по паскалю? (
Помогите решить задачу паскаль
помогите решить задачу по паскалю
Помогите решить задачу в паскале!!!
Помогите решить задачу по Паскаль