Сделать лабораторную по программированию (PascalABC.NET).
Программа должна иметь интерфейс на основе формы (FormsABC). Выводить содержимое очереди в ListBox.
При реализации очереди предусмотреть возможность:
а) добавления в конец очереди;
б) удаление элемента из начала очереди;
в) возможность редактирования первого и последнего элементов очереди.
Организовать очередь дисциплин: хранить название дисциплины и количество часов (Пользователь вводит информацию).
В файле прикреплена часть программы, желательно, использовать эти наработки. Если быть точнее, то не работает кнопка изменения первого элемента в очереди.
uses
formsABC;
type
stack = ^Tstack;
Tstack = record
next: stack;
name: string;
h, i: integer;
end;
var
head, tail, tmp, tm: stack;
L: listbox;
bt, bt1, bt2, bt3: button;
f: field;
hour: integerfield;
s: array of string;
a, i: integer;
procedure add(head: stack; name: string; h: integer; tail: stack);
begin
new(tmp);
L.Items.Add(name + ' - ' + inttostr(h));
tmp^.name := name;
tmp^.h := h;
tmp^.next := nil;
if head
begin
tail^.next := tmp;
tail := tmp;
end
else
begin
head := tmp;
tail := tmp;
end;
end;
procedure addy;
begin
add(head, f.text, hour.Value, tail);
end;
procedure dell(head: stack);
begin
if head
begin
tmp := head;
head := head^.next;
dispose(tmp);
end;
end;
procedure delly;
begin
dell(head);
L.Items.RemoveAt(0);
end;
procedure add1(head: stack; name: string; h: integer; tail: stack);
begin
new(tm);
tm^.name := name;
tm^.h := h;
tm^.next := nil;
if head
begin
tail^.next := tm;
tail := tm;
end
else
begin
head := tm;
tail := tm;
end;
L.Items.Add(name + ' - ' + inttostr(h));
end;
procedure add2;
begin
add1(head, f.text, hour.Value, tail);
end;
procedure editf1;
begin
delly;
add2;
end;
procedure dele(var head: stack);
begin
if head
begin
tmp := head;
head := tmp^.next;
Dispose(tmp);
end;
end;
procedure del;
begin
dele(head);
l.Items.RemoveAt(l.Items.Count - 1)
end;
procedure editl1;
begin
del;
addy;
end;
begin
L := new ListBox();
bt := new Button('Добавить');
emptyline;
f := new Field('Название дисциплины');
hour := new IntegerField('Кол-во часов');
emptyline;
bt1 := new Button('Удалить');
bt3 := new Button('Изменить первый элемент');
bt2 := new Button('Изменить последний элемент');
bt.Click += addy;
bt1.Click += delly;
bt2.Click += editl1;
bt3.Click += editf1;
end.