基于JAVA超市账单管理系统毕业设计_第1页
基于JAVA超市账单管理系统毕业设计_第2页
基于JAVA超市账单管理系统毕业设计_第3页
基于JAVA超市账单管理系统毕业设计_第4页
基于JAVA超市账单管理系统毕业设计_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

目录摘要 IAbstract II1正文 11.1研究背景分析 11.2超市账单管理系统的概述 21.3所需软、硬件技术准备 21.4可行性分析 31.4.1技术可行性 31.4.2经济可行性 31.4.3社会可行性 32需求分析 42.1需求分析的任务及主要内容 42.2.1具体业务的需求 42.2层次图 42.3数据流图 53概要设计 53.1系统分析 53.1.1系统的总体分析 63.2数据库的设计与实现 63.2.1数据库系统分析 73.2.2数据库物理实现 74详细设计 94.1Servlet的详细应用 94.2特定模块的详细介绍 94.2.1登陆模块 94.2.2账单管理模块 154.2.2供应商管理模块 214.2.3用户管理模块 265系统测试 32结语 33注释 34参考文献 35致谢 37附录1 381正文1.1研究背景分析超级市场是以顾客自选方式经营的大型综合性零售商场,又称自选商场。是许多国家特别是经济发达国家的主要商品零售组织形式。超级市场于20世纪30年代初最先出现在美国东部地区。我国超市市场形成于20世纪90年代初期,现在已经成为我国零售业的一种重要形态,为国民经济的发展发挥了重要的作用。随着超市行业的高速发展,最初的售货员站柜台的销售方式已不能满足现有的销售业的发展,因此迫切的需要引入新的管理技术。随着科学技术的高速发展,信息技术已经深深的影响着我国各行各业的发展。步入数字化时代,有巨大的数据信息等待着加工处理和传输,超市系统本就需要有一个强大的数据库支持,这就需要对数据库进一步的开发和利用,而对超市的销售管理,信息的存储和处理也显的尤其重要。要适应如今激烈的市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必不可少的。超市虽然具有各种优点,但当下,它仍存在零售企业所共有的落后的一面,例如:不能有效的管理每种商品、收款结算速度慢,容易出现营业差错,不易进行商品调价,盘库效率低,而且商品的进、销、存不能保证同步更新,缺乏实时分析功能,管理人员对及时传递资料的要求始终得不到满足。随着超市形态的高速发展,其经营管理也变的越为复杂,数据库的庞大支撑导致中间流通的数据量大增,中间的商业运转环节也越来越多,传统的管理模式已不能满足,而依靠现信息技术的超市管理系统管理超市,可以节省大量的人力物力,更重要的是能更快更稳的推动超市销售发展,协助管理者做出与时俱进适应市场变化的正确决策,加快超市经营管理效率。超市管理系统是超市对商品的信息化管理系统,本系统可以提高管理水平和工作效率,可以最大限度的减少人工操作带来的错误,使用此系统主要为了实现商品管理的稳定性、可维护性等,从而达到提高商品管理效率并指导经营方向的目的。1.2超市账单管理系统的概述本系统的主要功能就是完成对供应商往来账添加的功能,每一批到货情况,是否付款等情况在这个管理模块中进行记录,并且标有记账时间,似的数据有依可循,供随时查询。此外可以根据商品的名称查出是否记录过,是否已经付款的功能。实现供应商信息的添加查询功能。本项目设计主要包括需求分析、数据库设计、项目设计、界面设计、调试及运行等几个大的部分。工作在迭代中展开,通过不断的完善每个环节,最终完成超市管理的需求,实现自动化办公。经过调研的初步需求分析,得出要设计的主要模块包括:(1)账单管理模块,主要是管理超市账单,账单的编号、商品名称、商品数量、交易金额、是否付款、供应商名称、商品描述、账单时间。然后计算出顾客购买商品的总价,计算顾客实付金额和应付金额的差价。减少人工计算产生的错误。(2)供应商管理模块,主要管理与超市合作的供应商,有编号、供应商名称、供应商描述、联系人、电话、地址。(3)用户管理模块,主要管理管理超市的用户,有编号、用户名称、性别、年龄、电话、地址、权限。用户管理信息化,减少了人力资源的浪费。1.3所需软、硬件技术准备本系统的开发是面向数据库应用程序的开发。目前数据库技术发展日趋完善,可用于数据库开发的工具各种各样。本系统是采用mysql作为后台数据库,本系统是运行在WindowXP平台上的,因此考虑到兼容性、开发成本以及开发的方便和简单,本系统使用免费的Eclipse开发平台。为了高效、快捷的采购出库入库管理系统的开发。采取如下开发环境:网络环境:局域网。硬件环境:内存1G,硬盘80G。软件环境:(1)操作系统:WindowsXP版本。(2)数据库开发工具:mysql。(3)应用程序开发工具:Eclipse。技术准备:(1)java基础(2)jsp技术(3)Servlet技术(4)html,css(5)jquery的相关知识1.4可行性分析1.4.1技术可行性本系统戏是用java语言所编写的,java语言作为前导课程已经学过。重点学习了jsp,最后又系统的学习了Servlet,Servlet这同时又是本系统应用的重点。从设计,开发,测试到最后的维护,都综合了所学的java知识。本系统所实现的是超市账单管理,因此在给定的时间内完成是绝对可行。制作本系统的软件均可以在网上免费获得,同时也可以获得开源的代码和图片。本组的技术人员有开发此类项目的经验。综上所述,此系统开发有可靠的技术支持,技术上是完全可行的。1.4.2经济可行性对本组的经济现状和投资能力进行分析,对系统建设运行和维护费用进行估算,对系统建成后可能取得的社会和经济效益进行估计。由于本系统是作为毕业设计由我们学生自己开发的,在经济上的投入甚微,系统建成之后将为超市行业提供很大的方便,因此在经济上是可行的。1.4.3社会可行性本系统编程所使用的是网上的开源代码和图片,又不以获利为目的。因此不必承担任何法律责任2需求分析2.1需求分析的任务及主要内容2.2.1具体业务的需求主要模块包括:(1)账单管理模块,主要是管理超市账单,账单的编号、商品名称、商品数量、交易金额、是否付款、供应商名称、商品描述、账单时间。然后计算出顾客购买商品的总价,计算顾客实付金额和应付金额的差价。减少人工计算产生的错误。(2)供应商管理模块,主要管理与超市合作的供应商,有编号、供应商名称、供应商描述、联系人、电话、地址。(3)用户管理模块,主要管理管理超市的用户,有编号、用户名称、性别、年龄、电话、地址、权限。用户管理信息化,减少了人力资源的浪费。。2.2层次图软件账单管理模块软件账单管理模块用户管理模块供应商管理模块 图2-1层次图2.3数据流图经理登陆经理登陆账单管理供应商管理用户管理数据维护存入数据库图2-2普通用户理登陆账单管理普通用户理登陆账单管理供应商管理数据维护存入数据库图2-33概要设计3.1系统分析在本系统中,分为基本信息的账单管理模块,供应商管理模块,用户管理模块。有2个角色:经理、普通用户名。1.用户所具有功能经理拥有所有的模块的操作权限,普通用户除了对用户管理模块的操作权限意外所有模块的操作权限:对账单表,供应商表增删改查。3.1.1系统的总体分析在前面的系统功能分析中,将系统划分成4个模块,如图3-1:用户登录验证用户登录验证经理普通用户账单管理用户管理供应商管理图3-1系统功能模块图3.2数据库的设计与实现数据库是此类系统的核心,系统中所有的信息都存储在数据库中,在所有jsp页面中通过JDBC与数据库连接,操作数据库中的数据,从而实现所有需要的功能。数据库软件有很多。本系统中数据库采用MySQL作为数据库工具。数据库是网站的核心,数据库设计的合理与否对网站的建设有着至关重要的影响。一个良好的数据库开发过程一般是先系统分析,再逻辑设计,然后物理实现。系统分析中分析数据库用户需求,并画出E-R图直观地表示出数据库系统的需求。逻辑设计中根据系统分析设计的一个关系模型。物理设计为逻辑设计中的数据模型选取一个最合理的应用环境的物理结构,通常选取一个常用数据库软件,用数据库软件创建与逻辑设计中数据模型对应的数据库。3.2.1数据库系统分析本系统的数据库实体主要有“账单”、“供应商”、“用户”。其中“账单”中的物品与“供应商”存在着联系,一个账单必须对应一个供应商,但供应商不一定只有一份账单,即供应商和账单之间一多对多的关系。如图:3-1账单拥有账单拥有M1供应商图3-1账单—供应商E-R图3.2.2数据库物理实现经过数据库系统分析后,数据库的结构已经非常清晰,剩下的就是用一种数据库软件实现这样的结构。本系统中数据库采用MySQL作为数据库。首先我们在MySQL中建一个数据库,命名为“supermarket”。选中supermarket数据库,向数据库中添加3个表:gongyingshang,yonghu,zhangdan。下面是每个数据表中的属性。gongyingshang表。gongyingshang表用来存储供应商信息。gongyingshang表字段名称数据类型gys_id数字gys_name文本gys_miaoshu文本gys_lianxiren文本gys_phone文本gys_chuanzhen数字gys_address数字表3-1yonghu表。yonghu表用来存储领登陆用户明细。yonghu表字段名称数据类型yh_id数字yh_username文本yh_password文本yh_sex文本yh_age数字yh_phone数字yh_address文本yh_quanxian文本表3-2zhangdan表。zhangdan表用来存储账单的信息。zhangdan表字段名称数据类型zd_id数字zd_spmingcheng文本zd_spshuliang数字zd_jymoney数字zd_sfzhifu文本zd_gysname文本zd_spmiaoshu文本zd_data文本zd_danwei文本表3-34详细设计4.1Servlet的详细应用在Servlet工作流程中,根据web.xml中的配置将拦截所有通过servlet的请求,并根据URI决定分发给doGet还是doPost处理请求,然后调用相应的业务逻辑方法,调用相应的页面去执行响应。利用JDBC(JavaDataBaseConnectivity)技术处理与数据库连接,利用其ServletAPI所定义的接口和类来封装与数据库交互的相关操作,使对数据库的操作变得相当容易,减少开发时间,而且能对系统进行灵活的设计和实现,使系统的各模块容易维护和重用。4.2特定模块的详细介绍每个包都有其各自的作用,是杂乱的java文件分层,具有层次感,也可以很好地进行维护。4.2.1登陆模块输入不同的角色名就会进入不同的模块,并完成相应的功能;登陆模块如图4-1所示如图4-1代码:publicclassHandelLoginextendsHttpServlet{ UserOperoper=newUserOper(); publicvoidinit(ServletConfigconfig)throwsServletException{ super.init(config); } publicvoiddestroy(){ super.destroy(); } publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ this.doPost(request,response); } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); HttpSessionsession=request.getSession(true); Stringop=request.getParameter("op"); Stringopg=request.getParameter("opg"); Stringopyh=request.getParameter("opyh"); Stringzdgroup=request.getParameter("zdgroup"); System.out.println(zdgroup); Stringgysgroup=request.getParameter("gysgroup"); LoginjudgeLogin=(Login)(session.getAttribute("login")); if("doLogin".equals(op)){ doLogin(request,response); return; } if(judgeLogin!=null&&!"".equals(judgeLogin)){ if("经理".equals(judgeLogin.getYh_quanxian())){ if("ZD".equals(op)){ doLnquiresZD(request,response); }elseif("ZDAdd".equals(op)){ doZDAdd(request,response); }elseif("ZDXinXi".equals(op)){ doZDXinXi(request,response); }elseif("修改".equals(op)){ doZDXiuGai(request,response); }elseif("删除".equals(op)){ doZDDel(request,response); }elseif("组合查询".equals(zdgroup)){ doZDChaXun(request,response); }elseif("GYS".equals(op)){ doLnquiresGYS(request,response); }elseif("GYSAdd".equals(op)){ doGYSAdd(request,response); }elseif("GYSXinXi".equals(op)){ doGYSXinXi(request,response); }elseif("修改".equals(opg)){ doGYSXiuGai(request,response); }elseif("删除".equals(opg)){ doGYSDel(request,response); }elseif("组合查询".equals(gysgroup)){ doGYSChaXun(request,response); }elseif("YH".equals(op)){ doLnquiresYH(request,response); }elseif("YHAdd".equals(op)){ doYHAdd(request,response); }elseif("YHXinXi".equals(op)){ doYHXinXi(request,response); }elseif("修改".equals(opyh)){ doYHXiuGai(request,response); }elseif("删除".equals(opyh)){ doYHDel(request,response); }elseif("查询".equals(opyh)){ doYhChaXun(request,response); }elseif("修改密码".equals(opyh)){ doYHMiMa(request,response); }elseif("修改密码".equals(op)){ doAdminMiMaXiuGai(request,response); } } if("普通用户".equals(judgeLogin.getYh_quanxian())){ if("ZD".equals(op)){ doLnquiresZD(request,response); }elseif("ZDAdd".equals(op)){ doZDAdd(request,response); }elseif("ZDXinXi".equals(op)){ doZDXinXi(request,response); }elseif("修改".equals(op)){ doZDXiuGai(request,response); }elseif("删除".equals(op)){ doZDDel(request,response); }elseif("组合查询".equals(zdgroup)){ doZDChaXun(request,response); }elseif("GYS".equals(op)){ doLnquiresGYS(request,response); }elseif("GYSAdd".equals(op)){ doGYSAdd(request,response); }elseif("GYSXinXi".equals(op)){ doGYSXinXi(request,response); }elseif("修改".equals(opg)){ doGYSXiuGai(request,response); }elseif("删除".equals(opg)){ doGYSDel(request,response); }elseif("组合查询".equals(gysgroup)){ doGYSChaXun(request,response); }elseif("YH".equals(op)||"修改密码".equals(op)||"修改密码".equals(opyh)|| "查询".equals(opyh)||"删除".equals(opyh)||"修改".equals(opyh)|| "YHXinXi".equals(op)||"YHAdd".equals(op)){ Informationinfo=newInformation(); Stringmsg="对不起您没有那么高的权限"; info.setMsg(msg); request.setAttribute("info",info); request.getRequestDispatcher("mainWindow.jsp").forward(request,response); } } }else{ response.sendRedirect("login.jsp"); } } 管理员(用户)登陆以后就会进入总页面如图:4-2所示:在左侧可以看到管理员进来后(普通用户)各自的权限。管理员登陆:如图4-2普通用户登陆:如图4-34.2.2账单管理模块管理员权限下的功能操作及代码如图4-4代码:privatevoiddoLnquiresZD(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ HttpSessionsession=request.getSession(); List<ZDBean>list=oper.ZDLnquires(); List<String>gysName=oper.ZDGongYiShang(); if(list!=null){ request.setAttribute("list",list); session.setAttribute("gysName",gysName); request.getRequestDispatcher("admin_bill_list.jsp").forward(request,response); return; }else{ response.sendRedirect("admin_bill_list.jsp"); } }privatevoiddoZDChaXun(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ Stringzd_spmingcheng=request.getParameter("commodityname"); Stringzd_sfzhifu=request.getParameter("payment"); System.out.println(zd_spmingcheng); System.out.println(zd_sfzhifu); List<ZDBean>list=oper.ZDChaXun(zd_spmingcheng,zd_sfzhifu); if(list!=null){ request.setAttribute("list",list); request.getRequestDispatcher("admin_bill_list.jsp").forward(request,response); return; }else{ response.sendRedirect("admin_bill_list.jsp"); } }代码:privatevoiddoZDAdd(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ Stringzd_id=request.getParameter("zdid").trim(); Stringzd_spmingcheng=request.getParameter("zdproductname").trim(); Stringzd_spshuliang=request.getParameter("zdtransnunber").trim(); Stringzd_jymoney=request.getParameter("zdtransmoney").trim(); Stringzd_sfzhifu=request.getParameter("payment").trim(); Stringzd_gysname=request.getParameter("zdproducmanufacture").trim(); Stringzd_spmiaoshu=request.getParameter("zdproducdesc").trim(); Stringzd_danwei=request.getParameter("zdtransunits").trim(); Stringzd_data=newSimpleDateFormat("yyyy-MM-dd").format(newDate().getTime()); Listparams=newArrayList(); params.add(zd_id); params.add(zd_spmingcheng); params.add(zd_spshuliang); params.add(zd_jymoney); params.add(zd_sfzhifu); params.add(zd_gysname); params.add(zd_spmiaoshu); params.add(zd_data); params.add(zd_danwei); Informationinfo=oper.ZDAdd(params); request.setAttribute("info",info); request.getRequestDispatcher("admin_bill_add.jsp").forward(request,response); }代码:privatevoiddoZDXinXi(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ Stringzd_id=request.getParameter("id"); ZDBeanzdbean=newZDBean(); zdbean=oper.ZDXinXi(zd_id); if(zdbean!=null){ request.setAttribute("zdbean",zdbean); request.getRequestDispatcher("admin_bill_update.jsp").forward(request,response); } }如图4-5代码:privatevoiddoZDXiuGai(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ Stringzd_id=request.getParameter("zdid").trim(); Stringzd_spmingcheng=request.getParameter("zdproductname").trim(); Stringzd_spshuliang=request.getParameter("zdtransnunber").trim(); Stringzd_jymoney=request.getParameter("zdtransmoney").trim(); Stringzd_sfzhifu=request.getParameter("payment").trim(); Stringzd_gysname=request.getParameter("zdproducmanufacture").trim(); Stringzd_spmiaoshu=request.getParameter("zdproducdesc").trim(); Stringzd_danwei=request.getParameter("zdtransunits").trim(); Listparams=newArrayList(); params.add(zd_id); params.add(zd_spshuliang); params.add(zd_jymoney); params.add(zd_sfzhifu); params.add(zd_gysname); params.add(zd_spmiaoshu); params.add(zd_danwei); params.add(zd_spmingcheng); Informationinfo=oper.ZDXiuGai(params); request.setAttribute("info",info); request.getRequestDispatcher("admin_bill_update.jsp").forward(request,response); }privatevoiddoZDDel(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ Stringzd_id=request.getParameter("zdid").trim(); Informationinfo=oper.ZDDel(zd_id); request.setAttribute("info",info); request.getRequestDispatcher("admin_bill_update.jsp").forward(request,response); }普通用户权限下功能操作及代码:图及代码同经理权限下图及代码4.2.2供应商管理模块管理员权限下的功能操作及代码如图:4-6所示如图4-6代码:privatevoiddoGYSChaXun(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ Stringgys_name=request.getParameter("commodityname").trim(); Stringgys_miaoshu=request.getParameter("commoditymiaoshu").trim(); List<GYSBean>list=oper.GYSChaXun(gys_name,gys_miaoshu); if(list!=null){ request.setAttribute("list",list); request.getRequestDispatcher("admin_supplier_list.jsp").forward(request,response); }else{ response.sendRedirect("admin_supplier_list.jsp"); } }privatevoiddoLnquiresGYS(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ List<GYSBean>list=oper.GYSLnquires(); if(list!=null){ request.setAttribute("list",list); request.getRequestDispatcher("admin_supplier_list.jsp").forward(request,response); }else{ response.sendRedirect("admin_supplier_list.jsp"); } }如图4-7代码:privatevoiddoGYSAdd(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ Stringgys_id=request.getParameter("gysid").trim(); Stringgys_name=request.getParameter("gysname").trim(); Stringgys_miaoshu=request.getParameter("gysmiaoshu").trim(); Stringgys_lianxiren=request.getParameter("gyslianxi").trim(); Stringgys_phone=request.getParameter("gysphone").trim(); Stringgys_chuanzhen=request.getParameter("gyschuanzhen").trim(); Stringgys_address=request.getParameter("gysaddress").trim(); Listparams=newArrayList(); params.add(gys_id); params.add(gys_name); params.add(gys_miaoshu); params.add(gys_lianxiren); params.add(gys_phone); params.add(gys_chuanzhen); params.add(gys_address); Informationinfo=oper.GYSAdd(params); request.setAttribute("info",info); request.getRequestDispatcher("admin_supplier_add.jsp").forward(request,response); }如图4-8代码:privatevoiddoGYSXinXi(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ Stringgys_id=request.getParameter("id"); GYSBeangysbean=newGYSBean(); gysbean=oper.GYSXinXi(gys_id); request.setAttribute("gysbean",gysbean); request.getRequestDispatcher("admin_supplier_update.jsp").forward(request,response); }如图4-9代码:privatevoiddoGYSXiuGai(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ Stringgys_id=request.getParameter("gysid").trim(); Stringgys_miaoshu=request.getParameter("gysmiaoshu").trim(); Stringgys_lianxiren=request.getParameter("gyslianxi").trim(); Stringgys_phone=request.getParameter("gysphone").trim(); Stringgys_chuanzhen=request.getParameter("gyschuanzhen").trim(); Stringgys_address=request.getParameter("gysaddress").trim(); Stringgys_name=request.getParameter("gysname").trim(); Listparams=newArrayList(); params.add(gys_id); params.add(gys_miaoshu); params.add(gys_lianxiren); params.add(gys_phone); params.add(gys_chuanzhen); params.add(gys_address); params.add(gys_name); Informationinfo=oper.GYSXiuGai(params); request.setAttribute("info",info); request.getRequestDispatcher("admin_supplier_update.jsp").forward(request,response); }privatevoiddoGYSDel(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ Stringgys_id=request.getParameter("gysid").trim(); Informationinfo=oper.GYSDel(gys_id); request.setAttribute("info",info); request.getRequestDispatcher("admin_supplier_update.jsp").forward(request,response);}普通用户权限下功能操作及代码:图及代码同经理权限下的图及代码4.2.3用户管理模块管理员权限下的功能操作及代码如图4-10代码:privatevoiddoGYSChaXun(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ Stringgys_name=request.getParameter("commodityname").trim(); Stringgys_miaoshu=request.getParameter("commoditymiaoshu").trim(); List<GYSBean>list=oper.GYSChaXun(gys_name,gys_miaoshu); if(list!=null){ request.setAttribute("list",list); request.getRequestDispatcher("admin_supplier_list.jsp").forward(request,response); }else{ response.sendRedirect("admin_supplier_list.jsp"); } }privatevoiddoLnquiresYH(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ List<YHBean>list=oper.YHLnquires(); if(list!=null){ request.setAttribute("list",list); request.getRequestDispatcher("admin_user_list.jsp").forward(request,response); }else{ response.sendRedirect("admin_user_list.jsp"); } }如图4-11代码:privatevoiddoYHAdd(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ Stringyh_id=request.getParameter("yhid").trim(); Stringyh_username=request.getParameter("yhname").trim(); Stringyh_password=request.getParameter("yhpassword").trim(); Stringyh_sex=request.getParameter("yhsex").trim(); Stringyh_age=request.getParameter("yhage").trim(); Stringyh_phone=request.getParameter("yhphone").trim(); Stringyh_address=request.getParameter("yhaddress").trim(); Stringyh_quanxian=request.getParameter("yhquanxian").trim(); Listparams=newArrayList(); params.add(yh_id); params.add(yh_username); params.add(yh_password); params.add(yh_sex); params.add(yh_age); params.add(yh_phone); params.add(yh_address); params.add(yh_quanxian); Informationinfo=oper.YHADD(params); request.setAttribute("info",info); request.getRequestDispatcher("admin_user_add.jsp").forward(request,response); }如图4-12代码:privatevoiddoYHXinXi(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ Stringyh_id=request.getParameter("id"); YHBeanyhbean=oper.YHXinXi(yh_id); if(yhbean!=null){ request.setAttribute("yhbean",yhbean); request.getRequestDispatcher("admin_user_update.jsp").forward(request,response); }else{ response.sendRedirect("admin_user_update.jsp"); } }如图4-13代码:privatevoiddoYHXiuGai(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ Stringyh_id=request.getParameter("yhid").trim(); Stringyh_sex=request.getParameter("yhsex").trim(); Stringyh_age=request.getParameter("yhage").trim(); Stringyh_phone=request.getParameter("yhphone").trim(); Stringyh_address=request.getParameter("yhaddress").trim(); Stringyh_username=request.getParameter("yhname").trim(); Listparams=newArrayList(); params.add(yh_id); params.add(yh_sex); params.add(yh_age); params.add(yh_phone); params.add(yh_address); params.add(yh_username); Informationinfo=oper.YHXiuGai(params); request.setAttribute("info",info); request.getRequestDispatcher("admin_user_update.jsp").forward(request,response); }privatevoiddoYHDel(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ Stringyh_id=request.getParameter("yhid").trim(); Informationinfo=oper.YHDel(yh_id); request.setAttribute("info",info); request.getRequestDispatcher("admin_user_update.jsp").forward(request,response); }privatevoiddoYHMiMa(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ Stringyh_id=request.getParameter("yhid").trim(); request.setAttribute("yh_id",yh_id); request.getRequestDispatcher("admin_user_update_password.jsp").forward(request,response); }privatevoiddoAdminMiMaXiuGai(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ Stringyh_id=request.getParameter("yhid").trim(); Stringoldpassword=request.getParameter("yholdpassword").trim(); Stringnewpassword=request.getParameter("yhnewpassword").trim(); Listparams=newArrayList(); params.add(yh_id); params.add(oldpassword); params.add(newpassword); Informationinfo=oper.AdminMiMaXiuGai(params); request.setAttribute("info",info); request.getRequestDispatcher("admin_user_update_password.jsp").forward(request,response); }普通用户权限下功能操作及代码:图及代码同经理权限下图及代码5系统测试软件测试是整个软件开发过程中一段非常重要的阶段,在测试过程中如能按照测试的基本过程来进行测试,这样在测试完一个软件后,软件的质量能有所保障。软件测试不仅有测试目的、测试过程,在测试过程中还应按照一定的测试方法,针对不同的过程应用不同的方法。软件测试的内容是深不可测的,在测试的过程中应结合具体的实际情况采用不同的方法进行测试,以保证软件质量过关。软件测试是一个重要的阶段,也是非常复杂的一个过程,测试过程及方法灵活多变,并不是固定不变的。一个好的测试人员不仅能发现问题、从发现的错误中分析错误出现的原因,更应能拟定软件测试计划、编制软件测试大纲、编写测试用例,从而提高的工作效力,降低了开发产品的成本,更好的保证软件的质量。白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序。通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路都能按预定的要求正确的工作。这一方法是把测试对象看作一个打开的盒子测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有的逻辑路径进行测试,通过在不同检查程序的状态,确定实际的状态是否与预期的状态一致。本系统用的是白盒测试:输入管理员的账户和密码admin,admin看看能否进入管理员的模块,进过测试确实进入了管理员的模块。结语经过几个月的努力我终于完成毕业设计,我感到非常高兴,但同时我又感觉到自己的不足。我编的这个采购及仓库管理系统和正规的相比真是不可同日而语。虽然由于自己知识上的不足,有些地方有少许错误和容错性能比较低,但是还是可以基本完成采购及仓库管理系统应有的功能。通过毕业设计过程我学会了许多知识,这也是在培训的时候第一次比较完整的完成一个多人合作的项目,虽然我每编一个页面就会遇到许多问题,但是通过上网,同学和教师的帮助,我克服了。在不断的发现问题,总结问题和解决问题的过程中,使我在此次毕业设计中不断地提升自己,与此同时又得到了宝贵的经验和团队的重要性。注释1.导入项目:把项目导入到Eclipse中,打开Eclipse,点击fileimportGeneralExistingProjectsintoworksapce再选中next然后再找项目的路径就可以了。导入数据库打开SQLyog,建一个新连接,输入密码root,点击databaseimportexecuteSQLscript找到相应的文件执行。3.运行项目选中login.jsp右击找到runas,点击runonserver就可以了管理员账号:admin管理员密码:admin附录1Webt.xml<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns:xsi="/2001/XMLSchema-instance"xmlns="/xml/ns/javaee"xmlns:web="/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID"version="2.5"> <servlet> <servlet-name>handelLogin</servlet-name> <servlet-class>com.cszdglxt.servlets.HandelLogin</servlet-class> </servlet> <servlet-mapping> <servlet-name>handelLogin</servlet-name> <url-pattern>/helplogin</url-pattern> </servlet-mapping> <servlet> <servlet-name>handelExit</servlet-name> <servlet-class>com.cszdglxt.servlets.HandleExit</servlet-class> </servlet> <servlet-mapping> <servlet-name>handelExit</servlet-name> <url-pattern>/helpexit</url-pattern> </servlet-mapping><welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list></web-app>admin_bill_add.jsp<%@pageimport="java.util.ArrayList"%><%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%@tagliburi="/jsp/jstl/core"prefix="c"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><linktype="text/css"rel="stylesheet"href="css/style.css"/><scriptsrc="js/zhangDanTianJia.js"></script></head><body><%%><divclass="main"> <divclass="optitleclearfix"> <divclass="title">账单管理>></div> </div> <formmethod="post"action="helplogin"> <inputtype="hidden"name="op"value="ZDAdd"/> <divclass="content"> <tableclass="box"> <tr> <tdclass="field">账单编号:</td><td><inputtype="text"name="zdid"id="zdid"onBlur="checkZdid();"/><fontcolor="#FF0000">*<spanid="zdidMsg"></span></font></td></tr><tr> <tdclass="field">交易金额:</td><td><inputtype="text"name="zdtransmoney"id="zdtransmoney"onBlur="checkZdtransmoney();"/><fontcolor="#FF0000">*<spanid="zdtransmoneyMsg"></span></font></td></tr><tr> <tdclass="field">交易单位:</td><td><inputtype="text"name="zdtransunits"id="zdtransunits"onBlur="checkZdtransunits();"/><fontcolor="#FF0000">*<spanid="zdtransunitsMsg"></span></font></td></tr><tr> <tdclass="field">交易数量:</td><td><inputtype="text"name="zdtransnunber"id="zdtransnunber"onBlur="checkZdtransnunber();"/><fontcolor="#FF0000">*<spanid="zdtransnunberMsg"></span></font></td></tr><tr> <tdclass="field">商品名称:</td><td><inputtype="text"name="zdproductname"/></td></tr> <tr> <tdclass="field">商品描述:</td><td><textareaname="zdproducdesc"cols="40"rows="6"></textarea></td></tr><tr> <tdclass="field">所属供应商:</td><td><selectname="zdproducmanufacture"> <c:forEachitems="${gysName}"var="gysNames"> <optionvalue="${gysNames}"selected>${gysNames}</option> </c:forEach></select></td></tr><tr> <tdclass="field">是否付款:</td><td><selectname="payment"> <optionvalue="是">是</option> <optionvalue="否"selected>否</option></select></td><td><fontcolor="#FF0000"size="+2">${info.msg}</font></td></tr> </table> </div> <divclass="buttons"> <inputtype="submit"name="submit"value="提交"class="input-button"/><!-- <inputtype="button"name="button"value="返回"class="input-button"onclick="history.back()"/>--><inputtype="button"name="button"value="返回"class="input-button"onclick="location.href='admin_bill_list.jsp'"/> </div> </form></div></body></html>admin_bill_list.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%@tagliburi="/jsp/jstl/core"prefix="c"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><linktype="text/css"rel="stylesheet"href="css/style.css"/></head><body><%%><divclass="menu"> <formmethod="post"action="helplogin"> 商品名称:<inputtype="text"name="commodityname"class="input-text"/>     是否付款:<selectname="payment"> <optionvalue="是">是</option> <optionvalue="否"selected>否</option> </select>     <inputtype="submit"name="zdgroup"value="组合查询"class="button"/> </form></div><divclass="main"> <divclass="optitleclearfix"> <em><inputtype="button"name="addnumber"value="添加数据"class="input-button"onclick="locati

温馨提示

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

评论

0/150

提交评论