
- •Дипломный проект
- •Глава 2. Технологический раздел. Средства отладки и тестирования программ.
- •Глава 3. Организационно экономическая часть, расчет затрат на
- •Эскизный проект Литературный обзор.
- •2.1. Базы данных, отношения и реляционные базы данных
- •2.1.1. Базовые концепции
- •2.1.2. Определение отношения
- •2.1.3 Определение реляционной бд
- •3. Постановка задачи
- •Требования, предъявляемые к системе автоматизированного учета.
- •Выбор платформы проектирования, обоснование
- •4. Технический проект
- •Общая структура системы
- •Структуры данных
- •4.3. Связи между объектами
- •4.4. Лингвистическое описание
- •Алгоритмические связи
- •4.6. Информационные потребности пользователя
- •Ограничение целостности
- •4.8. Даталогическая модель данных
- •Технический проект
- •Заключение
- •Глава 2 Технологический раздел
- •1999 Г.
- •1. Введение
- •2. Этапы решения задачи на эвм
- •0. Постановка задачи.
- •2.1. Составление проекта.
- •2.2. Алгоритмизация.
- •2.3. Программирование.
- •2.4. Препарация.
- •2.5. Трансляция.
- •2.6. Отладка.
- •2.7. Оформление программы
- •2.8. Счет.
- •2.9. Отчет о работе.
- •2.10. Модернизация.
- •3. Необходимость отладки разработанного программного продукта
- •4. Методы и средства отладки
- •4.1.5. Печать текста
- •4.2. Контроль результатов
- •Тестирование
- •4.4 Алгоритмическое тестирование
- •4.5.Функциональное или аналитическое тестирование
- •4.6. Содержательное тестирование
- •5 Типы тестов
- •7. Локализация ошибок
- •7.1. Способы локализации
- •7.2. Классификация средств локализации ошибок
- •8. Технология отладки программы автоматизации учета движения товаров на складе малого предприятия
- •9. Заключение
- •Глава 3. Организационно – экономическая часть
- •1999 Г.
- •1. Введение.
- •2. Основные понятия.
- •3. Алгоритм оценки затрат на создание программного продукта.
- •4. Расчет затрат на разработку программы.
- •5. Заключение.
- •Глава 4.
- •2.Производственная безопасность.
- •2.1. Введение.
- •2.2. Требования к производственному освещению.
- •2.3. Защита от излучений.
- •2.4. Электробезопасность.
- •2.5. Защита от шума и вибрации.
- •2.6. Опасные психофизиологические и вредные
- •4. Заключение
4.8. Даталогическая модель данных
Под даталогической моделью (ДЛМ) подразумевается отображение конечных связей между реальными объектами предметной области к их смысловому содержанию в среде хранения. ДЛМ строится в терминах информационных единиц, предусмотренных в конкретной системе управления базами данных.
Все объекты и связи между объектами в нашем случае можно выразить следующими соотношениями:
Товар (обозначение товара, описание товара, единица измерения кол-ва, количество хранимого товара в единицах измерения, цена товара) - таблица Goods.txt;
Поставщик (Index поставщика, описание поставщика) - таблица Vendors.txt;
Связи (Index товара, Index поставщика, объем поставленного товара в единицах измерения ) - таблица Links.txt;
В приведенных отношениях номер сочетания индексов и порядковый номер в переменной - это одно и то же. Данное разбиение позволяет избежать избыточности - таблица, построенная на первом отношении будет содержать не изменяющиеся данные и, если в модель не добавлять новых переменных, будет служить неким неизменяемым справочником.
На уровне таблиц это выглядит следующим образом:
В приведенных ниже таблицах обозначение вида «X» в колонке «№», где X - номер поля, означает, что данное поле является ключевым.
Goods.txt
№ |
Имя |
Тип |
Комментарий |
“1” |
Ig |
Integer |
Обозначение индекса |
2 |
Good |
String |
Наименование товара |
3 |
Izm |
String |
Единица измерения |
4 |
Count |
Real |
Количество товара |
5 |
Price |
Real |
Цена товара |
Vendors.txt
№ |
Имя |
Тип |
Комментарий |
“1” |
Iv |
Integer |
Index поставщика |
2 |
Vendor |
String |
Поставщик |
Links.txt
№ |
Имя |
Тип |
Комментарий |
“1” |
Ig |
Integer |
Index товара |
“2” |
Iv |
Integer |
Index поставщика |
3 |
Post |
Integer |
Объем поставки |
Технический проект
В этом разделе рассматриваются алгоритмы клиентской части реализации доступа к данным в архитектуре клиент/сервер.
Конфигурация технических средств
Требования к составу и параметрам технических средств соответствуют требованиям к программному продукту - системе моделирования макроэкономики.
Минимально необходимое оборудование:
PC 80486 SX2-66;
RAM 12 MB;
HDD 50 MB свободных;
Screen Color VGA.
Printer.. Любой матричный
Рекомендуемое оборудование:
PC Pentium 133 МГц;
RAM 32 MB;
HDD 30 MB свободных;
Screen Color SVGA;
Printer HP LASER JET
Необходимое программное обеспечение:
ОС Windows’95;
Драйвера для принтера.
Алгоритмы предварительной работы программы
Общий алгоритм работы программы:
Структура программы
Структура программы представлена на риc.1.10.
Рис.1.10. Структура программы.
Иерархия форм.
Формы баз данных Delphi можно разделить на четыре следующих функциональных класса.
1. Редактирование и ввод. Простая форма, представляющая одну запись одной таблицы.
2. Сетка. Форма, которая отображает несколько строк одной таблицы, как это делается в программах электронных таблиц (каждая строка таблицы базы данных занимает одну строку на экране).
3. Управляющая сетка. Форма, которая отображает несколько строк одной таблицы (каждая строка таблицы базы данных занимает несколько строк экрана).
4. Главная-подчиненная. Форма, которая показывает строки двух или более связанных таблиц.
При
разработке приложения прежде всего
создаются и сохраняются в хранилище
объектовDelphi
формы-предки. Затем на их основе создаются
все формы,
являющиеся потомками.
Рис.1.11. Иерархия форм.
Главная форма MAIN содержит процедуры реализующие “Акт приема товара”, “Акт снятия товара”, вызовы дочерних форм (посредством выбора одного из пунктов меню).
Рис. 1.12 Главная форма перед началом работы.
Выбор режима работы происходит с помощью меню:
Рис 1.13. Пример работы с меню.
После выбора режима работы, появляется одна из панелей. Рассмотрим работу программы на примере режима “Акт приёма товара”:
Рис 1.14 Режим “Акт приёма товара”
Работа с формой происходит следующим образом:
Пользователь выбирает из списка поставщика, в случае отсутствия поставщика в списке, его можно добавить, все изменения в составе поставщиков немедленно отображаются в Базе Данных.
Затем пользователь вводит наименование товара поступившего от поставщика, единицы измерения товара, цену за единицу и количество поставленных единиц, нажимая на кнопку “добавить” (справа) пользователь заносит информацию во временную таблицу.
Реализована так же вспомогательная автоматическая функция подсчета общей суммы, уплаченной за товар
После окончательного формирования акта поставки нажимается
Кнопка “Записать в книгу” и запись из временной таблицы переносится в Базу Данных.
Приведем участок текста программы, реализующий этот алгоритм
procedure TForm1.N5Click(Sender: TObject);
var f:TextFile;
s:string;
begin
// Блокируем ненужные пункты меню
N1.enabled:=false;
N2.enabled:=false;
N3.enabled:=false;
N4.enabled:=false;
// Открываем файл БД ПОСТАВЩИК
assignfile(f,'vendors.txt');
reset(f);
listbox.Items.Clear;
// Заполняем список ПОСТАВЩИКов
while not eof(f) do
begin
readln(f,s);
listbox.items.add(s);
end;
// Показываем Панель
panel1.Visible:=True;
// Закрываем файл БД ПОСТАВЩИК
closefile(f);
end;
// Процедура отображения выбранного поставщика в заголовке
// Акта Приёма Товара
procedure TForm1.ListBoxClick(Sender: TObject);
var i:integer;
begin
i:=0;
while not listbox.selected[i] do inc(i);
Vend.Caption:='Поставщик : '+Listbox.Items.Strings[i];
canAccept:=(canAccept or 1);
if canAccept=3 then btAccept.Enabled:=True;
end;
// Пользователь выбрал ОТМЕНА
procedure TForm1.btCancelClick(Sender: TObject);
begin
Panel1.Visible:=False;
N1.enabled:=true;
N2.enabled:=true;
N3.enabled:=true;
N4.enabled:=true;
end;
// Добавляем строку в список ПОСТАВЩИКов и – одновременно в БД
procedure TForm1.btAdd1Click(Sender: TObject);
var f:TextFile;
begin
assignfile(f,'vendors.txt');
Append(f);
ListBox.Items.Add(Edit3.Text);
Writeln(f,Edit3.Text);
closefile(f);
btAdd1.Enabled:=false;
end;
// Удаляем строку из списка
procedure TForm1.btDeleteClick(Sender: TObject);
var f:TextFile;
i:integer;
begin
assignFile(f,'vendors.txt');
rewrite(f);
i:=0;
while not listbox.selected[i] do inc(i);
ListBox.Items.Delete(i);
for i:=0 to ListBox.Items.Count-1 do
writeln(f,Listbox.Items[i]);
closefile (f)
end;
// Добавляем строку во временную таблицу
procedure TForm1.btAdd2Click(Sender: TObject);
begin
Table.Cells[0,CurrentRow]:=Goods.Text;
Table.Cells[1,CurrentRow]:=Izm.Text;
Table.Cells[2,CurrentRow]:=Price.Text;
Table.Cells[3,CurrentRow]:=Count.Text;
Table.Cells[4,CurrentRow]:=intToStr(strToint(Price.Text)*strToint(Count.Text));
inc(currentRow);
btAdd2.Enabled:=false;
entered:=0;
canAccept:=(canAccept or 2);
if canAccept=3 then btAccept.Enabled:=True;
end;
// Делаем окончательную запись в БД
procedure TForm1.btAcceptClick(Sender: TObject);
var f:textfile;
i,j:integer;
buff: string;
flag:boolean;
begin
assignfile(f,'goods.txt');
FileMode:=2;
i:=0;
while i<CurrentRow do
begin
reset(f);
flag:=true;
while flag do
begin
readln(f,buff);
if pos(Table.Cells[0,i],buff)>0 then
begin
flag:=false;
writeln(f,Table.Cells[0,i]+' '+Table.Cells[1,i]+' '+Table.Cells[2,i]+' '+Table.Cells[3,i]+' '+Table.Cells[4,i]+' '+Table.Cells[5,i]);
end
else
if flag and eof(f)then
begin
closefile(f);
append(f);
flag:=false;
writeln(f,' '+Table.Cells[0,i]+' '+Table.Cells[1,i]+' '+Table.Cells[2,i]+' '+Table.Cells[3,i]+' '+Table.Cells[4,i]+' '+Table.Cells[5,i]);
end;
end;
inc(i);
closefile(f);
end;
end;
Еще один из режимов работы системы – печать сводки цен, вот как выглядит панель, иллюстрирующая этот режим:
Рис. 1.15. Режим Печать сводки цен кладовой
Процедура, заполняющая список в панели из базы данных:
procedure TForm1.N25Click(Sender: TObject);
var f:textfile;
i,t,j:integer;
s:string;
begin
AssignFile(f,'goods.txt');
i:=0;
ReSet(f);
while not eof(f) do
begin
readln(f,s);
delete(s,1,1);
for j:=0 to 1 do
begin
t:=pos(' ',s);
Prices.Cells[j,i]:=Copy(s,1,t);
delete(s,1,t);
end;
Prices.Cells[2,i]:=s;
inc(i);
Prices.rowCount:=Prices.RowCount+1;
end;
closefile(f);
Panel2.Visible:=True;
end;
Покажем так же насколько элегантно и просто в Windows – Delphi реализована процедура вызова панели настройки принтера:
Рис 1.16. Настройка принтера
Cоответствующая процедура:
procedure TForm1.N36Click(Sender: TObject);
begin
PrinterSetupDialog.execute
end;
Действительно очень простая и в тоже время важная процедура.
Форму Service мы здесь рассматривать не будем, потому что функции реализованные в той части программы не являются специфичными ни с математической, ни с программистской точки зрения и представляют собой лишь готовые шаблоны-заготовки печатаемых финансовых документов.
Еще одна, третья и последняя форма, входящая в состав автоматизированной системы учета товаров является форма About.
Вызов её из основной формы производится следующей процедурой:
procedure TForm1.N37Click(Sender: TObject);
begin
Form3:=TForm2.Create(Self);
Form3.Show;
end;