Другие языки программирования и технологии
Паскаль Структура хранения и ведения следующих данных
Друзья,обращаюсь к вам за помощью в создании программы по след.условию: Разработать структуру хранения и ведения следующих данных: 1. № зачётной книжки студента - целое число; 2. ФИО студента - символьные данные длиной до 10 символов. Реализовать структуру создания и хранения двоичного дерева. При работе программы необходимо включить в текст меню следующие режимы работы: - Запись (включение элемента; - Печать текущего содержимого дерева; - Восходящий обход дерева; - Окончание работы. Все записи должны храниться во внешнем файле на диске и считываться в оперативную память в начале работы программы. После окончания работы данные необходимо вновь записывать в файл. За хороший ответ рассматриваю оплату wmr,sms
Структруа студентов:
type tStudent = record Z : Word; FIO : String[10]; end;
Структура для дерева
type tRecs = ^aRecs;
aRecs = record S : tStudent; Next, Pred : tRecs; end;
Описание структуры:
var First, Posl : aRecs; { Ссылки на первого и последнего студента в списке }
Инициализация программы:
First := nil; Posl := nil;
Включение нового:
procedure Include(Student : tStudent);
var Tmp : tRecs;
begin { нового добавляем в конец списка }
New(Tmp);
Tmp.S := Student; Tmp.Next := nil;
if First = nil then begin First := Tmp; Posl := Tmp; Tmp.Pred := nil; end
else begin Posl.Next := Tmp; Tmp.Pred := Posl; Posl := Tmp; end;
end;
Сохранение в файл:
procedure Save(Name : String);
var F : File of tStudent;
Cur : tRecs;
begin
Assign(F, Name); Rewrite(F);
Cur := First;
while Cur <> nil do
begin
Write(F, Cur^.S);
Cur := Cur^.Next;
end;
Close(F);
end;
Чтение из файла:
procedure Save(Name : String);
var F : File of tStudent;
S : tStudent;
begin
Assign(F, Name); Reset(F);
while Not EOF(F) do
begin
Read(F, S):
Include(S);
end;
Close(F);
end;
Печать списка:
procedure PrintS;
var Cur : tRecs;
begin
Cur := First;
while Cur <> nil do
begin
WriteLn('N ', Cur^.S.Z, ' ФИО ', Cur^.S.FIO);
Cur := Cur^.Next;
end;
end;
Как-то так!
type tStudent = record Z : Word; FIO : String[10]; end;
Структура для дерева
type tRecs = ^aRecs;
aRecs = record S : tStudent; Next, Pred : tRecs; end;
Описание структуры:
var First, Posl : aRecs; { Ссылки на первого и последнего студента в списке }
Инициализация программы:
First := nil; Posl := nil;
Включение нового:
procedure Include(Student : tStudent);
var Tmp : tRecs;
begin { нового добавляем в конец списка }
New(Tmp);
Tmp.S := Student; Tmp.Next := nil;
if First = nil then begin First := Tmp; Posl := Tmp; Tmp.Pred := nil; end
else begin Posl.Next := Tmp; Tmp.Pred := Posl; Posl := Tmp; end;
end;
Сохранение в файл:
procedure Save(Name : String);
var F : File of tStudent;
Cur : tRecs;
begin
Assign(F, Name); Rewrite(F);
Cur := First;
while Cur <> nil do
begin
Write(F, Cur^.S);
Cur := Cur^.Next;
end;
Close(F);
end;
Чтение из файла:
procedure Save(Name : String);
var F : File of tStudent;
S : tStudent;
begin
Assign(F, Name); Reset(F);
while Not EOF(F) do
begin
Read(F, S):
Include(S);
end;
Close(F);
end;
Печать списка:
procedure PrintS;
var Cur : tRecs;
begin
Cur := First;
while Cur <> nil do
begin
WriteLn('N ', Cur^.S.Z, ' ФИО ', Cur^.S.FIO);
Cur := Cur^.Next;
end;
end;
Как-то так!
Похожие вопросы
- Хранение 10 млн строк данных (бд или нечто другое) [c#]
- Помогите пожалуйста, с составлением программы в паскале, очень срочно! Только пожалуйста, вставьте данные, которые ниже
- Насколько безопасно хранение данных на флешке?? Я храню все резервные данные с моего ноута на флешке 32 гб!
- Задача с заполнением структур на паскале
- Pascal, структура данных "Cтек"
- Pascal, структура данных двусвязанный список
- Тип данных в паскале
- Запись в файл структуры данных. С++
- Что такое алгоритмы и структуры данных в информатике поясните простым языком чтобы было понятно для чего это вообще?
- Помогите создать базу данных на паскале.