Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2010, 19:04   #1
Djimmy
Новичок
Джуниор
 
Регистрация: 30.05.2010
Сообщений: 2
Радость Работа с запясями и файлами

Всем привет, составьте пожалуйста: "Организовать хранение в файле 5 записей об оценках. Каждая запись состоит из 4 полей: № записи, фамилия, группа, оценка. Вывести на экран записи с оценкой 5."
P.S я в этом не очень понимаю =)
Djimmy вне форума Ответить с цитированием
Старый 30.05.2010, 19:34   #2
ZotikOsKC
 
Регистрация: 30.05.2010
Сообщений: 5
Печаль

Это для визуальной VCL-формы в Дельфи
Основные процедуры Ввода-Вывода списка студентов
Уж поиск пятёрочника, думаю, сами осилите.
(К каждой функции прикрутите кнопку, добавьте на форму 4 эдита и TMem'у, и будет вам счастье)

Код:
type peb=^s;
  s = record
    N: string[20]; {Студент}
    C: string[20]; {Группа}
    L: char;   {Оценка}
end;
     type pel=^el;
  el=record
    d:s;
    next:pel;
  end;


procedure addfirst(d:string;e:string;f:char);
var t:pel;
begin
  new(t);
  t^.d.c:=d;
  t^.d.N:=e;
  t^.d.l:=f;
  t^.next:=head;
  head:=t;
end;


procedure addlast(d:string;e:string;f:char);
var a:pel;
begin
  if head<>nil then begin
    a:=head;
   while a^.next<>nil do
    a:=a^.next;
    new(a^.next);
    a:=a^.next;
    a^.d.c:=d;
    a^.d.N:=e;
    a^.d.l:=f;
    a^.next:=nil;
  end
  else addfirst(d,e,f);
end;


procedure delfirst;
var t:pel;
begin;
if head<>nil then
  begin
    t:=head;
    head:=t^.next;
    dispose(t);
  end;
end;


procedure dellast;
var t:pel;
begin
  if head<>nil then begin
    if head^.next<>nil then begin
    t:=head;
    while t^.next^.next<>nil do
    t:=t^.next;
    dispose(t^.next);
    t^.next:=nil;
    end
    else delfirst;
    end;
  end;



procedure delall;
var t:pel;
begin
  t:=head;
  while t<>nil do begin
    t:=t^.next;
    dispose(head);
    head:=t;
  end;
end;


procedure savelist(fn:string);
var f:file of s;
t:pel;
begin
assign(f,fn);
rewrite(f);
t:=head;
while t<>nil do begin
  write(f,t^.d);
  t:=t^.next;
end;
close(f);
end;


procedure loadlist(fn:string);
var f:file of s;
t:pel;
begin
assign(f,fn);
reset(f);
delall;
if not Eof(f) then begin
new (head);
read(F,head^.d);
t:=head;
while not Eof(f) do begin
new (t^.next);
read(f,t^.next^.d);
t:=t^.next;
end;
t^.next:=nil;
end;
close(f);
end;



procedure list(M:Tmemo);
var t:pel;
i:integer;
begin
i:=1;
t:=head;
with m.Lines do
begin
  add('Cписок');
  while t<>nil do
  begin
    add(inttostr(i)+'-> '+t^.d.n+'  '+T^.d.c+(t^.d.l));
    i:=i+1;
    t:=t^.next;
  end;
Пример кода кнопок на моей форме
Код:
procedure Tff.Button1Click(Sender: TObject);
begin
addfirst(edit1.text,edit3.text,edit4.text[1]);
end;

procedure Tff.Button2Click(Sender: TObject);
begin
list(mem);
end;

procedure Tff.Button3Click(Sender: TObject);
begin
addlast(edit1.text,edit3.text,edit4.text[1]);
end;

procedure Tff.Button4Click(Sender: TObject);
begin
delfirst;
end;

procedure Tff.Button5Click(Sender: TObject);
begin
dellast;
end;

procedure Tff.Button6Click(Sender: TObject);
begin
savelist( Edit2.Text );
end;

procedure Tff.Button7Click(Sender: TObject);
begin
loadlist( Edit2.Text );
end;
ZotikOsKC вне форума Ответить с цитированием
Старый 30.05.2010, 23:51   #3
Djimmy
Новичок
Джуниор
 
Регистрация: 30.05.2010
Сообщений: 2
По умолчанию

Блин, забыл написать что нужно составить в турбо паскале =((
За это конечно спасибо огромное сохраню на всяк. случай =)
Djimmy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
РАБОТА С ФАЙЛАМИ tanek Помощь студентам 5 01.02.2011 17:00
Работа с файлами Pr1meEX PHP 9 21.06.2009 03:15
Работа с файлами МартинИ Паскаль, Turbo Pascal, PascalABC.NET 3 23.12.2008 21:36