版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 理工大学紫金学院课程设计说明书作 者:仇慎超学 号:070602122学院(系):南理工紫金学院(计算机系)专业:网络工程题 目:仓库管理系统2010年 4 月33 / 33目录一、概述 ··································&
2、#183;··············2 二、需求分析··································
3、;············2三、系统设计····································
4、3;··········4四、系统实施······································
5、83;········9五、系统测试········································
6、183;······9六、收获和体会 ··········································
7、;··9七、附录···············································
8、···9八、参考文献·············································9一、概述
9、1、项目背景:随着市场竞争的日益激烈,如何降低成本更加便捷的处理库存管理,越来越受到各个企业的重视。管理的好坏对企业至关重要。而对经销商而言,渠道扁平化已是大势所趋,这使经销商对产品的库存管理合理化也提出了更高的要求。该库存管理系统正是基于客户亟待解决多商品、大业务,等复杂的库存管理的要求而开发。2、 编写目的:使用计算机管理系统,实现经济性和技术性满足企业的现代化管理要求。3、 软件定义:本系统是基于JSP、JavaBean模式并使用MySQL数据库系统开发而成。并实现了仓库进出管理功能的软件。4、 开发环境: 操作系统:Windows XP。 数据库:MySQL。开发工具包:JDK 1.6
10、,Eclipse3.2,MyEclipse8.xJSP服务器:Tomcat 6.0浏览器:IE 7.0二、需求分析1、问题的提出:仓库进货、库存管理环节中,由于商品种类繁多、业务量大、库存管理复杂,使用手工操作工作量很大,在操作过程中也很容易出现各种错误。如何使用计算机解决目前的问题,是本系统最重要的难点。2、 系统的业务功能分析:系统业务需要具有的功能:v 具有良好的用户界面v 系统具有良好的权限管理功能v 强大的数据查询功能v 可以直接查看仓库库存情况3、 系统的业务流程分析:v 进入系统管理应该首先登陆,取得管理权限之后进入主界面v 入库操作时需要记录货品的全部信息(新货入库与补库区分对
11、待)v 出库操作是需要修改库存信息v 查询操作时可以根据输入条件查询相应货品信息,之后输出报表v 人员信息管理可以输入、修改、查询员工信息,也应具有客户相应的信息录入、 修改、查询方法4、需完成的功能:v 登陆功能v 注册管理员功能v 新货入库录入功能v 货品补充修改功能v 库存货品信息管理功能v 货品出库修改功能v 根据条件查询功能v 报表输出功能v 员工信息录入功能v 员工信息修改功能v 员工信息查询功能v 客户信息录入功能v 客户信息修改功能v 客户信息查询功能v 管理员注册功能v 管理员密码修改功能v 管理员删除功能4、 数据流图:1、管理员数据流图管理员数据库登陆模块注册信息管理员信
12、息修改2、 系统信息数据流程图货品补充修改信息库存货品修改信息新货入库信息货品 数据库查询功能模块员工录入信息客户录入信息 员工数据库 客户数据库客户修改信息员工修改信息三、系统设计1、数据表: 1、表的物理设计:v 管理员信息表(tb_user),用于对管理员信息的、密码进行定义字段名数据类型长度是否为空是否为主键描述IDInt4NoYes管理员编号UsernameVarchar50NoNo管理员名称PasswordVarchar50YesNo密码v 员工信息表(tb_worker),用于对员工信息的、职务、住址进行定义字段名数据类型长度是否为空是否为主键描述IDInt8NoYes员工编号W
13、knameVarchar50NoNo员工PostVarchar50YesNo职位PhoneVarchar20YesNoAddressVarchar100YesNo住址SalaryInt8YesNo工资v 客户信息表(tb_customer),用于对客户的全称、简称、地址、 、 、联系人、联系人、联系人、银行账号、开户银行进行定义字段名数据类型长度是否为空是否为主键描述IDInt8NoYes客户编号CusnameVarchar100NoNo客户全称ShortVarchar50YesNo客户简称AddressVarchar100YesNo地址PostcodeVarchar20YesNoPhoneV
14、archar20YesNoFaxVarchar20YesNoLinkmanVarchar20YesNo联系人LmphoneVarchar20YesNo联系人EmailVarchar50YesNoAccountVarchar20YesNo账号BankVarchar50YesNo银行v 货品信息表(tb_brand),用于对商品的名称、简称、编号、产地、规格、包装、批号、供应商、单位、单价、数量、入库日期、经手人进行定义字段名数据类型长度是否为空是否为主键描述IDInt8NoYes货品编号GoodsVarchar100NoNo货品名称Short Varchar50YesNo货品简称AddressV
15、archar100YesNo产地NormsVarchar50YesNo规格PackVarchar50YesNo包装LotNoVarchar20YesNo批号SupplierVarchar100YesNo供应商UnitVarchar20YesNo单位PriceVarchar20YesNo单价AmountVarchar20YesNo数量DateVarchar20YesNo入库日期ManagemanVarchar20YesNo经手人2、软件功能设计(1)、仓库系统的结构图登陆注册管理系统人员管理查询管理仓库管理入库管理出库管理 主界面功能结构图入库管理旧货补仓新货入库入库管理功能结构图仓库管理出库管
16、理货物清仓信息管理出库修改 出库管理功能结构图 仓库管理功能结构图查询管理货品查询客户查询员工查询 查询管理功能结构图人员管理客户管理管理员员工管理 人员管理功能结构图客户管理信息删除信息录入信息修改客户管理功能结构图员工管理信息删除信息录入信息修改员工管理功能结构图管理员注册信息删除信息修改管理员功能结构图(2)、功能表与功能描述:模块功能功能描述入库管理新货入库创建新的信息列表,输入货品信息旧货补仓在旧的信息列表上修改货品数量等信息出库管理出库修改在货品信息列表上修改库存数量信息仓库管理信息管理在货品信息列表上修改供应商等信息货物清仓当该货品需要清仓不再进货时进行信息删除查询管理货品查询根
17、据货品编号或名称查询货品详细信息员工查询根据员工号或查询该员工详细信息客户查询根据客户名称查询客户详细信息员工管理信息录入输入员工详细信息信息修改修改员工住址或工资等信息信息删除若该员工辞职则删除该员工信息管理员注册注册管理员账号、密码。注:只有管理员可添加注册信息修改修改管理员登陆密码信息删除删除管理员信息客户管理信息录入输入客户详细信息信息修改修改客户地址等详细信息信息删除如该客户推出则删除该客户信息4、 系统实施(1)、系统的界面设计:1 登陆界面设计2 系统主界面设计3 入库管理界面设计4 出库管理界面设计5 仓库管理界面设计6 查询管理界面设计7 员工管理界面设计8 客户管理界面设计
18、9 管理员入口界面设计(2)、事件的设计过程: 1.登陆事件的设计 登陆事件需要在文本框中输入账号名称和密码,然后根据数据库的容判断是否存在该用户,是否允许登陆。程序流程图如下所示:开始输入账号密码判断是否存在 N Y登陆跳转结束2.导航栏事件的设计导航栏主要功能就是帮助用户选择所使用的功能。用户点击父框,显示相应的子模块。并且根据用户所点击的到相应的界面。流程图如下图所示:开始是否为入库选择操作打开入库子项 T F选择操作打开出库子项是否为出库 T F选择操作打开仓库子项是否为仓库库 T是否为查询 F选择操作打开查询子项 T F选择操作打开员工子项是否为员工 T F选择操作打开客户子项是否为
19、客户 T F选择操作打开管理员子项是否为管理员 T F跳转页面结束3.新货入库事件的设计由于新货入库时仓库没有相应信息,所以在处理时应该录入详细数据。并添加到数据库新项中。处理过程如下图所示:开始录入信息处理保存信息结束3.旧货补仓事件的设计旧货补仓处理过程类似于新货入库,如下图所示。但是由于原先已经有该物品的信息,所以只需修改物品的库存信息即可。开始录入信息处理保存信息结束3.出库修改事件的设计货品出库时由于数据库中已经存在该物品的数据,所以只需要根据货号修改库存信息即可。输入信息后判断信息是否填写正确,若是正确就修改数据库信息。否则就报错,重新输入。过程如下图所示:开始录入信息判断数据正确
20、 F T处理保存信息结束4.仓库信息管理事件的设计仓库信息管理时由于数据库中已经存在该物品的数据,所以只需要根据货号修改库存信息即可。由于货品信息部可能完全改变,所以需要具有部分修改的功能。输入信息后判断信息是否填写正确,若是正确就执行该操作数据库信息。否则就报错,重新输入。过程如下图所示:开始录入信息判断数据正确 F T处理保存信息结束5.清仓管理事件的设计货品清仓时由于数据库中已经存在该物品的数据,所以只需要根据货号删除掉库存信息即可。输入信息后判断信息是否填写正确,若是正确就执行操作数据库信息。否则就报错,重新输入。过程如下图所示:开始录入删除货号判断数据正确 F T处理保存信息开始输入
21、货号判断数据存在打印结束结束6.货品查询事件的设计货品查询需要在文本框中输入相应的货号,首先判断该货物是否存在,如不存在或输入错误,则跳转到错误界面。如果存在则输出货品的详细信息。报错6.员工查询与客户查询事件的设计员工查询和客户查询处理过程类似于货品查询,流程图一样如上图。7.员工信息录入事件的设计员工信息录入类似于新货入库信息的录入。需要将员工的详细信息输入数据库。如该项不存在则可以在该项写无。事件流程图参见新货入库事件图。8.员工信息修改事件的设计员工信息修改类似于仓库管理信息的修改。由于数据库中已经存在所以只需要修改相应的信息即可。事件流程图参见仓库管理信息修改事件图。9.员工信息删除
22、事件的设计员工信息删除类似于仓库管理的清仓管理。由于数据库中已经存在所以只需要删除相应的信息即可。事件流程图参见仓库管理信息修改事件图。10.其他事件的设计客户管理和管理员入口管理子选项的事件处理与员工信息管理相类似。处理流程一样。(3)、主要代码描述:1.登陆模块主要代码<title>仓库管理系统框架</title></head><framesetrows="*"cols="*,778,*"framespacing="1"frameborder="no"border=&q
23、uot;1"><framesrc="blank.jsp"name="blankFrame"scrolling="NO"noresize><framesetrows="117,*"cols="*"frameborder="NO"border="0"framespacing="0"><framesrc="top.jsp"name="topFrame"scr
24、olling="NO"noresize><framesetrows="*"cols="194,*"framespacing="0"frameborder="NO"border="0"><framesrc="left.jsp"name="leftFrame"frameborder="NO"scrolling="auto"noresize><framesrc=&qu
25、ot;main.jsp"name="mainFrame"frameborder="no"scrolling="AUTO"noresizemarginwidth="1"marginheight="1"bordercolor="#CCCCCC"></frameset></frameset><framesrc="blank.jsp"name="blankFrame"></framese
26、t><noframes><body><center><%/获取request中传递的参数String username = new String(request.getParameter("username").getBytes("iso-8859-1"),"gb2312");String password = new String(request.getParameter("password").getBytes("iso-8859-1"),&q
27、uot;gb2312"); ResultSet result = null;try/构造SQL语句String sqlStr="select ID from tb_user where username='"+username+"' and password='"+password+"'"/设置连接database.setConnection();/设置SQL语句database.setSqlStr(sqlStr);/执行插入数据操作result=database.getResult();if
28、(result.next()elseresponse.sendRedirect("index.jsp");catch(Exception ex)out.println("插入数据操作失败!");%></center></body></noframes></html>2.导航模块主要代码<scriptlanguage="javascript">function show(obj,maxg,obj2)if(obj.style.pixelHeight<maxg) obj
29、.style.pixelHeight+=maxg/10;obj.filters.alpha.opacity+=20;obj2.background="images/title_hide.gif"if(obj.style.pixelHeight=maxg/10) obj.style.display='block'myObj=obj;mymaxg=maxg;myObj2=obj2;setTimeout('show(myObj,mymaxg,myObj2)','5'); function hide(obj,maxg,obj2)if(
30、obj.style.pixelHeight>0)if(obj.style.pixelHeight=maxg/5) obj.style.display='none' obj.style.pixelHeight-=maxg/5;obj.filters.alpha.opacity-=10;obj2.background="images/title_show.gif"myObj=obj;mymaxg=maxgmyObj2=obj2;setTimeout('hide(myObj,mymaxg,myObj2)','5'); else
31、if(whichContinue) whichContinue.click();function chang(obj,maxg,obj2)if(obj.style.pixelHeight) hide(obj,maxg,obj2);nopen=''whichcontinue='' elseif(nopen) whichContinue=obj2; nopen.click();else show(obj,maxg,obj2); nopen=obj2; whichContinue=''</script>3.新货入库模块主要代码<%/获
32、取request中传递的参数int ID = Integer.parseInt(request.getParameter("ID");String goods = new String(request.getParameter("goods").getBytes("iso-8859-1"),"utf-8");String shorts = new String(request.getParameter("shorts").getBytes("iso-8859-1"),&quo
33、t;utf-8");String address = new String(request.getParameter("address").getBytes("iso-8859-1"),"utf-8");String norms = new String(request.getParameter("norms").getBytes("iso-8859-1"),"utf-8");String pack = new String(request.getParameter
34、("pack").getBytes("iso-8859-1"),"utf-8");String lotNo = new String(request.getParameter("lotNo").getBytes("iso-8859-1"),"utf-8");String supplier = new String(request.getParameter("supplier").getBytes("iso-8859-1"),"
35、utf-8");String unit = new String(request.getParameter("unit").getBytes("iso-8859-1"),"utf-8");String price = new String(request.getParameter("price").getBytes("iso-8859-1"),"utf-8");String amount = new String(request.getParameter("
36、;amount").getBytes("iso-8859-1"),"utf-8");String date = new String(request.getParameter("date").getBytes("iso-8859-1"),"utf-8");String manageman = new String(request.getParameter("manageman").getBytes("iso-8859-1"),"utf-
37、8");tryif(ID=0)response.sendRedirect("defeat.jsp");if(goods.equals("")|shorts.equals("")|address.equals("")|norms.equals("")|pack.equals("")|lotNo.equals("")|supplier.equals("")|unit.equals("")|price.equal
38、s("")|amount.equals("")|date.equals("")|manageman.equals("")response.sendRedirect("defeat.jsp");/构造SQL语句String sqlStr = "insert into tb_brand values(" + ID + ",'" + goods + "','" + shorts + "','&
39、quot; + address + "','" + norms + "','" + pack + "','" + lotNo + "','" + supplier + "','" + unit + "','" + price + "','" + amount + "','" + date + "
40、9;,'" + manageman + "')"/设置连接database.setConnection();/设置SQL语句database.setSqlStr(sqlStr);/执行插入数据操作database.insertData();response.sendRedirect("OK.jsp");catch(Exception ex)/response.sendRedirect("defeat.jsp");%>4.旧货补仓模块主要代码<%/获取request中传递的参数int ID = In
41、teger.parseInt(request.getParameter("ID");String amount = new String(request.getParameter("amount").getBytes("iso-8859-1"),"utf-8");tryif(ID=0|amount.equals("")response.sendRedirect("defeat.jsp");/构造SQL语句String sqlStr = "update tb_bran
42、d set Amount='" + amount + "' where ID='"+ID+"'"/设置连接database.setConnection();/设置SQL语句database.setSqlStr(sqlStr);/执行插入数据操作database.updateData();response.sendRedirect("OK.jsp");catch(Exception ex)response.sendRedirect("defeat.jsp");%>5.出
43、仓模块主要代码<%/获取request中传递的参数int ID = Integer.parseInt(request.getParameter("ID");String amount = new String(request.getParameter("amount").getBytes("iso-8859-1"),"utf-8");tryif(ID=0|amount.equals("")response.sendRedirect("defeat.jsp");/构造SQ
44、L语句String sqlStr = "update tb_brand set Amount='" + amount + "' where ID='"+ID+"'"/设置连接database.setConnection();/设置SQL语句database.setSqlStr(sqlStr);/执行插入数据操作database.updateData();response.sendRedirect("OK.jsp");catch(Exception ex)response.sendRe
45、direct("defeat.jsp");%>6.仓库信息管理模块主要代码tryif(ID=0)response.sendRedirect("defeat.jsp");if(goods.equals("")else String sqlStr = "update tb_brand set Goods='" + goods + "' where ID='"+ID+"'"/设置连接 database.setConnection();/设置SQ
46、L语句 database.setSqlStr(sqlStr);/执行插入数据操作 database.updateData(); if(shorts.equals("")else String sqlStr = "update tb_brand set Shorts='" + shorts + "' where ID='"+ID+"'" database.setConnection(); database.setSqlStr(sqlStr); database.updateData()
47、; if(address.equals("")else String sqlStr = "update tb_brand set Address='" + address + "' where ID='"+ID+"'" database.setConnection(); database.setSqlStr(sqlStr); database.updateData(); if(norms.equals("")else String sqlStr = "u
48、pdate tb_brand set Norms='" + norms + "' where ID='"+ID+"'" database.setConnection(); database.setSqlStr(sqlStr); database.updateData(); if(pack.equals("")else String sqlStr = "update tb_brand set Pack='" + pack + "' where ID=
49、'"+ID+"'" database.setConnection(); database.setSqlStr(sqlStr); database.updateData(); if(lotNo.equals("")else String sqlStr = "update tb_brand set LotNo='" + lotNo + "' where ID='"+ID+"'" database.setConnection(); databa
50、se.setSqlStr(sqlStr); database.updateData(); if(supplier.equals("")else String sqlStr = "update tb_brand set Supplier='" + supplier + "' where ID='"+ID+"'" database.setConnection(); database.setSqlStr(sqlStr); database.updateData(); if(unit.equ
51、als("")else String sqlStr = "update tb_brand set Unit='" + unit + "' where ID='"+ID+"'" database.setConnection(); database.setSqlStr(sqlStr); database.updateData(); if(price.equals("")else String sqlStr = "update tb_brand set Pri
52、ce='" + price + "' where ID='"+ID+"'" database.setConnection(); database.setSqlStr(sqlStr); database.updateData(); if(amount.equals("")else String sqlStr = "update tb_brand set Amount='" + amount + "' where ID='"+ID+&
53、quot;'" database.setConnection(); database.setSqlStr(sqlStr); database.updateData(); if(date.equals("")else String sqlStr = "update tb_brand set Date='" + date + "' where ID='"+ID+"'" database.setConnection(); database.setSqlStr(sqlStr
54、); database.updateData(); if(manageman.equals("")else String sqlStr = "update tb_brand set Manageman='" + manageman + "' where ID='"+ID+"'" database.setConnection(); database.setSqlStr(sqlStr); database.updateData(); response.sendRedirect("
55、;OK.jsp");catch(Exception ex)/response.sendRedirect("defeat.jsp");7.清仓管理模块主要代码<%/获取request中传递的参数int ID = Integer.parseInt(request.getParameter("ID");tryif(ID=0)response.sendRedirect("defeat.jsp");/构造SQL语句String sqlStr = "delete from tb_brand where ID='&
56、quot;+ID+"'"/设置连接database.setConnection();/设置SQL语句database.setSqlStr(sqlStr);/执行插入数据操作database.deleteData();response.sendRedirect("OK.jsp");catch(Exception ex)response.sendRedirect("defeat.jsp");%>8.查询模块主要代码tryif(ID=0)response.sendRedirect("defeat.jsp")
57、;/构造SQL语句String sqlStr = "select * from tb_brand where ID='"+ID+"'"/设置连接database.setConnection();/设置SQL语句database.setSqlStr(sqlStr);/执行插入数据操作result=database.getResult();while(result.next()out.println("<table border border-width=2px>");out.println("<
58、;br><br><p id=text align=center>货品详细信息表</p>");out.println("<tr>");out.println("<td align=center >货品编号:</td>");out.println("<td align=center>"+result.getInt(1)+"</td>");out.println("<td align=cente
59、r >货品全称:</td>");out.println("<td align=center>"+result.getString(2)+"</td>");out.println("</tr>");out.println("<tr>");out.println("<td align=center >货品简称:</td>");out.println("<td align=center&
60、gt;"+result.getString(3)+"</td>");out.println("<td align=center >产地:</td>");out.println("<td align=center>"+result.getString(4)+"</td>");out.println("</tr>");out.println("<tr>");out.println(&qu
61、ot;<td align=center >规格:</td>");out.println("<td align=center>"+result.getString(5)+"</td>");out.println("<td align=center >包装:</td>");out.println("<td align=center>"+result.getString(6)+"</td>");o
62、ut.println("</tr>");out.println("<tr>");out.println("<td align=center >批号:</td>");out.println("<td align=center>"+result.getString(7)+"</td>");out.println("<td align=center >供应商:</td>");out.println("<td align=center>"+result.getString(8)+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026陕西西安市西北农林科技大学工程训练中心实习指导教师招聘2人笔试备考题库及答案解析
- 2026湖南长沙长沙县星沙街道悦和城幼儿园春季招聘1人笔试备考题库及答案解析
- 2026中国民用航空西藏自治区管理局外部招聘12人考试备考题库及答案解析
- 2026北京航空航天大学宇航学院第一批卓越百人博士后岗位招聘笔试备考题库及答案解析
- 2026四川阿坝州锦宸口腔招聘8人笔试备考题库及答案解析
- 2026山东菏泽市巨野县群众文化服务中心(巨野县山东梆子剧团)招聘初级专业技术人员考试备考题库及答案解析
- 2026云南保山职业学院校园招聘15人笔试模拟试题及答案解析
- 四川省仪陇县大寅片区2025-2026学年初三下学期高中联合考试物理试题含解析
- 2026届甘肃省金昌市永昌市第五中学初三下学期第二次阶段(期中)考试题含解析
- 浙江省金华九中2025-2026学年初三第一次模拟(期末)考试数学试题试卷含解析
- 毒麻精神药品培训
- 兴国县国有资产服务中心2026年公开招聘劳务派遣人员考试备考题库及答案解析
- 2025年四川省专升本语文考试真题及参考答案
- 2026河南农业大学招聘辅导员(硕士)10人笔试备考题库及答案解析
- DB42T 1955-2023 电动自行车停放充(换)电场所消防安全管理规范
- 新22J01 工程做法图集
- 机械原理(经典版)-机械原理经典
- 综合柜员-高级011
- 工作危害分析表(光伏施工工程)
- 人教版选择性必修第三册Unit5前半部分单词课件(18张ppt)
- 亚马逊全阶运营课件
评论
0/150
提交评论