48245 (Программирование в Delphi), страница 2
Описание файла
Документ из архива "Программирование в Delphi", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "48245"
Текст 2 страницы из документа "48245"
B
3
edit2.clear
4
edit3.clear
5
edit4.clear
6
edit5.clear
7
Конец
4. процедура создания новой базы: button4click.
1
Начало
Пояснения к алгоритму 4:
Б
messagedlg
2
Да
Нет
лок 2 – запрос удаления несохраненных данных.Блок 3 – вызов процедуры.
Б
cleansg
3
лок 4 – вывод в поле memo подтверждение создания базы.
memo1.lines.insert
4
7
Конец
5. процедура добавления записи: button1click.
Пояснения к алгоритму 5:
Блок 2 – проверка edit-ов на не пустые строки.
Блок 3 – попытка присвоить строке целочисленные переменные.
сообщение о необходимости полей 2…5 быть числом.
Блок 4 – задание начального условия цикла.
Блоки 5,6 – цикл очистки типового массива.
Блок 7 – задание начального условия цикла.
Блоки 8,9,10 – цикл перевода строки StringGrid в массив записей.
Блок 11 – задание начального условия цикла.
Блоки 12,13,14 – цикл нахождения количества записей больших добавленного значения.
Блок 13 – выполнение условия сравнения текстовых переменных.
Блоки 15,16 – междустрочное добавление записи в массив.
Блок 17 – вызов процедуры.
Блок 18 – задание начального условия цикла.
Блоки 19,20,21,22,23 – цикл перевода массива в StrinпGrid.
Блок 24 – вызов процедуры очистки edit-ов.
Блок 25 – вызов процедуры авторасчета.
сообщение о необходимости всех полей к обязательному заполнению.
1
Начало
Да
Нет
If edit1.text <>'' and edit2.text <>'' and edit3.text <>'' and edit4.text <>'' and edit5.text <>''
2
А
Try:n=strtoint(edit2…5)
3
Да
Нет
messagedlg
B
n = 0
4
n = 0, 200, 1
5
6
Mzap[n].prod:='';
Mzap[n].onng:=0;
Mzap[n].plan:=0;
Mzap[n].onkg:=0;
Mzap[n].svocep:=0;
7
n = 1
n = 1, sg1.rowcount, 1
8
sg1.Cells[0,n]<>''
9
Да
Нет
C
D
А
B
А
B
C
D
Mzap[2*n].prod:=sg1.Cells[0,n];
Mzap[2*n].onng:=strtoint(sg1.cells[1,n]);
Mzap[2*n].plan:=strtoint(sg1.cells[2,n]);
Mzap[2*n].onkg:=strtoint(sg1.cells[3,n]);
Mzap[2*n].svocep:=strtofloat(sg1.cells[5,n]);
10
n = 1, n = 0
11
12
n = 1, 200, 1
13
Да
Нет
(Mzap[2*n].prod<>'') and (CompareText(edit1.Text,Mzap[2*n].prod)>0)
L = L + 1
14
k = 2L + 1
15
Mzap[k].prod:=edit1.Text;
Mzap[k].onng:=strtoint(edit2.text);
Mzap[k].plan:=strtoint(edit3.text);
Mzap[k].onkg:=strtoint(edit4.text);
Mzap[k].svocep:=strtofloat(edit5.text);
16
cleansg
17
n = 1, k = 1
18
19
n = 1, 200, 1
Mzap[n].prod<>''
20
Да
Нет
А
B
C
D
А
B
C
D
sg1.Cells[0,k]:=Mzap[n].prod;
sg1.Cells[1,k]:=inttostr(Mzap[n].onng);
sg1.Cells[2,k]:=inttostr(Mzap[n].plan);
sg1.Cells[3,k]:=inttostr(Mzap[n].onkg);
sg1.Cells[5,k]:=floattostr(Mzap[n].svocep);
21
k = k +1
22
n = n + 1
23
cleanedit
24
А
B
autorachet
25
messagedlg
26
Конец
6. процедура автоматического расчета: autorachet.
Пояснения к алгоритму 6:
Блок 2 – формирование цикла.
Блок 3 – условие математического расчета (при не пустой ячейке - выполняется).
Блок 4 – выполнение математических расчетов.
Блоки 5,6,7 – поиск максимального элемента.
Блок 8 – вывод в поле memo наименование статьи с наибольшим значением.
1
Начало
2
n = 1, sg1.rowcount, 1
Sg1.cells[0,n]<>''
3
Да
Нет
А
B
C
D
Sg1.cells[4,n]:=inttostr(strtoint(cells[1,n])+strtoint(cells[2,n])-strtoint(cells[3,n]));
Sg1.cells[6,n]:=floattostr(strtoint(cells[4,n])*strtofloat(cells[5,n])/1000);
4
А
B
C
D
5
Да
Нет
Sg1.cells[6,n]>max
L = n
6
max = Sg1.cells[6,n]
7
8
memo1.lines
Конец
9
7. процедура сохранения базы: button6click.
Пояснения к алгоритму 7:
Блоки 2,3 – открытие для записи данных.
Блок 4 – задание начального условия цикла.
Блоки 5,6 – повторный цикл очистки массива.
Блок 7 – задание начального условия цикла.
Блоки 8,9,10 – повторение цикла перевода строки StringGrid в массив записей.
Блоки 11,12 – запись в файл.
Блок 13 – закрытие файла.
Блок 14 – вывод в поле memo подтверждения.
1
Начало
assignfile(filezap,filenamezap);
2
rewrite(filezap);
n:=0;
3
n = 0
4
5
n = 0, 200, 1
Mzap[n].prod:='';
Mzap[n].onng:=0;
Mzap[n].plan:=0;
Mzap[n].onkg:=0;
Mzap[n].svocep:=0;
6
7
n = 1
8
n = 1, sg1.rowcount, 1
sg1.Cells[0,n]<>''
9
Да
Нет
Mzap[2*n].prod:=sg1.Cells[0,n];
Mzap[2*n].onng:=strtoint(sg1.cells[1,n]);
Mzap[2*n].plan:=strtoint(sg1.cells[2,n]);
Mzap[2*n].onkg:=strtoint(sg1.cells[3,n]);
Mzap[2*n].svocep:=strtofloat(sg1.cells[5,n]);
10
n = 1, 100, 1
11
12
filezap, mzap[n]
А
сlosefile (filezap);
13
А
14
memo1.lines
Конец
15
8. процедура открытия базы: button5click.
Пояснения к алгоритму 8:
Блоки 2,3 – открытие для чтения данных.
Блок 4 – задание начального условия цикла.
Блоки 5,6 – повторный цикл очистки массива.
Блоки 7,8,9 – чтение из типизированного файла в типизированный массив.
Блок 10 – вызов подтверждения очистки StringGrid.
Блок 11 – задание начального условия цикла.
Блоки 12,13,14,15,16 – повтор цикла перевода массива в StringGrid.
Блок 17 – вызов процедуры расчета.
Блок 18 – вывод в поле memo подтверждения.
1
Начало
assignfile(filezap,filenamezap);
2
reset(filezap);
n:=0;
3
4
n = 0
n = 0, 200, 1
5
Mzap[n].prod:='';
Mzap[n].onng:=0;
Mzap[n].plan:=0;
Mzap[n].onkg:=0;
Mzap[n].svocep:=0;
6
А
А
while not eof(filezap)
7
8
filezap, mzap[n]
n = n + 1
9
cleansg
10
n = 1, k = 1
11
n = 1, 200, 1
12
Mzap[n].prod<>''
13
Да
Нет
14
sg1.Cells[0,k]:=Mzap[n].prod;
sg1.Cells[1,k]:=inttostr(Mzap[n].onng);
sg1.Cells[2,k]:=inttostr(Mzap[n].plan);
sg1.Cells[3,k]:=inttostr(Mzap[n].onkg);
sg1.Cells[5,k]:=floattostr(Mzap[n].svocep);
15
k = k +1
n = n + 1
16
autorachet
17
А
А
18
memo1.lines
Конец
19
9. процедура удаления базы: button3click.
Пояснения к алгоритму 9:
Блок 2 – очистка выбранной строки.
Блок 3 – задание начального условия цикла.
Блоки 4,5 – повторный цикл очистки массива.
Блок 6 – задание начального условия цикла.
Блоки 7,8,9 – повторение цикла перевода строки StrinGrid в массив записей.
Блок 10 – задание начального условия цикла.
Блоки 11,12,13,14,15 – повтор цикла перевода массива в StrinGrid.
Блок 16 – расчет.
1
Начало
sg1.Rows[sg1.Row].Clear;
2
n = 0
3
n = 0, 200, 1
Mzap[n].prod:='';
Mzap[n].onng:=0;
Mzap[n].plan:=0;
Mzap[n].onkg:=0;
Mzap[n].svocep:=0;
4
5
6
n = 1
n = 1, sg1.rowcount, 1
7
А
B
C
А
B
C
sg1.Cells[0,n]<>''
8
Да
Нет
Mzap[2*n].prod:=sg1.Cells[0,n];
Mzap[2*n].onng:=strtoint(sg1.cells[1,n]);
Mzap[2*n].plan:=strtoint(sg1.cells[2,n]);
Mzap[2*n].onkg:=strtoint(sg1.cells[3,n]);
Mzap[2*n].svocep:=strtofloat(sg1.cells[5,n]);
9
n = 1, k = 1
10
n = 1, 200, 1
Mzap[n].prod<>''
Да
Нет
sg1.Cells[0,k]:=Mzap[n].prod;
sg1.Cells[1,k]:=inttostr(Mzap[n].onng);
sg1.Cells[2,k]:=inttostr(Mzap[n].plan);
sg1.Cells[3,k]:=inttostr(Mzap[n].onkg);
sg1.Cells[5,k]:=floattostr(Mzap[n].svocep);
k = k +1
n = n + 1
autorachet
11
12
13
14
15
16
Конец
17
10. клик StringGrid-а.
Пояснения к алгоритму 10:
Б
1
Начало
лок 2 – подтверждение выбора.
2
memo1.lines
3
Конец
11. вызов печати.
Пояснения к алгоритму 11:
Б
1
Начало
лок 2 – вызов стандартного почтового клиента.
2
shellexecute
3
Конец
12. выход.
Пояснения к алгоритму 12:
Б
1
Начало
лок 2 – выход из программы.
1
halt
3
Конец
5. Форма представления исходных данных
По условию поставленной задачи необходимо предусмотреть хранение информации в типизированных файлах. Для решения данного вопроса, необходимо разработать типизированный элемент хранения данных – строку набора базы данных, роль которой в данном приложении будет выполнять переменная «zap», имеющая следующую структуру.
type zap=record
prod:string[80];
onng:longint;
plan:longint;
onkg:longint;
svocep:extended;
end;
Т.е. данная переменная представляет собой линейный массив переменных данных необходимого нам типа. Для организации двумерного массива, опишем в разделе переменных массив «Mzap»:
var
Mzap:array[1..200] of zap; //объявление типа массива записей
Типизированный файл представляет собой набор типизированных элементов, структура и наименование которого описаны в вышеназванном разделе переменных:
filezap: file of zap;
filenamezap:string;
6. Разработка интерфейса