Разработка базы данных 'Оптовый склад'
ФГБОУ ВПО
"Чувашский государственный университет имени И.Н. Ульянова"
Кафедра
математического и аппаратного обеспечения информационных систем
Курсовая
работа
«Оптовый
склад»
Дисциплина:
Базы данных
Выполнил Павлов В.Н.
Проверил Атаманов А.
Чебоксары
2013
Задание на курсовую работу
Оптовый склад
Задание: Склад осуществляет продажу товаров оптом. Любая фирма,
занимающаяся продажей товаров в розницу, закупает необходимые ей товары на
складе, который служит посредником между производителями и продавцами. На склад
товар поступает от некоторой фирмы-поставщика, в свою очередь склад продает
товар фирме-покупателю, заключая с ней сделку о продаже товара. Деятельность
оптового склада характеризуется следующей информацией, которую можно объединить
в группы следующим образом:
. поставщики (код поставщика, название фирмы-поставщика, адрес,
телефон);
. покупатели (код покупателя, название фирмы-покупателя, адрес,
телефон);
. товар на складе (код товара, поставщик, название товара, единицы
измерения, количество, цена покупки за единицу товара, цена продажи за единицу
товара);
. сделки о продаже (код товара, поставщик, покупатель, количество
проданного товара).
На основании описанных данных необходимо вести учет поставщиков,
покупателей, продаж, движения товара на складе..
Целью курсовой работы является разработка приложения для БД средней
сложности с типовым пользовательским интерфейсом.
Содержание
Введение
Описание приложения для БД
Назначение
Работа с программой
Таблицы
Добавление
Удаление
Поиск
Сортировка
Выход
Заключение
Список использованной
литературы
Листинг программы
Введение
Целью курсовой работы является разработка для ЭВМ базы данных средней
сложности с типовым пользовательским интерфейсом, а в частности, разработка
базы данных «Оптовый склад» на основе реляционной системы управления базами
данных Microsoft SQL Server.
На рис.1 приведена схема данных для базы данных «Оптовый склад»
Описание приложения для БД
Назначение
Создаваемая информационная система предназначена, прежде всего, для
ведения данных: Поставщики (Название поставщика, адрес и телефон).
. Покупатели (Название покупателя, адрес и телефон).
. товар на складе (код товара, поставщик, название товара, единицы
измерения, количество, цена покупки за единицу товара, цена продажи за единицу
товара);
. сделки о продаже (код товара, поставщик, покупатель, количество
проданного товара).
Кроме того, в системе должны быть реализованы возможности поиска.
Работа с программой
Данное приложение рассчитано на работу в среде Windows под управлением СУБД Microsoft SQL. При открытии приложения появляется форма «Оптовый
склад» (рисунок 2):
Рисунок 2 -Приложение «Оптовый склад»
Таблицы
Выборка таблиц из базы данных происходит посредством вкладок. В каждой
вкладке расположена одна таблица.
Добавление
база
оптовый склад пользовательский
Данная вкладка представляет собой форму для вставки данных в таблицы (так
как их несколько, и они выбираются в верхней вкладке, то для каждой таблицы
существует определенный набор атрибутов). По нажатии кнопки «Добавить» данные
заносятся в СУБД.
Удаление
В этой вкладке осуществляется удаление строки из базы данных. Опять же,
данные зависят от выбранной таблицы.
Поиск
Поиск реализован побуквенно. То есть приложение выводит все строки где
существует данная буква. Для более точного поиска необходимо либо написать все
слово целиком, либо написать хотя бы слог.
Сортировка
Для каждой таблицы свой набор сортировок. Кликнув по необходимой нам
сортировке, получим результат.
Выход
Выход в среду Windows происходит
при нажатии на красный крестик в правом верхнем углу, либо сочетанием клавиш Alt+F4.
Заключение
В курсовой работе была спроектирована, разработана база данных в
приложении Microsoft SQL. Само приложение к базе данных написано на Delphi 7. Эта база данных имеет удобный
интерфейс, главное меню, позволяет добавлять, удалять, искать и сортировать
данные.
Список использованной литературы
· А.Я.Архангельский
Программирование в С++ Builder
7-е изд.-М.:ООО «Бином-Пресс», 2010г.-896 с.(1230 с.):ил.
· Культин
Н. Б. C++ Builder в задачах и примерах. Петербург, 2005. - 336 с : ил. - СПб.:
БХВ
· Культин
Н. Б. Самоучитель по Delphi.
Петербург, 2005. - 356 с : ил. - СПб.:
БХВ
· Карпова
Т.С. Базы данных: модели, разработка, реализация. - СПб.: Питер, 2001. - 304с.
· Фаронов
В.В. Программирование баз данных в Delphi 7: Учебный курс. - СПб.: Питер, 2004
- 464 с.
· Могилёв
А.В., Пак Н.И., Хеннер Е.К. Информатика: Учеб. пособие для студ. пед. ву-зов /
Под ред. Е.К. Хеннера. - М., Academia, 2004.
· Культин
Н.Б. Программирование в Turbo Pascal и Delphi. - СПб.: BHV - Санкт-Петербург,
1998. - 240 с.
Листинг программы
procedure TForm1.pgc2Change(Sender:
TObject);pgc2.ActivePageIndex=0 then
//button.Visible:=True;btn3.Visible:=False;
btn4.Visible:=False; btn5.Visible:=False;
//label.Visible:=True;lbl2.Visible:=True;lbl3.Visible:=True;.Visible:=False;lbl8.Visible:=False;lbl9.Visible:=False;.Visible:=False;lbl21.Visible:=False;.Visible:=False;lbl25.Visible:=False;.Visible:=False;lbl22.Visible:=False;lbl23.Visible:=False;lbl26.Visible:=False;
//edit.Visible:=True;DBEditEh2.Visible:=True;DBEditEh3.Visible:=True;.Visible:=False;edt2.Visible:=False;edt3.Visible:=False;;pgc2.ActivePageIndex=1
then
//panel.Visible:=False; pnl1.Visible:=True;
pnl3.Visible:=False; pnl4.Visible:=False;.Visible:=False; pnl10.Visible:=True;
pnl11.Visible:=False;pnl12.Visible:=False;.Visible:=False; pnl7.Visible:=True;
pnl6.Visible:=False; pnl8.Visible:=False;
//button.Visible:=False; btn3.Visible:=True;
btn4.Visible:=False; btn5.Visible:=False;
//label.Visible:=True;lbl2.Visible:=True;lbl3.Visible:=True;.Visible:=False;lbl8.Visible:=False;lbl9.Visible:=False;.Visible:=False;lbl21.Visible:=False;.Visible:=False;lbl25.Visible:=False;.Visible:=False;lbl22.Visible:=False;lbl23.Visible:=False;lbl26.Visible:=False;
//edit.Visible:=True;DBEditEh2.Visible:=True;DBEditEh3.Visible:=True;.Visible:=False;edt2.Visible:=False;edt3.Visible:=False;;pgc2.ActivePageIndex=2
then //panel.Visible:=False;
pnl1.Visible:=False; pnl3.Visible:=True; pnl4.Visible:=False;.Visible:=False;
pnl10.Visible:=False; pnl11.Visible:=True;pnl12.Visible:=False;.Visible:=False;
pnl7.Visible:=False; pnl6.Visible:=True; pnl8.Visible:=False;
//button.Visible:=False; btn3.Visible:=False;
btn4.Visible:=True; btn5.Visible:=False;
//label.Visible:=False;lbl2.Visible:=False;lbl3.Visible:=False;.Visible:=True;lbl8.Visible:=True;lbl9.Visible:=True;.Visible:=True;lbl21.Visible:=False;.Visible:=False;lbl25.Visible:=False;.Visible:=False;lbl22.Visible:=False;lbl23.Visible:=False;lbl26.Visible:=False;
//edit.Visible:=True;DBEditEh2.Visible:=True;DBEditEh3.Visible:=True;.Visible:=True;edt2.Visible:=False;edt3.Visible:=False;;pgc2.ActivePageIndex=3
then
//panel.Visible:=False; pnl1.Visible:=False;
pnl3.Visible:=False; pnl4.Visible:=True;.Visible:=False; pnl10.Visible:=False;
pnl11.Visible:=False;pnl12.Visible:=True;.Visible:=False; pnl7.Visible:=False;
pnl6.Visible:=False; pnl8.Visible:=True;
//button.Visible:=False; btn3.Visible:=False;
btn4.Visible:=False; btn5.Visible:=True;
//label.Visible:=False;lbl2.Visible:=False;lbl3.Visible:=False;.Visible:=False;lbl8.Visible:=False;lbl9.Visible:=False;.Visible:=False;lbl21.Visible:=False;.Visible:=True;lbl25.Visible:=True;.Visible:=True;lbl22.Visible:=True;lbl23.Visible:=True;lbl26.Visible:=True;
//edit.Visible:=True;DBEditEh2.Visible:=True;DBEditEh3.Visible:=True;.Visible:=True;edt2.Visible:=True;edt3.Visible:=True;;;
//_____Pokupateli_nach
//create newTForm1.btn1Click(Sender: TObject);_name,
poku_adres, poku_phone:
string;_name:=QuotedStr(unit1.Form1.DBEditEh1.Text);_adres:=QuotedStr(unit1.Form1.DBEditEh2.Text);_phone:=QuotedStr(unit1.Form1.DBEditEh3.Text);Unit2.DataModule2.qryHelp
do;.Clear;.Add('exec new_pok ' + poku_name + ','+ poku_adres + ',' +
poku_phone);;.DataModule2.qryPokup.Active:=False;.DataModule2.qryPokup.Active:=True;;;
//deleteTForm1.btn2Click(Sender: TObject);_poku:
string;_poku:=QuotedStr(unit1.Form1.DBComboBoxEh1.Text);Unit2.DataModule2.qryHelp
do;.Clear;.Add('exec delete_pok
'+id_poku);;.DataModule2.qryPokup.Active:=False;.DataModule2.qryPokup.Active:=True;;;
//sortirovkaTForm1.DBCheckBoxEh1Click(Sender:
TObject);unit1.Form1.DBCheckBoxEh1.Checked=True thenunit2.DataModule2.qryPokup
do;.Clear;.Add('select * from poku order by
name');;;;;TForm1.DBCheckBoxEh2Click(Sender:
TObject);unit1.Form1.DBCheckBoxEh2.Checked=True thenunit2.DataModule2.qryPokup
do;.Clear;.Add('select * from poku order by adres');;;;;
//poiskTForm1.edt8Change(Sender: TObject);_help1,poku_help2:
string;_help1:='%'+unit1.Form1.edt8.Text+'%';_help2:=QuotedStr(poku_help1);unit2.DataModule2.qryPokup
do;.Clear;.Add('select * from poku where name like ' +
poku_help2);;;;TForm1.edt9Change(Sender: TObject);_help3,poku_help4:
string;_help3:='%'+unit1.Form1.edt9.Text+'%';_help4:=QuotedStr(poku_help3);unit2.DataModule2.qryPokup
do;.Clear;.Add('select * from poku where adres like ' +
poku_help4);;;;TForm1.edt10Change(Sender: TObject);_help5,poku_help6:
string;_help5:='%'+unit1.Form1.edt10.Text+'%';_help6:=QuotedStr(poku_help5);unit2.DataModule2.qryPokup
do;.Clear;.Add('select * from poku where phone like ' + poku_help6);;;;
//Pokupateli_kon
//Postavshiki_nach
//create newTForm1.btn3Click(Sender: TObject);_name,
post_adres, post_phone:
string;_name:=QuotedStr(unit1.Form1.DBEditEh1.Text);_adres:=QuotedStr(unit1.Form1.DBEditEh2.Text);_phone:=QuotedStr(unit1.Form1.DBEditEh3.Text);Unit2.DataModule2.qryHelp
do;.Clear;.Add('exec new_post '
+post_name+','+post_adres+','+post_phone);;.DataModule2.qryPostav.Active:=False;.DataModule2.qryPostav.Active:=True;;;
//deleteTForm1.btn6Click(Sender: TObject);_id:
string;_id:=QuotedStr(unit1.Form1.DBComboBoxEh3.Text);Unit2.DataModule2.qryHelp
do;.Clear;.Add('exec delete_post
'+post_id);;.DataModule2.qryPostav.Active:=False;.DataModule2.qryPostav.Active:=True;;;
//poiskTForm1.edt11Change(Sender: TObject);_help1,post_help2:
string;_help1:='%'+unit1.Form1.edt11.Text+'%';_help2:=QuotedStr(post_help1);unit2.DataModule2.qryPostav
do;.Clear;.Add('select * from post where name like ' +
post_help2);;;;TForm1.edt12Change(Sender: TObject);_help3,post_help4:
string;_help3:='%'+unit1.Form1.edt12.Text+'%';_help4:=QuotedStr(post_help3);unit2.DataModule2.qryPostav
do;.Clear;.Add('select * from post where adres like ' +
post_help4);;;;TForm1.edt13Change(Sender: TObject);_help5,post_help6:
string;_help5:='%'+unit1.Form1.edt13.Text+'%';_help6:=QuotedStr(post_help5);unit2.DataModule2.qryPostav
do;.Clear;.Add('select * from post where phone like ' + post_help6);;;;
//sortirovkaTForm1.DBCheckBoxEh3Click(Sender:
TObject);unit1.Form1.DBCheckBoxEh3.Checked=True thenunit2.DataModule2.qryPostav
do;.Clear;.Add('select * from post order by
name');;;;;TForm1.DBCheckBoxEh4Click(Sender:
TObject);unit1.Form1.DBCheckBoxEh4.Checked=True thenunit2.DataModule2.qryPostav
do;.Clear;.Add('select * from post order by adres');;;;;
//Postavshiki_kon
//Dogovori_nach
//create_newTForm1.btn4Click(Sender: TObject);_idt, cont_kol,
cont_idps, cont_idpk:
string;_idt:=QuotedStr(unit1.Form1.DBEditEh1.Text);_kol:=QuotedStr(unit1.Form1.DBEditEh2.Text);_idps:=QuotedStr(unit1.Form1.DBEditEh3.Text);_idpk:=QuotedStr(unit1.Form1.edt1.Text);Unit2.DataModule2.qryHelp
do;.Clear;.Add('exec new_cont
'+cont_idt+','+cont_kol+','+cont_idps+','+cont_idpk);;.DataModule2.qryContact.Active:=False;.DataModule2.qryContact.Active:=True;;;
//deleteTForm1.btn7Click(Sender: TObject);_id:
string;_id:=QuotedStr(unit1.Form1.DBComboBoxEh5.Text);Unit2.DataModule2.qryHelp
do;.Clear;.Add('exec delete_cont
'+cont_id);;.DataModule2.qryContact.Active:=False;.DataModule2.qryContact.Active:=True;;;
//poiskTForm1.edt4Change(Sender: TObject);_help1,cont_help2:
string;_help1:='%'+unit1.Form1.edt4.Text+'%';_help2:=QuotedStr(cont_help1);unit2.DataModule2.qryContact
do;.Clear;.Add('select * from cont where id_poku like ' +
cont_help2);;;;TForm1.edt5Change(Sender: TObject);_help3,cont_help4:
string;_help3:='%'+unit1.Form1.edt5.Text+'%';_help4:=QuotedStr(cont_help3);unit2.DataModule2.qryContact
do;.Clear;.Add('select * from cont where id_post like ' +
cont_help4);;;;TForm1.edt6Change(Sender: TObject);_help5,cont_help6:
string;_help5:='%'+unit1.Form1.edt6.Text+'%';_help6:=QuotedStr(cont_help5);unit2.DataModule2.qryContact
do;.Clear;.Add('select * from cont where id_tovara like ' + cont_help6);;;;
//sortirovkaTForm1.DBCheckBoxEh5Click(Sender:
TObject);unit1.Form1.DBCheckBoxEh5.Checked=True
thenunit2.DataModule2.qryContact do;.Clear;.Add('select * from cont order by
id_tovara');;;;;TForm1.DBCheckBoxEh6Click(Sender:
TObject);unit1.Form1.DBCheckBoxEh6.Checked=True
thenunit2.DataModule2.qryContact do;.Clear;.Add('select * from cont order by
kolich');;;;;
//Dogovori_kon
Sklad_nach
//create_newTForm1.btn5Click(Sender:
TObject);_idp,sk_tname,sk_ediz,sk_kol,sk_pb,sk_ps:
string;_idp:=QuotedStr(unit1.Form1.DBEditEh1.Text);_tname:=QuotedStr(unit1.Form1.DBEditEh2.Text);_ediz:=QuotedStr(unit1.Form1.DBEditEh3.Text);_kol:=QuotedStr(unit1.Form1.edt1.Text);_pb:=QuotedStr(unit1.Form1.edt2.Text);_ps:=QuotedStr(unit1.Form1.edt3.Text);Unit2.DataModule2.qryHelp
do;.Clear;.Add('exec
new_skld'+sk_idp+','+sk_tname+','+sk_ediz+','+sk_kol+','+sk_pb+','+sk_ps);;.DataModule2.qrySklad.Active:=False;.DataModule2.qrySklad.Active:=True;;;
//delenieTForm1.btn8Click(Sender: TObject);_id:
string;_id:=QuotedStr(unit1.Form1.DBComboBoxEh7.Text);Unit2.DataModule2.qryHelp
do;.Clear;.Add('exec delete_skld
'+skld_id);;.DataModule2.qrySklad.Active:=False;.DataModule2.qrySklad.Active:=True;;;
//poiskTForm1.edt14Change(Sender: TObject);_help3,sk_help4:
string;_help3:='%'+unit1.Form1.edt14.Text+'%';_help4:=QuotedStr(sk_help3);unit2.DataModule2.qrySklad
do;.Clear;.Add('select * from skld where id_post like ' + sk_help4);;;;TForm1.edt15Change(Sender:
TObject);_help5,sk_help6:
string;_help5:='%'+unit1.Form1.edt15.Text+'%';_help6:=QuotedStr(sk_help5);unit2.DataModule2.qrySklad
do;.Clear;.Add('select * from skld where tovar_name like ' + sk_help6);;;;
//sortirovkaTForm1.DBCheckBoxEh7Click(Sender:
TObject);unit1.Form1.DBCheckBoxEh7.Checked=True thenunit2.DataModule2.qrySklad
do;.Clear;.Add('select * from skld order by
tovar_name');;;;;TForm1.DBCheckBoxEh8Click(Sender:
TObject);unit1.Form1.DBCheckBoxEh8.Checked=True thenunit2.DataModule2.qrySklad
do;.Clear;.Add('select * from skld order by kolichestvo');;;;;
//Sklad_kon.