Разработка базы данных на языке SQL
Содержание
Введение
. Анализ предметной области
. Описание входной и выходной информации
.1 Входная информация
.2 Выходная информация
. Обоснование выбора среды реализации
.1 Выбор среды реализации
.2 Выбор состава и параметров технических средств
. Построение реляционной базы данных
4.1 Разработка логической и физической модели базы данных
. Проектирование и реализация интерфейса программы
Заключение
Список использованных источников
Приложение
Введение
В курсовой работе будет разработана программа, которая автоматизирует работу кассира, позволяет автоматически генерировать отчеты в разрезе материально-ответственных лиц, также будут получены навыки по созданию баз данных с использованием Database Desktop.
Разработка программы будет вестись Delphi 7- это среда быстрой разработки, в которой в качестве языка программирования используется строго типизированный объектно-ориентированный язык Delphi.
1. Анализ предметной области
Касса - это подразделение организации, выполняющее кассовые операции с наличными деньгами и денежными ценностями. Для обеспечения надежной сохранности наличных денежных средств и ценностей помещение кассы должно отвечать требованиям по технической укрепленности и оборудованию сигнализацией помещений <#"justify">.1 Входная информация
Входная информация - это информация, поступающая извне и используемая для её решения.
В качестве входной информации используются 2 базы данных, которые мы создали на Database Deckopt:
Kassir.db
Tovar.db
В базе данных Kassir.db входными информациями служат:
Код кассира
ФИО
Адрес
Оклад
В базе данных Tovar.db входными информациями служат:
Код товара
Товар
Характеристика
.2 Выходная информация
Выходная информация - это информация, полученная на основе входной информации. Выходной информацией является база данных GurOper1.db.
В нем мы заносим те данные, которые мы используем для подготовки отчета. В результате БД выглядит следующим образом:
Таблица 1
№Ostatok na nachalaKod kassiraDebetDebetSKreditKreditSDataOperKolicOstatok na conecSummaOperac
3. Обоснование выбора среды реализации
.1 Выбор среды реализации
7 - это среда быстрой разработки, в которой в качестве языка программирования используется строго типизированный объектно-ориентированный язык Delphi. Delphi 7 представляет собой полное решение для разработки приложений от проектирования до развертывания по архитектуре, управляемой моделью (MDA), которое позволяет интегрировать моделирование, разработку и развертывание приложений и систем электронного бизнеса для платформы Windows. Delphi 7 содержит развитые библиотеки и инструменты для создания приложений электронного бизнеса и веб-сервисов, полностью интегрирует соответствующие технологии и качественно повышает производительность разработчиков, предоставляя все необходимое для исследования вопросов перехода на Microsoft .NET. Визуальная среда web-разработки Delphi 7 позволяет визуально строить web-приложения и кардинально уменьшает обычные временные затраты, связанные с созданием серверной составляющей приложений, включая управление сессиями в многопользовательском режиме доступа. Включённая в состав Delphi 7 технология проектирования и моделирования приложений UML позволяет эффективно проектировать свои приложения при помощи средств визуального моделирования и реорганизации кода (refactoring). Возможности Delphi 7 по интеграции, реинжинирингу и мгновенной визуализации позволяют создавать высококачественные проекты и тексты программ, применяя готовые шаблоны проектирования и создавая более крупные модели.Desktop - это утилита, во многом похожая на Paradox, которая поставляется вместе с Delphi для интерактивной работы с таблицами различных форматов локальных баз данных - Paradox и dBase, а также SQL-серверных баз данных InterBase, Oracle, Informix, Sybase (с использованием SQL Links).
.2 Выбор состава и параметров технических средств
Для решения задачи необходим состав следующих технических средств:
-Процессор Pentium с частотой 1.8 ГГц и выше;
-Минимальный объем оперативной памяти - 256 Мбайт. Рекомендуемый - 1 Гбайт и выше;
-Жесткий диск с объемом свободного пространства не менее 10 Гбайт при минимальной конфигурации и до 20 Гбайт при полной установке;
-Операционная система Microsoft Windows XP SP2 (или выше);
-Разрешение 1024x768 или 1280х1024;
-Устройство для чтения компакт-дисков.
4. Построение реляционной базы данных
.1 Разработка логической и физической модели базы данных
Построение логической модели осуществим с помощью программного средства ERWin 4.0.
Программа ERWin- средство концептуального моделирования БД.
Выберем тип модели Logical/Physical, и на логическом уровне определим:
сущности,
связи между ними,
Результат построения Логической модели представлен на рис.1, а Физическая модель изображена на рис.2.
Рис.1. Логическая модель
В построенной модели используется следующий вид связи - не идентифицирующая связь, типа «один ко многим». Значит, что один экземпляр одной сущности связан с множеством экземпляров другой сущности.
Рис. 2. Физическая модель
5. Проектирование и реализация интерфейса программы
Представленный курсовой проект содержит следующий перечень форм:
- Form1;
Data Module;
Data Module- это средство для эффективной работы с базами данных.На форме Data Module установлены компоненты для работы с базами данных.В данном случаи это компоненты:
Table(контейнеры для размещения БД)
DataSource(связующие компоненты)
В результате мы получаем следующий вид для формы Data Module:
Рис. 3. Форма Data Module
На Form 1 будут находиться основные элементы, а Data Module предназначен для эффективной работы с БД.
На Form1 представлены следующие компоненты:
DBGrid (специальная таблица для базы данных)
Button (командная кнопка для реализации в программе команд)
Edit (основной компонент для ввода)
BitBtn (пиктографическая кнопка представляющая собой один из вариантов стандартной кнопки Button.
DBNavigator (для навигации в таблице DBGrid)
Label (надпись)
RadioButton ("радиокнопка" служит для "переключения каналов")
Date Time Picker(поле ввода даты и времени)
В результате мы получаем следующий вид для формы Form1:
Рис. 4. Форма Form1
После запуска программы мы из базы данных Kassir.db выбираем кассира, выбираем из БД Tovar любой товар, при этом цена автоматически заполняет компонент Edit:
Далее в ручную заполняем Дебет, Кол-во, Кредит, устанавливаем дату, из групп операций выбираем операцию, которую нужно провести и нажимаем на кнопку ОК.
Рис. 5. Выбор товара из БД Tovar на форме Form1
Рис. 6. Заполнение оставшихся компонентов на форме Form1
Кнопка ОК предназначена для добавление операций в журнал операций, которая представляет собой базу данных GurOper1.db, а также получение результата для выполненного процесса.
В результате мы имеем следующий вид:
Рис. 7. Выполнение процесса при нажатии кнопки ОК на форме Form1
Кнопка Отчет кассира предназначен для вывода в excel формат отчет кассира. Этот отчет строится на основе выборке из журнала операции GurOper1. Для вывода мы указываем дату операции и выбираем из базы данных Kassir.db кассира, и если такие есть в журнале операций GurOper1.db, то они выводятся в excel формате.
Рис. 8. Отчет кассира
Кнопка Close предназначена для выхода из программы.
Заключение
В рамках курсового проектирования был разработан проект, который автоматизирует рабочее место кассира.
Разработана база данных для хранения информации данных характеристик товара.
В результате изучены информационные потоки данных, определена технология обработки данных, вид входных и выходных документов.
Внедрение разработанной информационной системы позволит предприятию вести централизованный учет расходов на товары и оперативно формировать отчеты по кассирам.
интерфейс программа database desktop
Список использованных источников
1.Фленов М.Е. Библия Delphi: 2004. - 668с.
.Петров В.Н. Информационные системы. - СПб.: Питер, 2008.
.Фаронов В.В. Программирование баз данных в Delphi 7: Учебный курс. - СПб.: Питер, 2004 - 464 с.
.Карпова Т.С. Базы данных: модели, разработка, реализация. - СПб.: Питер, 2005. - 304с.
.Ульман Дж., Уидом Дж. Введение в системы баз данных. - М.: Лори, 2006. - 374с.
.Карпова Т.С. Базы данных: модели, разработка. - СПб.: Питер, 2009, 304 с.
Приложение
Листинг кода главной формы проекта:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids,ComObj, ComCtrls;
type= class(TForm): TDBGrid;: TDBNavigator;: TDBGrid;: TDBNavigator;: TDBGrid;: TDBNavigator;: TGroupBox;: TLabel;: TEdit;: TLabel;: TEdit;: TLabel;: TEdit;: TLabel;: TEdit;: TLabel;: TEdit;: TGroupBox;: TRadioButton;: TRadioButton;: TRadioButton;: TEdit;: TEdit;: TEdit;: TLabel;: TLabel;: TBitBtn;: TBitBtn;: TDateTimePicker;: TRadioButton;: TRadioButton;: TRadioButton;: TButton;DBGrid1CellClick(Column: TColumn);BitBtn1Click(Sender: TObject);RadioButton3Click(Sender: TObject);Button2Click(Sender: TObject);
{ Private declarations }
{ Public declarations };: TForm1;:string;:boolean;: integer;LAV,Modul1;
{$R *.dfm}TForm1.DBGrid1CellClick(Column: TColumn);.Text:=Ligidov.Tovar.FieldByName('Cena').AsString;;TForm1.BitBtn1Click(Sender: TObject);:string;:string;:string;
// stoim, naz,nar:string;.GurOper1.Insert;.GurOper1.FieldByName('Debet').AsString:= Edit3.Text;.GurOper1.FieldByName('Kredit').AsString:= Edit4.Text;.GurOper1.FieldByName('DatOper').AsString:=DateToStr(DateTimePicker1.Date);.GurOper1.FieldByName('KodKassira').AsString:=Ligidov.Kassir.FieldByName('KodKassira').AsString;.GurOper1.FieldByName('Kolic').AsString:=Edit2.Text;:=CalKuljator(Edit1.Text,Edit2.Text,'*',2);:=ZnakZamena(a0,'.',',');.GurOper1.FieldByName('summa').AsString:=a0;.Text:=a0;radiobutton1.Checked then.Text:=a0;.Text:=inttostr(0);:='продажа ';:=a1+Ligidov.Tovar.FieldByName('Tovar').AsString;.GurOper1.FieldByName('Operac').AsString:=a2;;radiobutton2.Checked then.Text:=inttostr(0);.Text:=a0;:='возврат ';:=a1+Ligidov.Tovar.FieldByName('Tovar').AsString;.GurOper1.FieldByName('Operac').AsString:=a2;;radiobutton3.Checked then:=edit6.text;.GurOper1.FieldByName('Operac').AsString:=a2;;radiobutton4.Checked then.Text:=inttostr(0);.Text:=a0;:='Оклад';:=a1+Ligidov.Kassir.FieldByName('FIO').AsString;.GurOper1.FieldByName('Operac').AsString:=a2;;radiobutton5.Checked then.Text:=inttostr(0);.Text:=a0;
a1:='наличка в Банк';:=a1;
Ligidov.GurOper1.FieldByName('Operac').AsString:=a2;;radiobutton6.Checked then.Text:=a0;.Text:=inttostr(0);:='погасили долг';:=a1;.GurOper1.FieldByName('Operac').AsString:=a2;;.GurOper1.FieldByName('DebetS').AsString:= Edit7.Text;.GurOper1.FieldByName('KreditS').AsString:= Edit8.Text;.GurOper1.Post;;TForm1.RadioButton3Click(Sender: TObject);.Text:='';;TForm1.Button2Click(Sender: TObject);,dat1,dat2,G0,s0,k0, kodW,KodPr,a0,a01,a1,a2 :string;,Gir1,SGir1,sum0,kol0,Sum1,kol1,Ssum1,Skol1:real;, n2,i1,i,s1,s2,s3:integer;,Sheet,Colum:Variant;,skolk1,skold2, skolk2, skold3,skolk3, kold1,kolk1,kold2, kolk2, kold3,kolk3,,sd1,k1,sk1,sk2,d2,k2,sd2,d3,sd3,k3,sk3:real;Ligidov do begin
//KodPr1:=Kassir.fieldbyname('KodKassira').AsString;:='01.01.2000';:=DateToStr(DateTimePicker1.Date);:=a0;
//a01:=DateToStr(DateTimePicker2.Date);
//dat2:=a01;:=CreateOleObject('Excel.Application');.Visible:=true;.Workbooks.Add(-4167);.Workbooks[1].WorkSheets[1].Name:='Оборотка';:=XLApp.Workbooks[1].WorkSheets['Оборотка'].Columns;:=1;.Columns[1].ColumnWidth:=5;.Columns[2].ColumnWidth:=30;.Columns[3].ColumnWidth:=10;.Columns[4].ColumnWidth:=15;.Columns[5].ColumnWidth:=10;.Columns[6].ColumnWidth:=15;.Columns[7].ColumnWidth:=10;.Columns[8].ColumnWidth:=10;:=XLApp.Workbooks[1].WorkSheets['Оборотка'].Rows;.Rows[2].Font.Bold:=true;.Rows[1].Font.Bold:=true;.Rows[1].Font.Color:=clBlue;.Rows[1].Font.Size:=12;:=XLApp.Workbooks[1].WorkSheets['Оборотка'];
//n2:=0;.Cells[n2,1]:='Журнал операций за '+a0 +'+'+Kassir.fieldbyname('FIO').AsString;
iNC(n2);.Cells[n2,2]:='Остаток на начала '+a0 ;
Ligidov.SetBase4('GurOper1.DB','DatOper','Debet','','','Summa','Summa','01.01.2000',a0,'50','','',kold1,d1);.SetBase4('GurOper1.DB','DatOper','Kredit','','','Summa','Summa','01.01.2000',a0,'50','','',kold1,d2);:=d1-d2;(d3:13:2,a1);:=Trim(a1);.Cells[n2,5]:=a1;(n2);
//Sheet.Cells[n2,0]:='?? ';.Cells[n2,1]:='№№ ';
Sheet.Cells[n2,2]:='Наименование операции';.Cells[n2,3]:='Дебет';.Cells[n2,4]:=' суммаДебет';.Cells[n2,5]:='Кредит';.Cells[n2,6]:='суммаКредит';
Sheet.Cells[n2,7]:='Сумма ';
iNC(n2);:=0; s2:=0;s3:=0;Ligidov do begin('GurOper1.DB','DatOper','','','','','Summa',a0,a0,'','','',kold1,d1);.First;
//a1:=Query1.fieldbyname('KodTovara').AsString;
//KodPr:=Query1.fieldbyname('KodKassira').AsString;.Cells[n2,2]:=Query1.fieldbyname('Operac').AsString;.Cells[n2,3]:=Query1.fieldbyname('Debet').AsString;.Cells[n2,4]:=Query1.fieldbyname('DebetS').AsString;.Cells[n2,5]:=Query1.fieldbyname('Kredit').AsString;.Cells[n2,6]:=Query1.fieldbyname('KreditS').AsString;.Cells[n2,7]:=Query1.fieldbyname('Summa').AsString;.Cells[n2,1]:=IntToStr(n2-2);:=s2+Query1.fieldbyname('DebetS').AsInteger;:=s3+Query1.fieldbyname('KreditS').AsInteger;:=s2-s3;.Next;(n2);Query1.Eof;.Cells[n2,2]:='Итого';.Cells[n2,4]:=IntToStr(s2);.Cells[n2,6]:=IntToStr(s3);.Cells[n2,7]:=IntToStr(s1);
Sheet.Cells[n2+3,7]:='Подпись кассира ___________________________';.Cells[n2+5,7]:='Подпись бугалтера _________________________';
end;
Листинг кода формы Data Module проекта:
unit LAV;, Classes, DBTables, DB;= class(TDataModule): TDataSource;: TDataSource;: TDataSource;: TDataSource;: TTable;: TTable;: TTable;: TQuery;SetBase3(Fils,Datp,Buhp,KodWrkPl,ScetPl,DaTT1,DaTT2,szet,KodWrk,Korenscet:string);SetBase4(Fils,Datp,Buhp,KodWrkPl,ScetPl,Kolp,Sump,DaTT1,DaTT2,szet,KodWrk,Korenscet:string; Var Kol1,Sum1:real);
{ Private declarations }
{ Public declarations };: TLigidov;:string;
{$R *.dfm}TLigidov.SetBase4(Fils,Datp,Buhp,KodWrkPl,ScetPl,Kolp,Sump,DaTT1,DaTT2,szet,KodWrk,Korenscet:string; Var Kol1,Sum1:real);,s,s1,s0,a1,a0:string;:integer;, summ1:real;(Fils,Datp,Buhp,KodWrkPl,ScetPl,DaTT1,DaTT2,szet,KodWrk,Korenscet);
//SetBase3(Fils,Datp,KodWrkPl,ScetPl,DaTT1,DaTT2,KodWrk,Korenscet);:=0; summ1:=0;.First;i1:=1 to Query1.RecordCount do begin
//Koli1:=Koli1+Query1.FieldByName(Kolp).AsFloat;:=summ1+Query1.FieldByName(Sump).AsFloat;.Next;;//i:=Koli1;:=summ1;;TLigidov.SetBase3(Fils,Datp,Buhp,KodWrkPl,ScetPl,DaTT1,DaTT2,szet,KodWrk,Korenscet:string);,s,s1,s0,a1,a0:string;
//TekDir:='C:\Scet60';.DataSet:=Query1;
//Dbgrid1.DataSource:=FDataSource4;.DatabaseName:=TekDir;.Close;.sql.Clear;.sql.Add('SELECT * FROM '+Fils);:='WHERE ('+Datp+' BETWEEN "'+DaTT1+'" and "'+DaTT2+'")';.sql.Add(a1);
//if length(BuhP)>0 then Query1.sql.Add('and ('+BuhP+' LIKE "%" ||'+'"'+szet+'" || "%")');length(BuhP)>0 then Query1.sql.Add('and ('+BuhP+'="'+szet+'")');length(ScetPl)>0 then Query1.sql.Add('and ('+ScetPl+' LIKE "%" ||'+'"'+Korenscet+'" || "%")');length(KodWrkPl)>0 then Query1.sql.Add('and ('+KodWrkPl+'="'+KodWrk+'")');
{:='and ('+Datp+' BETWEEN "'+DaTT1+'" and "'+DaTT2+'")';.Query1.sql.Add(a1);
}.sql.SaveToFile('sql11.txt');.open;;
Больше работ по теме:
Предмет: Информационное обеспечение, программирование
Тип работы: Курсовая работа (т)
Новости образования
КОНТАКТНЫЙ EMAIL: [email protected]
Скачать реферат © 2017 | Пользовательское соглашение
ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ