超市管理系统(同名10121)_第1页
超市管理系统(同名10121)_第2页
超市管理系统(同名10121)_第3页
超市管理系统(同名10121)_第4页
超市管理系统(同名10121)_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

学习报告封皮格式不允许修改,分数5分封皮格式不允许修改,分数5分软件工程软件工程课程名称不是教材名称:不是教材名称超市管理系统超市管理系统题目名称:学生姓名:学号:课程成绩:二零一六年十二月目录TOC\o"1-3"\h\u231441前言 本系统用自定向下方法,其模块功能主要有以下几个部分:员工管理模块、库存管理模块、进货管理模块、销售管理模块、商品信息管理模块和系统模块,具体功能如下:员工管理:是对超市的员工和供货商信息进行管理,包括查询、添加、删除和修改。进货管理:是根据超市的情况,进行进货,并可以查询。库存管理:是对进货和销售的商品,根据库存量进行记录。销售管理:是对销售的商品进行查询。商品信息:是对新商品进行添加,并查询。系统管理:能够对供货商的信息进行添加和查询。2.2系统数据需求分析数据模型12分数据模型12分2.2.1系统数据信息描述本系统的数据信息有商品信息表、员工信息表、学历表、商品退货登记表、商品进货登记表、员工销售业绩表。商品信息表:销售编号、销售流水号、商品编号、销售价格、销售数量、销售总价、销售时间、售货员编号。员工信息表:员工编号、员工姓名、员工密码、员工性别、员工生日、员工学历、员工电话、员工手机、员工身份证、员工邮箱、员工住址;学历表:学历编号、学历名称;商品退货登记表:退货编号、商品编号供货商名称、单价、数量、总价、退货日期、退货原因、退货加入日期;商品进货登记表:进货编号、商品编号、供货商名称、单价、数量、总价、进货日期、信息加入日期;员工销售业绩表:员工编号、员工姓名、销售业绩;库存信息表:商品编号、库存数量;顾客退货信息表:销售编号、销售流水号、商品编号、销售价格、销售数量、销售总价、顾客退货原因、顾客退货时间;供货商信息表:供应商名称、供应商法人代表、供应商电话、供应商地址。2.2.2系统数据分析建模实体-关系模型建立员工商品销售进货编号姓名性别身份证号员工商品销售进货编号姓名性别身份证号籍贯销售单号编号商品名称价格数量销售日期生日学历层次手机号码邮件地址居住地址编号商品名称进货价进货数量进货总价进货日期添加时间编号单位名称类别规格售价商品产地电话地址型号附加信息供货商法人代表公司名称退货编号价格数量原因总价日期2.3其他需求分析6分6分数据精确度需求:商品的进货和销售中,单价、金额都是保留至小数点后两位响应时间需求:无论是客户端和服务端,当用户登录进行操作时,系统反应的时间应在5秒以内。系统应能及时反映各种非正常情况,避免用户出现长时间等待甚至系统无响应。用户使用性需求:界面设计易于操作,在用户使用时在客户端服务器端进行验证,并提示用户输入正确数据和正确的操作系统。安全保密性需求:每个用户都有权限设置,对用户的登录密码进行加密设置,非本系统用户不能登录使用。操作性需求:支持Windows2000及以上的操作系统,设计连接SQLServer数据库。数据库存储空间不够,引起数据库访问变慢等问题需要对磁盘进行扩展和维护。执行程序非正常退出,响应确实,修改源代码前应备份。数据库没启动引起访问问题,须启动数据库服务器。

3系统总体设计3.1整体架构设计5分5分根据系统所需功能,决定以Windows作为开发平台,采用B/S模式,选择myeclipse10作为开发工具,利用软件工程思想和方法,用面向对象的语言Java开发,数据库采用开源免费的Mysql。本系统具有进货管理、销售管理、员工管理,并对超市销售情况智能给出建议。模块功能主要有以下几个部分:员工管理模块、库存管理模块、进货管理模块、销售管理模块、商品信息管理模块和系统模块3.2系统总体结构设计10分10分(1)系统分成几个独立的模块,并对其进行集中式管理,更能清晰的表现出超市管理的系统结构,使得系统一目了然,简便,便于员工的接受,对超市管理系统,增加了它的易操作性。(2)分层的模块化程序设计思想,系统采用分层的模块化结构设计,具有较强的可操作性和扩展性,这样更具有逻辑性,分层以后,使得超市管理系统更加的简便,易使用。系统功能结构图超市管理系统超市管理系统商品信息管理员工信息管理商品进货管理商品销售管理商品库存管理添加商品类别商品信息维护添加商品信息添加员工信息员工信息维护商品进货登记商品进货查询进货退货登记进货退货查询商品销售查询员工业绩查询顾客退货办理商品退货查询商品库存查询商品库存报警商品库存盘点供应商管理3.3系统数据库设计10分10分本系统的数据库名称是Csgl.mdf,里面包含8个表,下面将对这些表格一一介绍。1.用户(admin)中文字段名英文字段名字段类型主键允许空账号adminUsernameVarchar(20)P/F否密码adminPasswordVarchar(20)否说明:此表存放管理员用户信息。2.供货商(supplierInfo)中文字段名英文字段名字段类型主键/外键允许空供应商公司名称SupplierNameNvarchar(50)否供应商法人代表supplierLawyernvarchar(4)是供应商电话supplierTelephoneVarchar(11)是供应商地址supplierAddressNvarchar(50)是说明:此表存放供货商信息。3.员工(employeeInfo)中文字段名英文字段名字段类型主键/外键允许空员工编号employeeNoVarchar(20)否员工姓名employeeNameNvarchar(20)是登录密码employeePasswordVarchar(30)是性别employeeSexNchar(1)是生日employeeBrithdaydatetime是学历层次employeeEducationIdint是家庭电话employeeHomeTelVarchar(20)是手机employeeMobileVarchar(20)是身份证employeeCardVarchar(20)是邮件地址employeeEmailVarchar(20)是居住地址employeeAddressNvarchar(80)是说明:此表存放员工信息。4.供应商退货清单(buyBackInfo)中文字段名英文字段名字段类型主键/外键字段约束值输入商品编号BuyBackIdintP否退货价格goodNoVarchar(20)是数量numberVarchar(50)是进货总价totalPricefloat是退货日期buyBackDateint是退货原因buyBackReasonfloat是退货当前日期buyBackAddTimedatetime是说明:此表存放供应商退货信息。5.商品销售(sellInfo)中文字段名英文字段名字段类型主键/外键允许空单据号sellInfoIdintP否商品编号sellNoVarchar(30)否商品名称goodNoVarchar(20)是价格Pricefloat是数量NumberInt是出售时间sellTimedatetime是说明:此表存放销售信息。6.商品(goodInfo)中文字段名英文字段名字段类型主键/外键允许空商品编号GoodNoVarchar(20)P否商品类别goodClassIdInt是商品名称goodNameNvarchar(20)否商品单位goodUnitNvarchar(30)否商品型号goodModelNvarchar(2)是商品规格goodSpecsNvarchar(20)是商品售价goodPriceFloat是商品产地goodPlaceNvarchar(50)是附加信息goodMemoChar(10)是商品添加时间goodAddTimeDatetime是说明:此表存放商品信息。7.商品进货表(buyInfo)中文字段名英文字段名字段类型主键/外键允许空商品编号ouyIdIntP否商品名称goodNoVarchar(20)是供应商supplierNameNvarchar(50)是商品进货价格PriceFloat是商品进货数量NumberInt是进货总价totaPriceFloat是进货日期buyDateDatetime是添加时间addTimeDatetime是说明:此表存放进货信息8.商品库存表(goodStockInfo)中文字段名英文字段名字段类型主键/外键允许空商品编号GoodNoVarchar(50)否库存数量goodCountInt是

4系统详细设计及编码实现20分20分4.1公共模块的设计与实现4.1.1公共模块的功能系统登录功能:该模块是提供管理员和员工的登录,只有输入正确的用户名和密码才能进入系统。4.1.2员工管理模块为了解决超市人员流动问题,我们增添了员工管理模块,用来对新员工信息进行添加,员工信息维护。新员工录入:在超市招新员工时,对员工基本信息进行录入并存储。员工信息的修改:当员工登录密码忘记了的时候,可以对员工内的登录密码进行修改。员工信息维护:可以对员工一段期间的销售业绩进行查询。4.2超市管理系统首页当session中不存在user对象时,则表示用户没有登录,重定向到登录页面。当session中存在user对象时,则显示欢饮您xxx<c:iftest="${user!=null}"> 欢迎您${user.username}<ahref="/logout">退出</a></c:if><c:iftest="${user==null}"> <c:redirecturl="login"/></c:if>未登录已登录4.3超市管理系统登录模块前端加javascript代码验证用户名和密码是否为空,假如为空则无法提交表单。只有当用户名和密码都不为空时才可以提交表单,然后到后台验证正确性。但假如用户的浏览器禁用了javascript,则前端的验证无效,传到后台的用户名和密码可能为空,所以在后台要注意避免空指针异常。后台验证:从user表中根据前台输入的用户名和密码查询获得User对象,假如User为空则表示用户名或则密码错误,User不为空则表示登录成功。访问数据库是由hibernate完成的,所以不需要考虑sql注入。UserDao类根据用户名(username)和密码(password)从数据库中获得User对象代码@OverridepublicUserfind(Stringname,Stringpassword){ Sessionsession=sessionFactory.getCurrentSession(); Stringhql="fromUserasuserwhereuser.username=:nameanduser.password=:password"; Queryquery=session.createQuery(hql); query.setString("name",name); query.setString("password",password); List<?>list=query.list(); returnlist.size()==0?null:(User)list.get(0); }Hibernate查询后台展现的的sql语句Hibernate:selectuser0_.idasid0_,user0_.passwordaspassword0_,user0_.usernameasusername0_from_useruser0_whereuser0_.username=?anduser0_.password=?4.4商品管理商品管理也面分为显示和添加,当session中没有user时,表示用户没登录,应该重定向到登录页面。假如已登录则看以看到管理页面。4.4.1显示从数据库商品表中取出所有已有商品,在浏览器中以表格显示。商品过多可以采用分页显示。后台数据库记录显示页面从数据库中取出所有商品,并保存到list集合中,然后在jsp页面中展现。GoodsDao类的查询所有商品 @Override publicList<Goods>getList(){ Sessionsession=sessionFactory.getCurrentSession(); Stringhql="fromGoodsasgoods"; Queryquery=session.createQuery(hql); returnquery.list();}Hibernate查询后台展现的的sql语句Hibernate:selectgoods0_.idasid1_,goods0_.amountasamount1_,goods0_.nameas name1_,goods0_.priceasprice1_from_goodsgoods0_4.4.2添加添加时要判断添加的格式是否符合要求,价格和数量必须是数字,不是数据要提示输入错误。同样在前端用javascript验证,在后台还是要验证一下。将从前台传过来的price和amount用正则表达式验证或者用Java的类Integer.praseInt(String)方法将得到的字符串转成int型,假如出现异常(说明格式错误)则表示输入有误,通知用户。doubleprice=Double.parseDouble(formGoods.getPrice());intamount=Integer.parseInt(formGoods.getAmount());GoodsDao类添加商品 @Override publicvoidadd(Goodsgoods){ Sessionsession=sessionFactory.getCurrentSession(); Stringhql="fromGoodsasgoodswhere=:name"; Queryquery=session.createQuery(hql); query.setString("name",goods.getName()); List<?>list=query.list(); if(list.size()!=0){ doubleprice=goods.getPrice(); goods=(Goods)list.get(0); goods.setPrice(price); } session.save(goods); }输入的价格不是数字数据库中的数据假如商品名称存在不应该添加商品,而是更新商品数据。还要防止表单重复提交。用户在提交后的页面上点刷新时,就会产生表单重复提交问题,可以在产生表单给表单一个id,并将id保存到session中,当提交后将表单的id从session清除掉,想再次提交时从session中找不到id就不予提交。由于本系统用到了struts2,可以用struts2的<s:token/>标签防表单重复提交。

5系统测试10分10分5.1测试的目的及技术5.1测试概述测试的定义:程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与意义可以描述为:目的:发现程序的错误;意义:通过在计算机上执行程序,暴露程序中潜在的错误,消除软件故障,保证程序的可靠运行。5.2系统测试测试在软件开发过程中一直都是备受

温馨提示

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

评论

0/150

提交评论