燕熙超市收银系统的设计与实现_第1页
燕熙超市收银系统的设计与实现_第2页
燕熙超市收银系统的设计与实现_第3页
燕熙超市收银系统的设计与实现_第4页
燕熙超市收银系统的设计与实现_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章 绪 论由于现在的科学技术发展非常之快,而计算机技术在各个领域都有相应的应用,是各行各业的一个实用的工具。特别是Internet网的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对书数据库的进一步开发和利用显得尤为迫切。作为国内市场的燕熙超市,它在信息化过程中的步伐要落后于其他大型的超市,而对于这些企业的资源管理,信息的存储和处理也显得非常需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是非常必要的。1.1研究课题的目的现代化的社会生活,使得市场的走向发生巨大变化,由于经济

2、的发展,人民对生活的需求已经不再满足于丰衣足食的低度要求,许多人们往往不是单纯为满足生活必须去购买,而是凭着喜欢、意欲和感官去购买。如果一个商店能够打动顾客、吸引顾客,自然会顾客盈门,而近几年新兴产业中超级市场的现代化管理方式和便捷的购物方式,尤其是它轻松的购物环境,往往是打动顾客,吸引顾客的最主要的原因,且良好的周密的销售服务更是赢得信誉、吸引的顾客的优势所在。商品经济的高速现代化发展也促进了竞争,使一切不甘落后的商家都争先恐后地采用最新的管理方法来加强自己的竞争地位。因为,超市经营者如果不掌握当今市场发展的这一走向,不能将超市现代化经营作为奴努力开拓的目标,就无法成功的经营超市,获得丰厚的

3、利润。现代化事业的发展,也使超市的管理数段发生前所未有的革命,计算机的运用正在发达国家的各类商店超市中普及。由于它能够准确记载和查询有关超市经营活动的大量数据,帮助超市经营者掌握和分析营销情况,及时作出正确决策,并且有利于商店内部财务、工资、人员、库存、销售情况等管理,因而大大提高了现代超市的管理水平。国外很多发达资本主义国家的有关人士都在开发超市管理系统,开发出很多大型的软件,由于本人能力有限,开发一个小型超市管理系统,它可以使我们国内新起小型超市可以更好的操作。此系统的有减少差错,节省人力、减少顾客购物时间,增加客流量,提高顾客满意度等特点。我通过开发这个简单管理信息系统,巩固了以前所学的

4、知识,提高了应用能力。1.2 研究课题的意义在我国,超市形成在20世纪90年代初期,现在已经成为我国零售业的一种重要形态,为国民经济的发展发挥了重要的作用。随着超市高速的发展,其经营管理也变得愈加复杂,早期的售货员站柜台的形式早已不能满足现有销售也的发展,这样就迫切地需要引入新的管理技术。超市形态具有种种优点,但在目前状况下,它仍存在零售业企业所共有的落后的一面,如:不能有效地管理每种商品,收款结算速度慢,容易出现营业差错,不宜进行商品调价,盘点效率低等,而且在超市日常管理中,商品的进、销、存等决策以经验为主,缺乏实时分析功能,管理人员对及时传递资料的要求始终得不到满足。苏辙超市形态的高速发展

5、,其经营管理也变得愈加复杂,日常所需要处理的数据量也逐渐增大,商业运转的中间环节也越来越多,原始的人工管理已无法应对这复杂的市场。为此,在选题过程中,我选择了超市管理系统设计题目,依靠现代化的计算机信息处理技术来管理超市,从而节省了大量的人力、物力,改善了员工的工作条件,减轻了劳动强度,并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。第二章 可行性分析2.1 可行性研究系统开始和可行性研究是为系统开发做前期准备1。在对一个项目的开发之前,我们总是要对其进行一个可行性分析与需求分析,通过和指导老师的共同分析得出了可行性开

6、发计划。对于需求分析我们作了如下调查分析的需求。2.1.1 技术可行性随着软件编程技术的不断增加,功能的不断加强,和网络技术的不断成熟,信息安全的不断完善以及开发工具的日益进步,采用计算机系统来管理超市要求数据的采集、更新能够完整、准确和及时,所以开发通用的超市收银系统已经完全可以做到。2.1.2 经济可行性因为通过网络传递销售信息,可以不受距离的限制,因此可以节约许多的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高超市的销售效率,即提高了超市的经济效益,所以从经济上是完全可行的。2.1.3 操作可行性本系统采用Windows图形界面,是大家熟悉的操作系统,对于用户只需要具

7、有一般的计算机知识的人员都可以轻松上手。而且整个销售系统采用最友好的交互界面,简洁明了,不需要对数据库非常了解。 由此,该系统的操作是可行的,有必要推广该系统。综合以上三方面,该系统具有很高的开发可行性,无论是从技术上经济上还是操作上。故此,可以设计该系统流程图,建立数据字典。2.2 开发环境介绍该系统属于管理信息系统,管理信息系统(MIS,Management Information System)可以保存用户信息,通过对信息进行分析和处理,可以帮助用户制定计划、规范管理或提供决策依据。超市收银系统具有其特殊性,通常采用C/S结构,考虑到其为小型超市,所以在架构上面选择两层。2.2.1 SQ

8、L Server2005介绍Microsoft公司的SQL Server是关系型网络数据库管理系统,它的工作环境为Microsoft Windows NT 系列或Microsoft Windows98。SQL Server与Microsoft公司的其它软件,如Microsoft office和Microsoft Visual Studio设计风格一致,并能相互配合。SQL Server具有分布式数据库和仓库管理功能,支持客户机/服务器结构,并能进行分布式事务处理和联机分析处理。SQL Server具有强大的数据库管理功能,它提供丰富的管理工具以支持数据库的安全性管理、完整性管理和作业管理。SQ

9、L Server还具有强大的网络功能,支持发布Web页面和接收电子邮件。SQL Server支持ANSI SQL(标准SQL),并将标准SQL扩展成为更加实用的Transact-SQL4。使用SQL Server 2005,开发人员通过使用相似的语言,例如微软的Visual C# .NET和微软的Visual Basic,将能够创立数据库对象。开发人员还将能够建立两个新的对象用户定义的类和集合。在使用本地网络和互联网的情况下,在不同应用软件之间散步数据的时候,可扩展标记语言(XML)是一个重要的标准。SQL Server 2005将会自身支持存储和查询可扩展标记语言文件。从对SQL类的新的支持

10、,到多活动结果集(MARS),SQL Server 2005中的ADO.NET将推动数据集的存取和操纵,实现更大的可升级性和灵活性。2.2.2 C/S介绍在网络连接模式中,除对等网外,还有另一种形式的网络,即客户机/服务器网,Client/Server。在客户机/服务器网络中,服务器是网络的核心,而客户机是网络的基础,客户机依靠服务器获得所需要的网络资源,而服务器为客户机提供网络必须的资源。这里客户和服务器都是指通信中所涉及的两个应用进程(软件),所以有时要根据上下文判断client与server是指软件还是硬件。C/S可以充分利用两端硬件环境的优势,将任务合理分配到 Client端和Serv

11、er端来实现,降低了系统的通讯开销。最简单的C/S体系结构的数据库应用,由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,称为应用服务器,一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户程序运行在用户自己的电脑上,对应于服务器电脑,可称为客户电脑。当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果。在典型的C/S数据库应用中,数据的储存管理功能,是由服务器程序独立进行的,并且通常把那些不同的(不管是已知还是未知的)前台应用所不能违反的规则,在服务

12、器程序中集中实现,例如访问者的权限,编号不准重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)这背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序可以变的非常“瘦小”,麻烦的事情,都交给了服务器和网络。在C/S体系的下,数据库真正变成了公共、专业化的仓库,受到独立的专门管理。第三章系统需求分析3.1需求分析现在,计算机正以一种前所未有的冲击力在影响着人类的活动,包括人类的生产和日常生活。计算机的诞生和发展,颠覆了传统的工作和管理方式,极大地改变了人类从生产到生活的各种活动,并且给人类带来了新的机遇

13、和挑战。通过计算机的应用,社会劳动生产率大幅度提高,并推动经济结构革新和产业结构的升级。为了提高超市的工作效率,节约成本等,本课题的任务是开发一适应中型超市收银管理系统。实现C/S结构的分布式系统,支持多个终端进行收银管理,共享一个数据库。对用户的权限有明确划分。商品入库商品销售营业统计商品信息供应商信息用户信息再有,界面设计必须清晰醒目,使用户可以一目了然地知道系统有哪些功能。希望该系统在实践的同时,能尽快的发现其不足,并尽快的改正,尽可能满足用户的要求。 (2)数据精确度产品的进货单和销售单中,单价、金额采用浮点数,数量都取整数。(3)时间特性该系统软件从启动到进入系统登录界面的时间正常情

14、况下少于5秒,录入并更新数据的时间正常情况下少于10秒。该管理系统软件适用于Windows 2000/Windows XP中文版下运行。3.2软件功能的划分与概述(1)功能要求对库存产品进行资料管理和统计;对产品的进货单和产品的销售单进行录入管理和统计;对进货、销售、库存情况进行查询;对用户进行管理,具体为添加用户、删除用户、修改用户密码;对供应商基本信息的管理;对赢利状况分析,进行营业统计,按年月日及商品类别统计;3.3模型建立实体联系图(E-R图)实体联系图清楚、准确的描述了用户数据,以数据模型方式反映用户的现实环境,形象描绘了数据对象及数据对象之间的关系。数据模型包含三种信息:数据对象、

15、数据对象的属性及数据对象的彼此之间的相互连接的关系实体联系图符号说明:超市管理系统E-R图实现小票小票应付金额商品名称商品数目商品单价实付金额找零mnmmnmnmn供应商供应商品m仓库n库存管理地址供应商名电话供应种类数量单价商品名管理员姓名类型密码品类编号条形码库存量操作权限销售小票mnmnmn供应商供应商品m仓库n库存管理地址供应商名电话供应种类数量单价商品名管理员姓名类型密码品类条形码库存量销售小票操作权限编号3.4数据流图数据流程图是在对系统调研阶段绘制的业务流程图进行分析的基础上,从系统的科学性、管理的合理性、实际取得的可行性角度出发,将信息处理功能和彼此之间的联系自顶向下、逐层分解

16、,从逻辑上精确地描述新系统应该有的数据加工、数据输入、数据输出、数据存储以及数据的来源和去向,综合的反映出信息在系统中的流动、处理和存储情况。也就是说,数据流程图是分层次的,绘制时,先将整个系统作为一个加工环节画出系统顶层的流程图,然后再逐层细分,画出各个处理功能的第一层流程图、第二层流程图等,直至整个系统不能再分,分解结束。本节将列出并讲解几个数据流图。3.4.1数据流图的符号说明数据流(程)图由以下四种基本元素组成,它们的符号。加工(处理逻辑)加工(处理逻辑)数据存储数据流外部项(外部实体) 数据流图的主要符号3.4.2数据流图的实现根据超市收银管理系统的实际运行情况,划分出了以下管理功能

17、块,并且明确了各个功能块之间的联系,根据这些关系绘出数据流图的最顶层,即第0层,:用户用户(管理员)P1商品管理D1 商品信息数据P2营业统计P3供货商管理P5用户管理P6系统管理D3 销售信息数据D2 进货信息数据D4 盘点信息数据D5 供货商信息数据D7 用户信息数据D8 系统信息数据商品信息商品信息F8 系统信息系统信息销售信息进货信息盘点信息供货商信息销售信息进货信息盘点信息用户信息用户信息用户信息统计信息供货商信息供货商信息D9 备份信息数据备份信息进货信息盘点信息商品信息供货商信息销售信息0层数据流图0层数据流图仅从总体上反映了超市收银管理系统的各信息之间的联系,为了对整个项目信息

18、管理系统有一个全面、详细的了解,应按照自顶向下、逐层分解的分析方法,对顶层图进行进一步细化。以下就是对系统管理这个功能模块进行细化后所得到的一层数据流图。下面是对“系统管理(P6)”功能模块进一步细化而得到的“系统管理”第一层DFD图3.5数字字典:为了对数据流程图中的各个元素做出详细说明,我们建立了数据字典。用数据字典描述数据库的设计,便于维护和修改。数据字典的内容主要是对数据流程图中的数据项、数据结构、数据流、数据存储和处理逻辑等五个方面进行具体的定义。名称:系统管理描述:超市收银系统的登录、用户操作、设置等操作定义:系统管理=登录系统+系统设置+关于系统+退出系统登录系统=输入用户名+输

19、入密码用户名=4数字4密码=6数字6数字=0|1|2|3|4|5|6|7|8|9退出系统=退出收银系统系统设置=系统参数的设置+数据库初始化+数据库备份与恢复+修改当前用户密码+商店信息的设置+小票打印格式的设置关于系统=系统帮助+系统功能描述名称:商品管理描述:对超市内商品进行操作定义:商品管理=商品添加+商品修改+商品删除+商品查找+盘点商品+调整商品+商品的数据导出到EXCEL文件+EXCEL文件导入到系统名称:营业统计描述:对超市的营业额进行统计,以报表形式显示定义:营业统计=年销售统计+月销售统计+日销售统计+明细管理+销售信息导出年销售统计=超市一年营业额和月销售统计=超市一个月营

20、业额和日销售统计=超市一天营业额和明细管理=信息浏览+信息删除+信息导出营业额=收银钱数和名称: 供货商管理描述:对超市供应商的一些操作定义:供货商管理=供货商添加+供货商修改+供货商删除名称:供货商信息描述:供货商的说明定义:供货商信息=供货商号+供应商名+联系电话供货商号=4数字4供货商名=5字母15联系电话=4数字15数字=0|1|2|3|4|5|6|7|8|9字母=a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z名称: 用户管理描述:超市用户信息设定与修改等操作定义:用户管理=用户信息管理用户信息管理=修改用户+添加用户+删除用户名

21、称: 商品信息描述:商品的说明定义:商品信息=商品代号+商品名+商品售价+库存量+商品进价+保质期+供应商+使用说明名称:进货信息 描述:超市每个一段时间对货物的补给定义:进货信息=货物种类+货物名称+货物数量+货物价格+货物供应厂家名称+货物供应厂家联系方式3.6状态转换图状态转换图指明了作为外部事件结果的系统行为,描绘了系统各种行为模式和在不同状态间转换的方式,状态转换图主要包括两方面;状态与事件;状态是任何可以被观察到的系统模式,状态分为初态(初始状态)、终态(即最终状态)和中间状态;事件是在某个特定时刻发生的事情情,它是对引起系统做动作或从一个状态换到另一状态的外界事件的抽象。状态转换

22、图符号说明:初态实心圆终态一对同心圆中间态圆形矩形,分上(状态名称)、中(状态变量的名字和值)、下(活动表)三部分主要符号可如下图表示状态变量1状态变量1 状态1活动表1活动表2 状态1初始事件事件结束事件 状态变量2第四章 总体设计4.1 设计思想(1) 系统分成几个相对独立的模块,但这些模块都进行集中式管理。(2) 分层的模块化程序设计思想,整个系统采用模块化机构设计。作为应用程序有较强的可操作性和扩展性。(3) 合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。4.2 设计原则为了使本系统功能齐全完备,操作简便,最

23、大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵循了,如下原则:(1) 合法性原则:依据产品核算系统的工作规定以及要求,参照核算实际的工作情况,进行诸如商品进货、销售等工作。(2) 实用性原则:适合产品信息管理工作的实际需求,并能够处理一些特殊情况的要求,此外,尽可能预留空间,以便扩充功能。(3) 准确性原则:对输入的相关资料建立检错机制,及时报错,使用户能够及时准确的输入合法资料(如类型匹配,长度不超限等)。(4) 易操作原则:要求设计的系统功能齐全,接口友好,操作方便,必要的地方进行提示。(5) 源程序可读性原则:为了便于其它设计,维护人员读懂代码或以后的代码修改,软件升

24、级维护,既可能做好代码注释工作。(6) 优化原则:为了达到优化的目的,合理的运用窗口,菜单,对象等的继承,自定义用户对象,事件,函数,减少不必要的重复性代码,使程序简洁明了,也方便了将来的维护。(7) 安全性原则:该系统的管理员具有可设置登陆密码,修改密码的权限。经过前面的设计,我们对整个系统有了一个初步的认识,并对各个模块进行了功能分化。 4.3功能模块和结构设计小型超市管理系统包括系统管理员、库存管理员、商品销售员三大角色,对应本系统中的权限,根据权限的不同,可操作的业务不同。本节将对小型超市收银系统进行总体设计,介绍系统的总体功能和模块划分。4.3.1 系统结构小型超市收银系统所包含的功

25、能模块有:商品入库模块、商品销售模块、营业统计模块、商品信息模块、供应商信息模块、用户信息模块。系统功能结构图见图3-1。燕熙超市收银系统燕熙超市收银系统商品入库商品销售营业统计商品信息供应商信息用户信息图3-1 系统功能结构图超市收银系统的业务流程图,如图3-2所示。图3-2 系统业务流程图4.3.2 系统各功能模块定义(1)商品入库模块:该模块用于实现商品的入库管理,当供应商所供商品出现问题需退货时可以实现退货管理。另外用户还可以根据条件查询相关的入库记录。(2)商品销售模块:该模块用于实现商品售出、收银功能。顾客倘若对商品不满意还可以进行退货处理。(3)营业统计模块:该模块实现商品销售情

26、况及入库情况统计分析,让系统用户可以根据时间查询统计信息。(4)商品信息模块:该模块实现商品基本信息的管理,如商品的添加、修改、删除操作、条件查询。对于低于库存报警值的商品会显示出来。(5)用户信息模块:该模块实现用户基本信息的管理,含用户的添加、修改、删除,用户信息记录的浏览。(6)供应商信息模块:该模块实现供应商基本信息的管理,系统用户可以实现供应商信息的添加、删除、修改,条件查询以及查看供应商可提供的相关商品。4.4 数据库设计数据库在一个管理信息系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数

27、据的完整和一致,同时,合理的数据库也将有利于程序的实现6。设计数据库系统时应该充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。4.4.1 数据库的需求分析SQL Server数据库的建立方法可以分成两个阶段,第一个阶段是根据要输入的数据性质,新增表并设置表的字段名称、数据类型和语句,第二个阶段是在表内输入数据。根据上述系统功能的分析,得出系统有如下需求信息:(1)系统必须能够区别各种用户,如库存员、收银员。(2)系统支持用户的增加、登陆。(3)系统必须能够显示各种商品的信息,并允许用户使用搜索功能来查找自己所需要的商品。(4)系统必须能将所有商品信息进行分类。(5)系统能支持用户

28、将商品入库、退货。(6)系统能支持用户将商品售出、退货。(7)系统支持供应商信息的管理。(8)系统支持营业情况的查询。经过上述功能分析和需求总结,设计如下的数据项和数据结构:(1)用户,包括数据项:编号,用户名,密码,权限。(2)商品类别,包括数据项:编号,商品名称。(3)商品,包括数据项:商品编号(条形码),商品名称,类别,库存量、报警值,计量单位,规格,售价。(4)供应商,包括数据项:名称,联系人,联系电话,传真,地址,合作起始时间。(5)销售记录,包括数据项:编号,操作人,商品编号,售价,售出数量,售出时间。(6)进货记录,包括数据项:商品,供应商,操作人,进价,进货数量,进货时间。(7

29、)供货,包括数据项:供应商,商品,最新进价。4.4.2 数据库概念结构设计得到上面的数据项和数据结构后,就可以设计出系统中的各个实体以及他们之间的关系,为后面的逻辑结构设计打下基础。本系统根据上面功能分析和需求总结设计出的实体共有下面几个,下面分别列出本系统所使用到的各基本实体和各实体之间的联系。如图3-3所示: 图3-3 实体联系(E-R)图4.4.3 数据库逻辑设计(1) 表设计将数据库的概念结构设计转换成关系模型,就得到了以下的几张数据库中的表7:下面分别介绍这些表。系统登录用户的基本信息保存在用户信息表里,其中对于用户编号,通过自增方式实现,无需用户手动编号,编号从1000起始。详细说

30、明如表3-1所示。表3-1 用户信息表(Users)序号属性名字段名类型长度NULL默认备注1编号UserIDint4主键自增,标识种子10002真实名字UserNamevarchar103密码UserPasswordvarchar50MD5加密存储4权限UserRightvarchar10商品种类繁多,可以划分为大范围的不同种类。对于这些种类,已事先划分并存储于数据库中,不需要用户自动添加。商品类别信息表如下表3-2。表3-2 商品类别信息表(GoodsType)序号属性名字段名类型长度NULL默认备注1类别编号TypeIDtinyint主键自增2名称TypeNamenvarchar10商品

31、信息表记载的是商品的详细信息,含商品编号、名称、类别、计量单位、规格、售价、库存量等等。具体的各字段属性说明和类型如下表3-3。表3-3 商品信息表(GoodsInfo)序号属性名字段名类型长度NULL默认备注1商品编号GoodsIDnvarchar20主键2类型号TypeIDtinyint3名称GoodsNamenvarchar504计量单位GoodsUnitnvarchar55规格GoodsNormnvarchar206售价GoodsSellPricesmallmoney7库存量GoodsNumint408报警值AlarmNumint409备注GoodsRemarknvarchar100描

32、述信息入库记录表包含商品入库的相关信息,入库信息有入库时间、操作人、进库商品、商品数量等。每一笔商品的入库都对应一个编号,具有唯一性。在这里,对编号的处理就是用入库时的时间做编号。具体的各字段的属性说明和类型如下表3-4所示。表3-4 入库记录表(StockInfo)序号属性名字段名类型长度NULL默认备注1编号StockIDvarchar20主键,与时间相关2商品编号GoodsIDnvarchar20外键3供应商编号CompanyIDint4外键4操作员Operatorint4外键5进价GoodsPricesmallmoney6数量GoodsNumint417备注Remarknvarchar

33、100商品销售信息存储在销售记录表中,流水编号也采用时间作为编号,具有唯一性。各字段的详细情况见下表3-5。表3-5 销售记录表(SellInfo)序号属性名字段名类型长度NULL默认备注1编号SellIDvarchar20主键,与时间相关2商品编号GoodsIDnvarchar20外键3操作者Operatorint4外键4售价SellPricesmallmoney5数量GoodsNumint46备注Remarknvarchar100退货原因供应商供货价格表中记载的是供应商所可商品的信息,含商品编号、供货商编号、最新进价。各字段的详细信息见下表3-6。表3-6 供应商供货价格表(StockPr

34、ice)序号属性名字段名类型长度NULL默认备注1商品编号GoodsIDnvarchar20组合主键2供应商编号CompanyIDint4组合主键3最新进价GoodsSellPricesmallmoney供应商信息表记录的是供应商的基本信息,其中编号由系统自动编号,采取主键自增方式,编号始于1000。各字段的详细信息见下表3-7。表3-7 供应商信息表(Company)序号属性名字段名类型长度NULL默认备注1编号CompanyIDint4主键自增2名称CompanyNamenvarchar503联系人CompanyDirectornvarchar104电话CompanyPhonenvarch

35、ar205传真CompanyFaxnvarchar206地址CompanyAddnvarchar507合作时间HzDataTimedatetime(2) 视图设计根据逻辑模型所设计出的各种数据表构成了完整的物理数据库。由于业务范围的限制,每一个用户不可能访问数据库系统中的所有数据表,所访问的只是数据表的一个子集。我们把一个用户能访问到的数据表集合称为一个视图(View)8。视图是以一致和直观的方式提供给用户的数据形式。视图以这种形式给用户提供数据,一方面为了满足用户对数据访问的方便性、简洁性需要,使数据在视图中以更符合用户要求和喜好的形式展现出来,另一方面,为了保证数据的一致性,最好不要把数据

36、表直接提供给最终用户。该数据库中涉及到的视图有两个:视图QuerySell,对应的Transact-SQL语句:SELECT dbo.SellInfo.SellID, dbo.SellInfo.GoodsID, dbo.GoodsInfo.GoodsName, dbo.GoodsType.TypeName, dbo.Users.UserName, dbo.SellInfo.SellPrice, dbo.SellInfo.GoodsNum, dbo.SellInfo.RemarkFROM dbo.GoodsInfo INNER JOIN dbo.SellInfo ON dbo.GoodsInfo

37、.GoodsID = dbo.SellInfo.GoodsID INNER JOIN dbo.Users ON dbo.SellInfo.Operator = dbo.Users.UserID INNER JOIN dbo.GoodsType ON dbo.GoodsInfo.TypeID = dbo.GoodsType.TypeID视图QueryStock,对应的Transact-SQL语句:SELECTdbo.StockInfo.StockID, dbo.StockInfo.GoodsID, dbo.GoodsInfo.GoodsName, dbo.GoodsType.TypeName,

38、dbo.Company.CompanyName, dbo.Users.UserName, dbo.StockInfo.GoodsPrice, dbo.StockInfo.GoodsNum, dbo.StockInfo.RemarkFROM dbo.StockInfo INNER JOIN dbo.GoodsInfo ON dbo.StockInfo.GoodsID = dbo.GoodsInfo.GoodsID INNER JOIN dbo.Users ON dbo.StockInfo.Operator = dbo.Users.UserID INNER JOIN dbo.Company ON

39、dbo.StockInfo.CompanyID = dbo.Company.CompanyID INNER JOINdbo.GoodsType ON dbo.GoodsInfo.TypeID = dbo.GoodsType.TypeID第五章 系统实现系统用SQL Server2005做后台数据库,进行基于.NET发平台的WinForm应用程序开发,基本实现其功能。以下将描述系统几个主要功能模块的运行和测试的结果。5.1 登陆系统模块当我们建立了一个完整的系统时,尤其对于管理系统,对于进入每个系统的人员我们都要对他进行身份验证,我们当然不希望有任何人进入该系统进行恶意的破坏,对系统中的数据进行

40、修改,维护该系统的系统管理员也不希望有任何麻烦,所以对系统进行安全保护显的很重要,无论对于谁,系统的安全问题是首要的9。为了解决这个问题,有一个简单、实用,但是老套的方法,就是口令加密。在该小型超市收银系统中对口令的加密采取的是常用的MD5加密算法。在新增或修改用户信息时,存入数据库的是用户密码的MD5哈希值,在登录验证时根据用户输入的密码计算相应的MD5哈希值进行比较。加密方法:public static string EncryptMD5(string oldData)/将字符串转化为字节序列Byte clearBytes = new UnicodeEncoding().GetBytes(

41、oldData); /计算字节序列对应的Hash值Byte hashedBytes = (HashAlgorithm)CryptoConfig.CreateFromName(MD5).ComputeHash(clearBytes);/返回经MD5加密后的字符串return BitConverter.ToString(hashedBytes);在用户登录系统时,用户只需要输入分配的用户ID,只要ID号正确就可以自动显示出相应的用户名。为了防止他人获知用户的密码,增强系统的安全性,我们将待输入密码的文本框的PasswordChar设为*,当用户输入密码后,系统将对所输入的密码进行检查,只有当密码正

42、确才可进入到系统主界面,否则系统会提示错误。登录界面如图4-1所示。图5-1 登录界面图用户登录成功后,会记下登录该系统的用户的权限,权限的不同,进入主界面后可进行的操作而异,体现在控件的可响应用户的鼠标点击事件与否。主界面如图4-2所示。由于该用户属商品销售中的收银员,可以看到他只具有商品销售的权限。图5-2 系统主界面图5.2 商品信息模块商品基本信息管理模块,用户可以对商品信息加以管理,界面可交互性强,运行时的界面图如下图4-3。其中红色显示为低于库存值,需要进货的商品。图5-3 商品基本信息管理界面图5.3 商品入库模块具有库存管理权限的用户进行商品入库操作时,需要输入商品编号,至于供

43、应商可以从下拉列表中选择,如果供应商记录未添加至数据库,可先单击右侧的“添加供应商”按钮。依次输入进货价、进货数量,当进货数量为负数时进行就是退货操作。确认进货时若发现为新商品则提示先新增商品,进货记录成功添加出现对话框提醒。进货运行界面如下图4-4所示。图5-4 商品入库运行图在入库查询中,可以根据各种条件组合查询,在输入商品名称时可实现模糊查询匹配,满足条件的入库记录将出现在网格中10。如图4-5。图5-5 入库查询界面图5.4 商品销售模块商品销售模块能处理商品销售业务过程,输入商品编号后回车确认后单击“确认”按钮就可将商品添加至待售商品列表。根据快捷键操作,修改数量。当顾客对购买的商品

44、不满意时,在未使用商品的情况下,可以对商品进行退货。这时只需将商品数量的修改置为负数即可。另外可以在备注框中输入退货原因信息,方便了解退货原因,反馈给商品厂家。商品销售运行界面图如下图4-6所示。图5-6 商品销售运行界面图开发商品销售模块过程中,对输入的数据要进行严格控制。此时,用到较多的是TextBox控件的KeyPress事件和TextChange事件,下面对这两个事件进行详细说明。(1)实收金额文本框中控制金额的输入合理,只能是数字键、BackSpace键、小数点键被按下时才接受所按下的键,实现的代码如下11:private void txtGetMoney_KeyPress(obje

45、ct sender, KeyPressEventArgs e) if(e.KeyChar!=8 & !char.IsDigit(e.KeyChar)&e.KeyChar!=.&e.KeyChar!=-) MessageBox.Show(输入数字); /弹出提示 e.Handled = true; (2)找零金额由系统自动计算出并显示在文本框中,实现代码如下:private void txtGetMoney_TextChanged(object sender, EventArgs e)/当所收付款改变时,所找零钱数目也跟着改变 if (txtGetMoney.Text != ) if (txtG

46、etMoney.Text != -) float fltMoney = Convert.ToSingle(txtGetMoney.Text.ToString(); float fltNeedPay = Convert.ToSingle(lblNeedM.Text.ToString(); txtChange.Text = (fltMoney - fltNeedPay).ToString(0.0); else txtChange.Text = ; 应该所收的钱数及商品的数量也由系统自动计算出,当网格中待售商品的信息有所改变时就自动计算。相应的系统运行界面如下图4-7所示。实现代码如下:privat

47、e void SetCount() /并修改标签中的值,即售出总件数及售价 int intGoodsNum = 0; float fltMoney = 0.0f; for (int i = 0; i dataGridView1.Rows.Count; i+) intGoodsNum += Convert.ToInt32(dataGridView1.Rowsi.Cells4.Value); fltMoney += (Convert.ToSingle(dataGridView1.Rowsi.Cells3.Value) * Convert.ToInt32(dataGridView1.Rowsi.Ce

48、lls4.Value); intGoodsNum = Math.Abs(intGoodsNum); lblCount.Text = intGoodsNum.ToString(); lblNeedM.Text = fltMoney.ToString(); 图5-7 商品销售结算结果图手动输入商品编号时,当已输入前七位后系统将自动检索前部相同的商品编号信息。实现代码如下: for (int i = 0; i myTable.Rows.Count; i+) myString.Add(myTable.Rowsi0.ToString(); txtID.AutoCompleteCustomSource =

49、 myString; txtID.AutoCompleteSource = AutoCompleteSource.CustomSource; txtID.AutoCompleteMode = AutoCompleteMode.Suggest; 商品销售的过程中要与数据库交涉,与数据库频繁传输数据,采用ADO.NET数据库访问技术。为了提高效率,对插入商品销售记录实现时借助于存储过程来提高速度。5.5 营业统计模块用户可以根据时间段的输入查看营业情况,本系统对营业情况的分类,有依具体明细,有按商品分类,也有按收银员统计。运行界面图如下图4-8所示:图5-8 营业统计运行结果5.6 供应商模块对供

50、应商信息的管理,增删改查都在该界面完成,工具栏中的增删改按钮对应相应的操作。初进入到该窗体时所有的供应商信息都会出现在窗体中的网格,用户可以输入查询条件定位出某供应商,对其进行修改删除操作。双击网格中某供应商的记录,会出现该供应商所提供的商品信息。相应的运行界面图如下图4-9所示。图5-9 供应商管理运行图修改删除可实现批量更新,而新增必须在无改删操作或者以上操作后已做保存。这得利于数据库ADO.NET技术中提供的对象SqlCommandBuild,将离线数据库DataSet集中的数据更新至数据库,保持二者的同步和一致性。实现代码如下:5.7用户信息模块具有系统管理员的用户可打开用户信息模块对应的窗体,完成对用户信息的管理,运行界面如下图4-10。图5-10 用户信息界面运行图第六章 系统测试系统开发完成后,在软件开发阶段的最后一步就是对系统进行测试。测试是为了发现程序中的错误。在对本系统进行测试时,本文作者对本系统做了以下的测试计划。6.1 测试计划根据软件工程的知识,对本系进行了单元测试,集成测试。测试内容(1)单元测试:根据系统模块要求分类,其对应的测试单元包括:登陆测试商品入库测试商品信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论