1、超市管理信息系统分析与设计摘要随着小超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长。超市时时刻刻都需要对商品各种信息进行统计分析。而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率。超市管理系统是市场上最流行的超市上常用的系统之一,它主要包含以下几个模块:系统权限的设定、原始数据录入、数据的汇总及查询等。从而,实现对进货、销售及员工信息等实现全面、动态、及时的管理。本文系统的分析了软件开发的背景以过程;首先介绍了软件的开发环境,其次介绍了本软件的详细设计过程:数据库的设计、各个模块的设计和实现,以及具体界面的设计和功能。关键词:超市 ,管理信息系统1
2、.系统概述1.1 现状分析随着计算机技术的发展,一个崭新的信息化的世界已经展现在我们眼前。如今,你可以随处看到很多不同种类的信息管理系统。超市的发展,其经营管理也变得愈加复杂,早期的售货员站柜台的形式早已不能满足现有销售也的发展,这样就迫切地需要引入新的管理技术。由于所掌握的物资种类众多,订货、管理、发放的渠道各有差异,各类统计报表繁多,因此仓库的库存管理必须编制一套库存管理信息系统,实现计算机化操作。所以说,一个成功的现代化超市需要一个现代的管理系统来保证企业产品的精细化管理,保证最大化利用资源。1.2 系统总目标超市管理的主要目标就是建立一个效率高、无差错、通用性好又节时的超市管理系统。通
3、过对超市所有出入库活动的管理和控制及对仓库数据有效地统计和分析,以保证超市的物流,使决策人员及早发现问题,采取相应措施,调整库存结构缩短储备周期,加速资金周转,最大限度的降低库存占用,随着计算机技术的不断发展,计算机的使用已经十分普遍,每个企业都拥有计算机。使用计算机对库存信息进行管理有着很多人工记录所无法比拟的优点,比如查询快捷、信息安全性高、添加删除方便等。使用的这套库存管理系统是超市经营管理活动中的核心,此系统必须可以用来控制合理的库存费用、适时适量的库存数量,使企业生产活动效率最大化。本库存管理系统是一套对货品入库、出库、库存进行全面管理的系统。在管理内容上,它的主要功能包括:进货管理
4、、出货管理、统计报表、系统管理。 2.系统分析2.1 可行性分析2.1.1 技术可行性 该系统用 SQL Server 2008 和 Microsoft Visual Studio 2010 做的,所以,只要在 windows 环境下安装 SQL Server 2008 和 Microsoft Visual Studio 2010 就可运行该程序。我们在上一学期已经掌握了 SQL Server 2008 的用法,能够进行数据库的构建,随着深入的学习,我们能够具备开发这款软件系统的知识,综上,我们在技术上是可行的。 2.1.2 经济可行性分析 我们的开发人员都是学生,开发这款软件是为了提高自己的
5、能力,我们有充分的时间完成项目开发,我们也不需要额外开销,并不需要担心资金问题,所以,我们在经济上是可行的。2.2 系统需求分析需求分析是系统开发的首要步骤,也是直接影响系统整体性能和功能的关键步骤。系统的需求分析主要是对系统的可行性、性能和功能进行具体地分析。不合理的需求分析,会使系统的开发环节出现许多错误和走许多弯路,导致系统开发时间长,效率低,系统质量受到影响。2.2.1 功能需求分析功能分析:系统具有仓库管理系统的基本功能。系统分为两个部分,一个是用户部分:用户可以使用用户名和密码登录系统进行操作。一个是系统部分:这部分包括对商品的入库、出库操作,在库货物查询等功能。模块分析:登录模块
6、:仓库管理人员进入系统必须经过登录。添加商品信息模块:新入库的商品,在进入仓库之前,必须经过仓库管理人员的进行添加。入库模块:仓库中已有的商品才能进行的操作,主要是入库数量上的变化。商品类别管理模块:商品类别来区分各种商品,将商品分类管理。系统性能分析:本系统操作简单,界面美观,使用本系统的超市管理人员不需要掌握太多的专业知识便可熟练使用。系统能够迅速的将超市管理人员对商品信息的操作(包括商品的入库、出库,商品信息的修改和删除,商品类别的添加和删除等)显示在对应的页面中,达到“即时操作,即时显示”的效果。系统功能完善,包括了一般超市管理系统的所有功能,完全能够满足用户的需要。2.2.2 业务流
7、程图采购单入库单 入库单审核调拨单 盘点单出库单销售单出库单审核库存台账统计报表采购入库调拨入库调拨出库盘亏出库销售出库货品入库货品出库盘盈入库图 1 业务流程图2.3 数据字典数据流名:商品信息。说明:商品信息的存储并对其进行编码,来区别各类商品。数据流来源:人工输入。数据流去向:数据库并各种报表打印。数据流组成:货号,品名,拼音编码,规格,单位,产地,类别,进货价,销售价。数据元素:供货商资料。组成:供货商号,拼音编码,简称,名称,地址,联系人,业务员,备注。数据流名:客户资料。说明:各大客户资料。数据流来源:人工输入。数据流去向:数据库并报表打印。数据流组成:客户编号,拼音编码,简称,名
8、称,联系人,地址,邮编, 数据元素:仓库信息。组成:仓库号,仓库名,类别,管理员编号,备注。数据元素名:采购订单。说明:用于录入企业的采购订单。组成:编号,供货商号,订购日期,有效起日,有效之止日,业务员,制单员,税价合计,扣率,税率,不含税价,税额,备注。数据元素名:进货单。说明:用于录入企业的进货单。组成:编号,供货商号,进货日期,业务员,制单员,验收员,税价合计,不含税价,税额,订单号,备注。数据元素名:销售明细。说明:销售单的从表。组成:编号,销售单号,货号,销售数量,销售价,税价合计,扣率,税率,不含税价,税额,仓库号,备注。数据元素名:收款单。说明:用于录入企业收回货款的凭证和销售
9、应收款。组成:编号,发票号,填票日期,销售单号,货号,客户编号,数量,销售价,金额,收款日期,详细说明,销售日期,状态,减预收,备注。2.4 数据流图货品管理系统顾客职工供应商销货单 进货单超市经理采购单统一信息商品信息清单商品信息操作人事信息操作人事信息清单图 2 数据流顶层图1 : 库存管理2 : 销售管理3 : 采购管理: 4 : 商品信息库存信息查询库存信息清单销售信息采购信息采购信息查询库存信息采购信息请求销售信息查询销售单销售信息清单采购单采购信息清单进货单新供货商信息商品信息查询商品信息清单商品信息图 3 数据流一层图E1供 应 商F1 发 货 单P1.2验 货P1.3入 库 检
10、查P1.4退 货审 核F12采 购 不 合 格 单F13入 库 不 合 格 单P1.5库 存 修 改P1F2 采 购 单P1.1采 购审 核F7 缺 货 单F11 入 库单 F10 采 购合 格 单F8 采 购 退 货 单S1 库 存 信 息表采购数据流图仓储数据流图销售数据流图3系统设计3.1 总体结构设计本系统包含了超市管理系统所需要的基本功能,能够满足一般用户对于仓库管理的需要,能有效的提高超市管理人员的工作效率。根据系统的需求分析,系统大体分为以下几个模块:系统管理、添加商品信息模块、出库模块、入库模块、信息查询模块。其中,各个模块又有不同的子模块超市货品管理系统出货管理信息查询进货管
11、理系统管理注册用户修改用户身份验证写货品信息入库单填写出库单填写采购员信息货品查询库存查询报表查询图 4 组织结构图3.2 数据库设计3.2.1 概念结构设计用于信息世界的建模,是现实世界到信息世界的第一层抽象。一般采用实体-联系方法,即 E-R 图。根据数据库需求分析规划出的实体有:库存类型实体、商品类型实体、用户信息实体、销售单实体、账单实体等。各个实体具体的实体属性图如下:用户用户号姓名性别 年龄联系电话销售 顾客商品编号商品名称数量价格销售时间进货名称编号价格供应商商品商品名称商品编号成本价格供应商供货名称编号联系电话m nmnm n图 5 总 E-R 图库存管理价格商品编号商品名称供
12、应商供应商编号供应商名称联系电话图 6 库存 E-R 图商品信息商品编号商品名称价格 成本图 7 商品信息 E-R 图用户用户号性别姓名联系电话年龄图 8 用户 E-R 图3.2.2 逻辑结构设计采购管理(商品编号,商品名称,价格,供应商,供应商名称,供应商编号,联系电话)销售管理(商品编号,商品名称,数量,价格,销售时间)库存管理(供应商编号,供应商名称,联系电话,供应商,价格,商品编号,商品名称)商品信息(商品名称,商品编号,价格,成本)员工信息(员工号,姓名,年龄,性别,职位,联系电话)根据数据库概念结构设计,将数据库概念结构转化为 SQL Server 2008 所支持的实际数据模型,
13、即数据库的逻辑结构。其各个数据库表的设计结果如下:图 9 管理员信息表图 10 货品信息表图 11 库存信息查询表图 12 仓库人员信息添加管理图 13 入库单信息表4.系统实现系统的设计是系统开发中的一个重要环节。本章将主要介绍一个基于 B/S架构的超市管理系统的总体结构、系统架构和数据库设计。总体结构主要介绍了各个模块之间的关系,数据库设计主要说明了表的建立和数据之间的关系。本系统包含了仓库管理系统所需要的基本功能,能够满足一般用户对于仓库管理的需要,能有效的提高仓库管理人员的工作效率。4.1 主界面模块当仓库管理人员用正确的用户名和密码登录进系统之后,即可直接进入到主界面。在主界面上,有
14、各个子功能界面的超链接选项,包括添加超市货品、管理超市货品、查询货品、添加用户。当管理人员完成工作后,即可选择退出。图 14 主界面图代码:超市货品管理系统4.2 各模块实现4.2.1 登陆模块本系统是一个单用户系统。仓库管理人员使用用户名和密码登入系统之后,可进入主界面对系统进行操作。界面:图 15 登陆模块图代码:if (this.TextBox1.Text = “ | this.TextBox2.Text = “)Response.Write(“alert (请输入完整信息后再提交!)“);elseSqlConnection con = new SqlConnection(“Data S
15、ource=(local);Initial Catalog=chgl;Integrated Security=True“); /连接数据库/ SqlConnection con = new SqlConnection(“server=.;database=mysys;uid=sa;pwd=sa;“); /连接数据库 string str = “select * from admincsgl where username=“ + TextBox1.Text + “and password=“ + TextBox2.Text + “;con.Open(); / 打开连接SqlCommand cmd
16、 = new SqlCommand(str, con); / 创建Command对象 SqlDataReader dr = cmd.ExecuteReader(); / 执行ExecuteReader()方法if (dr.Read()Session“username“ = TextBox1.Text; Response.Redirect(“main.aspx“);elseResponse.Write(“alert (用户名或密码错误!)“);dr.Close();con.Close();4.2.2 添加模块:当货物进入超市仓库时,超市管理人员可以使用主界面上的“添加超市货品”操作选项进入商品入
17、库界面。在这个界面中,仓库管理人员可以看到现有商品的所有信息,并且可以在相应的商品信息后面点击入库操作选项进行商品的入库操作。界面:图 16 添加模块图代码:ConnectionString=“ DeleteCommand=“DELETE FROM product WHERE procode = procode“ InsertCommand=“INSERT INTO product (procode, proname, pronum, proprice) VALUES (procode, proname, pronum, proprice)“ SelectCommand=“SELECT * F
18、ROM product“ UpdateCommand=“UPDATE product SET proname = proname, pronum = pronum, proprice = proprice WHERE procode = procode“4.2.3 查询模块:本模块主要功能为商品信息查询。超市管理人员进入该页面后,可以在本模块的界面中查询到所有商品的信息,并且还有关于商品出库和修改商品信息操作的超链接选项。界面:图 17 查询模块图代码:SqlConnection con = new SqlConnection(“Data Source=(local);Initial Cata
19、log=chgl;Integrated Security=True“);con.Open();string str = “select * from product where proname=“ + TextBox1.Text + “;SqlDataAdapter sda = new SqlDataAdapter(str, con);DataSet ds = new DataSet();sda.Fill(ds);this.GridView1.DataSource = ds;this.GridView1.DataBind();con.Close();图18 查询模块图代码:SqlConnect
20、ion con = new SqlConnection(“Data Source=(local);Initial Catalog=chgl;Integrated Security=True“);con.Open();string str = “select * from 超市货品信息查询表 where 编号=“ + TextBox1.Text + “;SqlDataAdapter sda = new SqlDataAdapter(str, con);DataSet ds = new DataSet();sda.Fill(ds);this.GridView1.DataSource = ds;th
21、is.GridView1.DataBind();con.Close();4.2.4 管理模块:当超市管理人员需要对在库商品进行管理时,只需在管理界面的相应的商品信息后进行操作即可。仓库管理人员可以看到现有商品的所有信息,进行管理。 界面:图 19 商品管理模块图代码:ConnectionString=“ DeleteCommand=“DELETE FROM product WHERE procode = procode“ InsertCommand=“INSERT INTO product (procode, proname, pronum, proprice) VALUES (procode
22、, proname, pronum, proprice)“ SelectCommand=“SELECT * FROM product“ UpdateCommand=“UPDATE product SET proname = proname, pronum = pronum, proprice = proprice WHERE procode = procode“4.2.5 用户添加模块:当有新的用户注册时,仓库管理人员需点击主界面的“添加用户”选项。在进行信息添加的操作过程中,填写信息,选择注册。当信息填写完毕之后,点击确定将信息进行注册。界面:图 20 用户添加模块图代码:string us
23、ername1 = TextBox1.Text;string password1 = TextBox2.Text;string age1 = TextBox4.Text;string email1 = TextBox5.Text;string aihao1 = DropDownList1.Text;SqlConnection con = new SqlConnection(“Data Source=(local);Initial Catalog=chgl;Integrated Security=True“); /连接数据库string insertString = “insert into a
24、dmincsgl (username,password,age,email,aihao) values (“ + username1 + “,“ + password1 + “,“ + age1 + “,“ + email1 + “,“ + aihao1 + “)“;con.Open(); / 打开连接SqlCommand cmd = new SqlCommand(insertString, con); / 创建Command对象 SqlDataReader dr = cmd.ExecuteReader(); / 执行ExecuteReader()方法Response.Write(“alert
25、 (注册成功!)“); con.Close();4.2.6 退出模块:图21 退出模块代码:Session.Abandon();Response.Write(“top.location.href=login.aspx;“);7.系统实施71 系统测试系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法 为了发现缺陷并度量产品质量,按照系统的功能和性能需求进行的测试 一般使用黑盒测试技术 一般由独立的测试人员完成 对于模块之间交互性比较强的软件,还会有单独的集成测试,用来发现模块接口之间的错误。系统测试的对象是整个应用软件系统,包括需
26、求分析、系统总体设计、详细设计各阶段的文档以及源程序。系统测试的目的是精心选取那些易于发生错误的测试数据,以十分挑剔的态度,找出软件中的错误,并改正错误。7. 2 测试原则:1) 由于这是个人力量开发的系统,所以测试的主要任务还是在开发人员身上,为避免这种自己开发自己测试的不足,可考虑请别人对系统进行试用。2) 设计测试方案时,不仅要包括确定的输入数据,而且应包括从系统功能出发,预期的测试结果,然后将运行结果与预期测试结果进行对比以发现有无错误。3) 测试用例不仅要包括合理有效的输入数据,还要包括无效的或不合理的输入数据。4) 不仅要检验软件是否做了该做的事,还要检查软件是否同时作了不该做的事
27、。5) 保留测试用例,作为软件文档的组成部分。73 测试计划:第一步:模块测试。这一部分工作主要在做项目的过程中完成,以保证每个模块作为一个独立单元能够正确运行。第二步:组装测试。在各个模块完成后,再将各相关模块连接起来,进行组合测试,以保证各单元模块能从整体上协调运行。第三步:经过组装测试,软件已装配完毕,接下去进行确认测试,进一步检查软件是否达到预期的全部要求,这一阶段除对整个软件的功能、性能进行测试外,还要对配置进行审查,看构件的全部构成成分是否齐全,质量是否合乎要求。第四步:经过确认测试后,软件已经测试完毕,然而软件只是信息系统的一个组成部分,还要与系统中的其分部分配套运行,所以最后要
28、进行系统测试。就是将信息系统的所有组成部分包括软件、硬件、用户以及环境等综合在一起进行测试,以保证系统的各组成部分协调运行。系统测试要在系统的实际运行环境现场,在用户的直接参与下进行。74 测试概述:对于系统是否能完成预定的功能,我们对系统进行了如下的总体系统测试:首先是系统的用户管理。其中对于设定用户我们选取了三组数据,分别为用户名空、密码空、以及输入密码不统一。通过三组数据的测试,已经达到我们预期功能。在出错情况下会出现对话框提示。用正确用户名及密码重新登陆,系统显示身份验证正确,安全进入。接着是对三个主要模块库存管理、采购管理、销售管理的测试。这是整个库存管理系统的关键部分。具体测试参见
29、设计小组中各人模块中的详细测试。为使用户使用方便本系统添加了附项分类。经办人员管理中调用经办人员表,从这张表可以清楚出入库的经办人员名单,对于货品出入库后所产生的问题,能够迅速根据此表明确责任。供货单位管理中调用了供货单位表,从此表可以看出入库货品中供货单位的情况。对于入库货品来源明确。也同时可以保证货品质量。进货单位管理中调用了进货单位表,从此表可以看出出库货品中进货单位的情况。对于出库货品去处明确。也同时可以保证货款及时回收。仓库信息管理中调用仓库信息表。从此表可以看到仓库分类,对于货品仓储地点清楚。财务处理:为了更好的使用系统,并使财务部能够使用。本系统添加了打印功能。在该功能中可以打印
30、报表:入库单、出库单、经办人以及损益表。除此之外,为方便使用,还将常用的按钮放置在主窗体上。为使系统数据安全,我们特意增添了数据备份、数据恢复功能。由数据备份功能,用户可以将数据备份在存储设备上。数据恢复功能是在系统出现错乱时,能恢复到之前的数据。75 详细测试说明:以下是对库存管理、采购管理和销售管理三大模块功能测试的具体说明。库存管理模块下设有货品信息处理、货品库存、超储货品和短线货品等四方面的功能。进入货品信息管理下的货品信息,调出数据库中的货品信息表,由此可得到库中货品的具体信息情况;而货品维护则是当货品入库和货品出库发生时,货品基本信息库要在第一时间得到双方面的更新,这就是此窗体的功
31、能;货品库存调用的是数据库中的货品库存表,从而我们可以得知库存货品的编码、名称、期初库存、本期出库、本期入库等具体库存货品信息,以便于查询和管理;超储货品调用了数据库中的超储货品表,从而可以得知是哪些货品超储了,货品的编码、名称、存放仓库等详细信息,以便于下次销售;短线货品是在货品销售后,若没有达到安全库存的要求,则要进行采购,从此窗体调出的短线货品表可以得知那些短线货品的具体信息,便于立即采购;以上是对库存管理模块各功能测试的具体说明。总结两周的面向对象课程设计,让我学到了很多实际运用的技能!在实训中的第一步是编写功能较为单一的小程序,虽然是小程序,但所用的知识却都是我们本学期学习的重点知识
32、。在做题的过程中让我把这些知识复习了一遍,强化了知识。平时我们学习面向对象几乎都是为了考试或者做一些比较常规的题目,然而,这次给了我们的将所学知识运用于解决实际问题的机会,让人更有激情,这就是编写软件的在雏形,也让我们感受到了编写软件程序的乐趣。但是不仅仅是如此,更为重要的是在运用所学知识的过程中,记住这些知识,并能够广泛的运用!这一次编写大作业的程序又让我感受到学程序可以锻炼缜密的思维了。因为平时练习的都是小程序,所以句段比较少,一些错误都很容易被检查出来,但是这次实训却是上百段的语句,难以检查,这就需要我们注意细节,真的是细节决定成败,因为不管程序的语句是多是少,但是只要有一条语句或语法不
33、正确,就不能使程序得到所需要的结果。通过这次的实验让我明白了学习中需要能力,素质,知识之外,更重要的是学会了如何去完成一个任务,懂得了享受工作。当遇到问题,冷静,想办法一点点的排除障碍,到最后获取成功,一种自信心由然而生,这就是工作的乐趣。有时候也需要虚心请教,从别人的身上真得能学习到不自己没有的东西,每一次的挫折只能使我更接近成功。除此以外,我还学会了如何更好地与别人沟通,如何更好地去陈述自己的观点,如何说服别人认同自己的观点。这次所学知识与实际的应用,理论与实际的相结合,让我大开眼界。也是对以前所学知识的一个初审吧!这次实习对于我以后学习、找工作也真是受益菲浅,在短短的两个星期中让我初步从理性回到感性的重新认识,也让我初步的认识这个社会,对于以后做人所应把握的方向也有所启发!相信这些宝贵的经验会成为我今后成功的重要的基石参考文献