软件工程综合课程设计报告-小型企业仓库管理系统_第1页
软件工程综合课程设计报告-小型企业仓库管理系统_第2页
软件工程综合课程设计报告-小型企业仓库管理系统_第3页
软件工程综合课程设计报告-小型企业仓库管理系统_第4页
软件工程综合课程设计报告-小型企业仓库管理系统_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE4目录一、可行性研究 21.1、可行性研究的目的 21.2、可行性分析 31.2.1、技术可行性 31.2.2、经济可行性 31.2.3、社会可行性 31.3、可行性研究的结论 4二、需求分析阶段 42.1、功能需求 42.2、性能需求 52.3、接口需求 52.4、数据需求 62.4.1、实体E-R图 62.4.2、数据流程图 8三、概要设计 93.1、系统层次图 93.2、数据库设计概述 93.3、数据字典 103.4、数据库物理设计 10四、详细设计 124.1、仓库管理 124.1.1、

新货入库 124.1.2

、过期产品销毁 124.1.3

货物信息登记修改 124.2出仓管理 124.2.1、货物出库 124.3、出库单管理 13五、编码 135.1用户登录模块 135.2主页面及货物信息模块 155.3货物信息添加模块 175.4货物信息修改模块 185.5货物信息删除模块 195.6货物出库办理模块 205.7货物出库模块 225.8数据库基本结构图 23六、测试 256.1、系统测试的定义 256.2、测试的内容 256.3、测试案例 26七、总结 26参考文献 27一、可行性研究1.1、可行性研究的目的可行性分析是为“仓库管理系统”开发的可能性、可行性、必要性提供论据,为开发人员进行系统总体规划设计及具体实施开发工程提供必要的参考资料,在系统开发完成后为系统的测试、验收提供帮相。仓库管理系统是一个高度集成的货物信息处理系统,通过将货物信息的各种功能进行整合,从而达到告诉检索信息、提高工作效率、降低管理成本等。一个典型的仓库管理系统应该有所有的货物种类、货物信息、及签收人信息,还需要提高各种货物的查询检索功能。该系统还要对货物进行进出仓管理,并对退货进行管理。通过系统的自动化管理,能减少仓库管理人员的,还能减少管理人员的工作任务,从而减少管理的开销成本1.2、可行性分析1.2.1、技术可行性技术可行性包括以下几个方面:硬件、系统软件、应用软件、技术人员。本系统采用JAVA编程语言和SQLServer数据库。目前数据库产品较多,每个产品都具有各自的特点和适用范围。考虑到仓库管理系统数据量大的特点个,故选用SQLServer数据库。通过研究这四个方面是可行的。1.2.2、经济可行性对于小企业仓库这样的存货较小的场所,其经济成分比重相对较少。主要是支出的费用包括设备购置费,软件开发费用,管理和维护费,人员工资和培训费等.由于各个仓库实行统一操作,系统共享,其设备购置,人员工资,维护费用相对较少,前期的资金投入主要集中于购置货物上,建立信息中心,可将来自各方面的信息集中管理,提高仓库管理的计划性和预见性,快速地反馈市场信息。1.2.3、社会可行性社会可行性有时也称为操作可行性,主要验证新系统在企业或机构开发和运行的可能性以及运行后可能一起的对企业或机构的影响,即组织内外是否具备接受和使用新系统的条件。在当前信息技术飞速发展的环境下,计算机技术和软件技术的更新是仓库完全有可能也有能力采用这样先进的管理技术。它对仓库带来的影响有:(a)、对传统管理理念的冲击,可能引起管理层的变动和人员的调整。(b)、对仓库工作人员的要求提高,使仓库在一定的可能下进行整理精简,方便统计整理库存,对仓库与销售科之间业务方式的转变和扩充。1.3、可行性研究的结论该仓库管理系统不管是从技术、经济、社会方面考虑都具有一定的可行性。因此系统的开发可以立即开始进行。二、需求分析阶段2.1、功能需求随着货物的日益增多,传统的手工货物管理不仅工作量大,而且容易出现问题。货物管理设计的内容非常复杂而且繁琐,比如拥有货物信息录入管理、用户信息管理、货物出入库管理等功能。由于系统主要是为了方便仓库管理员定制开发的,因此针对货物管理的实际工作而言,经过反复论证,最终确定了仓库管理系统的设计方案,仓库管理系统的主要功能为:(1)用户登录:管理员会根据用户名和密码登录系统进行身份验证。(2)货物入库:只有管理员登录成功后才能添加货物数据。通过点击导航条上的“添加”超链接添加货物。(3)修改货物信息:只有管理员登录成功后才能修改货物。通过通过点击导航条上的“修改”超链接修改货物信息。(4)删除货物信息:只有管理员登录成功后才能删除货物。通过通过点击导航条上的“删除”超链接删除货物。(5)办理出库单:通过通过点击“办理出库单”超链接办理出库单。(6)货物出仓:输入出库单号和货物编号进行付货。(7)注销系统:点击“注销系统”超链接,退出系统。2.2、性能需求为了保证系统能够长期、安全、稳定、可靠、高校的运行,仓库管理系统应该满足以下的性能需求:(1)系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足企业对信息处理的需求。(2)系统的开放性和可扩充性仓库管理系统在开发过程中,应充分考虑以后的可扩充性。例如:销售科查询的需求会不断的更新和完善,要求系统提供足够的功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,即系统应是一个开放的系统,只要符合一定的规定,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补,替换完成系统的升级和更新换代。(3)系统的易用性和易维护性仓库管理系统是直接面对使用人员的,而使用人员往往对计算机并不一定非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这些,系统应该尽量使用用户熟悉的术语和中文信息的界面。针对用户使用过程中可能出现的问题,要提供在线帮助,缩短用户对系统熟悉的过程。(4)系统的标准性系统在设计开发使用过程中涉及到很多计算机硬件和软件,所有这些都要符合国际、国家和行业标准。2.3、接口需求(1)服务器:处理器(CPU):Pentium900M内存容量(RAM):至少256M(2)客户端处理器(CPU):Pentium133M内存容量(RAM):64M2.4、数据需求2.4.1、实体E-R图(1)管理员实体E-R图管理员(user表)管理员(user表)管理员ID用户名密码管理员信息E-R图(2)货物信息实体类别E-R图货物货物信息表(bookinfo表)货物编号产品名规格入库时间关键字代码货物信息E-R图(3)出库单据信息实体E-R图

出库单据出库单据表(certificateinfo表)出库单id单号签收人所在部门标记出库单信息E-R图(4)货物出库信息实体E-R图货物出库货物出库表(loan表)出库单ID货物编号标记出库日期货物出库信息E-R图2.4.2、数据流程图管理员登陆管理员登陆验证用户是否合法显示主界面选择操作货物管理货物入库办理出库单据货物出库注销系统结束开始NOYES三、概要设计3.1、系统层次图货物货物信息管理货物入库货物出仓管理出库单管理货物信息管理办理出库单不合格销毁货物出库货物信息修改注销系统层次图3.2、数据库设计概述计算机信息系统以数据库为核心,在数据库管理系统的支持下,进行信息的收集、整理、存储、检索、更新等操作。为了使现实世界的信息计算机化,并对计算机化的信息进行各种常用操作,如:如何利用数据库管理系统软件和相关硬件系统,将用户的要求转化成有效的数据结构,并使数据库结构易于实现用户新的要求的过程。确切的说,数据库设计是指对一个给定的应用环境,确定最优数据模型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立起即能反应现实世界信息和信息联系,满足用户数据要求,又能被某个数据库管理系统所接受的数据库。根据软件工程的设计思想:数据库设计可划分为六个阶段:规划阶段、需求分析阶段、设计阶段、程序编制阶段、调试阶段、运行和维护阶段。本系统的数据库设计是在MySql环境中,通过合理的逻辑设计和有效的物理设计,建立数据库。物理结构的设计原则如下:(1)尽可能减少数据冗余和重复;(2)结构设计与操作设计相结合;(3)数据结构具有相对的稳定性。3.3、数据字典(1)名称:管理员描述:记录管理员信息。定义:管理员信息=管理员ID+用户名+密码。输入数据:用户名、密码。输出数据:管理员信息。(2)名称:货物信息表描述:记录所有货物信息定义:货物信息=货物编号+货物代码+产品名+仓库号+规格+摘要输入数据:货物信息输出数据:货物信息(3)名称:出库单信息表描述:记录所有出库单信息定义:出库单信息=出库单编号+单据名称+产品名+单据类型+标记输入数据:出库单信息输出数据:出库单信息(4)名称:货物出库信息表描述:记录所有出库信息定义:货物出库信息=货物编号+出库单编号+出库日期输入数据:货物出库信息输出数据:货物出库信息3.4、数据库物理设计(1)user表记录管理员的信息(包括管理员ID、用户名、密码),如表3-4-1。字段名数据类型数据长度是否空值是否主键useriddecimal9否是usernamechar10是否passwordchar16是否表3-4-1(2)bookinfo表记录货物信息(包括货物编号、货物代码、产品名、仓库号、规格、摘要),如表3-4-2。字段名数据类型数据长度是否空值是否主键bookidint9否是ISBNchar30是否titlechar40是否publishchar20是否authorchar30是否abstractvarchar200是否表3-4-2(3)certificateinfo表记录出库单信息(包括出库单ID、单据名称、产品名、单据类型、标记),如表3-4-3。字段名数据类型数据长度是否空值是否主键cert_idint9否是cert_namechar10是否namechar10是否departchar20是否flagchar4是否表3-4-3(4)loan表记录货物出库信息(包括货物编号、出库单ID、出库日期、标记),如表3-4-4。字段名数据类型数据长度是否空值是否主键bookiddecimal9否是cert_iddecimal9否是loandatedecimal8否是Return1decimal8否是flagint4否是表3-4-4四、详细设计4.1、货物管理4.1.1、

货物入库货物采购人员按照每年的采购计进行购产品,(不在本系统考虑范围)货物购入后由仓库管理人员将货物按类别分类后录入数据库。4.1.2

、过期产品销毁某一部分饮料产品会随着时间的增长变质或者超出保质期,或者产品包装被损坏,这些货物就要在仓库的除去。即从仓库中删除此产品记录。4.1.3

货物信息修改货物信息由于工作人员的疏忽,而出现错误,提供其货物ID就可以修改其信息。4.2货物出仓管理4.2.1、货物出仓主要功能是记录出库单编号和产品编号,进行借书过程。在数据库中插入一条出库记录,该记录包括领货人ID、货物ID、出库日期、出库编号、操作员。4.3、出库单管理该模块实现的主要功能是办理出库单、注销出库单。五、编码5.1用户登录模块//如果登录成功 if(record!=null){ message="<script>alert('登陆成功');</script>"; //将提示信息传给JSP页面(放入,记住:有放必有取) request.setAttribute("message",message); //将用户的信息放入session(会话) HttpSessionsession=request.getSession(); //放入(放入,记住:有放必有取) session.setAttribute("userinfo",record); //跳转页面 request.getRequestDispatcher("adminIndex.jsp").forward(request,response); }else{ message="<script>alert('登陆失败');</script>"; //将提示信息传给JSP页面(放入,记住:有放必有取) request.setAttribute("message",message); //跳转页面 request.getRequestDispatcher("login.jsp").forward(request,response);}5.2主页面及货物信息模块BookServlet://获取session HttpSessionsession=request.getSession(); Map<String,Object>userinfo=(Map<String,Object>)session.getAttribute("userinfo"); if(userinfo!=null){ //1、转码 request.setCharacterEncoding("utf-8"); //2、获取参数(看你有没有参数获取)(不一定有) //3、查数据库 BookDAObookDAO=newBookDAO(); List<Map<String,Object>>records=bookDAO.findAllBook(); //4、把数据传给JSP页面 request.setAttribute("records",records); //5、转发页面 request.getRequestDispatcher("listBook.jsp").forward(request,response);BookServlet:BookDAO: try{ //加载驱动 Class.forName("com.mysql.jdbc.Driver"); //建立连接 Connectioncn=DriverManager.getConnection("jdbc:mysql://localhost:3306/book?user=root&password=123&useUnicode=true&characterEncoding=utf8"); //发送SQL语句 Statementstmt=cn.createStatement(); ResultSetrs=stmt.executeQuery("select*frombookinfo"); //将查询结果转为List List<Map<String,Object>>records=ZqDBUtil.getHashMap(rs); //关闭连接 if(rs!=null)rs.close(); if(stmt!=null)stmt.close(); if(cn!=null)cn.close(); returnrecords; }catch(Exceptione){ e.printStackTrace(); }5.3货物信息添加模块BookServlet: Stringbookid=request.getParameter("bookid"); Stringisbn=request.getParameter("isbn"); Stringtitle=request.getParameter("title"); Stringpublish=request.getParameter("publish"); Stringauthor=request.getParameter("author"); Stringabstract_=request.getParameter("abstract_"); Map<String,Object>record=newHashMap<String,Object>(); record.put("bookid",bookid); record.put("isbn",isbn); record.put("title",title); record.put("publish",publish); record.put("author",author); record.put("abstract_",abstract_); BookDAOdao=newBookDAO(); intflag=dao.addBook(record); Stringmessage=""; if(flag>0){ message="<script>alert('添加成功');</script>"; }else{ message="<script>alert('添加失败');</script>"; }BookDAO: //加载驱动 Class.forName("com.mysql.jdbc.Driver"); //建立连接 Connectioncn=DriverManager.getConnection("jdbc:mysql://localhost:3306/book?user=root&password=123&useUnicode=true&characterEncoding=utf8"); //发送SQL语句 Statementstmt=cn.createStatement(); flag=stmt.executeUpdate("insertintobookinfo(bookid,isbn,title,publish,author,abstract_)values('"+record.get("bookid")+"','"+record.get("isbn")+"','"+record.get("title")+"','"+record.get("publish")+"','"+record.get("author")+"','"+record.get("abstract_")+"')");5.4货物信息修改模块BookServlet:Stringbookid=request.getParameter("bookid"); BookDAOdao=newBookDAO(); Map<String,Object>record=dao.getBook(bookid); request.setAttribute("record",record); request.getRequestDispatcher("editBook.jsp").forward(request,response);BookDAO://加载驱动 Class.forName("com.mysql.jdbc.Driver"); //建立连接 Connectioncn=DriverManager.getConnection("jdbc:mysql://localhost:3306/book?user=root&password=123&useUnicode=true&characterEncoding=utf8"); //发送SQL语句 Statementstmt=cn.createStatement(); flag=stmt.executeUpdate("updatebookinfosetbookid='"+record.get("bookid")+"',isbn='"+record.get("isbn")+"',title='"+record.get("title")+"',publish='"+record.get("publish")+"',author='"+record.get("author")+"',abstract_='"+record.get("abstract_")+"'wherebookid='"+record.get("bookid")+"'");5.5货物信息删除模块BookServlet:Stringbookid=request.getParameter("bookid"); BookDAOdao=newBookDAO(); intflag=dao.delBook(bookid); Stringmessage=""; if(flag>0){ message="<script>alert('删除成功');</script>"; }else{ message="<script>alert('删除失败');</script>"; } request.setAttribute("message",message); list(request,response);BookDAO:try{//加载驱动 Class.forName("com.mysql.jdbc.Driver"); //建立连接 Connectioncn=DriverManager.getConnection("jdbc:mysql://localhost:3306/book?user=root&password=123&useUnicode=true&characterEncoding=utf8"); //发送SQL语句 Statementstmt=cn.createStatement(); flag=stmt.executeUpdate("deletefrombookinfowherebookid='"+bookid+"'"); //关闭连接 if(stmt!=null)stmt.close(); if(cn!=null)cn.close(); returnflag; }catch(Exceptione){ e.printStackTrace(); }5.6货物出库办理模块BookServlet:Stringcert_id=request.getParameter("cert_id"); Stringcert_name=request.getParameter("cert_name"); Stringname=request.getParameter("name"); Stringdepart=request.getParameter("depart"); Stringflag=request.getParameter("flag"); Map<String,Object>record=newHashMap<String,Object>(); record.put("cert_id",cert_id); record.put("cert_name",cert_name); record.put("name",name); record.put("depart",depart); record.put("flag",flag); BookDAOdao=newBookDAO(); intflag1=dao.addCert(record); Stringmessage=""; if(flag1>0){ message="<script>alert('办理成功');</script>"; }else{ message="<script>alert('办理失败');</script>"; } request.setAttribute("message",message); request.getRequestDispatcher("addCert.jsp").forward(request,response); BookDAO:try{ //加载驱动 Class.forName("com.mysql.jdbc.Driver"); //建立连接 Connectioncn=DriverManager.getConnection("jdbc:mysql://localhost:3306/book?user=root&password=123&useUnicode=true&characterEncoding=utf8"); //发送SQL语句 Statementstmt=cn.createStatement(); flag=stmt.executeUpdate("insertintocertificateinfo(cert_id,cert_name,name,depart,flag)values('"+record.get("cert_id")+"','"+record.get("cert_name")+"','"+record.get("name")+"','"+record.get("depart")+"','"+record.get("flag")+"')"); //关闭连接 if(stmt!=null)stmt.close(); if(cn!=null)cn.close(); returnflag; }catch(Exceptione){ e.printStackTrace(); }5.7货物出库模块BookServlet:Stringbookid=request.getParameter("bookid"); Stringcert_id=request.getParameter("cert_id"); Map<String,Object>record=newHashMap<String,Object>(); record.put("bookid",bookid); record.put("cert_id",cert_id); SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); Stringloandates=sdf.format(newDate()); record.put("loandates",loandates); intflag=1; record.put("flag",flag); BookDAOdao=newBookDAO(); intflag1=dao.borrowBook(record); Stringmessage=""; if(flag1>0){ message="<script>alert('出库成功');</script>"; }else{ message="<script>alert('出库失败');</script>"; } request.setAttribute("message",message);request.getRequestDispatcher("borrowBook.jsp").forward(request,response);BookDAO:try{ //加载驱动 Class.forName("com.mysql.jdbc.Driver"); //建立连接 Connectioncn=DriverManager.getConnection("jdbc:mysql://localhost:3306/book?user=root&password=123&useUnicode=true&characterEncoding=utf8"); //发送SQL语句 Statement

温馨提示

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

评论

0/150

提交评论