超市收银系统实习报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业实习报告
1、课程设计目的:
●熟悉大型数据库管理系统的结构与组成;
●熟悉数据库应用系统的设计方法和开发过程;
●掌握一种大型数据库管理系统(DM5、ORACLE或SQL SERVER)的应用技术和开发工具
的使用;
●熟悉数据库设计工具的使用;
●熟悉数据库安全的相关知识和技术;
●熟悉数据库系统的管理和维护。
2、毕业实习设计要求:
●在课程设计指导老师的指导下,选定一个数据库应用系统的题目,完成数据库的设计和
应用系统设计,并提交相应文档。
●数据库管理系统仅限DM5、Oracle以及MS SQL Server;
●开发工具限PowerBuilder、Delphi、C++、JAVA、.NET平台或其它动态网页开发工具;
●系统采用客户/服务器(C/S)结构或浏览器/服务器(B/S)结构实现。
●系统应严格遵照题目要求进行设计,可在其基础上进一步细化完善,但不得违背,原则
上不额外增加与要求无关的功能。
●系统中应适当体现下列技术的应用:存储过程,触发器,索引。
●提交系统的源码及文档。
一、设计的应用背景
本系统是一个超市收银系统。顾名思义,本系统用来管理和更新超市日常交易数据,如收银员的管理,收银员的工作记录,日常交易记录,顾客信息管理,商品信息管理,等等,所有的数据存储在达梦数据库的system库中。
本系统实现的主要功能为:
1、收银:收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等信息,系统根据这些信息获取相应的价格信息并计算应收取的总金额。完成收银后,记录交易信息,修改有关种类商品的剩余量以及该持卡顾客的消费情况。
2、发卡:顾客可交纳一定的费用(如50元)办理一张会员卡,以后在该商场购物可凭卡享受9折优惠。如果一个未持卡顾客一次购物满1000元,可为其免费发放一张会员卡,每张卡的优惠期为一年,一年内消费达到一定金额的可继续享受下一年的优惠。
3、款项盘存:收银员下班或交接班前对本收银台中本班次收取的款额进行盘存,明确责任。
4、商品信息的录入、修改、删除和查询等。
5、收银员身份及口令管理。
二、数据库设计过程
1、需求分析
(1)、信息要求
●顾客信息:顾客编号(会员卡号)、顾客姓名、顾客性别、注册时间、是否到期、消费
金额。
●收银员信息:收银员编号、收银员姓名、收银员性别、登录名,密码。
●商品信息:商品编号、商品名称、单价、现有库存。
●收银信息:收银员编号、收银金额、登录时间,注销时间。
●交易信息:顾客编号,商品编号,交易时间,交易数量。
(2)、处理要求
A、处理方式:联机处理。
B、处理时间要求:< 2S。
C、处理功能:
(I)、添加新信息,修改现存信息,删除无用信息,查询信息。
(II)、计算一次交易的金额,如果是会员,就可以享受9折优惠,如果非会员消费金额超过1000元,免费为其发放一张为期一年的会员卡。
(III)、只有收银员以正确的用户名和密码才能登录本系统。
(3)、安全性和完整性要求
A、安全性要求:只有收银员以正确的用户名和密码才能登录本系统,进行相应操作。后台服务
器(达梦数据库)会生成相应的日志文件。
B、完整性要求:
(I)实体完整性:如上信息要求一栏所示,黄色背景的为primary key。
(II)参照完整性:收银信息和交易信息中的收银员编号,顾客编号和商品编号均为前面的参照。(III)用户定义完整性:如性别只能为‘男’或‘女’,姓名不能为空,登录名必须唯一,密码必须六位以上,等等。
2、概念设计
根据需求分析得到的信息抽象为E-R模型如下:
3、逻辑设计
根据以上分析,得到本系统的基本关系模式为:
●顾客(顾客编号、顾客姓名、顾客性别、注册时间、是否到期、消费金额)。
create table Customer
(Cno char(9) primary key,
Cname char(20),
Csex char(2) check(Csex in('男','女')),
Creg date,
Cactive char(2) check(Cactive in('是','否')),
Cconsumption decimal(8,2)
);
●收银员(收银员编号、收银员姓名、收银员性别、登录名,密码)。
create table Cashier
(Cno char(9) primary key,
Cname char(20) not null,
Csex char(2) check(Csex in('男','女')),
Clogname char(20) unique,
Clogpass char(20)check(Clogpass like '______%')
);
●商品(商品编号、商品名称、单价、现有库存)。
create table Goods
(Gno char(9) primary key,
Gname char(20) not null,
Gprice decimal(5,2),
Gstorage smallint
);
●收银(收银员编号、收银金额、登录时间,注销时间)。
create table Cashinfo
(Cno char(9) not null,
Crecv decimal(7,2),
CtimeOn timestamp(0),
CtimeOff timestamp(0),
foreign key(Cno) references Cashier(Cno)
);
●交易(顾客编号,商品编号,交易时间,交易数量)。
create table Tradeinfo
(Cno char(9),
Gno char(9),
Tquantity smallint,
Ttime timestamp(0),
-- primary key( Cno, Gno),
foreign key(Cno) references Customer(Cno),
foreign key(Gno) references Goods(Gno)
);
为了编程的方便,另外建立了几个视图如下:
●查询收银信息(收银员编号、收银员姓名、收银金额、登录时间,注销时间)
●查询交易信息(顾客编号,顾客姓名,商品编号,商品名称,交易时间,交易数量)