超市库存管理系统大作业 2Word格式.docx
《超市库存管理系统大作业 2Word格式.docx》由会员分享,可在线阅读,更多相关《超市库存管理系统大作业 2Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
具体要求为:
(1)系统需求明确,要求使用。
net技术、网页与数据库连接技术.
(2)主页要求有用户登录显示,实现信息的查询、添加、删除等基本功能。
(3)课程设计报告不能雷同,雷同者全部以0分记载。
每个人需要检查设计的系统,设计报告文档,并提交纸质版的课程报告和电子版的系统设计资料,电子版资料包括:
源程序,系统运行效果截图,电子版的资料以班为单位刻成光盘后由班长统一提交.
设计报告撰写格式要求:
1设计题目与要求2设计思想
3系统结构4数据结构的说明和模块的算法流程图
5系统详细设计,内容包括各个模块的设计,数据库的设计,数据库连接设计。
6调试过程和运行结果及结果分析(其中包括网站各个模块的运行结果和结果数据分析)
7自我评价与总结
8附录:
程序清单,注意加注释(包括关键字、方法、变量等),在每个模块前加注释;
时间安排
6月8日布置课程设计任务;
分配题目后,查阅资料、准备程序;
6月9~6月13日上机调试程序、书写课程设计报告;
6月14日提交课程设计报告及相关文档。
指导教师签字:
2013年6月6日
系主任签字:
2013年6月6日
1设计题目与要求
宋体五号字体………
2设计思想
本系统的每一个功能模块都包含了多个功能。
整个系统主要完成对超市商品的日常管理,包括进货管理,销售管理,库存管理,员工管理和供应商管理等方面。
在功能上系统可以完成对相关信息的浏览、查询、添加、删除、修改等功能。
本课题的核心之一是销售管理、库存管理和进货管理三者之间的联系,同时系统有完整的用户管理及权限管理功能.
本系统采用C#语言和SQL
Server
2005作为开发工具。
这种系统优势在于系统比较简单,但功能强大,扩展性能也比较好,完全能够处理一般超市的日常任务
3系统结构
此处描述系统结构。
……。
本系统主要完成超市管理(商品信息管理、供货商管理、进货管理、退换货管理、商品销售管理、客户管理、客户退货管理、仓库设置、库存管理)等功能。
通过以上功能实现简单、便捷的超市管理系统.
4数据结构的说明和模块的算法流程图
详细设计的根本目标是确定应该怎样具体地实现所要求的系统,也就是说,经过这个阶段的设计工作,应该的出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某个设计的语言书写的程序。
详细设计的任务不是具体的编写程序,而是要设计出程序的“蓝图”,以后可根据这个蓝图写出实际的程序代码。
详细设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂.
本系统所包括的几大模块如下:
登录模块、进货模块、库存管理模块、销售管理等多个模块.
4。
1系统主要功能模块设计
1.1登录模块流程
本模块的主要功能是对用户身份进行验证,只有系统的合法用户才能进入系统。
在进行系统登录过程中,登录模块将调用数据库里的用户清单,并对账号和密码进行验证,只有输入了正确的账号和密码后,系统登录才会成功。
并在输入了错误的或者是不存在的账户和密码时,系统会提示出错信息,指明登录过程中的错误输入或者错误操作,以便用户进行正确的登录。
系统登录模块流程如图4.1所示。
4.1。
2进货管理流程
功能:
该模块主要是实现进行进货信息查询功能.
进货信息查询:
该模块为超市提供整个超市的进货情况查询,也可以进行进货信息的明细查询.
输入项、输出项:
该模块的输入项为超市的进货单,其中包括进货单的编号、商品的编号、供货商号、进货价、数量、金额进货日期和备注。
进货管理流程如图4.2示:
3销售管理流程
功能:
本模块的主要功能是把销售信息写入销售清单,同时对库存清单进行更新,以备用户将来对库存信息进行查询和打印,此外还可以对销售信息进行查询和盘点功能。
销售信息查询:
根据商品销售情况,按需要对销售情况进行查询。
在该查询模块中,可以按照商品的编号、销售日期等多种方式进行商品销售信息查询。
销售信息盘点:
可以按照需要对在一定时期内的销售情况进行盘点。
本模块的数据输入项主要是商品的销售单号和商品编号。
其中还包括销售数量和销售日期。
销售管理流程如图4。
3所示。
4库存管理流程
本模块的主要功能是商品信息的查询和更新,库存信息的查询和更新。
查询商品信息:
主要功能查询商品的明细信息,和它的库存信息.
添加商品信息:
主要功能添加新进的商品.
修改商品信息:
主要功能是修改商品的信息,包括他的库存数量。
删除商品信息:
主要功能是删除不再销售的商品信息。
本模块的数据输入项主要是商品编号。
库存管理流程如图4.4所示。
2系统主要功能模块实现
4.2。
1登录模块实现
为了提高软件操作安全性,用户进入系统前,需进行身份验证,通过此窗体输入个人信息以验证身份。
再输入过程中也可以通过虚拟键盘来输入,如果用户名和密码都正确,单击登录按钮,则进入系统。
如果输入错误,则会提示密码错误,继续输入,如果连续3次错误,则会退出系统.系统登录界面如图4.5所示.
图4.5登录模块
实现过程:
在登录界面中实现中通过BindAllUsers()来绑定用户类型,MemorizePwd()来记住密码。
当登录窗体加载的时候就进行查询,如果LoginJilu表中最大ID的state=0的时候就表示上次登录的用户选中了,否则没有选中,如果选中了就根据用户ID到users表中把用户姓名和密码查找出来。
DataTabledtUserId=um。
GetUserIdByUserNameAndPwd(name,pwd);
intuserId=Convert.ToInt32(dtUserId。
Rows[0][”userId"
])。
如果用户名或密码不正确,则记载输入错误密码的次数,如果密码错误次数多余系统设置的数据,则会自动退出系统.DataTablecishu=um。
GetTime();
为了便于鼠标点击输入。
调用电脑的虚拟键盘代码如下:
System.Diagnostics。
Process.Start(”osk.exe”)。
2。
2进货管理模块实现
商品的进货管理是超市管理系统中的一个非常重要的功能,在庞大的商品信息中,能够及时添加所缺少的商品,是超市经营中一个重要的环节.本系统采用商品数量预警方案,当商品数量下降到预警范围内。
管理员就会及时发现缺的商品,从而进货。
本模块对商品的录入进行操作。
进货管理模块如图4。
6所示。
实现过程:
建立采购购物车,然后给购物车绑定数据,并调用购物车的数据。
将购物车的商品显示到采购窗体上面,并将商品类型绑定到树形控件上,实例化树节点,保存商品的编号,用递归调用方法添加子节点,并展开所有节点.详细流程如下:
如果已经采购了商品,添加采购订单详表的数据,for(inti=0;
i<
dgvStock.RowCount;
i++),并用实体封装数据StockModels=newStockModel()。
并对输入的数据进行检查,如果检查没有错误.则生产流水号并显示数据BindBussinessNames();
MessageBox.Show(”采购成功!
”)。
3销售管理模块实现
销售管理是超市系统中的核心部分,进入销售界面,选择需要的货物,并输入数量.系统会自动算出价格.录入待销售的界面。
点击确认,并转向销售单。
销售信息的写入销售清单,同时对库存清单进行更新,以备用户将来对库存信息进行查询。
商品详细的信息已经录入超市的数据库中,这样大大缩小了销售人员的工作量。
提高了销售人员的工作效率。
销售管理模块如图4。
7所示.
图4.7销售管理模块
建立销售购物车,获取库存数量,得到dgvAlreadyBuyGoods的数据源,并转换为DataTable,如果购物车中有数据if(dt3!
=null&&
dt3。
Rows。
Count〉0),如果已经购买了所选中行的商品,就只进行数量的增加if(dr["
商品名称"
]。
ToString()==name2),调用更新数据库库存,并绑定新数据gm.UpdateGoodsNum(newGoodsNum,goodsID);
并将购物车中的商品显示到销售窗体上。
doublesunMoney1=0;
for(inti=0;
i〈this.dgvAlreadyBuyGoods。
RowCount;
i++).
4库存管理模块实现
库存管理模块主要用于编辑每种商品的具体信息,如商品代码、商品名称、商品价格、库存数量等。
用户可以通过该模块添加、编辑、删除、查找商品信息,同时可以依据显示的库存情况制定进货单,制定后程序通过将新进货单数据插入到后台数据库中的进货表中,来实现数据间传递,这样在进货界面用户可以了解到进货情况.库存管理模块如图4.8所示。
图4。
8库存管理模块
由于系统的大部分功能都要涉及到对数据库的操作(Select、Insert、Update、Delete),所以本系统将各个表的数据封装成类的形式进行操作,在类中定义字段、属性、方法,主要实现数据的添加、修改、删除、查询及即时更新的功能。
这样使得工程的结构清晰,思路明了。
初始化文本框和组合框,绑定商品类型和单位类型。
并用实体累封装信息。
GoodInfoModelgoods=newGoodInfoModel();
。
如果InsertOrUpdate==0就执行添加操作,判断添加的商品是否已经存在。
if(dv。
Count!
=0&&dv2。
Count!
=0)如果InsertOrUpdate==1就执行修改操作,
if(this.txtStorkPrice.Text。
CompareTo(txtSellPrice.Text)==1)。
4.2.5权限管理模块实现
权限管理也是一个系统不可缺少的模块,在实现的时候有很多的方法,本系统使用的是给每个用户设定一个用户和密码,然后采用分级权限管理,管理员可以为每个用户分配不同的权限。
在修改的时候,只要选中各种权限的检查框,就代表该用户具备了该权限.权限管理模块的界面如图4.9所示。
添加根节点,实体化树节点。
并将节点添加到树上,找出所以子节点,实体化树.将节点添加到父节点上,绑定角色表到下拉列表,并用递归调用方法添加权限。
给选定的角色添加权限intnodes=Convert.ToInt32(node。
Tag.ToString());
选中节点,并遍历树的根节点,如果树节点和权限角色表中的记录权限编号相等,递归调用,勾上子节点.
CheckChildNodes(node).
5系统详细设计
内容包括各个模块的设计,数据库的设计,数据库连接设计
1)存货清单管理:
1)库存管理员每天进行查看一次;
2)库存管理员当发现库存商品有损坏时,处理报损;
3)订购的商品到货时,库存管理员首先检查商品是否合格,并将合格的商品入库处理,更新相关信息;
4)当商品进入卖场时,进行商品出库处理.
(2)提货清单管理:
1)售货员接受顾客订单,输入顾客购买的商品;
2)售货员保存顾客购买商品的记录清单。
(3)订货清单管理
1)订货员用新商品供应商信息更新供应商供应商数据库的信息;
2)订货员统计库存商品,根据需要制作订货单。
(4)统计清单管理
1)统计员根据存货、提货、和订货清单统计相关信息;
在以上分析的基础上,可以初步确定系统在一个统一功能界面的前提下,分为存货清单管理模块、提货清单管理订货清单管理和统计清单管理模块四大模块。
功能图如图所示。
建立超市库存管理系统的用例图模型
1)系统角色
超市服务的对象是顾客,超市系统内部员工可以按人员的职能来分类。
2)超市库存管理系统的顶层用力图
3)提货管理子系统的用例图
4)订货管理子系统的用例图
6调试过程和运行结果及结果分析
其中包括网站各个模块的运行结果和结果数据分析
6。
1系统测试步骤
6.1。
1单元测试
单元测试也称模块测试.通常单元测试可放在编码阶段,程序员在编写好一个模块后,总会对自己编写的模块进行测试,检查它是否实现了详细设计说明书中规定的模块功能和算法.单元测试主要发现编码和详细设计中产生的错误,通常采用白盒测试.本系统用户登录模块单元测试方案如下:
1)用户登录模块输入测试方案
输入姓名、密码,点击登录
2)用户登录模块输出结果预测
输入正确该用户将成功登录到主界面
3)用户登录模块测试结果预测
a测试记录
姓名:
赵斌密码:
123
b结果分析
成功登录到管理员主界面,说明该模块正常
成功登录到员工主界面,说明该模块正常
提示“编号或密码错误,请重新输入”
2集成测试
集成超市管理系统测试的主要目的检测系统是否达到需求对业务流程及数据流的处理是否符合标准,检测系统对业务处理是否存在逻辑不严谨及错误,检测需求是否存在不合理的标准及要求。
本系统的集成测试如表5。
1所示。
表5.1超市管理集成测试表
超市管理系统集成测试目标
检测需求中业务流程,数据流的正确性
超市管理系统测集成试范围:
需求中明确的业务流程,或组合不同功能模块而形成一个大的功能
技术:
利用有效的和无效的数据来执行各个用例、用例流或功能,以核实以下内容:
在使用有效数据时得到预期的结果
在使用无效数据时显示相应的错误消息或警告消息
各业务规则都得到了正确的应用
开始标准:
所计划的超市管理系统测试已全部执行
所发现的缺陷已全部解决
完成标准:
超市管理系统测试重点和优先级:
超市管理系统测试重点指在超市管理系统测试过程中需着重超市管理系统测试的地方,优先级可以根据需求及严重来定
需考虑的特殊事项:
确定或说明那些将对功能超市管理系统测试的实施和执行造成影响的事项或因素
1.3确认测试
确认测试的任务是检查软件的功能、性能及其他特征与用户的需求一致,它是以需求规格说明书(即需求规约)作为依据的测试.确认测试通常采用黑盒测试。
这次的测试方法是从性能评测来进行确认测试,它对响应时间、事务处理速率和其他与时间相关的需求进行评测和评估.性能评测的目标是核实性能需求是否都已满足.实施和执行性能评测的目的是将超市管理系统的性能行为当作条件(例如工作量或硬件配置)的一种函数来进行评测和微调。
具体实施确认测试如表6。
2所示。
表5.2超市管理确认测试表
超市管理系统确认测试目标
核实所指定的事务或业务功能在以下情况下的性能行为
使用为功能或业务周期超市管理系统测试制定的超市管理系统测试过程.通过修改数据文件来增加事务数量,或通过修改脚本来增加每项事务的迭代数量
综合的性能超市管理系统测试还包括在服务器上添加后台工作量。
2系统测试
6.2。
1界面测试
界面测试主要包括以下几个方面的内容:
窗体是否正确背景和色调是否正确、美观,是否符合用户需求;
窗体在窗口中的显示是否正确、美观,表单样式大小,格式,是否对提交数据进行验证(如果在页面部分进行验证的话)等连接的形式,位置,是否易于理解等。
窗体元素的容错性列表、窗体元素的容错性是否存在、窗体元素的容错性是否正确、窗体元素基本功能是否实现、窗体元素的外形、窗体元素是否显示正确。
6.2.2功能测试
对功能测试是测试中的重点,主要包括一下几个方面的内容:
连接这个连接和界面测试中的连接不同那里注重的是连接方式和位置,如是图像还是文字放置的位置等,还是其他的方式.这里的连接注重功能。
如是否有连接,连接的是否是说明的位置等。
表单提交应当模拟用户提交,验证是否完成功能,如注册信息,要测试这些程序,需要验证服务器能正确保存这些数据,而且后台运行的程序能正确解释和使用这些信息。
还有数据正确性验证,异常处理等,最好结合易用性要求等。
B/S结构实现的功能可能主要的就在这里,提交数据,处理数据等如果有固定的操作流程可以考虑自动化测试工具的录制功能,编写可重复使用的脚本代码,可以减轻测试人员的工作量.
本次毕业设计实践中,毫无疑问要感谢的是我的上课老师,在这次毕业设计中,老师不辞辛劳的一点点的帮助我们,从选题的指导到系统设计的修改,让我从刚开始的摸不到头脑到后来的日益纯熟,都是老师辛勤付出的结果.在设计中我还领略到了老师认真负责的工作态度,严谨的治学精神,以及乐观热情的生活态度,老师不仅仅的在指导我的课程设计,也在指导着我今后的人生,她教导我的这些东西,会对我以后的学习生活大有裨益.所以在这里我真诚的对给予我认真指导和耐心帮助的老师表示最深切的谢意。
通过这次的毕业设计,自己对软件工程又有了一个更深层次的理解.以前在做任何设计时,对设计的前期工作不是很重视,但通过这次系统的编写,我发现前期的设计是很重要的一部分,只有对设计的需求分析有了很好的理解才能有更好的解决思路.平时我们在代码编写时对函数和变量的命名都很随便,还缺少必要的注释,或许这样问题当时能够解决但对于后期开发和维护以及旁人的阅读都带来了一定的困难,都可能会产生异议或不理解。
再者测试在项目开发中也是很重要的一个环节,测试能对一些程序的Bug做一些必要的弥补,可以使程序更加的完善和人性化.
8附录
程序清单,注意加注释(包括关键字、方法、变量等),在每个模块前加注释
[1]刘甫迎、刘光会、王蓉.C#程序设计教程(第2版).北京:
电子工业出版社,2008:
P52—24
[2]李兰友、杨晓光.VisualC#.NET程序设计.北京:
清华大学,北方交通大学出版社,2004:
P68—59
[3]王昊亮、李刚等.VisualC#程序设计教程.北京:
清华大学出版社,2003:
P43—25
[4]张海藩.软件工程导论.第四版.北京:
清华大学出版社,2004:
P65—92
[5]InmonW.数据库管理.第二版.北京:
电子工业出版社,2000:
P66-10
[6]ImhoffC.数据库设计.第四版.北京:
机械工业出版社,2004:
P171-197