1、乡运城学垃软件设计书仓库管理系统系别:应用数学系专业:信息与计算科学班级:1204学号:2012060437姓名:闫丹爱精品文档_O2欢迎下载第一章可行性研究报告1.1.言1.1.1目的本软件是用来有效的管理超市仓库货物数量及种类,以方便超市工作人员可以全面的了解超市仓库库存货物数量和种类来方便高效的管理超市仓库。该项目可行性研究报告也是对超市仓库管理系统的全面考虑,是项目分析员进行进一步工作的前提,是软件开发人员成功的开发项目的前提.此分析研究报告可以使软件开发团体尽可能早的估计研制课题的可行
5、制,将不会侵犯他人、集体和国家的利益,不会违犯国家政策和法律。1.3.2使用方面的可行性该系统操做简单,不需要专业培训,一般人员即可胜任。1.4.结论综上所述,该项目应立即开始进行研发。从人力资源优化角度来说,可以充分利用人力资源。从经济利益的角度来看,即时开发完成即可用,可以立即赢利。但系统仍旧有些不足,例如修改方面还需人工手动修改数量等。在系统的交付使用中如有不足还望指出,以便改进。第二章仓库管理系统需求分析本系统的主要需求者是超市后台管理员。2.1.本项目概述本项目所开发的超市仓库管理系统完成超市管理员对货物的管理,减少数据漏掉的情况,
6、更方便管理人员的浏览和操作,节省了人力物力。2.2.系统一般性描述由于本系统的数据还算不上大型的。所以数据库服务器与web服务器共用同一台计算机。系统中的货物信息和管理员信息都存放在sqlserver数据库中。2.2.1系统的用例图’图2-1系统用例图’,用例图说明:精品文档图2-1系统用例图本系统主要只针对具有权限的理员进行操作,首先管理员必须具有正确的账号和密码才能进入系统进行操作。进入系统后的主要功能模块如下:添加功能:可以添加货物的具体信息同时还可以增加管理员。修改功能:可以对货物的所有信息进行修改。删除功能:删除超市已
8、(Sinprice)-卖价(Soutprice)-货物数量(Snum)+登陆系统()+增加商品0+删除过时商富+修改商品信息+查询商品信息+商品详细信息+缺货提示0DBConnection-url-username-password+getConnection0+closeConnection()+closeStatement()+closeResultSet()管理*PageUtil-pageSize-recordCount-currentPage+PageUtil()+getRecordCo
11、精品文档10欢迎下载仓库管理员管理员供应商图3.1系统的顶层数据流图图3.2系统的0层数据流图供应酉管理员管理员据整单调
13、除,修改。2、信息管理:对一些基本信息(商品,往来单位,仓库)的管理。3、出入库管理:对出库入库的管理。4、查询管理:对出库、入库单、库存信息的查询。而品名称商品数量图3.3实体之间关系E-R图入库编号商品编号商品编号入库数量商品名称:口品各举工商品名称商品编号第三章设计说明书3.1引言1.1.1系统概要及其运行环境软件详细设计阶段是软件设计的重要阶段,本阶段的工作就是要对系统中的每个模块给出足够详细的过程性描述,因此也称为“过程设计”。详细设计的根本目的就是确定应该怎样具体实现所需求的系
14、统,也就是说经过这一阶段的设计,会得出对学生选课系统的精确描述。其根本任务就是设计出程序的“蓝图”1.1.2系统的组成部分及其结构本系统分为四大模块,即用户管理模块、出库模块、入库模块、库存管理模块。管理员模块可分为普通用户模块和管理员模块,库存管理模块包括查询模块和修改模块。详细操作请见类图3.2软件设计约束本系统采用Java技术,基本上没有什么平台约束。在数据库方面,需要创建本地数据源。3.2.1设计目标和原则本设计欲达到的目标:能够使用户简单快捷的完成商品出库和入库的功能及库存管理功能。系统的性能达到高效,实用,易于维护。3.2.2设计约束
22、lt.getRow();}result.close();ps.close();if(count>0){this.UID=id;flags=true;getInfo(id);returnflags;}elseio敢迎下载精品文档{error.errorDialog((String)id);}}catch(Exceptione){e.printStackTrace();}returnflags;}〃根据‘工号’分别获取对应的的信息publicvoidgetInfo(Stringuid
23、){try{Stringsql2="select员工姓名,密码,员工类型,是否员工fromUserswhere员工号=";PreparedStatementpps=conn.prepareStatement(sql2);pps.setString(1,uid);ResultSetresult=pps.executeQuery();while(result.next()){name=result.getString(1).toString().trim();password=result.getString(2).trim();emplo
25、s(UID)&&pwd.equals(password)&&type.equals(employtype)){isEmploy=true;returnisEmploy;}else{returnisEmploy;}}catch(Exceptione){e.printStackTrace();}returnisEmploy;}//判断用户是否已经通过管理员的审核publicbooleanY_NEmply(){booleanisE=false;if(this.emplooy.equals("是")){Sy
26、stem.out.println("员工号:"+UID+”已经通过了审核");main.showMainFarme();isE=true;returnisE;}elseif(this.emplooy.equals("否")){error.noEmp100y(UID);returnisE;}returnisE;}4.2出库界面(主要代码)publicObjectsetSdata2(){try{Stringsql2="select*fromOutStore";Statementst=conn.creat
27、eStatement();ResultSetresult=st.executeQuery(sql2);Sdata2=newObject[Row2][Column2];intn=0;12欢迎下载精品文档while(result.next()){Sdata2[n][0]=result.getString(1).toString().trim();Sdata2[n][1]=result.getString(2).toString().trim();Sdata2[n][2]=result.getString(3).toString().trim();
28、Sdata2[n][3]=result.getString(4).toString().trim();Sdata2[n][4]=result.getString(5).toString().trim();Sdata2[n][5]=result.getString(6).toString().trim();n++;}result.close();st.close();returnSdata2;}catch(Exceptione){e.printStackTrace();}returnSdata2;}//先判断库存表中是否存在要出
29、库的商品编号publicbooleanisExistsGid(Stringgid){booleanflags=false;try{冏品编intcount=0;Stringsql3="selectcount(商品编号)fromStoreManagewhere号二";PreparedStatementps=conn.prepareStatement(sql3);ps.setString(1,gid);ResultSetresult=ps.executeQuery();while(result.next()){coun
30、t++;}result.close();ps.close();if(count>0){flags=true;returnflags;}else13螃ffl下载精品文档{returnflags;}}catch(Exceptione){e.printStackTrace();}returnflags;}//判断库存表中的库存量是否满足出库的笨条件publicbooleanlookNumber(Stringgid,intnumber){booleanflags=false;tr
31、y{intnum=0;Stringsql4="select库存量fromStoreManagewhere商品编号=";PreparedStatementps=conn.prepareStatement(sql4);ps.setString(1,gid);ResultSetresult=ps.executeQuery();while(result.next()){num=result.getInt(1);}result.close();ps.close();if(number<=num){flags=true;
33、eparedStatementps=conn.prepareStatement(sql5);ps.setString(1,outgid);ps.setString(2,outgname);ps.setInt(3,outgnum);ps.setString(4,outpeople);ps.executeQuery();ps.close();}catch(Exceptione){e.printStackTrace();}}//这是要修改库存表中的库存量publicvoidupdateStoreManage(Stringout
34、gid,intnum){try{Stringsql6="updateStoreManageset库存量=(select库存量fromStoreManagewhere商品编号=)-where商品编号=";PreparedStatementps=conn.prepareStatement(sql6);ps.setString(1,outgid);ps.setInt(2,num);ps.setString(3,outgid);ps.executeQuery();ps.close();}catch(Exceptione)
35、{e.printStackTrace();}}//向出库表模型中添加一条新一出库记录publicObjectaddOutStoreToTable(Stringoutgid){try{Stringsql7="select*fromOutStorewhere商品编号=and出库编号二(selectcount(*)fromOutStore)";PreparedStatementps=conn.prepareStatement(sql7);ps.setString(1,outgid);ResultSetresult=p
36、s.executeQuery();while(result.next()){newStoreOfOut[0]=newInteger(result.getInt(1));newStoreOfOut[1]=result.getString(2).toString().trim();newStoreOfOut[2]=result.getString(3).toString().trim();newStoreOfOut[3]=newInteger(result.getInt(4));newStoreOfOut[4]=result.getString(5).toStri
37、ng().trim();newStoreOfOut[5]=result.getString(6).toString().trim();}result.close();ps.close();returnnewStoreOfOut;}catch(Exceptione){e.printStackTrace();}returnnewStoreOfOut;}4.3入库界面publicObjectsetSdata(){try{Stringsq2="select*fromInStore";Statementst=c
38、onn.createStatement();ResultSetresult=st.executeQuery(sq2);Sdata=newObject[Row][Column];intn=0;while(result.next()){Sdata[n][0]=result.getString(1).toString().trim();Sdata[n][1]=result.getString(2).toString().trim();Sdata[n][2]=result.getString(3).toString().trim();Sdata[n][3]=r
39、esult.getString(4).toString().trim();Sdata[n][4]=result.getString(5).toString().trim();Sdata[n][5]=result.getString(6).toString().trim();n++;}result.close();st.close();returnSdata;}catch(Exceptione){e.printStackTrace();}returnSdata;}//向入库表中插入新的数据publicvoidgoodsIn
41、ate();ps.close();}catch(Exceptione){e.printStackTrace();}}//判断库存表中是否有相同商品编号的商品存在publicbooleanisExistsGood(Stringgid){booleanflags=false;try{-Stringsql4="select*fromStoreManagewhere商品编号=";PreparedStatementps=conn.prepareStatement(sql4);ps.setString(1,gid);
42、ResultSetresult=ps.executeQuery();inti=0;while(result.next()){i++;}result.close();ps.close();if(i>0){//如果库存表中存在该商品的商品编号,则调用修改函数flags=true;returnflags;}else{//若库存表中不存在则调用插入函数新插入一条数据returnflags;}}catch(Exceptione){e.printStackTrace();}returnflags;}
43、//若库存表中不存在则新建一条信息publicvoidinsertStoreManage(Stringgid,Stringgname,intgnum){try{Stringsql5="insertintoStoreManage(商品编号,商品名称,库存量)values(,,)";PreparedStatementps=conn.prepareStatement(sql5);ps.setString(1,gid);ps.setString(2,gname);ps.setInt(3,gnum);ps.executeUpdate(
44、);ps.close();}catch(Exceptione){e.printStackTrace();}//如果存在直接修改原有的数量//1、先获取原有的库存量publicintgetStoreNumber(Stringgid){intnum=0;try{-Stringsql6="select入库数据fromStoreManagewhere商品编号=";PreparedStatementps=conn.prepareStatement(sql6);ps.setString(1,gid);//ps.exec
45、uteQuery();ResultSetresult=ps.executeQuery();while(result.next()){num=result.getInt(1);}result.close();ps.close();returnnum;}catch(Exceptione){e.printStackTrace();}returnnum;}//2、再修改库存量publicvoidupdateStoreManage(intcount,Stringgid){try{intNUM=getStor
46、eNumber(gid)+count;Stringsql7="updateStoreManageset库存量=NUMwhere商品编号=";PreparedStatementps=conn.prepareStatement(sql7);ps.setString(1,gid);//ps.setInt(1,count);//ps.setString(2,gid);ps.executeUpdate();ps.close();}catch(Exceptione){e.printStackTrace();}}//error!没
47、有注意到出库表会存在多条相同的记录//向入库表模型中添加一条入库记录publicvoidaddStoreOnInStore(Stringgid){Object口newRow=newObject[6];try{Stringsql8="select*fromInStorewhere商品编号=and入库编号二(selectcount(*)fromInStore)";PreparedStatementps=conn.prepareStatement(sql8);ps.setString(1,gid);ResultSetres
48、ult=ps.executeQuery();while(result.next()){newRow[0]=newInteger(result.getInt(1));newRow[1]=result.getString(2).toString().trim();newRow[2]=result.getString(3).toString().trim();newRow[3]=newInteger(result.getInt(4));newRow[4]=result.getString(5).toString().trim();newRow[5]=result
49、.getString(6).toString().trim();}result.close();ps.close();//向表模式中添加一行新数据dtml.addRow(newRow);}catch(Exceptione){e.printStackTrace();}}4.4库存管理界面publicObjectsetSData(){try{Stringsql2="select*fromStoreManage";Statementst=conn.createStatement();ResultSetresu
50、lt2=st.executeQuery(sql2);Sdata=newObject[Row][Column];intn=0;while(result2.next()){Sdata[n][0]=result2.getString(1).toString().trim();Sdata[n][1]=result2.getString(2).toString().trim();Sdata[n][2]=result2.getInt(3);n++;}result2.close();st.close();returnSdata;}catch(Ex
51、ceptione){System.out.println(e.getMessage());}returnSdata;}publicvoidinit(){//先调用方法获得表头和二维表的表数据//this.setSData();//this.setHeader();this.setTitle("天涯仓库管理");this.setSize(700,300);this.setLocation(300,150);this.setLayout(newGridLayout(2,1));dtm1=newDefaultTableModel
52、(Sdata,Sheader);jtable=newJTable(dtm1);pane1=newJScrollPane(jtable);jtable.setRowHeight(30);jtable.setGridColor(Color.blue);jp1.add(jlbl1);jp1.add(jtxt1);jp1.add(jlbl2);jp1.add(jtxt2);jp1.add(jlbl3);jp1.add(jtxt3);jp1.add(btnupdate);jp1.add(btndel);btnupdate.addActionList
53、ener(this);btndel.addActionListener(this);jtable.addMouseListener(this);〃dtm1.addTableModelListener(jtable);this.add(panel);this.add(jpl);this.show();}publicbooleanUpdateStoreDate1(Stringgoodid,Stringgoodname,intgoodnum){booleanflags=false;try{--StringSql3="updateSt
54、oreManageset商品名称=,库存量=where商品名称=goodid”;PreparedStatementps=conn.prepareStatement(Sql3);ps.setString(1,goodname);ps.setInt(2,goodnum);ps.executeUpdate();flags=true;}catch(Exceptione){System.out.println(e.getMessage());}returnflags;}//更新数据publicbooleanUpdateStor
55、eDate(Stringgoodid,Stringgoodname,intgoodnum){booleanflags=false;try{--StringSql3="updateStoreManageset商品名称=,库存量=where商品名称=”;PreparedStatementps=conn.prepareStatement(Sql3);ps.setString(1,goodname);ps.setInt(2,goodnum);ps.setString(3,goodid);ps.executeUpdate();
56、ps.close();flags=true;}catch(Exceptione){System.out.println(e.getMessage());}returnflags;}//删除选中的数据publicbooleanDelStoreDate(Stringgoodid){booleanflags=false;try{-Stringsql4="deletefromStoreManagewhere商品编号=";PreparedStatementps=conn.prepareStatement(sql4);
57、ps.setString(1,goodid);ps.executeUpdate();ps.close();flags=true;}catch(Exceptione){System.out.println(e.getMessage());}returnflags;}//判断是否缺货publicbooleanIsDeletio(){booleanflags=false;try库存量{-Stringsql5="selectcount(商品编号)fromStoreManagewhere<=50";Stat
58、ementst=conn.createStatement();ResultSetresult=st.executeQuery(sql5);intm=0;while(result.next()){m++;//判断是否有商品缺失if(m>0){flags=true;}}catch(Exceptione){System.out.println(e.getMessage());}returnflags;}第五章测试计划报告5.1.引言5.1.1目的本软件是用来有效的管理超市仓库货物数量及种类,以方便超市
62、Cl11>iIUi*=Imi="Ui11J表3-2普通员工员工号员工姓名密码证件号员工类型是否员工1[45182754474G7-周必zhoupeng2009304040107普通用尸否26335400627445陈其chengzheng2009304040106普通用户是3767107S181544陈东良chengliang2009304040130普通用户否4切965200611chengpengchengpeng200S30404
63、0110普通用尸是59760601086417天涯chengpeng300930404102普通用户是表3-3是否员工(是)员工号员工姓名密码证件号员工类型是否员工1j53214S5G21242Robinchengpeng2009304040129管理员是26335400E27445陈真chengzheng2009304(140106普通用户是392175652。口6,chengpengchengpeng2009304040110