版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2016 2017学年第一学期期末考试面向对象程序设计(Java) *实践考核项目设计说明书项目名称:仓库管理系统专 业:计算机科学与技术学 号:姓 名:任课教师:巩晨静2016年12月3日项目及要求(一)考核内容:Java应用程序开发(二)考核要求:.设计开发一个Java应用程序,设计题目自拟;.要求学生熟练运用Java程序设计的基本知识和技能;.要求学生掌握面向对象程序开发的基本思路和方法,熟悉软件开发过程;.要求学生利用面向对象的编程思想以及组件开发原理来完成系统的设计;.要求学生利用所学的基本知识和技能,进行应用程序设计,并体现自己的创新;.要求学生独立完成,严禁拷贝与抄袭;.按照软件
2、工程的思想,完成项目的需求分析、项目的功能框架、用户界面的 设计、各功能模块的调试和运行等工作;.重视设计说明书文档的书写。.上交要求。要求学生上交设计说明书一份 (Word格式)电子及打印文档(A4 纸)各一份,源程序打包上传 BB平台。目录 TOC o 1-5 h z 第一章项目选题说明1 HYPERLINK l bookmark7 o Current Document 第二章 项目需求分析 2第三章系统设计2设计思想2 HYPERLINK l bookmark12 o Current Document 程序总体设计3 HYPERLINK l bookmark18 o Current Do
3、cument 程序详细设计4 HYPERLINK l bookmark20 o Current Document 数据库的总体设计: 7 HYPERLINK l bookmark22 o Current Document 第四章系统测试及实现10 HYPERLINK l bookmark29 o Current Document 第五章总结13 HYPERLINK l bookmark31 o Current Document 附录:14仓库管理系统设计说明书第一章项目选题说明管理信息系统(MIS)的应用已深入到社会的各行各业,它是信息、软件与 科学管理相结合的产物。MIS的开发过程不仅是一个
4、编写应用程序的过程,而 且是一个以软件工程的思想为指导, 从可行性研究开始,经过系统分析、系统设 计、系统实施到等主要阶段的规范开发过程。我们实现的是网络数据库管理系统,我们选择的是仓库管理系统,仓库 作为一种资源的集散地,在企业的整个供应链中起着至关重要的作用,如果不 能保证正确的库存控制及发货,将会导致管理费用的增加,服务质量难以得 到保证,从而影响企业的竞争力,传统简单的,静态管理已经无法保证企业 各种资源的搞笑利用。如今的仓库作业和库存控制作业已经十分复杂多样化, 仅靠人工记忆和手工录入,不但费时费力,而且容易出错,给企业带来巨大 的损失。所以要实施先进的自动化系统,实现企业内部的信息
5、管理,共享交 流,才能让企业在竞争激烈的 21世纪取得先机。仓库管理系统就是对货物和 信息及金钱进行规划和实行交流控制。它将入库、出库、库存形成一个统一 的中体,使企业处于全面受控状态,压缩投资规模,加快资金周转。在实时 反映的基础上,修正企业在日常生产经营过程中各个环节上的偏差,降低产 品成本和货物的积压。仓库管理系统是通过入库业务、出库业务、实时库存管理等功能综合运 用的管理系统,对货物全程进行有效的控制和跟踪,实现完善的企业仓库信 息管理。仓库管理系统的投入,将使仓库的管理更加正规化,为产品的出入 库管理部门和销售部门提供了方便,降低了仓库的损耗。企业可以通过该系 统对售出的产品进行跟踪
6、服务,同时避免可过去销售人员按以往惯例亲自前 往用户处去核实货物情况的麻烦,提高了办事小效率,节省了费用,而且还 避免了不必要的业务纠纷,维护了企业长期与用户建立的良好信誉。第二章 项目需求分析我们设计的仓库管理系统主要用于对仓库日常工作的管理,主要 任务是仓库的各种信息进行日常管理,如查询、修改、增加、删除等。本 系统实现了仓库的信息化管理,完成了仓库管理系统的基本功能。该系统主要包括用户登录系统、出入库管理系统和库存管理系统三个部分,各部分主要功能如下:(1)用户登录系统:用于系统的登录(2)出入库管理系统:用于产品信息的管理,如新增,修改。(3)库存管理系统:用于数据库的连接,对库内产品
7、的信息查询,实现按需 求查询。第三章系统设计设计思想(1)系统分成两个主要的模块,出入库管理和库存管理(2)分层的模块化程序设计思想,整个系统采用模块化结构设计。作为应用 程序有较强的可操作性和扩展性。(3)合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相 互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。程序总体设计仓库管理系统仓库基本信息用户登录图3.1仓库管理系统功能结构图用户登录管理员登录系统图3.2管理员登录功能结构图仓库基本信息按需查询库存数据库存增减* 新品入库图3.3仓库基本功能结构图程序详细设计管理员登录主体代码:public class DengL
8、u extends JFrame implementsActionListener,MouseListenerJPanel pnlMain;JLabel lbltupian,lblyonghu,lblmima,lblbiaoti;JTextField txtUserName;/ 文本框JPasswordField pwdPassWord;/ 密码框JButton DengLu,TuiChu;/ 主键Dimension deSize;Toolkit toolkit=Toolkit.getDefaultToolkit();public DengLu ()super(仓库管理系统);pnlMain=
9、new JPanel();/ 主面板pnlMain.setLayout(null);/ 空布局this.setUndecorated(true);lbltupian=new JLabel(new ImageIcon(images/tupian.jpg); 添加图片lbltupian.setBounds(0, 0, 708,366);lblyonghu=new 儿abel(用户名:);lblyonghu.setBounds(450,50,90, 20);lblmima=new 儿abel(密码:);lblmima.setBounds(450,100,90, 20);txtUserName=new
10、 JTextField(100);txtUserName.setBounds(500,50,150, 20);pwdPassWord=new JPasswordField(100);pwdPassWord.setBounds(500,100,150, 20);DengLu=new JButton(登录);DengLu.setBounds(450,140,90, 30);DengLu.addActionListener(this);/增加监听器TuiChu=new JButton(退出)TuiChu.setBounds(560,140,90, 30);TuiChu.setMnemonic(d);
11、/设置快捷按钮TuiChu.addActionListener(this);/字体Font font=new Font( 宋体,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(lbl
12、mima); 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
13、.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public static void main(String口 args) new DengLu();Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stub if(e.getSource()=DengLu) if(txtUserName.getText().equals(20150200121)&(pwdPassWord.ge tText().equals(960523)new ZhuJ
14、ieMian();this.dispose();elseJOptionPane.showMessageDialog(null,”用户名或密码错 误,请重新输入);if(e.getSource()=TuiChu)System.exit(0);数据库的总体设计:数据库中总体有一张表,是管理产品信息的,具体结构如下图所示:设计表如下图3.1所示:名港长度,融允许空值( bianhaochar110 mchanpinnamechar2550Kinghaochar2550同dengjichar25500与hulEngchar1100danjiachar110图3.1数据库的设计表bianhaochanp
15、innamexinghaodengjishuliangdanjia33213321SDASBJL-3370-118-FE&453370水波或竹纤靠毛巾B-JL-3370-11fl-FEa1103371水波蚊竹纤维毛巾1B-JL-3370-118-FE523372水波纹竹纤维毛巾22B-Jb3370-118FE二211图3.2 数据库表的内容(部分)连接数据库的代码如下:public Connection openDB() try Class. forName(com.mysql.jdbc.Driver );Connection cn=DriverManager. getConnection (
16、jdbc:mysql:/localhost:3306/student root , 960914);return cn; catch (ClassNotFoundException e) System. out .println(驱动加载异常!);return null ; catch (SQLException e) System. out .println(数据库连接异常!); return null ;Overridepublic void actionPerformed(ActionEvent e) if (e.getSource()= btnExit ) this .dispose。
17、;if (e.getSource()= btnchaxun)try /获得连接Class. forName(sun.jdbc.odbc.JdbcOdbcDriver );Connection conn =DriverManager. getConnection (jdbc:mysql:/localhost:3306/student , ro ot , 960914);/建立查询条件String sql = select * from kucun where bianhao= +txtPassWord .getText()+ ;PreparedStatement pstm = conn.prep
18、areStatement(sql);/执行查询ResultSet rs = pstm.executeQuery();/计算有多少条记录 int count = 0;while (rs.next()count+;rs = pstm.executeQuery();/将查询获得的记录数据,转换成适合生成 JTable的数据形式Object叩 info = newObjectcount6;count = 0;while (rs.next()bianhao);chanpinname);xinghao);dengji);shuliang);danjia);infocount0 = rs.getString
19、(infocount1 = rs.getString(infocount2 = rs.getString(infocount3 = rs.getString(infocount4 = rs.getString(infocount5 = rs.getString( count+;/定义表头编号,产品名,型号,等级,数量,单String title = 价”;/ 创建 JTablethis . tabDemo= new JTable(info,title);/显示表头this . jth = this . tabDemogetTableHeader();/将JTable加入到带滚动条的面板中thi
20、s . scpDemcgetViewport().add(tabDem。; catch (ClassNotFoundException cnfe)JOptionPane. showMessageDialog( null ,数据源错误,错误 ,JOptionPane. ERROR_MESSAGE catch (SQLException sqle)JOptionPane. showMessageDialog( null ,数据操作错误,错误 JOptionPane. ERROR_MESSAGE 第四章系统测试及实现(一)登录界面,管理员进行登录操作。如图 4.1所示:5图4.1 登录界面(二)主界
21、面,管理员通过该界面进入出入库管理和库存查询。如图 4.2所示:图4.2 系统王界面(三)出入库界面新增产品,点击新入按钮,将新产品信息输入后,点击确定,将新产品信息添加到数据库中图 4.3所示:。如图4.3新增产品(四)出入库管理界面,点击增减按钮,在编号栏输入编号,即可修改该产品的数量信息。如图4.4所示:图4.4 增减库存(五)库存管理界面,点击显示数据查看当前仓库存储产品的信息。如图 4.5所示:显小工;怪遇比立却产品名百耳再期翻重单桥3221羽 218cMsB-JL-WO-ne-FEe4&3370加苴出伸推毛巾BJLTM1W=Ei1103371咏怂於锚推WETB-JL-337&-11
22、&FE5233T2以蹴?竹奸埴毛巾22B-JL-3371M1B-FE一2111111图4.5查询库存信息(六)库存管理界面,在文本框输入要查询产品的编号后,点击查询按钮,出现 该产品的基本信息。如图4.6所示:第五章总结经过这学期的学习,在努力了几周之后,终于将 Java仓库管理系统做了出 来,虽然与想象中的程序还有一定的差距,但我还是很开心能够独立的将它完成, 在这过程中,自己学到了很多,也感触到很多。Java是本学期新开的一门课程,在学习过程中对其的感触并不是很深刻, 但是在这两周内,对其有了更加深刻的 认识。平常在课堂的学习中都是跟着老师的脚步来敲代码, 对代码的理解认识都 很浅,但在自
23、己构思自己动手的过程中,了解到了自己的不足,让我明白了 Java 的学习是一个反复的过程,不断的出现错误,不断的找到错误,然后查阅资料、 调试,最终让其能够成功的运行。通过这几个周的努力,仓库管理系统设计完成, 实现了系统的基本功能。在这个过程中,主要完成了数据库的设计和系统功能的 实现。通过该系统可以方便快捷的实现仓库管理中的货物登记、出库入库、货物盘点等工作,使企业的仓库管理井井有条,为企业的健康发展创造良好的条件。 并且在这个过程中,我对java程序设计有了进一步的认识,这并不是一件简简 单单的事情,从最初的设计构思开始,每一步都需要自己的亲历亲为,首先要做 的就是通过调查了解分析问题,
24、对于接受的任务要进行认真的分析, 不能凭自己 的客观想象进行设计,分析最后应达到的目标,完成实际问题,否则做出来的程 序将没有实际运用的价值。然后进行算法的设计。之后便要开始编程,将算法翻 译成计算机语言。最后将程序运行,分析结果,对程序进行调试。这次的编程,是第一次独立的进行完整设计的过程, 在过程中遇到了很多的 问题,最终的程序与最初的设计有很大的不同,因为经常会发现最初的设想并不 适用,所以经过了几次大的改动,所以我认识到, Java程序并不是一步完成的, 往往需要不断的调试,不断的改进。在这过程中也经常会遇到困难, 但是在同学 老师和网络的帮助下,最终也一一的将其克服,但在今后的日子里
25、还是需要不断 的学习新知识。有时候会忙到凌晨一二点,看着周围只有屏幕的亮光,虽然真的 是很辛苦吧,但是很快乐,当自己能敲出的代码,即使做出的是做简单的东西, 可看着它从一个个代码变成了程序,心里的那种喜悦感和成就感依旧是那么强 烈。附录:部分重要代码如下:管理员登录:import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.M
26、ouseListener;public class DengLu extends JFrame implementsActionListener,MouseListenerJ Panel pnlMain ;J Label lbltupian , lblyonghu , lblmima , lblbiaoti ;JTextField txtUserName ; / 文本框JPasswordField pwdPassWord ; / 密码框J Button DengLu , TuiChu ; / 主键Dimension deSize ;Toolkit toolkit =Toolkit. getDe
27、faultToolkit ();public DengLu ()super (仓库管理系统);pnlMain =new JPanel(); / 主面板pnlMain .setLayout( null );this .setUndecorated(true );lbltupian =new JLabel( new ImageIcon( images/tupian.jpg);lbltupian .setBounds(0, 0, 708,366);Iblyonghu=new JLabel( 用户名:);Iblyonghu.setBounds(450,50,90, 20);Iblmima =new J
28、Label( 密码:);Iblmima .setBounds(450,100,90, 20);txtUserName =new JTextField(100);txtUserName .setBounds(500,50,150, 20);pwdPassWord =new JPasswordField(100);pwdPassWord .setBounds(500,100,150, 20);DengLu =new JButton( 登录);DengLu .setBounds(450,140,90, 30);DengLu .addActionListener(this );TuiChu =new
29、JButton( 退出);TuiChu .setBounds(560,140,90, 30);TuiChu .setMnemonic( d ); / 设置快捷按钮TuiChu .addActionListener(this );/字体Font font= new Font(宋体,Font. PLAIN ,13);lblyonghu .setFont(font);lblmima .setFont(font);DengLu .setFont(font);TuiChu .setFont(font);/颜色DengLu .setBackground(Color.CYAN);TuiChu .setBac
30、kground(Color.CYAN);pnlMain .add(pnlMain .add(pnlMain .add(pnlMain .add(pnlMain .add(pnlMain .add(pnlMain .add(lblyonghu );txtUserName );lblmima );pwdPassWord );DengLu );TuiChu );lbltupian );this .setContentPane( pnlMain);this .setVisible( true );/获取屏幕的大小deSize =toolkit .getScreenSize();this .setSiz
31、e(708,366);this .setLocation(deSize . width /2- this .getWidth()/2,deSize . height /2- this .getHeight()/2);EXIT_ON_CLOSE );this .setDefaultCloseOperation(JFrame.public static void main(String口 args) new DengLu();Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stub)&(
32、 pwdPassWord .ge-if (e.getSource()= DengLu ) if ( txtUserName .getText().equals(20150200121”用户名和密码正tText().equals( 960914) /JOptionPane.showMessageDialog(null,”确,欢迎登陆);new ZhuJieMian();this .dispose。;else用户名或密码错误,请重JOptionPane. showMessageDialog (null 新输入);if (e.getSource(尸TuiChu )System. exit (0);O
33、verridepublicvoid mouseClicked(MouseEvent e) /TODO Auto-generated method stubOverridepublicvoid mouseEntered(MouseEvent e) /TODO Auto-generated method stubOverridepublic void mouseExited(MouseEvent e) / TODO Auto-generated method stubOverridepublicvoid mousePressed(MouseEvent e) /TODO Auto-generated
34、 method stubOverridepublic void mouseReleased(MouseEvent e) / TODO Auto-generated method stub连接数据库并进行修改添加:package lsg;import javax.swing.JFrame;import javax.swing.JOptionPane;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.*;import java.sql.Co
35、nnection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.*;public class RuKu extends JFrame implements ActionListenerJ Panel pnlMain , pnlxin , pnltian ;J Button xinzeng , tianjia , gu
36、anbi , queding , tuichu , queding2 ;J Label biaoti1 , chanpinming , bianhao , xinghao , dengji , shuliang , danjia ;J Label biaoti2 , chanpinming2 , bianhao2 , xinghao2 , dengji2 , shuliang2 , danjia2 ;JTextFieldchan , bian , xing , deng , shu , dan ;JTextFieldchan2 , bian2 , xing2 , deng2 , shu2 ,
37、dan2 ;ResultSetrs ;DimensiondeSize ;publicToolkit toolkit =Toolkit. getDefaultToolkit ();super (入库);deSize=toolkit .getScreenSize();pnlMain= new JPanel();pnlMain.setLayout(null ); /空布局pnltian= new JPanel();pnltian.setLayout(null );pnlxin=new JPanel();pnlxin.setLayout(null );xinzeng= new JButton(新入);
38、xinzeng.setBounds(0,0, 200, 50);xinzeng.addActionListener(thisRuKu() );tianjia =new JButton(增减);tianjia.setBounds(210, 0, 200, 50);tianjia.addActionListener(this );guanbi =new JButton( 关Ii);guanbi .setBounds(420, 0, 200, 50);guanbi .addActionListener(this );queding =new JButton( 确定);queding .setBoun
39、ds(350, 300, 200, 50);queding .addActionListener(this );tuichu =new JButton( 清空);tuichu .setBounds(570, 300, 200, 50);tuichu .addActionListener(this );queding2 =new JButton(确定);queding2 .setBounds(350, 350, 200, 50);queding2 .setBackground(Color.GREEN);queding2 .addActionListener(this );biaoti1 =new
40、 JLabel( 请输入新增产品的信息 );biaoti1 .setBounds(450, 10, 200, 30);chanpinming =new JLabel( 产品名);chanpinming .setBounds(350, 50, 50, 30);chan =new JTextField(17);chan .setBounds(450, 50, 300, 30);bianhao =new JLabel( 编码);bianhao .setBounds(350,90, 50, 30);bian =new JTextField(17);bian .setBounds(450,90, 300
41、, 30);xinghao =new JLabel( 型 号);xinghao .setBounds(350,130, 50, 30);xing =new JTextField(17);xing .setBounds(450,130, 300, 30);dengji =new JLabel( 等 级); dengji .setBounds(350,170, 50, 30);deng =new JTextField(17);deng .setBounds(450,170, 300, 30);shuliang=new JLabel( 数 量);shuliang.setBounds(350,210,
42、 50, 30);shu =new JTextField(17);shu .setBounds(450,210, 300, 30);danjia =new JLabel( 单);danjia .setBounds(350,250, 50, 30);dan =new JTextField(17);dan .setBounds(450,250, 300, 30);bianhao2 =new JLabel( 编码); bianhao2 .setBounds(350, 50, 50, 30); bian2 =new JTextField(17);bian2 .setBounds(450, 50, 30
43、0, 30);shuliang2 =new JLabel( 数 量); shuliang2 .setBounds(350,210, 50, 30);shu2 =new JTextField(17);shu2 .setBounds(450,210, 300, 30);pnlxin.add(biaoti1 );pnlxin.add(chanpinmingpnlxin.add(bianhao );pnlxin .add( xinghao );pnlxin .add(pnlxin .add(pnlxin .add(pnlxin .add(pnlxin .add(pnlxin .add(pnlxin .
44、add(pnlxin .add(pnlxin .add(pnlxin .add(pnlxin .add(dengji );shuliang );danjia );chan );bian );xing );deng );shu );dan );queding );tuichu ); TOC o 1-5 h z pnltian.add(pnltian.add(pnltian.add(pnltian.add(pnltian.add(pnlMain.add(pnlMain.add(pnlMain.add(pnlMain.add(pnlMain.add(bianhao2 );shuliang2 )bia
45、n2 );shu2 );queding2 );xinzeng );tianjia );guanbi );pnlxin );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(Str
46、ing口 args) RuKu mu= new RuKu();mu.getUser();Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif (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
47、);if(e.getSource(尸guanbi ) this .dispose。;if(e.getSource(尸queding ) insertUser();if(e.getSource(尸queding2 )updateUser();public Connection openDB() try Class. forName (com.mysql.jdbc.Driver);Connectioncn=DriverManager. getConnection ( jdbc:mysql:/localhost:3306/student root ,960914);return cn; catch (ClassNotFoundException e) System. out .println(驱动加载异常!);return null ; catch (SQLException e) Syst
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 感染性心内膜炎科普指南
- 中国电热烘烤器具产量及主要细分类型贸易情况
- 中国石油大学080235中级财务会计学期末考试复习题及参考答案
- 交通安全文化引领
- 1-轨道工程施工方案-八局一-新建铁路临沂临港疏港铁路工程
- 传统年画:吉祥符号与千年匠心
- 某化肥厂生产操作细则
- 机电传动与控制 课件 第2章 机电传动系统的动力学基础
- 2026直流电压计量器具检定系统表
- 奶茶店经营场所清洗消毒和维修保养制度
- 生态保护生物多样性的保护与利用
- 2025年中建三局劳务合作合同
- 《新家庭如何塑造人》
- 《T CPSS 1013-2021-开关电源电子元器件降额技术规范》
- 养殖场租赁合同
- 起重机械检验员(QZ-1)
- DL-T5142-2012火力发电厂除灰设计技术规程
- 医院信息安全管理工作总结
- 网络预约出租汽车安全运营
- 【高中语文】《致大海》课件+统编版高中语文选择性必修中册
- 河池多介质过滤器施工方案
评论
0/150
提交评论