48245 (Программирование в Delphi), страница 2

2016-07-30СтудИзба

Описание файла

Документ из архива "Программирование в 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. Разработка интерфейса

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Нет! Мы не выполняем работы на заказ, однако Вы можете попросить что-то выложить в наших социальных сетях.
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
4121
Авторов
на СтудИзбе
667
Средний доход
с одного платного файла
Обучение Подробнее