超市收银系统.docx
《超市收银系统.docx》由会员分享,可在线阅读,更多相关《超市收银系统.docx(31页珍藏版)》请在冰点文库上搜索。
超市收银系统
郑州轻工业学院本科
数据库课程设计总结报告
设计题目:
超市收银系统
系别:
计算机与通信工程学院
专业:
计算机科学与技术
班级:
09-2
学生姓名:
易涛学号:
************
指导教师:
苏晓珂、张保威
2011年12月22日
郑州轻工业学院
课程设计任务书
题目:
超市收银系统
专业、班级:
计算机科学与技术09-2
学号:
************姓名:
易涛
主要内容:
系统数据初始化;员工登录;商品销售;商品入库;各种查询,商品存储,商品管理等。
基本要求:
立足于超市收银实际,开发具有价值的工资管理专用软件,实现商品管理销售的各种数据存储自动化,提高工作效率,减少手工工作方式难以避免的数据错漏。
主要参考资料等:
《数据库系统概论》作者:
王珊萨师煊出版社:
高等教育出版社
《软件工程概论》,郑人杰,马素霞,殷人昆,机械工业出版社
《数据库组成原理》,王珊,萨师煊,高等教育出版社
《SQLServer数据库开发实例精粹》作者:
徐国智汪孝宜等
出版社:
电子工业出版社。
完成期限:
两周
指导教师签名:
课程负责人签名:
年月日
一、需求分析
1、系统任务概述
1.1系统功能
实现功能如下:
超市进货;
售货;
商品查询(不确定查询);
会员管理;
用户管理(含用户权限的设置)
销售记录
1.2权限
收银员权限,仓库管理员权限
1.3假定和约束
收银员能够,办理会员,出售商品,能够查询商品
仓库管理员,进货,能够管理收银员,能够查询销售情况,招收员工
2、需求规定
2.1软件功能规定
满足用户需求
2.2.1精度
能够满足用户需求
能够长期运行
能够准确的实现用户的要求
易维护,易扩充、
1.服务器端子系统运行要求:
数据库管理系统:
SQLsever2000
2.客户端子系统运行要求:
Windowsxpsql2000
4、业务流程分析图
5数据流程,功能要求和设计
5.1顶层流程图
功能要求如下:
查询商品
办理会员
超市进货
招收员工
查询销售额
查询供应商
会员打折
6、系统的功能模块图
6.1整体模块
6.2用户信息管理模块
6.3商品入库信息管理模块
6.4商品库存管理模块
6.5商品销售管理模块
本系统主要分成四个功能模块,每个模块都独立的完成了自己的功能,以下是对各功能模块的说明:
(1)用户信息管理功能。
该功能模块可以实现系统用户对自己基本信息的修改,不过只限于对登录密码的修改,因为用户帐号都是超市为了方便管理而事先分配好了的,是不能改变的。
出于对用户信息的安全性考虑,只能修改当前登录的用户的密码。
(2)商品入库信息管理功能。
该功能模块是实现对即将入库的商品的统计,由于商品信息的庞大、复杂,在入库前需要对其进行详细地记录管理,为商品的库存管理打下良好的基础。
需要记录的内容有:
入库商品的商品号、名称、类型、价格、同类商品的数量、采购员、验收员、生产厂商、产地、入库时间等。
同时能够实现对商品入库信息的添加、修改、删除和查询功能。
(3)商品库存信息管理功能。
该功能模块是当入库的商品放入超市后,对库存商品进行统计管理,主要入库信息来源于
(2)中的商品入库信息记录。
需要记录的内容有:
库存商品的名称、类型、入库价格、销售价格、库存量、入库时间、有效期等,同时能够实现对商品库存信息的添加、修改、删除和查询功能。
在商品批量销售后,在表中能够同时删除相应的商品的数量。
(4)商品销售信息管理功能。
该功能模块是把要销售的商品从超市中取出来,并对库存商品进行相应的记录管理,并且把顾客的购买信息打印下来给顾客做凭证。
需要记录的内容有:
出售商品的名称、类型、销售价格、数量、销售时间等,同时能够实现对商品销售信息的添加、修改、删除和查询功能。
二、数据库设计
1、数据字典
名字:
删除销售商品
别名:
销售商品删除信息
描述:
超市商品管理员在删除销售商品时需要操作的信息
定义:
销售商品删除信息=商品号+商品名称+商品销售数量+销售价格+销售时间
位置:
在删除销售商品对话框的相应文本框里
名字:
查询销售商品
别名:
销售商品查询信息
描述:
超市商品管理员在查询销售商品时得到的商品信息
定义:
库存商品查询信息=商品号+商品名称+商品销售数量+销售价格+销售时间
位置:
在查询库存商品对话框的相应文本框里
2、E-R图
超市收银系统E-R图
实体有6个:
1用户实体:
其属性为:
用户账号,用户名,用户权限;
2库房实体:
商品入库号;
3商品实体:
商品号,商品名,商品类型;
4会员实体:
会员号,会员积分;
5供应商实体:
供应商号,供应商名,供应商地址,供应商联系电话
关系有6个
1顾客与收银员之间的关系
2收银员与会员之间的关系
3收银员与库房之间的关系
4库房与管理员之间的关系
5库房与商品之间的关系
6收银员与商品之间的关系
7会员与商品之间的关系
3、关系模型
3.1User(User_id,User_name)
此为用户实体对应的关系模式。
3.2Club(Club_id,Club_jifen)
此为创建会员的关系模式。
3.3Store(Store_id,Store_na,Store_num)
此为库房实体关系模式
3.4Goods(Goods_id,Store_id,Goods_na,Goods_type,Goods_price,Supply_id)
此为商品实体关系模式
3.5Supply(Supply_id,Supply_name,Supply_adress,Supply_contact)
此为供应商实体关系模式
3.6供应商品(Goods_id,Supply_id,Supply_time,Supply_time,Supply_num,Supply_price)
此为联系“出售商品”所对应的关系模式
3.7出售商品(Goods_id,Goods_time,User_id,Goods_outprice)
此为联系“销售商品”所对应的关系模式
3.8会员购买(Club_id,Goods_id)
此为联系“会员购买”所对应的关系模式
3.9商品退货(Order_num,Goods_id,Back_time,Back_num)
此为联系“商品退货”所对应的关系模式
4、建表:
管理员
createtable管理员
(
User_idchar(15)primarykey,
User_nachar(10),
User_passwordchar(15),
User_typeint
)此为建表
createproc管理员p1@User_idchar(15),@User_nachar(10),@User_passwordchar(15),@User_typeint
as
insert
into管理员
values(@User_id,@User_na,@User_password,@User_type)此为创建存插入储过程
createproc管理员p2@User_idchar(15)
as
delete
from管理员
whereUser_id=@User_id;此为创建删数据存储过程
字段名称
标识名称
数据类型
是否为空
字段说明
User_id
用户账号
Char(15)
No
主键(primarykey)
User_na
用户姓名
Char(10)
Y
User_password
用户密码
Char(15)
No
User_type
用户权限
Int(4)
N
1.收银员
2.超市管理员
商品入库
createtable商品入库
(
Store_idchar(8)primarykey,
Store_nachar(8),
Store_numint
)此为创建表
createproc商品入库p1@Store_idchar(8),@Store_nachar(10),@Store_numint
as
insert
into商品入库
values(@Store_id,@Store_na,@Store_num)创建存储过程
createtrigger入库
on商品入库
forinsert
as
declare@storeint
select@store=store_numfrominserted
if(@store<1)
begin
rollbacktransaction
raiserror('进货量不能小于1',16,1)
End触发器
字段名称
标识名称
数据类型
是否为空
字段说明
Store_id
库存号
Char(8)
N
主键(primarykey)
Store_na
商品号
Char(8)
N
Store_num
库存数量
Int(4)
N
商品存储情况
createtable商品存储情况
(
Goods_idchar(8)primarykey,
Store_idchar(8),
Goods_nachar(10),
Supply_idchar(8),
Goods_typechar(10),
Goods_priceint
)此为创建商品存储情况的表
createprocinsert_商品存储情况
@Goods_idchar(8),
@Store_idchar(8),
@Goods_nachar(10),
@Supply_idchar(8),
@Goods_typechar(10),
@Goods_priceint
as
insert
into商品存储情况
values(@Goods_id,@Store_id,@Goods_na,@Supply_id,@Goods_type,@Goods_price)
创建插入的存储过程
createprocdelete_商品存储情况@Store_idchar(8)
as
delete
from商品存储情况
whereStore_id=@Store_id此为创建删除数据的存储过程
createtrigger商品
on商品存储情况
forinsert
as
declare@Goodschar(8)
select@Goods=Goods_pricefrominserted
if(@Goods<=1)
begin
rollbacktransaction
raiserror('商品的价格不能小于1',16,1)
End/*触发器*/
字段
标识名称
数据类型
是否为空
字段说明
Goods_id
商品号
Char(8)
N
主键(primarykey)
Store_id
库存号
Char(8)
N
Goods_na
商品名
Char(10)
N
Supply_id
供应号
Char(8)
N
Goods_type
商品类型
Char(10)
N
Goods_price
商品价格
Int(4)
N
会员情况
createtable会员情况
(
Club_idchar(15)primarykey,
Club_jifenint
)建表
createprocinsert_会员情况
@Club_idchar(15),
@Club_jifenint
as
insert
into会员情况
values(@Club_id,@Club_jifen)创建存储过程
createtriggerclub
on会员情况
forinsert
as
declare@jifenint
select@jifen=Club_jifenfrominserted
if(@jifen<0)
begin
rollbacktransaction
raiserror('会员积分不能小于零!
!
',16,1)
End触发器
字段
标识符
数据类型
是否为空
字段说明
Club_id
会员号
Char(15)
N
主键(primarykey)
Club_jifen
会员积分
Int(4)
N
供应商
createtable供应商
(
Supply_idchar(8)primarykey,
Supply_nachar(10),
Supply_addresschar(20),
Supply_contactchar(11)
)创建供应商表
createprocinsert_供应商
@Supply_idchar(8),
@Supply_nachar(10),
@Supply_addresschar(20),
@Supply_contactchar(11)
as
insert
into供应商
values(@Supply_id,@Supply_na,@Supply_address,@Supply_contact)
创建存储添加数据的过程
createprocdelete_供应商@Supply_idchar(8)
as
delete
from供应商
whereSupply_id=@Supply_id创建删除供应商数据的存储过程
字段
标识符
数据类型
是否为空
字段说明
Supply_id
供应商号
Char(8)
N
主键(primarykey)
Supply_na
供应商名
Char(10)
N
Supply_adress
供应商地址
Char(20)
N
Supply_contact
联系方式
Char(11)
N
销售商品
createtable销售商品
(
Goods_idchar(8),
Goods_timedatetime,
User_idchar(15),
Goods_outpriceint,
Goods_dazheint,
primarykey(Goods_id,User_id),
foreignkey(Goods_id)references商品存储情况(Goods_id),
foreignkey(User_id)references管理员(User_id)
)创建销售商品表
createprocinsert_销售商品
@Goods_idchar(8),
@Goods_timedatetime,
@User_idchar(15),
@Goods_outpriceint,
@Goods_dazheint
as
insert
into销售商品
values(@Goods_id,@Goods_time,@User_id,@Goods_outprice,@Goods_dazhe)
创建销售商品插入数据的存储过程
createtrigger销售
on销售商品
forinsert
as
declare@goods_outpriceint,@goods_dazheint
select@goods_outprice=Goods_id,@goods_dazhe=Goods_dazhefrominserted
if(@goods_outprice<0or@goods_dazhe<0)
begin
rollbacktransaction
raiserror('出售价格和打折均不能小于零!
!
',16,1)
End创建触发器
字段
标识符
数据类型
是否为空
字段说明
Goods_id
商品号
Char(8)
N
Goods_time
商品售出时间
datetime
N
User_type
收银员号
Char(15)
N
Goods_outprice
商品售价
Int(4)
N
Goods_dazhe
商品打折
Int
(2)
N
1,表示打折
2,不打折
供应商品
createtable供应商品
(
Order_numchar(8),
Goods_idchar(8),
Supply_idchar(8),
Supply_timedatetime,
Goods_numint,
Goods_inpriceint,
primarykey(Goods_id,Supply_id),
foreignkey(Goods_id)references商品存储情况(Goods_id),
foreignkey(Supply_id)references供应商(Supply_id)
)创建供应商品表
createprocinsert_供应商品
@Order_numchar(8),
@Goods_idchar(8),
@Supply_idchar(8),
@Supply_timedatetime,
@Goods_numint,
@Goods_inpriceint
as
insert
into供应商品
values(@Order_num,@Goods_id,@Supply_id,@Supply_time,@Goods_num,@Goods_inprice)
创建插入供应商品数据的存储过程
createprocdelete_供应商品
@Goods_idchar(8),
@Supply_idchar(8)
as
delete
from供应商品
whereGoods_id=@Goods_idandSupply_id=@Supply_id创建删除数据存储过程
createtrigger供应x
on供应商品
forinsert
as
declare@goods_numint,@goods_inpriceint
select@goods_num=Goods_num,@goods_inprice=Goods_inpricefrominserted
if(@goods_num<0or@goods_inprice<0)
begin
rollbacktransaction
raiserror('供应商品数量和商品进价不能小于零!
!
',16,1)
End创建触发器
字段
标识符
数据类型
是否为空
字段说明
Order_num
订单号
Char(8)
N
主键(Primarykey)
Goods_id
商品号
Char(8)
N
Supply_id
供应商号
Char(8)
N
Supply_time
供应商品时间
Datetime
N
Goods_num
供应商品数量
Int(4)
N
Goods_inprice
供应商品价钱
Int(4)
N
商品退货
createtable商品退货
(
Order_numchar(8),
Supply_idchar(8),
Goods_idchar(8),
Back_timedatetime,
Back_numint,
primarykey(Order_num,Goods_id,Supply_id),
foreignkey(Goods_id)references商品存储情况(Goods_id),
foreignkey(Supply_id)references供应商(Supply_id)
)此为创建商品退货表
createprocinsert_商品退货
@Order_numchar(8),
@Supply_idchar(8),
@Goods_idchar(8),
@Back_timedatetime,
@Back_numint
as
insert
into商品退货
values(@Order_num,@Supply_id,@Goods_id,@Back_time,@Back_num)存储过程
createtrigger返回物品
on商品退货
forinsert
as
declare@back_numint
select@back_num=Back_numfrominserted
if(@back_num<0)
begin
rollbacktransaction
raiserror('退回商品数量不能小于等于零!
!
',16,1)
End创建触发器
字段
标识符
数据类型
是否为空
字段说明
Order_num
单号
Char(8)
N
Goods_id
商品号
Char(8)
N
Back_time
退货时间
Datetime
N
Back_num
退货数量
Int
N
会员购买
createtable会员购买
(
Club_idchar(15),
Goods_idchar(8),
primarykey(Goods_id,Club_id),
foreignkey(Goods_id)references商品存储情况(Goods_id),
foreignkey(Club_id)references会员情况(Club_id)
)创建会员购买表
createprocinsert_会员购买@Club_idchar(15),
@Goods_idchar(8)
as
insert
into会员购买
values(@Club_id,@Goods_id)创建添加数据的存储过程
createprocdelete_会员购买@Club_idchar(15)
as
delete
from会员购买
whereClub_id=@Club_id创建删除数据的存储过程
字段
标识符
数据类型
是否为空
字段说明
Club_id
会员号
Char(15)
N
Goods_id
商品号
Char(8)
N
三、详细设计
1、登录界面
2、主界面
3、查询商品
4、出售商品
四、总结
收获与体会
我觉得这次实验的收获和体会很大,主要有一下几点:
(1)在这次试验中我对数据库系统设计的基本框架有了更深刻认识和学