版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、20162017学年第一学期期末考试面向对象程序设计(Java)*实践考核项目设计说明书项目名称: 仓库管理系统 专 业: 计算机科学与技术 学 号: 姓 名: 任课教师: 巩晨静 2016年12月3日项目及要求(一)考核内容:Java应用程序开发(二)考核要求:1 设计开发一个Java应用程序,设计题目自拟;2 要求学生熟练运用Java程序设计的基本知识和技能;3 要求学生掌握面向对象程序开发的基本思路和方法,熟悉软件开发过程;4 要求学生利用面向对象的编程思想以及组件开发原理来完成系统的设计;5 要求学生利用所学的基本知识和技能,进行应用程序设计,并体现自己的创新;6 要求学生独立完成,严
2、禁拷贝与抄袭;7 按照软件工程的思想,完成项目的需求分析、项目的功能框架、用户界面的设计、各功能模块的调试和运行等工作;8 重视设计说明书文档的书写。9 上交要求。要求学生上交设计说明书一份(Word格式)电子及打印文档(A4纸)各一份,源程序打包上传BB平台。目录第一章 项目选题说明1第二章 项目需求分析2第三章 系统设计23.1 设计思想23.2程序总体设计33.3程序详细设计43.4 数据库的总体设计:7第四章 系统测试及实现10第五章 总结13附录 :15仓库管理系统设计说明书第一章 项目选题说明管理信息系统(MIS)的应用已深入到社会的各行各业,它是信息、软件与科学管理相结合的产物。
3、MIS的开发过程不仅是一个编写应用程序的过程,而且是一个以软件工程的思想为指导,从可行性研究开始,经过系统分析、系统设计、系统实施到等主要阶段的规范开发过程。我们实现的是网络数据库管理系统,我们选择的是仓库管理系统,仓库作为一种资源的集散地,在企业的整个供应链中起着至关重要的作用,如果不能保证正确的库存控制及发货,将会导致管理费用的增加,服务质量难以得到保证,从而影响企业的竞争力,传统简单的,静态管理已经无法保证企业各种资源的搞笑利用。如今的仓库作业和库存控制作业已经十分复杂多样化,仅靠人工记忆和手工录入,不但费时费力,而且容易出错,给企业带来巨大的损失。所以要实施先进的自动化系统,实现企业内
4、部的信息管理,共享交流,才能让企业在竞争激烈的21世纪取得先机。仓库管理系统就是对货物和信息及金钱进行规划和实行交流控制。它将入库、出库、库存形成一个统一的中体,使企业处于全面受控状态,压缩投资规模,加快资金周转。在实时反映的基础上,修正企业在日常生产经营过程中各个环节上的偏差,降低产品成本和货物的积压。仓库管理系统是通过入库业务、出库业务、实时库存管理等功能综合运用的管理系统,对货物全程进行有效的控制和跟踪,实现完善的企业仓库信息管理。仓库管理系统的投入,将使仓库的管理更加正规化,为产品的出入库管理部门和销售部门提供了方便,降低了仓库的损耗。企业可以通过该系统对售出的产品进行跟踪服务,同时避
5、免可过去销售人员按以往惯例亲自前往用户处去核实货物情况的麻烦,提高了办事小效率,节省了费用,而且还避免了不必要的业务纠纷,维护了企业长期与用户建立的良好信誉。第二章 项目需求分析 我们设计的仓库管理系统主要用于对仓库日常工作的管理,主要任务是仓库的各种信息进行日常管理,如查询、修改、增加、删除等。本系统实现了仓库的信息化管理,完成了仓库管理系统的基本功能。该系统主要包括用户登录系统、出入库管理系统和库存管理系统三个部分,各部分主要功能如下:(1) 用户登录系统:用于系统的登录(2) 出入库管理系统:用于产品信息的管理,如新增,修改。(3) 库存管理系统:用于数据库的连接,对库内产品的信息查询,
6、实现按需求查询。第三章 系统设计3.1 设计思想(1)系统分成两个主要的模块,出入库管理和库存管理(2)分层的模块化程序设计思想,整个系统采用模块化结构设计。作为应用程序有较强的可操作性和扩展性。(3)合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。3.2程序总体设计仓库管理系统用户登录仓库基本信息 图3.1 仓库管理系统功能结构图 用户登录管理员登录系统 图3.2 管理员登录功能结构图仓库基本信息新品入库库存增减库存数据按需查询 图3.3仓库基本功能结构图3.3程序详细设计管理员登录主体代码:public class
7、 DengLu extends JFrame implements ActionListener,MouseListenerJPanel pnlMain;JLabel lbltupian,lblyonghu,lblmima,lblbiaoti;JTextField txtUserName;/文本框JPasswordField pwdPassWord;/密码框JButton DengLu,TuiChu;/主键Dimension deSize;Toolkit toolkit=Toolkit.getDefaultToolkit();public DengLu ()super(仓库管理系统);pnlM
8、ain=new JPanel();/主面板 pnlMain.setLayout(null);/空布局 this.setUndecorated(true); lbltupian=new JLabel(new ImageIcon(images/tupian.jpg);/添加图片 lbltupian.setBounds(0, 0, 708,366);lblyonghu=new JLabel(用户名:);lblyonghu.setBounds(450,50,90, 20);lblmima=new JLabel(密 码:);lblmima.setBounds(450,100,90, 20);txtUse
9、rName=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 JButton(退出);TuiChu.setBounds(560,140,90, 30);TuiChu.setMn
10、emonic(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.setBackground(Color.CYAN);pnlMain.add(lblyonghu);pnlMain.add(txtUserName);pnlMa
11、in.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()
12、/2); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public static void main(String args) new DengLu();Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif(e.getSource()=DengLu)if(txtUserName.getText().equals(20150200121)&(pwdPassWord.getText().equals(960523)new
13、 ZhuJieMian();this.dispose();elseJOptionPane.showMessageDialog(null, 用户名或密码错误,请重新输入);if(e.getSource()=TuiChu)System.exit(0);3.4 数据库的总体设计:数据库中总体有一张表,是管理产品信息的,具体结构如下图所示: 设计表如下图3.1所示: 图3.1 数据库的设计表 图3.2 数据库表的内容(部分)连接数据库的代码如下:public Connection openDB()try Class.forName(com.mysql.jdbc.Driver);Connection c
14、n=DriverManager.getConnection(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()=bt
15、nExit)this.dispose();if(e.getSource()=btnchaxun)try/ 获得连接Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/student,root , 960914);/ 建立查询条件String sql = select * from kucun where bianhao=+txtPassWord.getText()+; PreparedStatement pstm
16、= conn.prepareStatement(sql);/ 执行查询ResultSet rs = pstm.executeQuery();/ 计算有多少条记录int count = 0;while(rs.next()count+;rs = pstm.executeQuery();/ 将查询获得的记录数据,转换成适合生成JTable的数据形式Object info = new Objectcount6;count = 0;while(rs.next()infocount0 = rs.getString(bianhao);infocount1 = rs.getString(chanpinname
17、);infocount2 = rs.getString(xinghao);infocount3 = rs.getString(dengji);infocount4 = rs.getString(shuliang);infocount5 = rs.getString(danjia);count+;/ 定义表头String title = 编号,产品名,型号,等级,数量,单价;/ 创建JTablethis.tabDemo = new JTable(info,title);/ 显示表头this.jth = this.tabDemo.getTableHeader();/ 将JTable加入到带滚动条的
18、面板中this.scpDemo.getViewport().add(tabDemo);catch(ClassNotFoundException cnfe)JOptionPane.showMessageDialog(null,数据源错误,错误,JOptionPane.ERROR_MESSAGE);catch(SQLException sqle)JOptionPane.showMessageDialog(null,数据操作错误,错误,JOptionPane.ERROR_MESSAGE);第四章 系统测试及实现(一)登录界面,管理员进行登录操作。如图4.1所示: 图4.1 登录界面(二)主界面,管理
19、员通过该界面进入出入库管理和库存查询。如图4.2所示: 图4.2 系统主界面(三)出入库界面新增产品,点击新入按钮,将新产品信息输入后,点击确定,将新产品信息添加到数据库中图4.3所示:。如 图4.3 新增产品(四)出入库管理界面,点击增减按钮,在编号栏输入编号,即可修改该产品的数量信息。如图4.4所示:图4.4 增减库存(五)库存管理界面,点击显示数据查看当前仓库存储产品的信息。如图4.5所示: 图4.5 查询库存信息(六)库存管理界面,在文本框输入要查询产品的编号后,点击查询按钮,出现该产品的基本信息。如图4.6所示: 图4.6 按需查询信息 第五章 总结经过这学期的学习,在努力了几周之后
20、,终于将Java仓库管理系统做了出来,虽然与想象中的程序还有一定的差距,但我还是很开心能够独立的将它完成,在这过程中,自己学到了很多,也感触到很多。Java是本学期新开的一门课程,在学习过程中对其的感触并不是很深刻,但是在这两周内,对其有了更加深刻的认识。平常在课堂的学习中都是跟着老师的脚步来敲代码,对代码的理解认识都很浅,但在自己构思自己动手的过程中,了解到了自己的不足,让我明白了Java的学习是一个反复的过程,不断的出现错误,不断的找到错误,然后查阅资料、调试,最终让其能够成功的运行。通过这几个周的努力,仓库管理系统设计完成,实现了系统的基本功能。在这个过程中,主要完成了数据库的设计和系统
21、功能的实现。通过该系统可以方便快捷的实现仓库管理中的货物登记、出库入库、货物盘点等工作,使企业的仓库管理井井有条,为企业的健康发展创造良好的条件。并且在这个过程中,我对java程序设计有了进一步的认识,这并不是一件简简单单的事情,从最初的设计构思开始,每一步都需要自己的亲历亲为,首先要做的就是通过调查了解分析问题,对于接受的任务要进行认真的分析,不能凭自己的客观想象进行设计,分析最后应达到的目标,完成实际问题,否则做出来的程序将没有实际运用的价值。然后进行算法的设计。之后便要开始编程,将算法翻译成计算机语言。最后将程序运行,分析结果,对程序进行调试。这次的编程,是第一次独立的进行完整设计的过程
22、,在过程中遇到了很多的问题,最终的程序与最初的设计有很大的不同,因为经常会发现最初的设想并不适用,所以经过了几次大的改动,所以我认识到,Java程序并不是一步完成的,往往需要不断的调试,不断的改进。在这过程中也经常会遇到困难,但是在同学老师和网络的帮助下,最终也一一的将其克服,但在今后的日子里还是需要不断的学习新知识。有时候会忙到凌晨一二点,看着周围只有屏幕的亮光,虽然真的是很辛苦吧,但是很快乐,当自己能敲出的代码,即使做出的是做简单的东西,可看着它从一个个代码变成了程序,心里的那种喜悦感和成就感依旧是那么强烈。附录 :部分重要代码如下:管理员登录:import javax.swing.*;i
23、mport java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;public class DengLu extends JFrame implements ActionListener,MouseListenerJPanel pnlMain; JLabel lbltupian,lblyonghu,lblmima,lblbiaoti;JTextFie
24、ld txtUserName;/文本框JPasswordField pwdPassWord;/密码框JButton DengLu,TuiChu;/主键Dimension deSize;Toolkit toolkit=Toolkit.getDefaultToolkit();public DengLu ()super(仓库管理系统);pnlMain=new JPanel();/主面板 pnlMain.setLayout(null); this.setUndecorated(true); lbltupian=new JLabel(new ImageIcon(images/tupian.jpg); l
25、bltupian.setBounds(0, 0, 708,366); lblyonghu=new JLabel(用户名:);lblyonghu.setBounds(450,50,90, 20);lblmima=new JLabel(密 码:);lblmima.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)
26、;DengLu=new JButton(登录);DengLu.setBounds(450,140,90, 30);DengLu.addActionListener(this);TuiChu=new 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.s
27、etFont(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.setVi
28、sible(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);public static void main(String args) new DengLu();Overridepublic void actionPerformed(
29、ActionEvent e) / TODO Auto-generated method stubif(e.getSource()=DengLu)if(txtUserName.getText().equals(20150200121)&(pwdPassWord.getText().equals(960914)/JOptionPane.showMessageDialog(null, 用户名和密码正确,欢迎登陆);new ZhuJieMian();this.dispose();elseJOptionPane.showMessageDialog(null, 用户名或密码错误,请重新输入);if(e.g
30、etSource()=TuiChu)System.exit(0);Overridepublic void mouseClicked(MouseEvent e) / TODO Auto-generated method stubOverridepublic void mouseEntered(MouseEvent e) / TODO Auto-generated method stubOverridepublic void mouseExited(MouseEvent e) / TODO Auto-generated method stubOverridepublic void mousePre
31、ssed(MouseEvent e) / TODO Auto-generated 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.ActionListe
32、ner;import java.sql.*;import java.sql.Connection;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 ActionListenerJPanel pnlMain,pnlxin,pnlti
33、an;JButton xinzeng,tianjia,guanbi,queding,tuichu,queding2;JLabel biaoti1,chanpinming,bianhao,xinghao,dengji,shuliang,danjia;JLabel biaoti2,chanpinming2,bianhao2,xinghao2,dengji2,shuliang2,danjia2;JTextField chan,bian,xing,deng,shu,dan;JTextField chan2,bian2,xing2,deng2,shu2,dan2;ResultSet rs;Dimensi
34、on deSize;Toolkit toolkit=Toolkit.getDefaultToolkit();public RuKu() 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(新入);xinzeng.setBounds(0,0,
35、 200, 50);xinzeng.addActionListener(this);tianjia=new JButton(增减);tianjia.setBounds(210, 0, 200, 50);tianjia.addActionListener(this);guanbi=new JButton(关闭);guanbi.setBounds(420, 0, 200, 50);guanbi.addActionListener(this);queding=new JButton(确定);queding.setBounds(350, 300, 200, 50);queding.addActionL
36、istener(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 JLabel(请输入新增产品的信息);biaoti1.setBounds(450, 10, 200, 3
37、0);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, 30);xinghao=new JLabel(型 号);xinghao.setBounds(350,130, 50, 30);x
38、ing=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, 50, 30);shu=new JTextField(17);shu.setBounds(450,210, 300, 30);danjia=new JLa
39、bel(单 价);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, 300, 30);shuliang2=new JLabel(数 量);shuliang2.setBounds(350,210, 50, 30);shu2=new JTextField(
40、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);
41、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.hei
42、ght-275);this.setLocation(310, 232);this.setUndecorated(true);/无边化:必须在setVisible之前使用this.setVisible(true);/可视public static void main(String args) RuKu mu=new RuKu();mu.getUser();Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif(e.getSource()=xinzeng)pnlxin.setBou
43、nds(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 Connection openDB()try Class.forName(com.mysql.j
44、dbc.Driver);Connection cn=DriverManager.getConnection(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;public void getUser()try Statement stmt=openDB().
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉林省长春汽车经济技术开发区 2024-2025学年九年级上学期10月期中考试数学试题(含答案)
- 海南省海口市海南省华侨中学2024-2025年八年级上期中考试物理试题(含答案)
- 赣南师范大学《地图学》2021-2022学年第一学期期末试卷
- 阜阳师范大学《数字信号处理》2022-2023学年第一学期期末试卷
- 阜阳师范大学《高分子材料成型加工》2022-2023学年第一学期期末试卷
- 福建师范大学协和学院《复变函数》2021-2022学年第一学期期末试卷
- 福建师范大学《音乐教育概论》2021-2022学年第一学期期末试卷
- 福建师范大学《美术评论与写作》2022-2023学年第一学期期末试卷
- 福建师范大学《课程与教学》2021-2022学年第一学期期末试卷
- 福建师范大学《环境学》2021-2022学年第一学期期末试卷
- 住院医师临床能力考核(体格检查部分)评分表(医院医生用表)
- 2024年5月上海市普通高中学业水平等级性考试化学试卷(含答案)
- QCT957-2023洗扫车技术规范
- 2024年保密知识测试试题库(综合题)
- ORACLE ERP EBS财务全模块操作手册中文版
- 人教版 年六年级数学上册教案(全册)
- 2024年入团积极分子结业考试试题
- 国企纪委业务培训课件
- 2022-2023学年扬州市宝应县五年级上学期期中测试数学试卷(含答案解析)
- 保安服务针对本项目的服务特点、难点分析及解决措施
- 《团购产品目录》课件
评论
0/150
提交评论