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

付费下载

下载本文档

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

文档简介

2016—2017学年第一学期期末考试《面向对象程序设计(Java)*》实践考核项目设计说明书项目名称: 仓库管理系统专 业: 计算机科学与技术学 号:姓 名:任课教师: 巩晨静2016年12月3日项目及要求(一)考核内容:Java应用程序开发(二)考核要求:1.设计开发一个Java应用程序,设计题目自拟;2.要求学生熟练运用 Java程序设计的基本知识和技能;3.要求学生掌握面向对象程序开发的基本思路和方法,熟悉软件开发过程;4.要求学生利用面向对象的编程思想以及组件开发原理来完成系统的设计;5.要求学生利用所学的基本知识和技能,进行应用程序设计,并体现自己的创新;6.要求学生独立完成,严禁拷贝与抄袭;7.按照软件工程的思想,完成项目的需求分析、项目的功能框架、用户界面的设计、各功能模块的调试和运行等工作;8.重视设计说明书文档的书写。9.上交要求。要求学生上交设计说明书一份(Word格式)电子及打印文档(A4纸)各一份,源程序打包上传BB平台。目录第一章 项目选题说明 0第二章 项目需求分析 1第三章 系统设计 13.1 设计思想 13.2程序总体设计 23.3程序详细设计 43.4数据库的总体设计 : 7第四章 系统测试及实现 10第五章 总结 13附录 : 14仓库管理系统设计说明书第一章 项目选题说明管理信息系统(MIS)的应用已深入到社会的各行各业,它是信息、软件与科学管理相结合的产物。 MIS的开发过程不仅是一个编写应用程序的过程,而且是一个以软件工程的思想为指导, 从可行性研究开始,经过系统分析、系统设计、系统实施到等主要阶段的规范开发过程。我们实现的是网络数据库管理系统,我们选择的是仓库管理系统,仓库作为一种资源的集散地,在企业的整个供应链中起着至关重要的作用,如果不能保证正确的库存控制及发货,将会导致管理费用的增加,服务质量难以得到保证,从而影响企业的竞争力,传统简单的,静态管理已经无法保证企业各种资源的搞笑利用。如今的仓库作业和库存控制作业已经十分复杂多样化,仅靠人工记忆和手工录入,不但费时费力,而且容易出错,给企业带来巨大的损失。所以要实施先进的自动化系统,实现企业内部的信息管理,共享交流,才能让企业在竞争激烈的21世纪取得先机。仓库管理系统就是对货物和信息及金钱进行规划和实行交流控制。它将入库、出库、库存形成一个统一的中体,使企业处于全面受控状态,压缩投资规模,加快资金周转。在实时反映的基础上,修正企业在日常生产经营过程中各个环节上的偏差,降低产品成本和货物的积压。仓库管理系统是通过入库业务、出库业务、实时库存管理等功能综合运用的管理系统,对货物全程进行有效的控制和跟踪,实现完善的企业仓库信息管理。仓库管理系统的投入,将使仓库的管理更加正规化,为产品的出入库管理部门和销售部门提供了方便,降低了仓库的损耗。企业可以通过该系统对售出的产品进行跟踪服务,同时避免可过去销售人员按以往惯例亲自前往用户处去核实货物情况的麻烦,提高了办事小效率,节省了费用,而且还避免了不必要的业务纠纷,维护了企业长期与用户建立的良好信誉。第二章 项目需求分析我们设计的仓库管理系统主要用于对仓库日常工作的管理,主要任务是仓库的各种信息进行日常管理,如查询、修改、增加、删除等。本系统实现了仓库的信息化管理,完成了仓库管理系统的基本功能。该系统主要包括用户登录系统、出入库管理系统和库存管理系统三个部分,各部分主要功能如下:用户登录系统:用于系统的登录出入库管理系统:用于产品信息的管理,如新增,修改。库存管理系统:用于数据库的连接,对库内产品的信息查询,实现按需求查询。第三章 系统设计3.1 设计思想系统分成两个主要的模块,出入库管理和库存管理分层的模块化程序设计思想,整个系统采用模块化结构设计。作为应用程序有较强的可操作性和扩展性。合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。3.2程序总体设计仓库管理系统用户登录

仓库基本信息图3.1仓库管理系统功能结构图用户登录管理员登录系统图3.2 管理员登录功能结构图仓库基本信息新库库按品存存需入增数查库减据询图3.3仓库基本功能结构图3.3程序详细设计管理员登录主体代码:publicclassDengLuextendsJFrameimplementsActionListener,MouseListener{JPanelpnlMain;JLabellbltupian,lblyonghu,lblmima,lblbiaoti;JTextFieldtxtUserName;// 文本框JPasswordFieldpwdPassWord;// 密码框JButtonDengLu,TuiChu;// 主键DimensiondeSize;Toolkittoolkit=Toolkit.getDefaultToolkit();publicDengLu(){super("仓库管理系统");pnlMain=newJPanel();//pnlMain.setLayout(null);//this.setUndecorated(true);

主面板空布局lbltupian=newJLabel(newImageIcon("images/tupian.jpg"));//添加图片lbltupian.setBounds(0,0,708,366);lblyonghu=newJLabel(" 用户名:");lblyonghu.setBounds(450,50,90,20);lblmima=newJLabel(" 密 码:");lblmima.setBounds(450,100,90,20);txtUserName=newJTextField(100);txtUserName.setBounds(500,50,150,20);pwdPassWord=newJPasswordField(100);pwdPassWord.setBounds(500,100,150,20);DengLu=newJButton("登录");DengLu.setBounds(450,140,90,30);DengLu.addActionListener(this);// 增加监听器TuiChu=newJButton("退出");TuiChu.setBounds(560,140,90,30);TuiChu.setMnemonic('d');// 设置快捷按钮TuiChu.addActionListener(this);字体Fontfont=newFont(" 宋体",Font.PLAIN,13);lblyonghu.setFont(font);lblmima.setFont(font);DengLu.setFont(font);TuiChu.setFont(font);颜色DengLu.setBackground(Color.CYAN);TuiChu.setBackground(Color.CYAN);pnlMain.add(lblyonghu);pnlMain.add(txtUserName);pnlMain.add(lblmima);pnlMain.add(pwdPassWord);pnlMain.add(DengLu);pnlMain.add(TuiChu);pnlMain.add(lbltupian);this.setContentPane(pnlMain);this.setVisible(true);deSize=toolkit.getScreenSize();// 获取屏幕的大小this.setSize(708,366);this.setLocation(deSize.width/2-this.getWidth()/2,deSize.height/2-this.getHeight()/2);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}publicstaticvoidmain(String[]args){newDengLu();}@OverridepublicvoidactionPerformed(ActionEvente){//TODOAuto-generatedmethodstubif(e.getSource()==DengLu){if((txtUserName.getText().equals("20150200121"))&&(pwdPassWord.getText().equals("960523"))){newZhuJieMian();this.dispose();}elseJOptionPane.showMessageDialog(null," 用户名或密码错误,请重新输入");}if(e.getSource()==TuiChu)System.exit(0);}3.4 数据库的总体设计 :数据库中总体有一张表,是管理产品信息的,具体结构如下图所示:设计表如下图3.1所示:图3.1 数据库的设计表图3.2

数据库表的内容(部分)连接数据库的代码如下:public ConnectionopenDB(){try { );Connectioncn=DriverManager.getConnection("jdbc:mysql://localhost:3306/student""root" , "960914");return cn;

,}catch(ClassNotFoundExceptione){System.out.println( "驱动加载异常!");return null;}catch(SQLExceptione){System.out.println( "数据库连接异常!return null;

");}}@Overridepublic voidactionPerformed(ActionEvente){if(e.getSource()== btnExit)this.dispose();if(e.getSource()== btnchaxun){try{获得连接DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root","960914");建立查询条件Stringsql="select*fromkucunwherebianhao='"+txtPassWord.getText()+"'";PreparedStatementpstm=conn.prepareStatement(sql);执行查询ResultSetrs=pstm.executeQuery();计算有多少条记录intcount=0;while(rs.next()){count++;}rs=pstm.executeQuery();将查询获得的记录数据,转换成适合生成JTable的数据形式Object[][]info=newObject[count][6];count=0;while(rs.next()){info[count][0]=rs.getString("bianhao");info[count][1]=rs.getString("chanpinname");info[count][2]=rs.getString("xinghao");info[count][3]=rs.getString("dengji");info[count][4]=rs.getString("shuliang");info[count][5]=rs.getString("danjia");count++;}// 定义表头String[]title={ "编号","产品名","型号","等级","数量","单价"};创建JTablethis.tabDemo=newJTable(info,title);显示表头this.jth =this.tabDemo.getTableHeader();将JTable加入到带滚动条的面板中this.scpDemo.getViewport().add(tabDemo);}catch(ClassNotFoundExceptioncnfe){JOptionPane.showMessageDialog,"数据源错误","错误(null",JOptionPane.ERROR_MESSAGE);}catch(SQLExceptionsqle){JOptionPane.showMessageDialog(null,"数据操作错误","错误,JOptionPane.ERROR_MESSAGE);}}}第四章 系统测试及实现(一)登录界面,管理员进行登录操作。如图 4.1所示:图4.1 登录界面(二)主界面,管理员通过该界面进入出入库管理和库存查询。如图 4.2所示:图4.2 系统主界面(三)出入库界面新增产品,点击新入按钮,将新产品信息输入后,点击确定,将新产品信息添加到数据库中图 4.3所示:。如图4.3 新增产品(四)出入库管理界面,点击增减按钮,在编号栏输入编号,即可修改该产品的数量信息。如图 4.4所示:图4.4 增减库存(五)库存管理界面,点击显示数据查看当前仓库存储产品的信息。如图 4.5所示:图4.5 查询库存信息(六)库存管理界面,在文本框输入要查询产品的编号后,点击查询按钮,出现该产品的基本信息。如图 4.6所示:图4.6 按需查询信息第五章 总结经过这学期的学习,在努力了几周之后,终于将Java仓库管理系统做了出来,虽然与想象中的程序还有一定的差距,但我还是很开心能够独立的将它完成,在这过程中,自己学到了很多,也感触到很多。Java是本学期新开的一门课程,在学习过程中对其的感触并不是很深刻,但是在这两周内,对其有了更加深刻的认识。平常在课堂的学习中都是跟着老师的脚步来敲代码,对代码的理解认识都很浅,但在自己构思自己动手的过程中,了解到了自己的不足,让我明白了Java的学习是一个反复的过程,不断的出现错误,不断的找到错误,然后查阅资料、调试,最终让其能够成功的运行。通过这几个周的努力,仓库管理系统设计完成,实现了系统的基本功能。在这个过程中,主要完成了数据库的设计和系统功能的实现。通过该系统可以方便快捷的实现仓库管理中的货物登记、出库入库、货物盘点等工作,使企业的仓库管理井井有条,为企业的健康发展创造良好的条件。并且在这个过程中,我对java程序设计有了进一步的认识,这并不是一件简简单单的事情,从最初的设计构思开始,每一步都需要自己的亲历亲为,首先要做的就是通过调查了解分析问题,对于接受的任务要进行认真的分析,不能凭自己的客观想象进行设计,分析最后应达到的目标,完成实际问题,否则做出来的程序将没有实际运用的价值。然后进行算法的设计。之后便要开始编程,将算法翻译成计算机语言。最后将程序运行,分析结果,对程序进行调试。这次的编程,是第一次独立的进行完整设计的过程,在过程中遇到了很多的问题,最终的程序与最初的设计有很大的不同,因为经常会发现最初的设想并不适用,所以经过了几次大的改动,所以我认识到,Java程序并不是一步完成的,往往需要不断的调试,不断的改进。在这过程中也经常会遇到困难,但是在同学老师和网络的帮助下,最终也一一的将其克服,但在今后的日子里还是需要不断的学习新知识。有时候会忙到凌晨一二点,看着周围只有屏幕的亮光,虽然真的是很辛苦吧,但是很快乐,当自己能敲出的代码,即使做出的是做简单的东西,可看着它从一个个代码变成了程序,心里的那种喜悦感和成就感依旧是那么强烈。附录:部分重要代码如下:管理员登录:importjavax.swing.*;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;publicclassDengLuextendsJFrameimplementsActionListener,MouseListener{JPanelpnlMain;JLabellbltupian,lblyonghu,lblmima,lblbiaoti;JTextFieldtxtUserName;//文本框JPasswordFieldpwdPassWord;//密码框JButtonDengLu,TuiChu;//主键DimensiondeSize;Toolkittoolkit=Toolkit.getDefaultToolkit();public DengLu(){super ("仓库管理系统 ");pnlMain

=newJPanel();

// 主面板pnlMain

.setLayout(

null

);this .setUndecorated( true );lbltupian =newJLabel( newImageIcon(

"images/tupian.jpg"

));lbltupian .setBounds(0,0,708,366);lblyonghulblyonghu

=newJLabel("用户名.setBounds(450,50,90,20);

:"

);lblmimalblmima

=newJLabel("密码:".setBounds(450,100,90,20);

);txtUserNametxtUserName

=newJTextField(100);.setBounds(500,50,150,20);pwdPassWord =newJPasswordField(100);pwdPassWord .setBounds(500,100,150,20);DengLu=newJButton( "登录");DengLu.setBounds(450,140,90,30);DengLu.addActionListener( this );TuiChu=newJButton("退出");TuiChu.setBounds(560,140,90,30);TuiChu.setMnemonic('d');//设置快捷按钮TuiChu.addActionListener(this);字体Fontfont= newFont( "宋体",Font. PLAIN,13);lblyonghu .setFont(font);lblmima .setFont(font);DengLu.setFont(font);TuiChu .setFont(font);// 颜色DengLuTuiChu

.setBackground(Color..setBackground(Color.

CYAN);CYAN);pnlMain.add(lblyonghu);pnlMain.add(txtUserName);pnlMain.add(lblmima);pnlMain.add(pwdPassWord);pnlMain.add(DengLu);pnlMain.add(TuiChu);pnlMain.add(lbltupian);thisthis

.setContentPane(.setVisible(

pnlMaintrue);

);deSize=toolkit.getScreenSize();this.setSize(708,366);

// 获取屏幕的大小deSize

this.heightthis

.setLocation( deSize .width/2- this .getHeight()/2);.setDefaultCloseOperation(JFrame.

/2- this

.getWidth()/2,EXIT_ON_CLOSE );}public static void main(String[]args){newDengLu();}@Overridepublic//

void actionPerformed(ActionEvente){TODOAuto-generatedmethodstubif (e.getSource()== DengLu){if ((txtUserName .getText().equals( "20150200121" ))&&( pwdPassWord .getText().equals( "960914" ))){//JOptionPane.showMessageDialog(null," 用户名和密码正确,欢迎登陆 ");newZhuJieMian();this .dispose();}elseJOptionPane. showMessageDialog (null , "用户名或密码错误,请重新输入");}if (e.getSource()== TuiChu )System. exit (0);}@Overridepublic void mouseClicked(MouseEvente){// TODOAuto-generatedmethodstub}@Overridepublic void mouseEntered(MouseEvente){// TODOAuto-generatedmethodstub}@Overridepublic void mouseExited(MouseEvente){// TODOAuto-generatedmethodstub}@Overridepublic//

void mousePressed(MouseEvente){TODOAuto-generatedmethodstub}@Overridepublic//

void mouseReleased(MouseEvente){TODOAuto-generatedmethodstub}}连接数据库并进行修改添加:package lsg;import import importimportimportimportimportimportimportimportimportimport

importjavax.swing.*;publicclassRuKuextendsJFrameimplementsActionListener{JPanelpnlMain,pnlxin,pnltian;JButtonxinzeng,tianjia,guanbi,queding,tuichu,queding2;JLabelbiaoti1,chanpinming,bianhao,xinghao,dengji,shuliang,danjia;JLabelbiaoti2,chanpinming2,bianhao2,xinghao2,dengji2,shuliang2,danjia2;JTextFieldchan,bian,xing,deng,shu,dan;JTextFieldchan2,bian2,xing2,deng2,shu2,dan2;ResultSet rs;Dimension deSize ;Toolkit toolkit =Toolkit. getDefaultToolkit ();public RuKu(){super ("入库");deSize =toolkit .getScreenSize();pnlMain =newJPanel();pnlMain .setLayout( null );// 空布局pnltian =newJPanel();pnltian .setLayout( null );pnlxin =newJPanel();pnlxin .setLayout( null );xinzeng =newJButton( "新入");xinzeng .setBounds(0,0,200,50);xinzeng .addActionListener( this );tianjia =newJButton( "增减");tianjia .setBounds(210,0,200,50);tianjia .addActionListener( this );guanbi =newJButton( "关闭");guanbi .setBounds(420,0,200,50);guanbi .addActionListener( this );queding=newJButton("确定");queding.setBounds(350,300,200,50);queding.addActionListener(this);tuichu=newJButton("清空");tuichu.setBounds(570,300,200,50);tuichu.addActionListener(this);queding2 =newJButton( "确定");queding2 .setBounds(350,350,200,50);queding2 .setBackground(Color. GREEN);queding2 .addActionListener( this );biaoti1=newJLabel("请输入新增产品的信息");biaoti1.setBounds(450,10,200,30);chanpinming=newJLabel("产品名");chanpinming.setBounds(350,50,50,30);chan=newJTextField(17);chan.setBounds(450,50,300,30);bianhao=newJLabel("编码");bianhao.setBounds(350,90,50,30);bian=newJTextField(17);bian.setBounds(450,90,300,30);xinghao =newJLabel( "型 号");xinghao.setBounds(350,130,50,30);xing=newJTextField(17);xing.setBounds(450,130,300,30);dengji=newJLabel("等级");dengji.setBounds(350,170,50,30);deng=newJTextField(17);deng.setBounds(450,170,300,30);shuliang =newJLabel( "数 量");shuliang .setBounds(350,210,50,30);shu=newJTextField(17);shu.setBounds(450,210,300,30);danjia =newJLabel( "单 价");danjia .setBounds(350,250,50,30);dan=newJTextField(17);dan.setBounds(450,250,300,30);bianhao2 =newJLabel( "编码");bianhao2 .setBounds(350,50,50,30);bian2 =newJTextField(17);bian2 .setBounds(450,50,300,30);shuliang2 =newJLabel( "数 量");shuliang2 .setBounds(350,210,50,30);shu2=newJTextField(17);shu2.setBounds(450,210,300,30);pnlxin.add(biaoti1);pnlxin.add(chanpinming);pnlxin.add(bianhao);pnlxin.add(xinghao);pnlxin.add(dengji);pnlxin.add(shuliang);pnlxin.add(danjia);pnlxin.add(chan);pnlxin.add(bian);pnlxin.add(xing);pnlxin.add(deng);pnlxin.add(shu);pnlxin.add(dan);pnlxin.add(queding);pnlxin.add(tuichu);pnltian.add(bianhao2);pnltian.add(shuliang2);pnltian.add(bian2);pnltian.add(shu2);pnltian.add(queding2);pnlMain .add( xinzeng );pnlMain .add( tianjia );pnlMain .add( guanbi );pnlMain .add( pnlxin );pnlMain .add( pnltian );this.setContentPane(pnlMain);this.setSize(deSize.width-320,deSize.height-275);this.setLocation(310,232);this.setUndecorated(true);//无边化:必须在setVisible之前使用this .setVisible( true );// 可视}public static void main(String[]args){RuKumu=newRuKu();mu.getUser();}@Overridepublic void actionPerformed(ActionEvente){TODOAuto-generatedmethodstubif(e.getSource()==xinzeng){pnlxin.setBounds(10,70,1030,400);pnltian.setSize(0,0);}if(e.getSource()==tianjia){pnltian.setBounds(10,70,1030,400);pnlxin.setSize(0,0);}if(e.getSource()==guanbi)this.dispose();if(e.getSource()==queding){insertUser();}if(e.getSource()==queding2){updateUser();}}public ConnectionopenDB(){try {Class. forName );Connectioncn=DriverManager. getConnection ("jdbc:mysql://localhost:3306/student" ,"root" , "960914" );return cn;} catch (ClassNotFoundExceptione){System. out.println( "驱动加载异常! ");return null ;} catch (SQLExceptione){System. out.println( "数据库连接异常! ");return null ;}}public void getUser(){try {Statementstmt=openDB().createStatement();rs=stmt.executeQuery( "selectbian

温馨提示

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

评论

0/150

提交评论