课程设计
超市收银系统的设计与实现
学院:资源环境学院
专业:信息管理与信息系统
年级:091
制作小组:第一组
小组成员:
指导教师:荆耀栋
超市收银系统
1设计的应用背景
在开始超市的发展前,中国人民多数在一些杂货店购买日常生活的货品。但当90年代初期,超市文化渐渐“入侵”中国,再后几年时,已有中国的独家超市公司,如在广州天河首次开业的好又多量贩等。中国的超市多数为大型式,货品多至有电器的售卖,一般中国超市至少有2至3层,中国人们已习惯往方便的超市,而少去街边的杂货店。
信息技术高度发达的今天,利用信息技术对大量复杂的信息进行有效的管理成为一种普遍而实用的手段。一方面,这极大的减少了簿记和人力的开销,另一方面,现代计算机强大的计算能力和网络的普遍部署,大大简化了大量信息的处理和流动。超市收银系统是超市日常经营管理的一个重要组成部分,该系统涉及了商品信息,营业额度,以及很多相关信息的综合处理。为了方便配合超市日常经营管理,系统把收银、退货、会员添加、库存提醒等信息管理工作集成到一个统一的平台,各管理人员分工协作、相互配合,及时了解超市日常营运情况。同时,也方便经营者对日常经营情况的了解。
本课程设计为超市收银系统的设计、实现、测试以及验收提供重要依据,也为评价系统功能和性能提供标准。
1.1传统超市管理系统的特征:
(1)检索速度慢、效率低下
因为超市的商品种类及数量与日俱增,商品的来源、价格、数量的查询在纸上难以进行,且耗时、耗人、耗财。
(2)添加、修改、删除困难
因为记录为纸上记录,修改一条信息可能要牵连好几个数据,工作量非常繁重。
(3)收银结账速度缓慢
顾客结账时,商品物价的查询、计算器的计算、进货单的更改异常繁琐。
(4)收银统计工作难,商品不能及时更新
超级市场的商品应该根据日期的推移及商品种类的变化及时添加和更新,然而由于规模渐大,使得统计工作很难及时完成,造成了很多问题,如过期商品不能及时出库。
1.2本报告的主要工作及结构安排
针对当前超市收银系统的现状和特征,本文用面向对象的技术分析和设计,较好地解决了超市收银系统的分散采集、综合利用、统一管理等问题。
本文第一章分析了超市收银系统的现状和特征;第二章对所设计的数据库设计进行了说明;第三章对系统总体设计进行了阐述,涉及系统总体结构、系统模块设计、系统运行环境、系统开发工具和平台;第四章为系统开发实践与主要技术分析;第五章是系统测试;第六章对全文进行小结,说明了已做工作和有待改进之处。
2 系统运行环境及开发工具
2.1 运行环境
1. 操作系统: Microsoft Windows XP
2. 数 据 库: SQL Sever 2005
3. 开发工具: Microsoft Visual Basic 6.0
4. 处理器要求:Pentium Ⅵ或以上
5. 运行环境: Microsoft Visual Studio 2005
6. 内存要求: 512MB或以上
2.2开发环境
1.前台开发工具:Visual Basic6.0编程环境
Visual Basic6.0是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB都是世界上使用人数最多的语言——不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。
2.后台数据库:Microsoft office Access
Microsoft Office Access(前名 Microsoft Access)是由微软发布的关联式数据库管理系统。它结合了 Microsoft Jet Database Engine 和 图形用户界面两项特点,是 Microsoft Office的成员之一。其实Access 也是微软公司另一个通讯程序的名字,想与 ProComm 以及其他类似程序来竞争。可是事后微软证实这是个失败计划,并且将它中止。数年后他们把名字重新命名于数据库软件。Access在2000年的时候成为了计算机等级考试中的计算机二级的一种数据库语言并且因为它的易学易用的特点正逐步取代传统的VFP成为二级中最受欢迎的数据库语言。
3 系统分析与设计
对上述各项功能进行集中、分块,按照结构化程序设计的要求,超市收银系统需要完成的主要功能有以下几大模块。
(1)用户信息:用户名、密码、权限。
商品信息:ISBN、商品名称、单价、数量。
供货商信息:供货商编号、姓名、电话、地址。
交易信息:ISBN,价格,交易数量,交易金额。
(2)处理要求
A、处理方式:联机处理。
B、处理时间要求:< 2S。
C、处理功能:
(I)、添加新信息,修改现存信息,删除无用信息,查询信息。
(II)、只有收银员以正确的用户名和密码才能登录本系统。
(3)安全性和完整性要求
A、安全性要求:只有收银员以正确的用户名和密码才能登录本系统,进行相应操作。后台服务器(达梦数据库)会生成相应的日志文件。
B、完整性要求:
(I)实体完整性:如上信息要求一栏所示,黄色背景的为primary key。
(II)参照完整性:收银信息和交易信息中的收银员编号,顾客编号和商品编号均为前面的参照。
(III)用户定义完整性:姓名不能为空,登录名必须唯一,密码必须六位以上,等等。
3.数据库设计
3.1 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)
);
为了编程的方便,另外建立了几个视图如下:
●查询收银信息(收银员编号、收银员姓名、收银金额、登录时间,注销时间)
●查询交易信息(顾客编号,顾客姓名,商品编号,商品名称,交易时间,交易数量)
一、应用系统的设计过程
1、系统模块结构图
图3.1系统功能设计
3.2数据库设计
3.2.1 数据库需求分析
针对一般超市收银管理系统的需求,通过对超市收银的过程内容和数据流程分析,设计如下数据项和数据结构:
商品基本信息:包括的数据项有:供货商编号、ISBN、商品名、价格、数量等。
销售基本信息:包括的数据项有:编号、ISBN、商品名、价格、销售数量、总金额等。
供货商基本信息:包括的数据项有:供货商编号、联系电话、联系地址、联系人等。
用户基本信息:包括的数据项有:编号、用户名、密码、权限等。
3.2.2 数据库概念结构设计
本系统根据上面的设计规划出的实体有:商品实体、销售实体、供货商实体、用户实体。
各个具体实体的描述如E-R图所示:
商品实体的E-R图,如图所示:
销售实体的E-R图,如图所示:
供货商实体的E-R图,如图所示:
用户实体的E-R图,如图所示:
实体和实体之间的关系E-R图,如下:
M
N
M
N
M
M
M
N
N
3.2.3数据库逻辑结构设计
将数据库概念结构转化为SQL Sever2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。在上面的实体以及实体间的联系之间关系的基础上,形成数据库中的表以及各个表之间的关系。
超市收银管理系统数据库中各个表格的设计结果如下面几个表所示。每个表表示在数据库中的一个数据表。
goodinf 商品信息表
列名 | 数据类型 | 可否为空 | 说明 |
supplierID | LONG | NOT NULL | 供货商ID(主键) |
ISBN | VARCHAR(50) | NULL | ISBN |
names | VARCHAR(50) | NULL | 商品名 |
prices | SINGLE | NULL | 价格 |
numbers | SINGLE | NULL | 数量 |
列名 | 数据类型 | 可否为空 | 说明 |
编号 | LONG | NOT NULL | 供货商ID(主键) |
ISBN | VARCHAR(50) | NULL | ISBN |
names | VARCHAR(50) | NULL | 商品名 |
numbers | SINGLE | NULL | 销售数量 |
prices | SINGLE | NULL | 价格 |
tprices | SINGLE | NULL | 总金额 |
4.1 ADO(Active Data Objects)
4.4.1 ADO通过下面几步来完成对数据库的操作:
1.创建一个到数据库的连接,连接到数据库。
2.创建一个代表SQL命令行(包括变量、参数、可选项等)的对象。
3.执行命令行。
4.如果返回以表格形式组织的数据,则将它们保存在缓存中,产生相应数据集对象。这样便于查找,操作数据。
5.通过数据对象对数据进行各种操作,包括修改、增加、删除等。
6.更新数据源。
7.结束连接。
4.1.2 ADO对象模型
使用ADO的目的是进入数据源,使得修改、更新数据成为可能。ADO提供一系列的类和对象来完成各种操作。
1.连接对象——Connection
一个连接对象代表一个到指定数据源的成功连接。应用程序通过一个连接访问数据源,连接成功,Connection以对象的形式存在。连接对象在ADO对象模型中的地位如图4.1所示。
Connection
Errors
Command
Recordset
图4.1 连接对象在ADO对象模型中的地位
2.命令行对象——Command
命令行对象是对数据源将要执行的一系列操作的定义。使用命令行对象来查询数据库并返回对数据集的操作,如添加记录、删除记录、更新记录等。命令行对象在ADO对象模型中的地位如图4.2所示。
Connection
Command
Parameters
图4.2命令行对象在ADO对象模型中的地位
3.数据集对象——Recordset
如果命令行指定数据以表的形式组织,执行命令后将返回相应的数据集。通过数据集可以对记录以及组成记录的列进行各种操作,数据集对象在ADO对象模型中的地位如图4.3所示。
Connection
Fields
Recordset
图4.3数据集对象在ADO对象模型中的地位
4.2 配置SQLServer与ODBC的连接
在WINDOWS控制面板中,选择“管理工具\数据源(ODBC)”,选择“文件DNS”选项卡,单击“添加”。如图4.4所示。
图4.4 ODBC数据源管理器
单击“添加”,出现4.5对话框,选择以“SQL Server”选项,单击“下一步”。如图4.5所示。
图4.6 创建新数据源
输入数据源的名称:studentinfo.dsn,单击“下一步”,单击“完成”。如图4.6所示。
图4.7连接SQL Server 2000
输入服务器的名称,单击“下一步”,如图4.7所示。
图4.7设置SQL Server 验证
单击“下一步”,如图4.8所示。
图4.8 设置连接的数据库名称
单击“下一步”,再单击“完成”。
出现如下对话框,如图4.9所示。
图4.10 测试数据库成功的对话框
4.3创建ADO工程
在VB中,引用ADO的步骤:
从“工程”菜单中选择“引用”。
从列表中选择“Microsoft ActiveX Data Objects 2.6 Library” 。单击“确定”,就可以实现程序和数据库的连接。
4.4主要技术分析
4.4.1创建公用模块
公用模块程序流程图:
4.4.2模块的技术实现:
超市收银系统主要包括商品管理、系统管理、收银管理、销售情况这四个模块。
1、商品管理模块包括进货信息、商品信息、供货商信息。
①进货信息实现货品的添加的功能
②商品信息实现商品的查询、显示所有等功能
③供货商信息可以浏览供货商的相关信息
2、系统管理模块包括系统信息和用户信息
①系统信息可以查看关于系统的版本、发布日期、制作者
②用户信息可以实现添加用户,删除用户,修改密码的功能
ⅰ添加用户
添加用户后可以看到右边的用户列表中添加了一条关于新用户的信息
ⅱ同样执行删除用户的操作后,右边的用户列表中会减少一条用户的信息
ⅲ修改密码
按表中的信息依次输入即可进行密码的修改。
3、收银管理
输入相关信息,确认后就可以将销售了的商品录入到数据库中,同样输入相关信息就能移除数据库中的商品信息。
4、销售情况可以实现商品的查询,也可以显示所有的商品信息,包括库存量,价格,数量,总额,将其显示在列表框中。
5超市收银系统的运行效果与测试
系统测试是为了发现系统中的错误,保证系统的正确性与在输入不正确时的容错与纠错性。本系统测试主要经历了静态测试、模块测试和系统整体测试。
5.1测试系统管理模块
系统管理模块主要用来判断合法用户的,用户如果没有输入用户名和密码,将出现消息框提示,如果输入的用户名在用户表中没有找到,将提示重新输入用户名。用户登录成功后即可进入主窗体中。用户登录界面如下:
5.2主窗体中有四个模块:
1、测试商品管理模块
商品管理模块测试的目的是保证供货信息,商品信息,供货商信息的正确性与在数据输入不正确时的容错与纠错性。选择菜单中商品管理|供货商信息,出现供货商信息对话框,供货商信息添加的测试,具体通过在添加记录框中输入重复的信息,空信息来检查系统的出错运行状况,要求系统在遇到这些情况时正确的错误提示。
查询商品信息的测试,具体通过输入空的商品名来检查系统的出错运行状况,选择菜单中商品管理|商品信息,出现商品信息对话框,按商品名查询商品基本信息。
2、系统管理|用户信息,出现用户信息对话框
然后查看系统的相关信息,有系统版本等
3、选择菜单中的收银管理,出现销售窗体
输入ISBN,商品名,价格,数量,确认后即可显示到销售信息中,完成应收,实收,找零等功能,如果输入的商品不在数据库中,即没有库存,则提示请输入信息,如果输入信息不完整,则提示请输入完整信息。此外,还可以从数据库中删除商品信息,输入要删除的商品,移除即可。
4、选择菜单中销售情况,出现销售情况对话框
可以先浏览一下销售信息表中的已销售了的商品的信息,查询时,输入商品名,即可查询出商品的信息。
最后退出系统。
6、小结:
这次毕业实习设计收获颇大,首先对视图和触发器的认识和作用都上了一个台阶。通过这次的课程设计,我不仅拓宽了自己的知识面,还在实践过程中巩固和加深了自己所学的理论知识,使自己的技术素质和实践能力有了进一步的提高,同时我的专业水平也有了很大的进步。熟悉大型数据库管理系统的结构,熟悉了数据库系统开发工具的使用。
同时,在软件开发方面也累积了不少经验,对软件工程的知识重要性的认识更深了。通过设计过程的锻炼,自己分析问题和解决问题的能力都得到了锻炼和提高,完善了自己的知识结构,加深了对所学知识的理解。
这次课程设计完成后,体会颇多,在学与做的过程中,取长补短,不断学习新的知识,吸取经验,达到进步的目的。在学与做的过程中自身的努力以及相关图书资料的帮助,对ODBC编程接口的理解也从能够使用提高到了熟练使用,对程序开发的一般过程和对数据库知识的运用也有了进一步的了解。
在这个快速发展的当代社会里,数据库已经普遍应用在各个领域。通过课程设计,我学习到不少的数据库方面的知识,但由于自己的理论知识水平有限,实践知识和设计经验不足,在设计过程中难免存在一些问题,甚至错误。这些我会在以后的工作和实践中加以改进和提高。