Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пояснительная записка2.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
2 Мб
Скачать
☆

2.2 Используемые компоненты при разработке программы

При разработке приложения были использованы следующие стандартные модули: VCL.

Модуль VCL (Visual Components Library - библиотека визуальных компонентов) содержит компоненты в стиле Delphi, позволяющие разрабатывать приложения с главной формой, на которую могут быть помещены стандартные элементы управления Windows.

3. Описание программы

Программа не разбита на модули. Рассмотрим некоторые процедуры описанные в программе:

Процедура Output служит для вывода базы данных на экран. Входные данные отсутствуют.

Procedure Output;

var

Temp : Dlist;

temps : string;

I: integer;

begin

table.rowcount := tail^.data.number;

Temp := Head;

i :=1;

Table.setcell(1,1, '№');

Table.setcell(2,1, 'Наименование');

Table.setcell(3,1, 'Сорт');

Table.setcell(4,1, 'Количество');

Table.setcell(5,1, 'Цена');

table.setcell(6,1, 'Стоимость');

while Temp <> nil do begin

with Temp^.data do begin

i:=i+1;

table.setcell(1,i, inttostr(number));

table.setcell(2,i,name);

table.setcell(3,i,sort);

table.setcell(4,i,kolvo);

table.setcell(5,i,price);

table.setcell(6,i,stoim);

end;

Temp := Temp^.next;

end;

end;

Процедура AddRecord служит для добавления новых записей в базу данных. Входные данные, строки:

Procedure AddRecord (DName, DSort, DKolvo, DPrice : string);

var

NewNode : DList;

begin

New (NewNode);

with NewNode^.data do begin

Name := UpCase(DName[1]) + LowerCase(Copy(DName, 2, length(DName) - 1));

Sort := UpCase(DSort[1]) + LowerCase(Copy(DSort, 2, length(DSort) - 1));

Kolvo := DKolvo;

Price := DPrice;

stoim := inttostr(strtoint(Price) * strtoint(kolvo));

NewNode^.next := nil;

NewNode^.prev := nil;

end;

if Head = nil then begin

NewNode^.data.number := 1;

head := newnode;

tail := newnode;

end

else begin

NewNode^.data.Number := Tail^.data.number + 1;

Tail^.next := NewNode;

Tail := NewNode;

end;

Output;

ShowMessage (Запись успешно добавлена!');

end;

Процедура DeleteRecord служит для удаления записей. Входные данные, число:

procedure DeleteRecord(n: integer);

var

D: Dlist;

H: DList;

T: DList;

begin

D := SearchDelNode(n);

if (D <> nil) and (Head = D) and (Head^.next = nil) then begin

dispose (Head);

Head := nil;

Tail := nil;

end

else if (D <> nil) and (Head = D) then begin

Head := D^.next;

Head^.prev := nil;

dispose (D);

ChangeNumber;

end

else if (D <> nil) and (Tail = D) then begin

Tail := D^.prev;

Tail^.next := nil;

dispose (D);

ChangeNumber;

end

else if D <> nil then begin

H := D^.prev;

T := D^.next;

H^.next := D^.next;

T^.prev := D^.prev;

dispose (D);

ChangeNumber;

end;

end;

procedure ChangeNode; Процедура редактирования. Входные данные отсутствуют.

Procedure LoadFromFile; Процедура загрузка информации из файла. Входные данные отсутствуют.

procedure SaveToFile; Процедура сохранения информации в файл. Входные данные отсутствуют.

procedure ChangeNumber; Процедура изменения порядкового номера записи. Входные данные отсутствуют.

procedure LoadP - процедура для создания главной формы программы:

procedure LoadP;

begin

cls;

MFrame := Form.Create (0,0,800,600,'Количество реализованного товара');

Table := StringGrid.create (Mframe,2,2,781,535);

Table.colcount := 6;

table.rowcount := 0;

Table.colwidths[1] := 30;

Table.colwidths[2] := 148;

table.colwidths[3] := 148;

table.colwidths[4] := 148;

table.colwidths[5] := 148;

table.colwidths[6] := 148;

Table.Editing:=False;

Table.setcell(1,1, '№');

Table.setcell(2,1, 'Наименование');

Table.setcell(3,1, 'Сорт');

Table.setcell(4,1, 'Количество');

Table.setcell(5,1, 'Цена');

table.setcell(6,1, 'Стоимость');

OFile := OpenDialog.create;

OFile.Filter := 'Текстовые файлы|*.dat';

SFile := SaveDialog.create;

SFile.Filter := 'Текстовые файлы|*.dat';

MMenu := MainMenu.Create;

MFrame.menu := MMenu;

MMenuADD

end;