Минский Государственный профессионально-технический колледж электроники
КУРСОВАЯ РАБОТА
ТЕМА: Учет хранения и движения продукции фирмы
Выполнила Фарзалиева Л.
Проверил Шавейко А. А.
Минск 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 д-ра Э.Кодда (CoddE.F., ARelationalModelofDataforLargeSharedDataBanks. CACM 13: 6, June 1970), где, вероятно, впервые был применен термин "реляционная модель данных".
Будучи математиком по образованию Э.Кодд предложил использовать для обработки данных аппарат теории множеств (объединение, пересечение, разность, декартово произведение). Он показал, что любое представление данных сводится к совокупности двумерных таблиц особого вида, известного в математике как отношение – relation (англ.).
Наименьшая единица данных реляционной модели – это отдельное атомарное (неразложимое) для данной модели значение данных. Так, в одной предметной области фамилия, имя и отчество могут рассматриваться как единое значение, а в другой – как три различных значения.
Доменом называется множество атомарных значений одного и того же типа. Смысл доменов состоит в следующем. Если значения двух атрибутов берутся из одного и того же домена, то, вероятно, имеют смысл сравнения, использующие эти два атрибута (например, для организации транзитного рейса можно дать запрос "Выдать рейсы, в которых время вылета из Москвы в Сочи больше времени прибытия из Архангельска в Москву"). Если же значения двух атрибутов берутся из различных доменов, то их сравнение, вероятно, лишено смысла: стоит ли сравнивать номер рейса со стоимостью билета?
Степень отношения – это число его атрибутов. Отношение степени один называют унарным, степени два – бинарным, степени три – тернарным, а степени n – n-арным.
Каждое отношение обладает хотя бы одним возможным ключом, поскольку по меньшей мере комбинация всех его атрибутов удовлетворяет условию уникальности. Один из возможных ключей (выбранный произвольным образом) принимается за его первичный ключ. Остальные возможные ключи, если они есть, называются альтернативными ключами.
Вышеупомянутые и некоторые другие математические понятия явились теоретической базой для создания реляционных СУБД, разработки соответствующих языковых средств и программных систем, обеспечивающих их высокую производительность, и создания основ теории проектирования баз данных. Однако для массового пользователя реляционных СУБД можно с успехом использовать неформальные эквиваленты этих понятий:
Отношение – Таблица (иногда Файл),
Кортеж – Строка (иногда Запись),
Атрибут – Столбец, Поле.
При этом принимается, что "запись" означает "экземпляр записи", а "поле" означает "имя и тип поля".
1.3 Среда разработки
Курсовой проект был выполнен на языке программирования BorlandDelphi 7.0. Таблицы разрабатывались в приложении Database Desktop. Для более понятного и удобного интерфейса использовались такие компоненты как DBGrid, DBNavigator. Запросы создавались с помощью компонента Query. А отчёты на основе запросов с помощью компонентов RvQueryConnection и RvProject в приложении RaveDesigner.
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 - Навигатор
Для того, чтобы им управлять, необходимо ознакомиться с его функциями (табл.
Кнопка
|
Обозначение
|
Действие
|
|
К первой | nbFirst | Указатель текущей записи перемещается к первой записи файла данных | |
К предыдущей | nbPrior | Указатель текущей записи перемещается к предыдущей записи файла данных | |
К следующей | nbNext | Указатель текущей записи перемещается к следующей записи файла данных | |
К последней | nbLast | Указатель текущей записи перемещается к последней записи файла данных | |
Добавить | nblnsert | В файл данных добавляется новая запись | |
Удалить | nbDelete | Удаляется текущая запись файла данных | |
Редактирование | nbEdit | Устанавливает режим редактирования текущей записи | |
Сохранить | nbPost | Изменения, внесенные в текущую запись, записываются в файл данных | |
Отменить | Cancel | Отменяет внесенные в текущую запись изменения | |
Обновить | nbRefresh | Записывает внесенные изменения в файл |
Там же, на нижней панели вы найдете все необходимые для управления базой данных кнопки (запросы с параметрами, отчеты).
Чтобы узнать о наличии данного продукта на складе, необходимо воспользоваться отчетом. Рядом с надписью «Поиск товара» нажмите на кнопку «ОК». Выскочит диалоговое окно, где нужно ввести название интересующего товара. После чего появится форма с отчетом о наличии товара на складе.
Для выхода из программы нажмите кнопку «Close».
Заключение
В ходе выполнения работы были закреплены знания по созданию и проектированию баз данных в среде BorlandDelphi 7, а также приобретены практические навыки в создании программных приложений на данном языке программирования.
Результатом проделанной работы является база данных «Baza» выполняющая все необходимые задачи данного курсового проекта.
Список используемой литературы
1. В.В. Фараонов Delphi. Программирование на языке высокого уровня. – СПб: Питер, 2004.
2. ERwin — современное средство проектирования баз данных - http://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;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Product, Vibor_tabl;
{$R *.dfm}
procedure TForm1.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;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses DM1, Zapros_tovar;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
Form3.Query1.Close;
Form3.Query1.Params[0].AsString:=InputBox('Zapros', 'Введитеназваниетовара','0');
Form3.Query1.Open;
Form3.Show;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
RvProject1.Execute
end;
end.
unit Vibor_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;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses Product, Distributions;
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
begin
Form2.show;
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
Form5.show;
end;
end.
unit Zapros_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
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
end.
unit Distributions;
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
{ Private declarations }
public
{ Public declarations }
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
Private declarations }
public
{ Public declarations }
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
{ Private declarations }
public
{ Public declarations }
end;
var
D2: TD2;
implementation
{$R *.dfm}
end.
Приложение
2