收藏 分销(赏)

超市管理系统-软件工程-设计.doc

上传人:丰**** 文档编号:3902066 上传时间:2024-07-23 格式:DOC 页数:21 大小:251.50KB
下载 相关 举报
超市管理系统-软件工程-设计.doc_第1页
第1页 / 共21页
超市管理系统-软件工程-设计.doc_第2页
第2页 / 共21页
超市管理系统-软件工程-设计.doc_第3页
第3页 / 共21页
超市管理系统-软件工程-设计.doc_第4页
第4页 / 共21页
超市管理系统-软件工程-设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、超市管理系统摘 要根据系统所需功能,决定以Windows作为开发平台,采用B/S模式,选择myeclipse10作为开发工具,利用软件工程思想和方法,用面向对象的语言Java开发,数据库采用开源免费的Mysql。本系统具有进货管理、销售管理、员工管理,并对超市销售情况智能给出建议。关键词:windows、销售管理、Java、面向对象、mysql目 录摘 要I1可行性的研究11.1技术可行性研究11.2经济可行性研究11.3操作可行性研究11.4法律可行性研究12 需求分析12.1 用户业务需求12.2 功能需求22.3性能需求23 系统设计33.1 系统概要设计33.2 系统详细设计34 系统

2、实现114.1开发环境搭建114.2超市管理系统首页124.3超市管理系统登录模块134.4商品管理145 系统测试165.1 测试概述165.2 系统测试166 结束语17参考文献17II1可行性的研究1.1技术可行性研究本系统采用B/S模式,后台采用Java EE技术和apache-tomcat 6.0服务器、mysql数据库。同时,在老师的指导下,我们对此系统有了更加深的认识,并且这些技术能够在小组成员的合作下,完成了对超市管理系统的开发。1.2经济可行性研究由于超市的管理繁琐,我们所制作的这套系统,不仅解决了超市原始管理的一些费时、费力的操作,节省了人力、物力、财力,而且增加了超市的营

3、业额,这样使得超市的利润最大化。此外,市场竞争力的日趋加强,这套超市管理系统的应用,必定能够广泛应用。所以,从经济上这套超市管理系统是可行的。1.3操作可行性研究超市管理系统是基于B/S模式,浏览器是人们所熟知的软件,只要能对计算机有一定了解的员工都可以轻松上手,并且整个系统的制作,模块清晰,简要明了。在首页对各个方面的主要业务,进行由总到分的进行制作,每个模块都包含各自所对应的功能。所以,这套管理系统在操作上还是比较简便的。1.4法律可行性研究超市管理系统是我们自主研发的,不存在版权纠纷,这管理系统只作为超市的管理,在法律上,是可行的。由此,该超市管理系统在经济上、技术上、操作上、法律上是可

4、行的。综合以上四方面,该系统具有很高的开发可行性。2 需求分析2.1 用户业务需求(1)该系统管理软件可以对库存食品进行资料管理和统计,对产品的进货和销售进行录入跟统计。(2)该系统管理软件可以对管理员密码进行修改。(3)该系统管理软件可以对供应商进行添加,管理;当库存不足是,可以即时的打电话,及时的供货。当库存过多时,可以显示出来。2.2 功能需求本系统用自定向下方法,其模块功能主要有以下几个部分:员工管理模块、库存管理模块、进货管理模块、销售管理模块、商品信息管理模块和系统模块,具体功能如下:员工管理:是对超市的员工和供货商信息进行管理,包括查询、添加、删除和修改。进货管理:是根据超市的情

5、况,进行进货,并可以查询。库存管理:是对进货和销售的商品,根据库存量进行记录。销售管理:是对销售的商品进行查询。商品信息:是对新商品进行添加,并查询。系统管理:能够对供货商的信息进行添加和查询。2.3性能需求(1)数据精确度商品的进货和销售中,单价、金额都是保留至小数点后两位;2.4运行环境需求1.所需服务器端操作系统Linux或Windows2、浏览器要求浏览器的版本必须要IE8及以上版本3、硬件要求硬件满足的最低要求:CPU:2.2GHZ及以上 pentium处理器、或者AMD处理器内存:1G及以上硬盘:40G及以上自由空间显示器分辨率:不低于800*600必备软件Jre6.0及以上版本a

6、pache-tomcat-6.0Mysql5.13 系统设计根据前面需求分析的结果,运用面向对象的设计方法,得出了系统的主要功能模块以及每个模块要实现的大概功能,使开发者能对系统进行进一步的设计并进行开发。3.1 系统概要设计(1)系统分成几个独立的模块,并对其进行集中式管理,更能清晰的表现出超市管理的系统结构,使得系统一目了然,简便,便于员工的接受,对超市管理系统,增加了它的易操作性。(2)分层的模块化程序设计思想,系统采用分层的模块化结构设计,具有较强的可操作性和扩展性,这样更具有逻辑性,分层以后,使得超市管理系统更加的简便,易使用。员工信息管理商品库存管理商品信息管理商品销售管理商品进货

7、管理超市管理系统3.2 系统详细设计3.2.1 系统功能结构图超市管理系统商品信息管理员工信息管理商品进货管理商品销售管理商品库存管理添加商品类别商品信息维护添加商品信息添加员工信息员工信息维护商品进货登记商品进货查询进货退货登记进货退货查询商品销售查询员工业绩查询顾客退货办理商品退货查询商品库存查询商品库存报警商品库存盘点供应商管理3.2.2 系统功能设计系统功能设计是使系统实现超市的进、销、存等功能,让管理员直观的了解超市的运营状况。我们建立对应的数据库,并对信息进行收集、存储,并对信息进行维护。此系统共包括五大模块,分别是商品信息管理模块、员工信息管理模块、商品进货管理模块、商品销售管理

8、模块、商品库存管理模块。每个模块的功能如下:商品信息管理模块的功能:(1)实现员工信息的查询;(2)实现员工信息的更新。员工信息管理模块的功能:(1)实现员工信息的查询;(2)实现员工信息的更新,包括添加、删除和修改功能;(3)实现供货商信息的查询;以及更新,包括添加、删除和修改功能。商品进货管理模块的功能:(1)实现商品进货的录入;(2)实现商品进货的查询;(3)实现进货退货的录入;(4)实现进货退货的查询。商品销售管理模块的功能:(1)实现销售信息的查询;(2)实现员工业绩的查询;(3)实现顾客退办货的办理;(4)实现顾客退办货的查询。商品库存管理模块的功能:(1)实现商品库存的查询;(2

9、)实现商品库存的盘点;(3)实现商品库存的报警。3.2.3 系统数据库设计数据库设计是信息开发的核心技术,是建立数据库的技术,具体说数据库设计是将一个应用环境,构造数据库模式,建立数据库的系统,并能够存储数据,满足用户的各种要求,数据库设计室管理系统的重要组成部分。数据库是存储数据,并可以对数据进行存入、修改、删除等进行操作,目前最流行的软件是Mysql,它的功能相对于其他数据库,比较简单、免费。3.2.4系统数据库的分析数据库主要有信息的提供保存、更新、查询等功能。经过对超市管理系统的需求分析,设计了数据结构和数据如下所示:管理员表(admin):用户名、密码;商品信息表(goodInfo)

10、:销售编号、销售流水号、商品编号、销售价格、销售数量、销售总价、销售时间、售货员编号。员工信息表(employeeInfo):员工编号、员工姓名、员工密码、员工性别、员工生日、员工学历、员工电话、员工手机、员工身份证、员工邮箱、员工住址;学历表(educationInfo):学历编号、学历名称;商品退货登记表(buyBackInfo):退货编号、商品编号供货商名称、单价、数量、总价、退货日期、退货原因、退货加入日期;商品进货登记表(buyInfo):进货编号、商品编号、供货商名称、单价、数量、总价、进货日期、信息加入日期;员工销售业绩表(employeeSellResult):员工编号、员工姓

11、名、销售业绩;库存信息表(goodStockInfo):商品编号、库存数量;顾客退货信息表(sellInfo):销售编号、销售流水号、商品编号、销售价格、销售数量、销售总价、顾客退货原因、顾客退货时间;供货商信息表(supplierInfo):供应商名称、供应商法人代表、供应商电话、供应商地址。3.2.5数据库的概念结构设计为了清晰的表达用户数据的要求,我们就需要建立一个概念性的数据模型。最常用的表示概念性的数据模型是实体一联系方法(E-R模型).员工商品销售进货编号姓名性别身份证号籍贯销售单号编号商品名称价格数量销售日期生日学历层次手机号码邮件地址居住地址编号商品名称进货价进货数量进货总价进

12、货日期添加时间编号单位名称类别规格售价商品产地电话地址型号附加信息供货商法人代表公司名称退货编号价格数量原因总价日期3.2.6 数据库的逻辑结构设计1用户(admin)中文字段名英文字段名字段类型主键允许空账号adminUsernameVarchar(20)P/F否密码adminPasswordVarchar(20)否说明:此表存放管理员用户信息。2.供货商(supplierInfo)中文字段名英文字段名字段类型主键/外键允许空供应商公司名称SupplierNameNvarchar(50)否供应商法人代表supplierLawyernvarchar(4)是供应商电话supplierTeleph

13、oneVarchar(11)是供应商地址supplierAddressNvarchar(50)是说明:此表存放供货商信息。3.员工(employeeInfo)中文字段名英文字段名字段类型主键/外键允许空员工编号employeeNoVarchar(20)否员工姓名employeeNameNvarchar(20)是登录密码employeePasswordVarchar(30)是性别employeeSexNchar(1)是生日employeeBrithdaydatetime是学历层次employeeEducationIdint是家庭电话employeeHomeTelVarchar(20)是手机emp

14、loyeeMobileVarchar(20)是身份证employeeCardVarchar(20)是邮件地址employeeEmailVarchar(20)是居住地址employeeAddressNvarchar(80)是说明:此表存放员工信息。4.供应商退货清单(buyBackInfo)中文字段名英文字段名字段类型主键/外键字段约束值输入商品编号BuyBackIdintP否退货价格goodNoVarchar(20)是数量numberVarchar(50)是进货总价totalPricefloat是退货日期buyBackDateint是退货原因buyBackReasonfloat是退货当前日期b

15、uyBackAddTimedatetime是说明:此表存放供应商退货信息。5.商品销售(sellInfo)中文字段名英文字段名字段类型主键/外键允许空单据号sellInfoIdintP否商品编号sellNoVarchar(30)否商品名称goodNoVarchar(20)是价格Pricefloat是数量NumberInt是出售时间sellTimedatetime是说明:此表存放销售信息。6.商品(goodInfo)中文字段名英文字段名字段类型主键/外键允许空商品编号GoodNoVarchar(20)P否商品类别goodClassIdInt是商品名称goodNameNvarchar(20)否商品

16、单位goodUnitNvarchar(30)否商品型号goodModelNvarchar(2)是商品规格goodSpecsNvarchar(20)是商品售价goodPriceFloat是商品产地goodPlaceNvarchar(50)是附加信息goodMemoChar(10)是商品添加时间goodAddTimeDatetime是说明:此表存放商品信息。7.商品进货表(buyInfo)中文字段名英文字段名字段类型主键/外键允许空商品编号ouyIdIntP否商品名称goodNoVarchar(20)是供应商supplierNameNvarchar(50)是商品进货价格PriceFloat是商品进

17、货数量NumberInt是进货总价totaPriceFloat是进货日期buyDateDatetime是添加时间addTimeDatetime是说明:此表存放进货信息8.商品库存表(goodStockInfo)中文字段名英文字段名字段类型主键/外键允许空商品编号GoodNoVarchar(50)否库存数量goodCountInt是说明:此表存放库存信息3.2.7系统登录功能:该模块是提供管理员和员工的登录,只有输入正确的用户名和密码才能进入系统。3.2.8员工管理模块为了解决超市人员流动问题,我们增添了员工管理模块,用来对新员工信息进行添加,员工信息维护。新员工录入:在超市招新员工时,对员工基

18、本信息进行录入并存储。员工信息的修改:当员工登录密码忘记了的时候,可以对员工内的登录密码进行修改。员工信息维护:可以对员工一段期间的销售业绩进行查询。4 系统实现4.1开发环境搭建为了适应以后系统功能的扩充使用struts2+hibernate+spring框架开发开发准备: 安装Myeclipse10、tomcat服务器、mysql数据库整合SSH环境 下载struts-2.3.4、spring-framework-2.5.6、hibernate-distribution-3.3.2 jar包4.2超市管理系统首页当session中不存在user对象时,则表示用户没有登录,重定向到登录页面。

19、当session中存在user对象时,则显示欢饮您xxx 欢迎您 $user.username 退出未登录已登录4.3超市管理系统登录模块前端加javascript代码验证用户名和密码是否为空,假如为空则无法提交表单。只有当用户名和密码都不为空时才可以提交表单,然后到后台验证正确性。但假如用户的浏览器禁用了javascript,则前端的验证无效,传到后台的用户名和密码可能为空,所以在后台要注意避免空指针异常。后台验证:从user表中根据前台输入的用户名和密码查询获得User对象,假如User为空则表示用户名或则密码错误,User不为空则表示登录成功。访问数据库是由hibernate完成的,所以

20、不需要考虑sql注入。UserDao类根据用户名(username)和密码(password)从数据库中获得User对象代码Overridepublic User find(String name, String password) Session session = sessionFactory.getCurrentSession();String hql = from User as user where user.username=:name and user.password=:password;Query query = session.createQuery(hql);query.

21、setString(name, name);query.setString(password, password);List list = query.list();return list.size()=0?null:(User)list.get(0);Hibernate查询后台展现的的sql语句Hibernate: select user0_.id as id0_, user0_.password as password0_, user0_.username as username0_ from _user user0_ where user0_.username=? and user0_.

22、password=?4.4商品管理商品管理也面分为显示和添加,当session中没有user时,表示用户没登录,应该重定向到登录页面。假如已登录则看以看到管理页面。4.4.1显示从数据库商品表中取出所有已有商品,在浏览器中以表格显示。商品过多可以采用分页显示。后台数据库记录显示页面从数据库中取出所有商品,并保存到list集合中,然后在jsp页面中展现。GoodsDao类的查询所有商品Overridepublic List getList() Session session = sessionFactory.getCurrentSession();String hql = from Goods

23、as goods;Query query = session.createQuery(hql);return query.list();Hibernate查询后台展现的的sql语句Hibernate: select goods0_.id as id1_, goods0_.amount as amount1_, goods0_.name as name1_, goods0_.price as price1_ from _goods goods0_4.4.2添加添加时要判断添加的格式是否符合要求,价格和数量必须是数字,不是数据要提示输入错误。同样在前端用javascript验证,在后台还是要验证一

24、下。将从前台传过来的price和amount用正则表达式验证或者用Java的类Integer.praseInt(String )方法将得到的字符串转成int型,假如出现异常(说明格式错误)则表示输入有误,通知用户。double price = Double.parseDouble(formGoods.getPrice();int amount = Integer.parseInt(formGoods.getAmount();GoodsDao类添加商品Overridepublic void add(Goods goods) Session session = sessionFactory.get

25、CurrentSession();String hql = from Goods as goods where goods.name=:name;Query query = session.createQuery(hql);query.setString(name, goods.getName();List list = query.list();if(list.size() != 0) double price = goods.getPrice();goods = (Goods) list.get(0);goods.setPrice(price);session.save(goods);输入

26、的价格不是数字数据库中的数据假如商品名称存在不应该添加商品,而是更新商品数据。还要防止表单重复提交。用户在提交后的页面上点刷新时,就会产生表单重复提交问题,可以在产生表单给表单一个id,并将id保存到session中,当提交后将表单的id从session清除掉,想再次提交时从session中找不到id就不予提交。由于本系统用到了struts2,可以用struts2的标签防表单重复提交。5 系统测试5.1 测试概述测试的定义:程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与意义可以描述为:目的:发现程序的错误;意义:通过在计算机上执行程序,暴露程序中潜在的错误,消除软件故障

27、,保证程序的可靠运行。5.2 系统测试测试在软件开发过程中一直都是备受关注的,即使在传统的软件工程中,也有一个明确、独立的测试阶段。随着软件危机的频频出现以及人们对于软件本质的进一步认识,测试的地位得到了前所未有的提高。测试已经不仅仅局限于系统开发中的一个阶段,它已经开始贯穿于整个系统开发过程,人们已经开始认识到:测试开始的时间越早,测试执行的越频繁,所带来的整个软件开发成本的下降就会越多。为了使本软件运行更加稳定,我对它部分功能进行了全面的界面测试和功能测试,系统测试设计表模块测试结果登陆模块输入系统管理username:111,密码admin登陆失败输入系统管理usernamewild,密

28、码wild登陆成功显示商品未登录成功显示所有商品已登录转到登录页面添加商品namepriceamount威化饼7.866添加成功爽歪歪7.655更新成功醒目4.5s10输入有误,添加失败测试结果:操作结果与数据库中的数据对应,并无不同,系统的准确性和及时性得到了很好的验证,系统的增、删、改是即时完成的。至此系统的测试圆满结束。6 结束语经过近一个学期的艰苦努力,在xxx老师的指导下我们终于完成了超市管理系统的设计与实现。从可行性研究到需求分析到设计再到实现最后到测试,本系统是严格按照软件开发的过程来的。通过对这个系统的实现,我们知道团队合作的重要性,初步了解了软件开发。从开始到结束每个成员都积

29、极的参与,遇到不懂的一起查资料,同组的人相互学习,对程序设计和Java等知识都有了很大的提高。首先,我们要感谢x老师,在我们的开发过程中,给了我们极大的帮助,她严谨求实的教学、对工作兢兢业业、孜孜以求的作风和大胆创新的进取精神,深深的影响了我们。这不是单个组员的功劳,是我们大家不懈努力、艰苦奋斗的结果。这次的设计,无论从技术上还是环境的适应能力上讲,都为我们以后步入社会打下了良好的基础。从中我们明白了,团队合作才能够提高工作效率。参考文献1 张宽海.管理信息系统概论M.北京:高等教育出版社,20032 李刚.轻量级Java EE 企业应用实战(第3版)Struts 2+Spring 3+ Hi

30、bernateM.北京:电子工业出版社,2011.33 薛华成.管理信息系统M.北京:清华大学出版4 张孝祥.深入体验Java_Web开发内幕-核心基础M.北京:电子工业出版社,2006.105 张海藩.软件工程导论M.北京:清华大学出版社2009.76 萨师煊.数据库系统概论(第三版)M.北京:高等教育出版社,20007 Bruce Eckel(美).Java编程思想M.北京.机械工业出版社,2007 3、通过活动,使学生养成博览群书的好习惯。B比率分析法和比较分析法不能测算出各因素的影响程度。C采用约当产量比例法,分配原材料费用与分配加工费用所用的完工率都是一致的。C采用直接分配法分配辅助

31、生产费用时,应考虑各辅助生产车间之间相互提供产品或劳务的情况。错 C产品的实际生产成本包括废品损失和停工损失。C成本报表是对外报告的会计报表。C成本分析的首要程序是发现问题、分析原因。C成本会计的对象是指成本核算。C成本计算的辅助方法一般应与基本方法结合使用而不单独使用。C成本计算方法中的最基本的方法是分步法。XD当车间生产多种产品时,“废品损失”、“停工损失”的借方余额,月末均直接记入该产品的产品成本 中。D定额法是为了简化成本计算而采用的一种成本计算方法。F“废品损失”账户月末没有余额。F废品损失是指在生产过程中发现和入库后发现的不可修复废品的生产成本和可修复废品的修复费用。F分步法的一个

32、重要特点是各步骤之间要进行成本结转。()G各月末在产品数量变化不大的产品,可不计算月末在产品成本。错G工资费用就是成本项目。()G归集在基本生产车间的制造费用最后均应分配计入产品成本中。对J计算计时工资费用,应以考勤记录中的工作时间记录为依据。()J简化的分批法就是不计算在产品成本的分批法。()J简化分批法是不分批计算在产品成本的方法。对 J加班加点工资既可能是直接计人费用,又可能是间接计人费用。J接生产工艺过程的特点,工业企业的生产可分为大量生产、成批生产和单件生产三种,XK可修复废品是指技术上可以修复使用的废品。错K可修复废品是指经过修理可以使用,而不管修复费用在经济上是否合算的废品。P品

33、种法只适用于大量大批的单步骤生产的企业。Q企业的制造费用一定要通过“制造费用”科目核算。Q企业职工的医药费、医务部门、职工浴室等部门职工的工资,均应通过“应付工资”科目核算。 S生产车间耗用的材料,全部计入“直接材料”成本项目。 S适应生产特点和管理要求,采用适当的成本计算方法,是成本核算的基础工作。()W完工产品费用等于月初在产品费用加本月生产费用减月末在产品费用。对Y“预提费用”可能出现借方余额,其性质属于资产,实际上是待摊费用。对 Y引起资产和负债同时减少的支出是费用性支出。XY以应付票据去偿付购买材料的费用,是成本性支出。XY原材料分工序一次投入与原材料在每道工序陆续投入,其完工率的计算方法是完全一致的。Y运用连环替代法进行分析,即使随意改变各构成因素的替换顺序,各因素的影响结果加总后仍等于指标的总差异,因此更换各因索替换顺序,不会影响分析的结果。()Z在产品品种规格繁多的情况下,应该采用分类法计算产品成本。对Z直接生产费用就是直接计人费用。XZ逐步结转分步法也称为计列半成品分步法。A按年度计划分配率分配制造费用,“制造费用”账户月末(可能有月末余额/可能有借方余额/可能有贷方余额/可能无月末余额)。A按年度计划分配率分配制造费用的方法适用于(季节性生产企业)19

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服