- •Содержание
- •Реферат
- •Список сокращений
- •Введение
- •I аналитическая часть
- •Технико-экономическая характеристика предметной области
- •Рацион школьного питания
- •Описание опыта работы школьной столовой
- •Техническая и технологическая сущность задачи
- •Обоснование необходимости и цели использования вычислительных и телекоммуникационных средств для решения задачи
- •Постановка задачи
- •Цель и назначение создания или модернизации модулей или сервисов информационной системы
- •Общая характеристика организации решения задачи вычислительными и телекоммуникационными средствами
- •Анализ существующих разработок и обоснование выбора технологии проектирования модулей (сервисов)
- •Обоснование проектных решений
- •II проектная часть
- •Общее описание ис «Рациональное питание школьника»
- •Инфологическая модель
- •Даталогическая модель
- •Описание программы ис «рациональное питание школьников»
- •III экономическая часть
- •3.1 Обоснование экономической эффективности внедрения ис
- •3.1.1 Выбор и обоснование методики расчета экономической эффективности
- •3.1.2 Расчет показателей экономической эффективности проекта
- •IV охрана труда
- •Меры безопасности при работе за компьютером
- •Почему работа за компьютером наносит вред здоровью человека
- •Зрительная работа за компьютером и ее последствия
- •Список используемой литературы
Даталогическая модель
Под даталогической понимается модель, отражающая логические взаимосвязи между элементами данных безотносительно их содержания и физической организации. При этом даталогическая модель разрабатывается с учетом конкретной реализации системы управления базами данных (СУБД), также с учетом специфики конкретной предметной области на основе ее инфологической модели.
При переходе от инфологической модели к даталогической следует иметь в виду, что инфологическая модель включает в себя всю информацию о предметной области, необходимую и достаточную для проектирования БД. Это не означает, что все сущности, зафиксированные в инфологической модели, должны в явном виде отражаться в даталогической модели. Прежде чем строить даталогическую модель, необходимо решить, какая информация будет храниться в базе данных. Например, в инфологической модели должны быть отражены вычисляемые показатели, но вовсе не обязательно, что они должны храниться в базе данных.
Ключ или возможный ключ – это минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать сущность по оставшимся. Каждая сущность обладает хотя бы одним возможным ключом. Один из них принимается за первичный ключ. Нецелесообразно использовать ключи с длинными текстовыми значениями (предпочтительнее использовать целочисленные атрибуты).
На рисунке 6 представлена даталогическая модель ИС «рациональное питание школьников»
Рисунок 6 – Даталогическая модель ИС «Рациональное питание школьника»
Описание программы ис «рациональное питание школьников»
Информационная система «рациональное питание школьников», разработана с учетом анализа предметной области, на основании инфологической и даталогической моделей, технического задания, рекомендаций и правил по ведению данной программы. Имеет простой и понятный интерфейс.
Главное окно нашей ИС состоит из перечня продуктов, возможностью редактирования добавления и удаления строк. Тут же можно перейти в разделы склад, формирование блюда и меню в соответствии с рисунком 7.
Рисунок 7 – Главное окно
Перейдя в раздел формирование блюд, мы увидим перечень блюд внесенных с технологических карт на данный момент. У каждого есть свое содержание белков, жиров, углеводов и энергетическая ценность. А у ингредиентов каждого из блюд написано нетто и брутто, это масса продукта необходимая для этого блюда в соответствии с рисунком 8.
Рисунок 8 –Раздел блюда
Листинг 1 – раздел блюда
unit SostavBludoUnit;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, Grids, DBGrids, Menus, ExtCtrls;
type TSostavBludoForm = class(TForm) DBGrid1: TDBGrid; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; Panel1: TPanel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; BitBtn4: TBitBtn; BitBtn5: TBitBtn; Panel2: TPanel; DBGrid2: TDBGrid; procedure BitBtn1Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn4Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure BitBtn5Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var SostavBludoForm: TSostavBludoForm;
implementation
uses BludoUnit, ProductsUnit, DMUnit, BludoUnit1, EditBludoUnit;
{$R *.dfm}
procedure TSostavBludoForm.BitBtn1Click(Sender: TObject); begin i:=1; EditBludoForm.ShowModal; end;
procedure TSostavBludoForm.BitBtn3Click(Sender: TObject); var id:string; begin If DBGrid1.SelectedField.IsNull then begin Application.MessageBox(Pchar('Удаление пустой строки не возможно!'),'Warning!',mb_Ok) end else If application.MessageBox(PChar('Вы действительно хотите удалить блюдо: '+DMU.BludoZQname.AsString+' ?'),'',mb_YesNo+mb_IconQuestion)=id_Yes then with DMU do begin id:=BludoZQ.FieldByName('idbludo').AsString; EditBludoZQ.Close; EditBludoZQ.SQL.Clear; EditBludoZQ.SQL.Add('DELETE FROM Bludo WHERE idBludo="'+id+'"'); EditBludoZQ.ExecSQL; BludoZQ.Refresh; DBGrid1.Refresh; end; end;
procedure TSostavBludoForm.BitBtn2Click(Sender: TObject); begin i:=2; EditBludoForm.ShowModal; end;
procedure TSostavBludoForm.BitBtn4Click(Sender: TObject); begin BludoForm.ShowModal; end;
procedure TSostavBludoForm.N1Click(Sender: TObject); begin BitBtn1.Click; end;
procedure TSostavBludoForm.N2Click(Sender: TObject); begin BitBtn2.Click; end;
procedure TSostavBludoForm.N3Click(Sender: TObject); begin BitBtn4.Click; end;
procedure TSostavBludoForm.N4Click(Sender: TObject); begin BitBtn3.Click; end;
procedure TSostavBludoForm.BitBtn5Click(Sender: TObject); begin Close; end;
end. |
При желании можно добавить новое блюдо, указав его данные в соответствии с рисунком 9
Рисунок 9 – форма добавления нового блюда
Есть возможность редактирования состава уже созданного блюда в соответствии с рисунком 10.
Рисунок 10 – Редактирование состава блюд
Листинг 2 – Состав блюда
unit BludoUnit;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, DBCtrls, Grids, DBGrids;
type TBludoForm = class(TForm) DBLookupListBox1: TDBLookupListBox; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; Label1: TLabel; DBGrid1: TDBGrid; Label2: TLabel; procedure FormActivate(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var BludoForm: TBludoForm;
implementation
uses DMUnit, DB, MassaUnit;
{$R *.dfm}
procedure TBludoForm.FormActivate(Sender: TObject); var id:string; begin Label1.Caption:='Состав блюда - "'+DMU.BludoZQname.AsString+'"'; Label2.Caption:='Состав блюда - "'+DMU.BludoZQname.AsString+'"'; //id:=DMU.EditBludoZQ.SQL.Add('SELECT MAX(idbludo) FROM bludo'); //DMU.EditBludoZQ.ExecSQL; //DMU.EditBludoZQ.SQL.Clear; //DMU.EditBludoZQ.SQL.Add('SELECT name FROM bludo where idbludo="'+id+'"'); //DMU.EditBludoZQ.ExecSQL; end;
procedure TBludoForm.BitBtn1Click(Sender: TObject); begin MassaForm.ShowModal; end;
procedure TBludoForm.BitBtn2Click(Sender: TObject); var id:string; begin If DBGrid1.SelectedField.IsNull then begin Application.MessageBox(Pchar('Удаление пустой строки не возможно!'),'Warning!',mb_Ok) end else If application.MessageBox(PChar('Вы действительно хотите удалить ингридиент: '+DMU.SostavZQname.AsString+' ?'),'',mb_YesNo+mb_IconQuestion)=id_Yes then with DMU do begin id:=SostavZQ.FieldByName('idlink1').AsString; EditLink1ZQ.Close; EditLink1ZQ.SQL.Clear; EditLink1ZQ.SQL.Add('DELETE FROM Link1 WHERE idlink1="'+id+'"'); EditLink1ZQ.ExecSQL; SostavZQ.Refresh; DBGrid1.Refresh; end; end;
procedure TBludoForm.BitBtn3Click(Sender: TObject); begin Close; end;
end. |
Перейдя в раздел склад, можем посмотреть наличие товара на данный отрезок времени, увидеть цену и общую сумму каждого продукта в соответствии с рисунком 11.
Рисунок 11 - Склад
Листинг 3 - Склад
.unit SkladUnit;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, Grids, DBGrids, Menus;
type TSkladForm = class(TForm) DBGrid1: TDBGrid; BitBtn1: TBitBtn; PopupMenu1: TPopupMenu; BitBtn2: TBitBtn; BitBtn3: TBitBtn; BitBtn4: TBitBtn; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; procedure BitBtn4Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var SkladForm: TSkladForm;
implementation
uses DMUnit, EditSkladUnit, ProductsUnit;
{$R *.dfm}
procedure TSkladForm.BitBtn4Click(Sender: TObject); begin Close; end;
procedure TSkladForm.BitBtn1Click(Sender: TObject); begin i:=1; EditSkladForm.ShowModal; end;
procedure TSkladForm.BitBtn2Click(Sender: TObject); begin i:=2; EditSkladForm.ShowModal; end;
procedure TSkladForm.BitBtn3Click(Sender: TObject); var id:string; begin If DBGrid1.SelectedField.IsNull then begin Application.MessageBox(Pchar('Удаление пустой строки не возможно!'),'Warning!',mb_Ok) end else If application.MessageBox(PChar('Вы действительно хотите удалить со склада продукт : '+DMU.SkladZQname.AsString+' ?'),'',mb_YesNo+mb_IconQuestion)=id_Yes then with DMU do begin id:=SkladZQidsklad.AsString; EditSkladZQ.Close; EditSkladZQ.SQL.Clear; EditSkladZQ.SQL.Add('DELETE FROM sklad WHERE idsklad="'+id+'"'); EditSkladZQ.ExecSQL; SkladZQ.Refresh; DBGrid1.Refresh; end; end;
end. |
При приходе товара можно добавить наличие в соответствии с рисунком 12, изменить или удалить ненужный компонент.
Рисунок 12 – форма добавления продуктов
Для составления меню необходимо выбрать день в соответствии с рисунком 13, затем выбрать что вы ходите завтрак, обед или ужин, и создать его с помощью формы в соответствии с рисунком 14. Есть возможность посмотреть что было в предыдущие дни воспользовавшись календарем. Показывается общая энергетическая ценность за каждый из периодов. Производится экспорт перечня выбранных блюд в Excel в соответствии с рисунком 15.
Рисунок 13 – форма создание меню
Рисунок 14 – Форма Создание обеда
Рисунок 15 – Перенос в Excel
Перейдя в раздел расчеты в соответствии с рисунком 16 можно посмотреть отчет по потраченным деньгам на каждый день в формате Excel. Также предоставляется отчет о количестве израсходованных продуктов питания за десять дней за период выбранный для отчета. А так же сравнение и результат в процентах о отклонении от нормы потребляемых продуктов по каждому ингредиенту.
Рисунок 16 – Расчеты
ИС защищена от случайного нажатия на пусковые устройства, где этого существует проверка на согласие выполнения удаления в соответствии с рисунком 17. И при желании сохранить пустые строки выдаст сообщение , что еще не все поля в соответствии с рисунком 18.
Рисунок 17 – Запрос на согласие удаления компонента
Рисунок 18 – Запрет на сохранение пустых строк