Минский Государственныйпрофессионально-технический колледж электроники
КУРСОВАЯ РАБОТА
ТЕМА: Учет хранения и движенияпродукции фирмы
Выполнила Фарзалиева Л.
Проверил Шавейко А. А.
Минск 2006
СОДЕРЖАНИЕ
Введение
1. Анализ задачи
1.1 Описание предметной области
1.2 Модель данных
1.3 Среда разработки
1.4 Требования к программе
2.Проектирование задачи
2.1 Организация данных
2.2 Функции системы
2.3 Алгоритм работы
2.4 Выходные документы
3.Применение
3.1 Назначение программы
3.2 Инструкции пользователю
Заключение
Списокиспользуемой литературы
Приложение 1
ПРиложение 2
Введение
Для принятия обоснованныхи эффективных решений в производственной деятельности, в управлении экономикойи в политике современный специалист должен уметь с помощью компьютеров исредств связи получать, накапливать, хранить и обрабатывать данные, представляярезультат в виде наглядных документов. Поэтому, современные фирмы насегодняшний день нуждаются в программном обеспечении, способном упроститьработу с продукцией, хранящейся на складах и ее оборотом. Данная курсоваяработа позволяет систематизировать данные по продукции фирмы, отследитьдвижение товара, его хранение и наличие на складе. Так же дает возможностьполучить подробную информацию о товаре.
1. Анализ задачи
1.1 Описание предметной области
В данном проекте стоитзадача создать базу данных для учета хранения и движения товара на складе, атак же дополнительные данные и функции, позволяющие систематизировать работуфирмы.
В качестве входнойинформации будут взяты договора дистебьютеров и данные об ассортименте товара.Выходной информацией будут прайс-листы, отчеты о товарах и дистебьютерах.
1.2 Модель данных
Реляционная база данных –это совокупность отношений, содержащих всю информацию, которая должна хранитьсяв БД. Однако пользователи могут воспринимать такую базу данных как совокупностьтаблиц.
В конце 60-х годовпоявились работы, в которых обсуждались возможности применения различныхтабличных даталогических моделей данных, т.е. возможности использованияпривычных и естественных способов представления данных. Наиболее значительнойиз них была статья сотрудника фирмы IBM д-ра Э.Кодда (Codd E.F., A Relational Model of Data for Large Shared Data Banks. CACM13: 6, June 1970), где, вероятно, впервые былприменен термин «реляционная модель данных».
Будучи математиком пообразованию Э.Кодд предложил использовать для обработки данных аппарат теориимножеств (объединение, пересечение, разность, декартово произведение). Онпоказал, что любое представление данных сводится к совокупности двумерныхтаблиц особого вида, известного в математике как отношение – relation (англ.).
Наименьшая единица данныхреляционной модели – это отдельное атомарное (неразложимое) для данной моделизначение данных. Так, в одной предметной области фамилия, имя и отчество могутрассматриваться как единое значение, а в другой – как три различных значения.
Доменом называетсямножество атомарных значений одного и того же типа. Смысл доменов состоит вследующем. Если значения двух атрибутов берутся из одного и того же домена, то,вероятно, имеют смысл сравнения, использующие эти два атрибута (например, дляорганизации транзитного рейса можно дать запрос «Выдать рейсы, в которыхвремя вылета из Москвы в Сочи больше времени прибытия из Архангельска в Москву»).Если же значения двух атрибутов берутся из различных доменов, то их сравнение,вероятно, лишено смысла: стоит ли сравнивать номер рейса со стоимостью билета?
Степень отношения – эточисло его атрибутов. Отношение степени один называют унарным, степени два – бинарным,степени три – тернарным, а степени n – n-арным.
Каждое отношение обладаетхотя бы одним возможным ключом, поскольку по меньшей мере комбинация всех егоатрибутов удовлетворяет условию уникальности. Один из возможных ключей (выбранныйпроизвольным образом) принимается за его первичный ключ. Остальные возможныеключи, если они есть, называются альтернативными ключами.
Вышеупомянутые инекоторые другие математические понятия явились теоретической базой длясоздания реляционных СУБД, разработки соответствующих языковых средств ипрограммных систем, обеспечивающих их высокую производительность, и созданияоснов теории проектирования баз данных. Однако для массового пользователяреляционных СУБД можно с успехом использовать неформальные эквиваленты этих понятий:
Отношение – Таблица(иногда Файл),
Кортеж – Строка (иногдаЗапись),
Атрибут – Столбец, Поле.
При этом принимается, что«запись» означает «экземпляр записи», а «поле»означает «имя и тип поля».
1.3 Среда разработки
Курсовой проект был выполненна языке программирования Borland Delphi 7.0.Таблицы разрабатывались в приложении Database Desktop. Для более понятного иудобного интерфейса использовались такие компоненты как DBGrid, DBNavigator. Запросы создавались с помощьюкомпонента Query. А отчёты на основе запросов спомощью компонентов RvQueryConnection и RvProject в приложении Rave Designer.
1.4 Требования кпрограмме
Программа совместима с операционными системами Windows 95/98/ME/ /2000/XP.Для работы данной программы необходим ПК, имеющий следующие характеристики:
ØОперационнаясистема Windows 95 и выше;
ØПроцессор не нижеPentium 100;
ØЕмкость ОЗУ нениже 32 Мб;
ØДиск 3,5” или CD-ROM 4-x;
Ø16 Мбайтсвободного места на жестком диске;
2.Проектирование задачи
2.1 Организация данных
В курсовом проектеиспользуется база данных состоящая из четырёх таблиц:
— “Product” – перечень ассортимента продукциифирмы
— “Distributions” – информация о сотрудниках фирмы
— “Sclad” – сведения о наличии товара наскладе
— “Tovar_dvijenie” – сведения об отгрузке товара
Структуры таблицприведены в таблицах 1.1, 1.2, 1.3, 1.4
/>
Таблица 1.1 — «Product»
PKod – код продукта
PNaimenovanie – название продукта
POb’em – объем продукта
PCena – цена продукта в рублях
/>
Таблица 1.3 — «Sclad»
SKod – код продукта
SNaimenovanie – название продукта
SDataPolych – дата получения продукта на склад
SGoden_do – срок истечения годности продукта
SKolichestvo – количество единиц прибывшегопродукта
SCena – цена продукта в рублях
SSymma – общая сумма по данному продукту
/>
Таблица 1.2 — «Distributions»
DID – личный номер сотрудника
DFamiliya – фамилия
DImya — имя
DOtchestvo — отчество
DDataRojd – дата рождения
DStrana — страна
DIndex — индекс
DGorod = город
DAdres — адрес
DDomTel домашний телефон
DRabTel – рабочий телефон
DE-mail – электронная почта
DDataDog – дата подписания договора скомпанией
/>
Таблица 1.4 — «Tovar_dvijenie»
Kod – номер п/п
TID — личный номер сотрудника
TDataOtgr – дата отгрузки продукта
TKod — код продукта
TNaimenovanie — название продукта
TKolichestvo — количество
TCena – цена в рублях
2.2 Функции системы
В данном подразделевыбираются и кратко описываются функции данной базы данных, которые предполагаетсяавтоматизировать с использованием разрабатываемой информационной системы:
1) Учет информации обассортименте продукции
Данная функция создаетперечень продукции, которую можно заказать. Весь ассортимент долженсвоевременно пополняться и обновляться. Таким образом есть возможностьсвоевременно представлять весь ассортимент продукции покупателям идистебьютерам и давать краткую информацию о продукте.
2) Учет сведений о дистебьютерах фирмы
Данная функция позволяетвести кадровый учет сотрудников. Все анкеты с необходимой информацией и личныминомерами дистебьютеров хранятся в таблице.
3) Учет принятых товаров
Данная функция позволяетобновлять сведения о продукции, хранящейся на складе.
4) Учет хранения товаров и его движения
Данная функция позволяетотслеживать движение товара, его отгрузку со склада и его хранение по срокугодности. Функция осуществляет своеобразный контроль за товаром и дает данныедля обновления других функций.
2.3 Алгоритм работы
/>
2.4 Выходные документы
Выходными документами вданной программе являются отчёты, построенные на основе SQL запросов. Предусмотренные впрограмме отчёты приведены в приложении 2.
/>/>3 Применение/>/>3.1 Назначениепрограммы
Разработанная мной базаданных служит для ведения хозяйственной деятельности фирмы, являющейсяпосредником между косметической компанией и дистебьютерами. Она несетспецифический характер и может использоваться только для данной сферыдеятельности фирмы.
3.2 Инструкция пользователю
Для того чтобы начатьработу с программой, необходимо запустить файл Baza.exe.После этого запуститься главная форма. Для того, чтобы начать работу с даннымитаблиц, необходимо нажать на кнопку «Таблицы» и на появившемся окне выбратьнужную таблицу. Далее таблицы можно редактировать, вносить изменения, качающиесятолько входной и выходной информации. Для удобного изменения и обновленияданных таблиц на нижней панели форм расположен навигатор (рис. 1).
/>
Рис. 1 — Навигатор
Для того, чтобы им управлять,необходимо ознакомиться с его функциями (табл. 1).
Кнопка
Обозначение
Действие
/> К первой nbFirst Указатель текущей записи перемещается к первой записи файла данных
/> К предыдущей nbPrior Указатель текущей записи перемещается к предыдущей записи файла данных
/> К следующей nbNext Указатель текущей записи перемещается к следующей записи файла данных
/> К последней nbLast Указатель текущей записи перемещается к последней записи файла данных
/> Добавить nblnsert В файл данных добавляется новая запись
/> Удалить nbDelete Удаляется текущая запись файла данных
/> Редактирование nbEdit Устанавливает режим редактирования текущей записи
/> Сохранить nbPost Изменения, внесенные в текущую запись, записываются в файл данных
/> Отменить Cancel Отменяет внесенные в текущую запись изменения
/> Обновить nbRefresh Записывает внесенные изменения в файл
Там же, на нижней панеливы найдете все необходимые для управления базой данных кнопки (запросы спараметрами, отчеты).
Чтобы узнать о наличииданного продукта на складе, необходимо воспользоваться отчетом. Рядом снадписью «Поиск товара» нажмите на кнопку «ОК». Выскочит диалоговое окно, гденужно ввести название интересующего товара. После чего появится форма с отчетомо наличии товара на складе.
Для выхода из программынажмите кнопку «Close».
Заключение
В ходе выполнения работыбыли закреплены знания по созданию и проектированию баз данных в среде Borland Delphi 7, а также приобретены практические навыки в созданиипрограммных приложений на данном языке программирования.
Результатом проделанной работы является база данных «Baza» выполняющая все необходимые задачиданного курсового проекта.
Списокиспользуемой литературы
1. В.В. Фараонов Delphi. Программирование на языке высокогоуровня. – СПб: Питер, 2004.
2. ERwin — современное средствопроектирования баз данных — www.interface.ru
3. Горев А., Ахаян Р., Макашарипов С.Эффективная работа с СУБД. –СПб.: Питер, 1997.
4. Шкрыль А.А. Разработкаклиент-серверных приложений в Delphi.– СПб.: БХВ-Петербург, 2006.
Приложение 1
unit Glavnaya;
interface
uses
Windows,Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,Buttons, StdCtrls, jpeg, ExtCtrls;
type
TForm1 =class(TForm)
Button1:TButton;
BitBtn1:TBitBtn;
Image1:TImage;
Image2:TImage;
Image3:TImage;
procedureButton1Click(Sender: TObject);
private
{ Privatedeclarations }
public
{ Publicdeclarations }
end;
var
Form1: TForm1;
implementation
uses Product,Vibor_tabl;
{$R *.dfm}
procedureTForm1.Button1Click(Sender: TObject);
begin
Form4.show;
end;
end.
unit Product;
interface
uses
Windows,Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls, Buttons, DBCtrls, Grids, DBGrids, ExtCtrls, DB,
DBTables;
type
TForm2 =class(TForm)
Panel1:TPanel;
Panel2:TPanel;
Panel3:TPanel;
DBGrid1:TDBGrid;
DBGrid2:TDBGrid;
DBNavigator1:TDBNavigator;
BitBtn1:TBitBtn;
Label1:TLabel;
Button1:TButton;
Button2:TButton;
procedureButton1Click(Sender: TObject);
procedureButton2Click(Sender: TObject);
private
{ Privatedeclarations }
public
{ Publicdeclarations }
end;
var
Form2: TForm2;
implementation
uses DM1,Zapros_tovar;
{$R *.dfm}
procedureTForm2.Button1Click(Sender: TObject);
begin
Form3.Query1.Close;
Form3.Query1.Params[0].AsString:=InputBox('Zapros','Введите название товара','0');
Form3.Query1.Open;
Form3.Show;
end;
procedureTForm2.Button2Click(Sender: TObject);
begin
RvProject1.Execute
end;
end.
unitVibor_tabl;
interface
uses
Windows,Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls, jpeg, ExtCtrls, Buttons;
type
TForm4 =class(TForm)
Button1:TButton;
Button2:TButton;
BitBtn1:TBitBtn;
Image1:TImage;
Image2:TImage;
Image3:TImage;
procedureButton1Click(Sender: TObject);
procedureButton2Click(Sender: TObject);
private
{ Privatedeclarations }
public
{ Publicdeclarations }
end;
var
Form4: TForm4;
implementation
uses Product,Distributions;
{$R *.dfm}
procedureTForm4.Button1Click(Sender: TObject);
begin
Form2.show;
end;
procedureTForm4.Button2Click(Sender: TObject);
begin
Form5.show;
end;
end.
unitZapros_tovar;
interface
uses
Windows,Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB,DBTables, Grids, DBGrids, ExtCtrls, StdCtrls, Buttons;
type
TForm3 =class(TForm)
Panel1:TPanel;
Panel2:TPanel;
DBGrid1:TDBGrid;
Query1:TQuery;
DataSource1:TDataSource;
BitBtn1:TBitBtn;
private
{ Privatedeclarations }
public
{ Publicdeclarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
end.
unitDistributions;
interface
uses
Windows,Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls, Buttons, DBCtrls, Grids, DBGrids, ExtCtrls;
type
TForm5 =class(TForm)
Panel1:TPanel;
Panel2:TPanel;
Panel3:TPanel;
DBGrid1:TDBGrid;
DBGrid2:TDBGrid;
DBNavigator1:TDBNavigator;
BitBtn1:TBitBtn;
private
{ Privatedeclarations }
public
{ Publicdeclarations }
end;
var
Form5: TForm5;
implementation
{$R *.dfm}
end.
unit DM1;
interface
uses
SysUtils,Classes, DB, DBTables, RpCon, RpConDS, RpConBDE, RpBase,
RpSystem,RpDefine, RpRave;
type
TD1 =class(TDataModule)
Database1:TDatabase;
Product:TTable;
Sclad: TTable;
DataSource1:TDataSource;
DataSource2:TDataSource;
ProductPKod:TAutoIncField;
ProductPNaimenovanie:TStringField;
ProductPObem:TStringField;
ProductPCena:TCurrencyField;
ScladSKod:TIntegerField;
ScladSNaimenovanie:TStringField;
ScladSDataPolych:TDateField;
ScladSGoden_do:TDateField;
ScladSKolichestvo:TSmallintField;
ScladSCena:TCurrencyField;
ScladSSymma:TCurrencyField;
RvProject1:TRvProject;
RvSystem1:TRvSystem;
RvTableConnection1:TRvTableConnection;
private
Privatedeclarations }
public
{ Publicdeclarations }
end;
var
D1: TD1;
implementation
{$R *.dfm}
end.
unit DM2;
interface
uses
SysUtils,Classes, DB, DBTables;
type
TD2 =class(TDataModule)
Database1:TDatabase;
Distributions:TTable;
Tovar_dvijenie:TTable;
DataSource1:TDataSource;
DataSource2:TDataSource;
DistributionsDID:TAutoIncField;
DistributionsDFamiliya:TStringField;
DistributionsDImya:TStringField;
DistributionsDOtchestvo:TStringField;
DistributionsDDataRojd:TDateField;
DistributionsDStrana:TStringField;
DistributionsDIndex:TStringField;
DistributionsDGorod:TStringField;
DistributionsDAdres:TStringField;
DistributionsDDomTel:TStringField;
DistributionsDRabTel:TStringField;
DistributionsDEmail:TStringField;
DistributionsDDataDog:TDateField;
Tovar_dvijenieKod:TIntegerField;
Tovar_dvijenieTKod:TIntegerField;
Tovar_dvijenieTID:TIntegerField;
Tovar_dvijenieTDataOtgr:TDateField;
Tovar_dvijenieTNaimeovanie:TStringField;
Tovar_dvijenieTKolichestvo:TSmallintField;
Tovar_dvijenieTCena:TCurrencyField;
private
{ Privatedeclarations }
public
{ Publicdeclarations }
end;
var
D2: TD2;
implementation
{$R *.dfm}
end.
Приложение2
/>