数据库课程设计货存控制系统.docx
《数据库课程设计货存控制系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计货存控制系统.docx(67页珍藏版)》请在冰豆网上搜索。
![数据库课程设计货存控制系统.docx](https://file1.bdocx.com/fileroot1/2023-1/27/8bebc91f-a0a9-4493-8ab1-1c5801a7ceb1/8bebc91f-a0a9-4493-8ab1-1c5801a7ceb11.gif)
数据库课程设计货存控制系统
数据库课程设计
——货存控制系统
一、课程设计题目:
货存管理系统一个公司希望为控制它的货存建立一个数据库,货存中的产品被分为几类,如服装、食品和文具。
当产品需要从供应商那里重新订购时,工作人员需要提出一个购买订单。
跟踪记录要提供买进、卖出的货物以及其他的费用。
实验课程任务与要求目的与任务:
1.掌握数据库设计和实现的基本过程2.掌握数据库模式设计、分析和实现的方法3.了解数据库应用系统软件开发的一般过程。
实验基本要求:
(1)学习相关的预备知识
(2)按照数据库设计与实现过程完成数据库的设计,应用程序的开发,上机调试、运行
(3)写出课程设计报告
开发环境说明:
处理器:
IntelPentium43.06以上
内存:
256M以上
硬盘空间:
40G以上
操作系统:
windows2000/XP/win7
开发软件:
C++Builder6.0
数据库:
MicrosoftSQLService2000
二、功能需求分析:
根据系统要求分析,本系统功能如下:
用户管理:
添加用户,修改用户密码。
客户管理:
添加客户,查询客户信息。
供应商管理:
添加供应商,查询供应商信息。
仓库管理:
添加仓库,查询仓库信息。
货物管理:
添加物品信息,物品类型信息。
入库管理:
货物的入库信息的添加和修改。
出库管理:
货物的出库信息的添加和修改。
库存信息:
对货物的现有信息存量查询。
三、数据库概念设计:
本实例根据根据上面的设计规划出的实体有仓库实体、客户实体、供应商实体、管理员实体、货物实体、货物类型实体、入库实体、出库实体、库存实体。
各个实体的E-R图描述如下:
仓库实体E-R图
供应商实体E-R图
客户实体E-R图
管理员实体E-R图
货物实体E-R图
货物类型实体E-R图
入库实体E-R图
出库实体E-R图
库存实体E-R图
整体E-R图如下所示:
四、数据库逻辑设计:
关系数据库的数据模型(即关系模型)由一组关系模式组成,因而ER图向关系模型的转换实际上就是将实体(包括实体的属性)和联系转换为关系模式,一般遵循以下基本原则:
1.一个实体型转换为一个关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
2.一个1:
X(X为1或n)联系通常与某一端的关系模式合并,其中1:
n的联系需要与n端对应的关系模式合并。
需要在合并的关系模式的属性中加入另一个关系模式的码和联系本身的属性。
3.一个m:
n联系转换为一个关系模式。
与该关系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
4.三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体的码的组合。
5.具有相同码的关系模式可合并。
使用SQLserver2000企业管理器建立数据库和表(也可使用SQL语句建立数据库)。
数据库包括:
1.仓库的数据项描述:
Storage
数据项名
对应英文名
数据项含义
类型
长度
说明
仓库编号
Sno
仓库的编号
char
5
主键
仓库名称
Sname
仓库的名称
char
20
仓库地址
Saddr
仓库的地址
char
40
管理员编号
Mno
管理员的编号
char
5
外键
仓库面积
Ssize
仓库的大小
int
2.供应商的数据项描述:
Provider
数据项名
对应英文名
数据项含义
类型
长度
说明
供应商编号
Pno
供应商的识别号码
char
5
主键
供应商名称
Pname
供应商公司的名称
char
20
供应商地址
Paddr
供应商公司的地址
char
40
邮编
Postcode
公司的邮编
char
6
电话
Ptel
公司的电话
char
11
3.客户的数据项描述:
Client
数据项名
对应英文名
数据项含义
类型
长度
说明
客户编号
Cno
客户的编号
char
5
主键
客户名称
Cname
客户公司的名称
char
20
地址
Caddr
客户公司的地址
char
40
联系电话
Ctel
客户联系电话
char
11
4.货物的数据项描述:
Goods
数据项名
对应英文名
数据项含义
类型
长度
说明
物品编号
Gno
物品的编号
char
5
主键
物品名称
Gname
物品的名称
char
20
类型编号
Tno
物品的类型
char
5
外键
5.货物类型的数据项描述:
Type
数据项名
对应英文名
数据项含义
类型
长度
说明
类型编号
Tno
物品的类型的编号
char
5
主键
类型名称
Tname
物品的类型的名称
char
20
类型描述
Tdescription
物品的类型的描述
char
50
6.管理员的数据项描述:
Manager
数据项名
对应英文名
数据项含义
类型
长度
说明
管理员编号
Mno
管理员的编号
char
5
主键
管理员姓名
Mname
管理员的姓名
char
20
密码
PW
该管理员的密码
Char
6
7.库存的数据项描述:
Stock
数据项名
对应英文名
数据项含义
类型
长度
说明
物品编号
Gno
货物表中物品编号
Char
5
外键、主键
仓库编号
Sno
仓库的编号
Char
5
外键
物品名称
Gname
货物的名称
Char
10
类型名称
Tname
货物的分类
Char
20
物品数量
Gnum
货物的存储量
Int
入库(合计)-出库(合计)
8.入库的数据项描述:
Stock_In
数据项名
对应英文名
数据项含义
类型
长度
说明
物品编号
Gno
货物表中物品编号
Char
5
外键、主键
供应商编号
Pno
供应商的编号
Char
5
外键、主键
物品名称
Gname
货物的名称
Char
10
类型名称
Tname
货物的分类
Char
20
购入单价
Ginprice
货物购入的价格
Real
入库数量
Innum
入库的数量
Int
采购金额
Inprice
本次采购的金额
Real
购入单价*入库数量
入库日期
Indate
入库的时间
Char
20
9.出库的数据项描述:
Stock_Out
数据项名
对应英文名
数据项含义
类型
长度
说明
物品编号
Gno
货物表中物品编号
Char
5
外键、主键
客户编号
Cno
客户的编号
Char
5
外键、主键
物品名称
Gname
货物的名称
Char
10
类型名称
Tname
货物的分类
Char
4
出售单价
Goutprice
货物出售的价格
Real
出库数量
Outnum
出库的数量
Int
出库金额
Outprice
本次出库的金额
Real
出库数量*出售单价
出库日期
Outdate
出库的时间
Char
20
五、系统开发
1.数据库建立
Createdatabasestorage_manage;
供应商Provider
createtableProvider(
Pnochar(5)primarykey,
Pnamechar(20),
Padddrchar(40),
Postcodechar(6),
Ptelchar(11)
);
客户Client
createtableClient(
Cnochar(5)primarykey,
Cnamechar(20),
Caddrchar(40),
Ctelchar(11)
);
货物类型Type
createtableType(
Tnochar(5)primarykey,
Tnamechar(20),
Tdescriptionchar(50)
);
货物Goods
createtableGoods(
Gnochar(5)primarykey,
Gnamechar(20),
Tnochar(5),
foreignkey(Tno)referencesType(Tno)
);
管理员Manager
createtableManager(
Mnochar(5)primarykey,
Mnamechar(20),
PWchar(6)
);
仓库Storage
createtableStorage(
Snochar(5)primarykey,
Snamechar(20),
Saddrchar(40),
Mnochar(5),
Ssizeint,
foreignkey(Mno)referencesManager(Mno)
);
库存Stock
createtableStock(
Gnochar(5),
Snochar(5),
Gnamechar(10),
Tnamechar(20),
Gnumint,
primarykey(Gno),
foreignkey(Gno)referencesGoods(Gno),
foreignkey(Sno)referencesStorage(Sno)
);
入库Stock_In
createtableStock_In(
Gnochar(5),
Pnochar(5),
Gnamechar(10),
Tnamechar(20),
Ginpricereal,
Innumint,
Inpricereal,
Indatachar(20),
primarykey(Gno,Pno),
foreignkey(Gno)referencesGoods(Gno),
foreignkey(Pno)referencesProvider(Pno)
);
出库Stock_Out
createtableStock_Out(
Gnochar(5),
Cnochar(5),
Gnamechar(10),
Tnamechar(20),
Goutpricereal,
Outnumint,
Outpricereal,
Outdatachar(20),
primarykey(Gno,Cno),
foreignkey(Gno)referencesGoods(Gno),
foreignkey(Cno)referencesClient(Cno)
);
2、界面设计
Form1
//---------------------------------------------------------------------------
#include
#pragmahdrstop
#include"Unit1.h"
#include"Unit2.h"
//---------------------------------------------------------------------------
#pragmapackage(smart_init)
#pragmaresource"*.dfm"
TForm1*Form1;
//---------------------------------------------------------------------------
__fastcallTForm1:
:
TForm1(TComponent*Owner)
:
TForm(Owner)
{
}
//---------------------------------------------------------------------------
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select*fromManager");
ADOQuery1->SQL->Add("whereMname='"+Edit1->Text+"'andPW='"+Edit2->Text+"'");
if(ADOQuery1->ExecSQL())
{
ShowMessage("登陆成功");
Form2->Show();
}
else
{
ShowMessage("用户名或密码错误!
");
}
}
//---------------------------------------------------------------------------
void__fastcallTForm1:
:
Button2Click(TObject*Sender)
{
Close();
}
//---------------------------------------------------------------------------
Form2
//---------------------------------------------------------------------------
#include
#pragmahdrstop
#include"Unit2.h"
#include"Unit1.h"
#include"unit3.h"
#include"unit4.h"
#include"Unit5.h"
#include"Unit6.h"
#include"Unit7.h"
#include"Unit8.h"
#include"Unit9.h"
#include"Unit10.h"
#include"Unit11.h"
#include"Unit12.h"
#include"Unit13.h"
#include"Unit14.h"
#include"Unit15.h"
#include"Unit16.h"
//---------------------------------------------------------------------------
#pragmapackage(smart_init)
#pragmaresource"*.dfm"
TForm2*Form2;
//---------------------------------------------------------------------------
__fastcallTForm2:
:
TForm2(TComponent*Owner)
:
TForm(Owner)
{
}
//---------------------------------------------------------------------------
void__fastcallTForm2:
:
N5Click(TObject*Sender)
{
Form3->Show();
Form2->Close();
}
//---------------------------------------------------------------------------
void__fastcallTForm2:
:
N6Click(TObject*Sender)
{
Form4->Show();
Form2->Close();
}
//---------------------------------------------------------------------------
void__fastcallTForm2:
:
N18Click(TObject*Sender)
{
Form1->Show();
Form2->Close();
}
//---------------------------------------------------------------------------
void__fastcallTForm2:
:
N8Click(TObject*Sender)
{
Form6->Show();
Form2->Close();
}
//---------------------------------------------------------------------------
void__fastcallTForm2:
:
N7Click(TObject*Sender)
{
Form5->Show();
Form2->Close();
}
//---------------------------------------------------------------------------
void__fastcallTForm2:
:
N12Click(TObject*Sender)
{
Form10->Show();
Form2->Close();
}
//---------------------------------------------------------------------------
void__fastcallTForm2:
:
N9Click(TObject*Sender)
{
Form7->Show();
Form2->Close();
}
//--------------------------------------------------------------------------
void__fastcallTForm2:
:
N10Click(TObject*Sender)
{
Form8->Show();
Form2->Close();
}
//---------------------------------------------------------------------------
void__fastcallTForm2:
:
N16Click(TObject*Sender)
{
Form9->Show();
Form2->Close();
}
//---------------------------------------------------------------------------
void__fastcallTForm2:
:
N13Click(TObject*Sender)
{
Form12->Show();
Form2->Close();
}
//---------------------------------------------------------------------------
void__fastcallTForm2:
:
N14Click(TObject*Sender)
{
Form11->Show();
Form2->Close();
}
//---------------------------------------------------------------------------
void__fastcallTForm2:
:
N15Click(TObject*Sender)
{
Form14->Show();
Form2->Close();
}
//---------------------------------------------------------------------------
void__fastcallTForm2:
:
N11Click(TObject*Sender)
{
Form9->Show();
Form2->Close();
}
//---------------------------------------------------------------------------
void__fastcallTForm2:
:
N17Click(TObject*Sender)
{
Form15->Show();
Form2->Close();
}
//---------------------------------------------------------------------------
void__fastcallTForm2:
:
N19Click(TObject*Sender)
{
Form16->Show();
Form2->Close();
}
//---------------------------------------------------------------------------
Form3
//---------------------------------------------------------------------------
#include
#pragmahdrstop
#include"Unit3.h"
#include"Unit2.h"
//---------------------------------------------------------------------------
#pragmapackage(smart_init)
#pragmaresource"*.dfm"
TForm3*Form3;
//---------------------------------------------------------------------------
__fastcallTForm3:
:
TForm3(TComponent*Owner)
:
TForm(Owner)
{
}
//----------------------------------------------------------------------