Java仓库管理系统报告_第1页
Java仓库管理系统报告_第2页
Java仓库管理系统报告_第3页
Java仓库管理系统报告_第4页
Java仓库管理系统报告_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、青岛滨海学院期末Java程序设计2016 2017学年第一学期期末考试面向对象程序设计(Java) *实践考核项目设计说明书项目名称:仓库管理系统专 业: 计算机科学与技术学 号:姓 名:任课教师:巩晨静2016年12月3日项目及要求(一)考核内容:Java应用程序开发(二)考核要求:1. 设计开发一个Java应用程序,设计题目自拟;2. 要求学生熟练运用Java程序设计的基本知识和技能;3. 要求学生掌握面向对象程序开发的基本思路和方法,熟悉软件开发过程;4. 要求学生利用面向对象的编程思想以及组件开发原理来完成系统的设计;5. 要求学生利用所学的基本知识和技能,进行应用程序设计,并体现自己

2、的创新;6. 要求学生独立完成,严禁拷贝与抄袭;7. 按照软件工程的思想,完成项目的需求分析、项目的功能框架、用户界面的 设计、各功能模块的调试和运行等工作;8. 重视设计说明书文档的书写。9. 上交要求。要求学生上交设计说明书一份 (Word格式)电子及打印文档(A4 纸)各一份,源程序打包上传 BB平台。目录第一章项目选题说明1第二章 项目需求分析 2第三章 系统设计23.1 设计思想23.2程序总体设计33.3程序详细设计43.4数据库的总体设计: 7第四章系统测试及实现10第五章总结13附录 :14青岛滨海学院期末Java程序设计仓库管理系统设计说明书第一章项目选题说明管理信息系统(M

3、IS)的应用已深入到社会的各行各业,它是信息、软件与 科学管理相结合的产物。MIS的开发过程不仅是一个编写应用程序的过程,而 且是一个以软件工程的思想为指导, 从可行性研究开始,经过系统分析、系统设 计、系统实施到等主要阶段的规范开发过程。我们实现的是网络数据库管理系统,我们选择的是仓库管理系统,仓库 作为一种资源的集散地,在企业的整个供应链中起着至关重要的作用,如果不 能保证正确的库存控制及发货,将会导致管理费用的增加,服务质量难以得 到保证,从而影响企业的竞争力,传统简单的,静态管理已经无法保证企业 各种资源的搞笑利用。如今的仓库作业和库存控制作业已经十分复杂多样化, 仅靠人工记忆和手工录

4、入,不但费时费力,而且容易出错,给企业带来巨大 的损失。所以要实施先进的自动化系统,实现企业内部的信息管理,共享交 流,才能让企业在竞争激烈的 21世纪取得先机。仓库管理系统就是对货物和 信息及金钱进行规划和实行交流控制。它将入库、出库、库存形成一个统一 的中体,使企业处于全面受控状态,压缩投资规模,加快资金周转。在实时 反映的基础上,修正企业在日常生产经营过程中各个环节上的偏差,降低产 品成本和货物的积压。仓库管理系统是通过入库业务、出库业务、实时库存管理等功能综合运 用的管理系统,对货物全程进行有效的控制和跟踪,实现完善的企业仓库信 息管理。仓库管理系统的投入,将使仓库的管理更加正规化,为

5、产品的出入 库管理部门和销售部门提供了方便,降低了仓库的损耗。企业可以通过该系 统对售出的产品进行跟踪服务,同时避免可过去销售人员按以往惯例亲自前 往用户处去核实货物情况的麻烦,提高了办事小效率,节省了费用,而且还 避免了不必要的业务纠纷,维护了企业长期与用户建立的良好信誉。第二章 项目需求分析我们设计的仓库管理系统主要用于对仓库日常工作的管理,主要 任务是仓库的各种信息进行日常管理,如查询、修改、增加、删除等。本 系统实现了仓库的信息化管理,完成了仓库管理系统的基本功能。该系统主要包括用户登录系统、出入库管理系统和库存管理系统三个部分,各部分主要功能如下:(1) 用户登录系统:用于系统的登录

6、(2) 出入库管理系统:用于产品信息的管理,如新增,修改。(3) 库存管理系统:用于数据库的连接,对库内产品的信息查询,实现按需 求查询。第三章系统设计3.1设计思想(1) 系统分成两个主要的模块,出入库管理和库存管理(2) 分层的模块化程序设计思想,整个系统采用模块化结构设计。作为应用 程序有较强的可操作性和扩展性。(3) 合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相 互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。353.2程序总体设计仓库管理系统仓库基本信息用户登录图3.1仓库管理系统功能结构图图3.2管理员登录功能结构图图3.3仓库基本功能结构图3.3程

7、序详细设计管理员登录主体代码:public class Den gLu exte nds JFrame impleme ntsActio nListe ner,MouseListe nerJPanel pnlMain;JLabel lbltupia n, Ibly on ghu,lblmima,lblbiaoti;JTextField txtUserName;/ 文本框 JPasswordField pwdPassWord;/ 密码框 JButton De ngLu,TuiChu;主键Dime nsion deSize;Toolkit toolkit=Toolkit.getDefaultToo

8、lkit(); public Den gLu ()super(仓库管理系统);pnl Mai n=new JPa nel();主面板pn IMai n. setLayout (n ull);空布局this.setU ndecorated(true);添加图片Ibltupia n=new JLabel( new Imagelco n(images/tupia n.jpg);/Ibltupia n.setBou nds(0, 0, 708,366);lblyonghu=new JLabel( 用户名:);lblyo nghu.setBou nds(450,50,90, 20);lblmima=ne

9、w JLabel(密码:);lblmima.setBounds(450,100,90, 20);txtUserName=new JTextField(100);txtUserName.setBounds(500,50,150, 20);pwdPassWord=new JPasswordField(100);pwdPassWord.setBou nds(500,100,150, 20);DengLu=new JButton(登录);DengLu.setBounds(450,140,90, 30);Den gLu.addActio nListe ner(this);/增加监听器TuiChu=new

10、 JButton(退出);TuiChu.setBounds(560,140,90, 30);TuiChu.setM nemo nic(d);/ 设置快捷按钮TuiChu.addActio nListe ner(this);/字体Font font=new Font(宋体,Font.PLAIN, 13);lbly on ghu.setF on t(fo nt);lblmima.setF on t(fo nt);Den gLu.setF on t(fo nt);TuiChu.setFo nt(fo nt);/颜色De ngLu.setBackgrou nd(Color.CYAN);TuiChu.s

11、etBackgrou nd(Color.CYAN);pnIMain. add(lbly on ghu);pnIMain. add(txtUserName);pn IMai n.add(lblmima);pnl Mai n.add(pwdPassWord);pnIMain. add(De ngLu);pn IMai n.add(TuiChu);pnIMain. add(lbltupia n);this.setCo nten tPa ne(p nIMai n);this.setVisible(true);deSize=toolkit.getScree nSize(); /获取屏幕的大小this.s

12、etSize(708,366);this.setLocatio n(deSize.width/2-this.getWidth()/2,deSize.height/2-this.getHeight()/2);this.setDefaultCloseOperatio n(JFrame.EXIT_ON_CLOSE);public static void main( Stri ng args) new Den gLu();Overridepublic void actio nPerformed(Actio nEve nt e) / TODO Auto-ge nerated method stub if

13、(e.getSource()=De ngLu) if(txtUserName.getText().equals(20150200121)&(pwdPassWord.ge tText().equals(960523)new ZhuJieMia n();this.dispose();elseJOptio nPan e.showMessageDiaIog( null,用户名或密码错误,请重新输入);if(e.getSource()=TuiChu)System.exit(0); 3.4数据库的总体设计:数据库中总体有一张表,是管理产品信息的,具体结构如下图所示:设计表如下图3.1所示:卿氏度1嗷点 b

14、ianhaochar110歼chanpinnamechar2550Kinghaochar2550dengjichar2550回whulisngchar1100danjiachar1100图3.1数据库的设计表bianhaochanpinnamexinghaodengjishuliangdanjia33213321SDASBJL-3370-118-FE&453370水波缤竹纤淮毛亡B-JL-3370-11fl-FEa1103371水波纹竹纤维毛rtnB-JL-3370-118-FE三523372水波纹竹纤维毛巾22B-Jb337O-118FE二211图3.2 数据库表的内容(部分)连接数据库的代

15、码如下:public Conn ecti on ope nDB()try Class. forName(com.mysql.jdbc.Driver );Connectioncn=DriverManager. getConnection (jdbc:mysql:/localhost:3306/student root , 960914);return cn; catch (ClassNotFoundException e) System. out .pri ntln(驱动加载异常!);return null ; catch (SQLException e) System. out .pri nt

16、l n(数据库连接异常!); return null ;Overridepublic void actionPeformed(ActionEvent e) if (e.getSource()= btnExit ) this .dispose。;if (e.getSource()= btnchaxun)try /获得连接Class. forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection conn =DriverManager. getConnection (jdbc:mysql:/localhost:3306/student, root ,960914

17、);/建立查询条件Stri ng sql = select * from kuc un where bianhao= +txtPassWord .getText()+ ”;PreparedStateme nt pstm = conn. prepareStateme nt(sql);/执行查询ResultSet rs = pstm.executeQuery();/计算有多少条记录int count = 0;while (rs.next()coun t+;rs = pstm.executeQuery();/将查询获得的记录数据,转换成适合生成JTable的数据形式Object叩 info =n e

18、wObjectcou nt6;count = 0;while (rs.next()bianhao); chanpinname);xinghao);dengji); shuliang);danjia);in foco un t0 = rs.getStri ng( in foco un t1 = rs.getStri ng( in foco un t2 = rs.getStri ng( in foco un t3 = rs.getStri ng( in foco un t4 = rs.getStri ng( in foco un t5 = rs.getStri ng(coun t+;/定义表头St

19、ri ng title = 编号,产品名,型号,等级数量,单价;/ 创建 JTablethis . tabDemo= new JTable(info,title);/显示表头this . jth = this . tabDemogetTableHeader();/将JTable加入到带滚动条的面板中this . scpDemcgetViewport().add( tabDem。; catch (ClassNotFoundException cnfe)JOptionPane. showMessageDialog( null ,数据源错误,错误,JOptionPane. ERROR_MESSAGE

20、 catch (SQLException sqle)JOptionPane. showMessageDialog( null ,数据操作错误,错误 ,JOptionPane. ERROR_MESSA GE第四章系统测试及实现管理员进行登录操作。如图 4.1所示:(一)登录界面,图4.1 登录界面(二)主界面,管理员通过该界面进入出入库管理和库存查询。如图4.2所示:图4.2 系统王界面(三)出入库界面新增产品,点击新入按钮,将新产品信息输入后,点击确定,将新产品信息添加到数据库中图 4.3所示:。如图4.3新增产品(四)出入库管理界面,点击增减按钮,在编号栏输入编号 数量信息。如图4.4所示:

21、埋算張闸ARTn,即可修改该产品的图4.4 增减库存(五)库存管理界面,点击显示数据查看当前仓库存储产品的信息。如图4.5所示:1pat脅耳3221B-JL-WD-ne-FEt45疋吱纹的堆毛E&-JL-33TO-liS-rEi.厂103371水哽炊嘀维B-JL-337&-11&FE三5Z33T22B-JL-337M1B-FE2111111图4.5查询库存信息(六)库存管理界面,在文本框输入要查询产品的编号后,点击查询按钮,出现该产品的基本信息。如图4.6所示:第五章总结经过这学期的学习,在努力了几周之后,终于将 Java仓库管理系统做了出 来,虽然与想象中的程序还有一定的差距,但我还是很开心

22、能够独立的将它完成, 在这过程中,自己学到了很多,也感触到很多。 Java是本学期新开的一门课程, 在学习过程中对其的感触并不是很深刻, 但是在这两周内,对其有了更加深刻的 认识。平常在课堂的学习中都是跟着老师的脚步来敲代码, 对代码的理解认识都 很浅,但在自己构思自己动手的过程中,了解到了自己的不足,让我明白了 Java 的学习是一个反复的过程,不断的出现错误,不断的找到错误,然后查阅资料、 调试,最终让其能够成功的运行。通过这几个周的努力,仓库管理系统设计完成, 实现了系统的基本功能。在这个过程中,主要完成了数据库的设计和系统功能的 实现。通过该系统可以方便快捷的实现仓库管理中的货物登记、

23、出库入库、货物盘点等工作,使企业的仓库管理井井有条,为企业的健康发展创造良好的条件。 并且在这个过程中,我对java程序设计有了进一步的认识,这并不是一件简简 单单的事情,从最初的设计构思开始,每一步都需要自己的亲历亲为,首先要做 的就是通过调查了解分析问题,对于接受的任务要进行认真的分析, 不能凭自己 的客观想象进行设计,分析最后应达到的目标,完成实际问题,否则做出来的程 序将没有实际运用的价值。然后进行算法的设计。之后便要开始编程,将算法翻 译成计算机语言。最后将程序运行,分析结果,对程序进行调试。这次的编程,是第一次独立的进行完整设计的过程, 在过程中遇到了很多的 问题,最终的程序与最初

24、的设计有很大的不同,因为经常会发现最初的设想并不 适用,所以经过了几次大的改动,所以我认识到,Java程序并不是一步完成的,往往需要不断的调试,不断的改进。在这过程中也经常会遇到困难, 但是在同学 老师和网络的帮助下,最终也一一的将其克服,但在今后的日子里还是需要不断 的学习新知识。有时候会忙到凌晨一二点,看着周围只有屏幕的亮光,虽然真的 是很辛苦吧,但是很快乐,当自己能敲出的代码,即使做出的是做简单的东西, 可看着它从一个个代码变成了程序,心里的那种喜悦感和成就感依旧是那么强 烈。附录部分重要代码如下:管理员登录:importjavax.swi ng.*;import java.awt.*;

25、importjava.awt.eve nt.Acti on Eve nt;importjava.awt.eve nt.Actio nListe ner;importjava.awt.eve nt.MouseEve nt;importjava.awt.eve nt.MouseListe ner;public class Den gLuexte ndsJFrameimpleme ntsActi on Liste ner,MouseListe nerJ PanelpnlMain;J Label lbltupian , Iblyonghu, lblmima , lblbiaotiJTextField

26、txtUserName ; / 文本框J PasswordField pwdPassWord ; / 密码框J Butt onDe ngLu , TuiChu ; / 主键Dimension deSize ;Toolkit toolkit =Toolkit. getDefaultToolkit();public Den gLu ()super (”仓库管理系统);pnlMain=new JPanel(); / 主面板pnlMain .setLayout(n ull );this.set Un decorated(true );lbltupia n=new JLabel( new ImageIc

27、 on(images/tupia n.jpg);lbltupia n.setBou nds(0, 0, 708,366);Iblyonghu=new JLabel( 用户名:Iblyo nghu.setBou nds(450,50,90, 20);Iblmima =new JLabel( 密码:);lblmima .setBou nds(450,100,90, 20);txtUserName= new JTextField(100);txtUserName.setBounds(500,50,150, 20);pwdPassWord=n ew JPasswordField(100);pwdPas

28、sWord.setBounds(500,100,150, 20);DengLu =new JButton(登录);DengLu .setBounds(450,140,90, 30);DengLu .addActionListener(this );TuiChu =new JButton(退岀);TuiChu .setBou nds(560,140,90, 30);TuiChu .setMnemonic(d ); / 设置快捷按钮TuiChu .addActionListener(this );/字体Font font= new Font(宋体,Font. PLAIN , 13);lbly on

29、 ghu.setF on t(fo nt);lblmima.setF on t(fo nt);DengLu .setFont(font);TuiChu .setFont(font);/颜色DengLu .setBackground(Color.CYAN);CYAN);TuiChu.setBackgrou nd(Color.pn lMa in.add(lbly on ghu);pn lMa in.add(txtUserName );pn lMa in.add(lblmima );pn lMa in.add(pwdPassWord );pn lMa in.add(DengLu );pn lMa i

30、n.add(TuiChu );pn lMa in.add(lbltupia n);this.setC onten tPa ne(pnl Mai n);this .setVisible( true );获取屏幕的大小deSize =toolkit .getScree nSize();/this .setSize(708,366);this .setLocati on(deSize . width /2- this.getWidth()/2,deSize . height/2- this .getHeight()/2);EXIT_ON_CLOSE );this .setDefaultCloseOp

31、erati on( JFrame.public static void main( Stri ng args) new Den gLu();pverridepublic void acti on Performed(Acti on Eve nt e) /TODO Auto-ge nerated method stubif (e.getSource()=DengLu )if ( txtUserName .getText().equals(20150200121)&( pwdPassWord .ge-tText().equals(960914)用户名和密码正/JOptio nPan e.showM

32、essageDialog( null,确,欢迎登陆);new ZhuJieMian();this .dispose。;elseJOptionPane.showMessageDialog ( null ,用户名或密码错误,请重新输入);if (e.getSource()=TuiChu )System. exit (0);pverridepublic void mouseClicked(MouseEve nt e) /TODO Auto-ge nerated method stubpverridepublic void mouseE ntered(MouseEve nt e) /TODO Auto

33、-ge nerated method stubpverridepublic void mouseExited(MouseEve nt e) II TODO Auto-ge nerated method stubpverridepublic void mousePressed(MouseEve nt e) / TODO Auto-ge nerated method stubpverridepublic void mouseReleased(MouseEve nt e) / TODO Auto-ge nerated method stub连接数据库并进行修改添加:package lsg;impor

34、tjavax.swi ng.JFrame;importjavax.swi ng.JOptio nPane;importjava.awt.*;importjava.awt.eve nt.Acti on Eve nt;importjava.awt.eve nt.Acti on Liste ner;importiava.sql.*;importjava.sql.C onn ecti on;importjava.sql.DriverMa nager;importjava.sql.PreparedStateme nt;importjava.sql.ResultSet;importjava.sql.SQL

35、Excepti on;importjava.sql.Stateme nt;import javax.swi ng.*;public class RuKuexte ndsJFrame impleme ntsActio nListe nerJ PanelpnlMain , pnlxin , pnltian ;J Butt onxinzeng , tia njia , gua nbi , qued ing, tuichu , qued ing2 ;J Label biaoti1 , chanpinming, bianhao , xinghao , dengji , shuliang, danjiaJ

36、 Labelbiaoti2 , chanpinming2, bianhao2, xinghao2 , dengji2, shuliang2 , danjia2;JTextFieldchan , bian , xing , deng , shu , dan ;JTextFieldchan2 , bian2 , xing2 , deng2 , shu2 , dan2 ;ResultSetrs ;DimensiondeSize ;Toolkit toolkit =Toolkit. getDefaultToolkit();public RuKu() super (入库“);deSize =toolki

37、t .getScree nSize();pnlMain =new JPa nel();pnl Ma in.setLayout(n ull ); / 空布局pn ltia n=new JPa nel();pn ltia n.setLayout(n ull );pnlxin =new JPa nel();pnlxin .setLayout( n ull );xinzeng =new JButton(新入”);xin ze ng.setBou nds(0,0, 200, 50);xinzeng.addActi on Liste ner(this );tianjia =new JButton(增减);

38、tianjia .setBou nds(210, 0, 200, 50);tia njia.addActi on Liste ner(this );guanbi =new JButton( 关闭);gua nbi .setBou nds(420, 0, 200, 50);gua nbi.addActi on Liste ner(this );queding=new JButton(确定”);queding.setBounds(350, 300, 200, 50);qued ing.addActi on Liste ner(this );tuichu =new JButton(清空);tuich

39、u .setBounds(570, 300, 200, 50);tuichu.addActi on Liste ner(this );queding2 =new JButton(确定);queding2.setBounds(350, 350, 200, 50);qued in g2 .setBackgrou nd(Color.GREEN);qued ing2.addActi on Liste ner(this );biaoti1 =new JLabel(请输入新增产品的信息 );biaoti1 .setBou nds(450, 10, 200, 30);chanpinming=new JLab

40、el( 产品名”);cha npinming.setBou nds(350, 50, 50, 30);cha n =new JTextField(17);chan .setBounds(450, 50, 300, 30);bianhao =new JLabel( 编码);bian hao .setBou nds(350,90, 50, 30);bia n =new JTextField(17);bian .setBounds(450,90, 300, 30);xinghao=new JLabel( 型 号);xin ghao.setBou nds(350,130, 50, 30);xing =

41、new JTextField(17);xing .setBounds(450,130, 300, 30);dengji =new JLabel( 等 级);dengji.setBou nds(350,170, 50, 30);deng =new JTextField(17);deng .setBounds(450,170, 300, 30);shuliang=new JLabel( 数 量);shuliang .setBounds(350,210, 50, 30);shu =new JTextField(17);shu .setBounds(450,210, 300, 30);danjia =

42、new JLabel( 单 价”);danjia.setBou nds(350,250, 50, 30);dan =new JTextField(17);dan .setBounds(450,250, 300, 30);bianhao2 =new JLabel( 编码);bia nhao2 .setBou nds(350, 50, 50, 30);bia n2 =new JTextField(17);bian2 .setBounds(450, 50, 300, 30);shuliang2 =new JLabel( 数 量);shuliang2.setBounds(350,210, 50, 30

43、);shu2 =new JTextField(17);shu2 .setBounds(450,210, 300, 30);pnl xi n.add(biaoti1);pnl xi n.add(cha npinmingpnl xi n.add(bia nhao );pnlxin .add( xin ghao );pnlxin .add( pnlxin .add( pnlxin .add( pnlxin .add( pnlxin .add( pnlxin .add( pnlxin .add( pnlxin .add( pnlxin .add( pnlxin .add( pnlxin .add(de

44、ngji );shulia ng);danjia );chan );bian );xing );deng );shu );dan );quedi ng );tuichu );pn ltia n.add(pn ltia n.add(pn ltia n.add(pn ltia n.add(pn ltia n.add(pn lMa in .add( pn lMa in .add( pn lMa in .add( pn lMa in .add( pn lMa in .add( bia nhao2 );shulia ng2)bian2 );shu2 );qued ing2);xinzeng ); tia

45、njia ); gua nbi ); pn lx in);pnl tia n );this.setC onten tPa ne(pnl Mai n);this.setLocatio n(310, 232);this.set Un decorated(true ); / 无边化:必须在 setVisible之前使用this.setVisible(true);/可视this .setSize(deSize . width -320, deSize . height -275);public static void main( Stri ng args) RuKu mu= new RuKu();mu

46、.getUser();Overridepublic voidacti on Performed(Acti on Eve nt e) / TODO Auto-ge nerated method stubif (e.getSource()=xinzeng ) pn lx in.setBou nds(10, 70, 1030, 400);pnl tian.setSize(0, 0);if (e.getSource()= tianjia ) pnltian.setBounds(10, 70, 1030, 400);pnlxin .setSize(0, 0);guanbi ) this .dispose

47、();qued ing) in sertUser();qued ing2)updateUser();if (e.getSource()=if (e.getSource()=if (e.getSource()=publicConn ecti on ope nDB()try Class. forName (com.mysql.jdbc.Driver);Conn ecti oncn=DriverManager.getConnection( jdbc:mysql:/localhost:3306/studentroot ,960914);return cn; catch(ClassNotFoundException e) System. out .println( “ 驱动加载异常!“);returnn ull ; catch (SQLException e) System. out .println( 数据库连接异常!);returnn ull ;public void getUser()try Statem

温馨提示

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

评论

0/150

提交评论