《最新JAVA语言程序设计报告.doc》由会员分享,可在线阅读,更多相关《最新JAVA语言程序设计报告.doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateJAVA语言程序设计报告宿舍管理系统 JAVA语言程序课程设计 设计题目: 实验室设备管理系统 实验室设备管理系统第一章 问题定义- 1 -第二章 可行性研究- 1 -2.1 系统建设目标- 1 -2.2 可行性分析- 1 -第三章 系统的需求分析- 2 -3.1 实验室设备管理系统的需求陈述- 2 -3.2 使用结构化方法进行系统分析- 2 -3.3 对系统进行面向
2、对象分析- 3 -第四章 系统的概要设计- 5 -4.1 系统体系结构图- 5 -4.2 数据库设计- 5 -第五章 系统的详细设计及其实现- 8 -5.1主模块- 9 -5.2 用户综合管理模块- 10 -第六章 系统测试- 14 -第一章 问题定义每学年要对实验室设备使用情况进行统计、更新,其中:(1)对于已彻底损坏的作报废处理,同时详细记录有关信息。(2)对于有严重问题(故障)的要即使修理,并记录修理日期、设备名、修理厂家、修理费、责任人等。(3)对于急需但又缺少的设备需以“申请表”的形式送交上级领导请求批准购买。新设备购入后要立即进行设备登记(包括类别、设备名、型号、规格、单价、数量、
3、购置日期、生产厂家、购买人等),同时更新申请表的内容。(4)随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段(某日期之前)查询。系统目标与范围说明书项目名称:实验室设备管理系统。问题:目前系统式手工操作,费时费力,效率低下。项目目标:建立一个高效率、自动化操作实验室设备管理的计算机系统。项目规模:开发成本应该不超过5万元。初步设想:用学校现有的物力和人力资源开发该系统。可行性研究:为了全面分析该系统开发的可能性,建议进行大约2周的可行性研究。可行性研究成本不超过5000元。第二章 可行性研究2.1 系统建设目标在对系统初步调查的基础上就可以提出项目的开发目标,即新系统建立
4、后所要求达到的运行指标,这是系统开发和评价的依据。随着高校规模的扩大,实验室及仓库的增多,人工管理实验设备已变得过于低效,为了解决这一问题,高校实验室设备管理系统将实现设备管理的自动化。实验室设备管理系统将贯穿于设备从购进到报废的整个流程的管理过程,帮助管理员高效地管理整个高校的所有设备,并给上级领导提供一个审核监督管理的平台,提供整个实验室管理的效率,使总体管理水平上升到一个新的高度。本系统能减少很多不必要的资源,消除了以前用冗余的纸张式管理,大节省了学校能源。2.2 可行性分析可行性分析是任何一个大型工程正式投入力量之前必须进行的一项工作。这对于保证资源的合理利用、避免浪费是一个十分重要的
5、,也是项目一旦开始以后能顺利进行的必要保证。当系统的开发目标确定后,就可以从以下三方面对能否实现新系统目标进行可行性分析:1. 技术可行性技术可行性是指:根据现有的技术条件,能否达到所提出的要求;所需要的物理资源是否具备,能否得到。针对于本系统,本系统属于一个普通的MIS系统。在其组织关系上也未存在的很大的复杂性、繁琐性及不确定性,而且整个系统的技术构成上来看,它还是属于一个简单的数据库应用类的系统。其基本操作还是对存在数据库进行添加、删除、查找、编辑等。所以就单纯的数据库应用来看,暂不存在太大的技术问题。并且本系统的开发我利用access作为本系统的数据库,把数据库引擎的图形用户界面和软件开
6、发工具结合在一起的一个数据库管理系统。使用eclipse作为系统开发的开发环境,它作为一种现代的编程语言,提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。因此,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,它在技术上是可行的。2. 经济可行性经济可行性分析要估计项目的成本和效益,分析项目经济上是否合理,并将费用与效益进行比较,看是否有利。首先,实验室设备管理系统地实现的硬件支持只是一台简单的计算机,如今的性能较好的计算机的价格已经十分低廉。而本系
7、统的成功开发,将为学校的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面:第一,本系统的运行可以代替人工进行许多繁杂的劳动;第二,本系统的运行可以节省许多资源;第三,本系统的运行可以大大的提高学校的工作效率。3. 运行可行性运行可行性是指所建立的信息系统能否在该企业实现,在当前的操作环境下能否很好的进行,即组织内外是否具备接受和使用新系统的条件。本系统为一个普通的信息管理系统,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件;而且将来的操作界面简洁易操作,实验室设备管理人员无需培训即可很快学会如何进行操作。因此,本系统在运行上是可行的。4. 法律可行性整个系统由于是自行开
8、发,自行使用,在开发过程中没有涉及合同、责任等与法律抵触的方面。因此,本系统在法律上是可行的。按上述四方面进行可行性分析、研究后,我们认为该项目是可行的。第三章 系统的需求分析3.1 实验室设备管理系统的需求陈述设备管理人员在实验室管理系统中完成对实验室设备的基本数据的维护,包括这些信息的增加、修改及对各项信息的变动。新的学年,管理员首先根据学校的需求在实验室设备管理系统中进行设备的查找。实验室设备管理系统需要具有以下的功能:3.2 使用结构化方法进行系统分析3.2.1系统功能建模流程详细说明:(1) 仓库管理员统计仓库中设备的库存量,找出库存量不足的设备,填写购买申请表,领导对此申请表进行审
9、核,审核通过后,产生购买报表交给购买员。(2) 购买员将购买的设备及购买信息交给购买登记员,由他进行购买登记。购买登记员查询申请审核表,将设备分配到各仓库。(3) 仓库管理员对购买的设备进行入库登记,出库登记。(4) 实验室管理员负责对报废的设备进行报废登记并处理,找出要维修的设备填写维修申请表,领导对维修申请表进行审核,通过后产生维修报表交给维修员,维修员将设备送交某一修理厂家进行维修。(5) 设备维修完后,交还原实验室,由实验室管理员进行维修登记。3.2.2 实验室设备管理系统的E-R图3.3 对系统进行面向对象分析3.3.1 系统用例模型1. 参与者列表 实验室设备管理员:检查整理设备并
10、统计设备及申请购买设备。 2. 用例列表登录:用于验证用户权限。设备管理员:用于管理设备。(增加设备、删除设备、申请购买设备)上级领导:审核是否购买设备3. 用例图4. 用例规格说明设备入库优先级:高主要参与者:设备管理员其他关联人员:上级领导描述:该用例描述设备管理员在登录系统后,点击设备入库,完成设备的添加前置条件:上级领导同意购买设备触发条件:上级领导同意购买设备后置条件:设备管理员输入设备信息时,形成设备添加表,并在操作记录中记录假设:设备管理员通过正常操作形成设备添加表3.3.2 系统对象模型1. 确定类与对象设备、设备管理员、上级领导、供应商2. 确定关联供应商供应设备、设备管理员
11、管理设备、上级领导审核申请表、设备管理员向上级领导提出申请。3. 确定属性设备的属性有大小、颜色4. 确定服务设备管理员负责设备的一系列管理5. 系统类图第四章 系统的概要设计4.1 系统体系结构图本系统的软件体系结构图4.2 数据库设计实验室设备管理系统数据设计物理实现(1) 实体表【1】 用户表(UserInfo)字段类型备注uIdVarchar(15)用户名,主键uNameVarchar(15)姓名uPasswdVarchar(15)密码uPositionVarchar(15)身份,主键【2】 仓库管理员表(StoreManagerInfo)字段类型备注uIdVarchar(15)用户名
12、,主键sIdVarchar(15)仓库编号,外键约束于仓库表【3】实验室管理员表(LabManagerInfo)字段类型备注uIdVarchar(15)用户名,主键lIdVarchar(15)仓库编号,外键约束于实验室表【4】仓库表(StoreInfo)字段类型备注sIdVarchar(15)仓库编号,主键sNameVarchar(15)仓库名称sPlaceVarchar(15)所在校区【5】实验室表(LabInfo)字段类型备注lIdVarchar(15)实验室编号,主键lNameVarchar(15)实验室名称lPlaceVarchar(15)所在校区【5】设备表(EquipInfo)字段
13、类型备注eIdVarchar(15)设备编号,主键eNameVarchar(15)设备名称eStandardVarchar(15)规格型号eProCompanyVarchar(15)生产厂商eTypeVarchar(15)设备类型【6】固定资产表(PropertyInfo)字段类型备注pIdVarchar(15)固定资产编号,主键eIdVarchar(15)所属设备编号,外键约束于设备表lIdVarchar(15)所在实验室编号,外键约束于实验室表(2) 关系表【1】 入库登记表(InInfo)字段类型备注eIdVarchar(15)设备编号,主键,外键约束于设备表sIdVarchar(15)
14、仓库编号,主键,外键约束于仓库表iDateDateTime入库时间,主键iNumint入库数量【2】出库登记表(OutInfo)字段类型备注eIdVarchar(15)设备编号,主键,外键约束于设备表sIdVarchar(15)仓库编号,主键,外键约束于仓库表lIdVarchar(15)实验室编号,主键,外键约束于实验室表iDateDateTime出库时间,主键iNumint出库数量(3) 记录表【1】购买申请表(BuyApplyInfo)字段类型备注baIdVarchar(15)序列号,主键eIdVarchar(15)设备编号,外键约束于设备表smNameVarchar(15)申请人,外键约
15、束于仓库管理员表baDateDateTime申请时间baNumInt申请数量【2】维修申请表(MaintainInfo)字段类型备注maIdVarchar(15)序列号,主键pIdVarchar(15)固定资产编号,外键约束于固定资产表lmNameVarchar(15)申请人,外键约束于实验室管理员表maDateDateTime申请时间【3】购买登记表(BuyInfo)字段类型备注bIdVarchar(15)序列号,主键eIdVarchar(15)设备编号,外键约束于设备表bPriceMoney购买单价bDateDateTime购买时间bNumInt购买数量【4】维修记录表(MaintainI
16、nfo)字段类型备注mIdVarchar(15)序列号,主键pIdVarchar(15)固定资产编号,外键约束于固定资产表mDateDateTime维修时间【5】报废记录表(DiscardInfo)字段类型备注dIdVarchar(15)序列号,主键pIdVarchar(15)固定资产编号,外键约束于固定资产表dDateDateTime报废时间【6】 购买审核表(BuyCheckInfo)字段类型备注bcIdVarchar(15)序列号,主键baIdVarchar(15)申请序列号,外键约束于购买申请表olNameVarchar(15)审核人,外键约束于上级领导表bcDateDateTime审
17、核时间【7】维修审核表(MaintainCheckInfo)字段类型备注mcIdVarchar(15)序列号,主键maIdVarchar(15)申请序列号,外键约束于维修申请表olNameVarchar(15)审核人,外键约束于上级领导表mcDateDateTime审核时间第五章 系统的详细设计及其实现5.1登录界面代码实现(部分)package src;import java.awt.AlphaComposite;import java.awt.GradientPaint;import java.awt.Graphics;import java.awt.Graphics2D;import j
18、ava.awt.Image;import java.awt.RenderingHints;import java.awt.Toolkit;import javax.swing.*;import java.awt.event.*;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.text.SimpleDateFormat;import java.util.Date;public class Logo implements ActionListenerpublic static final St
19、ring logoon = 登录;public static final String helpt = 帮助;public static final String logooff =退出;public static final String user = 用 户:;public static final String password = 密 码:;private javax.swing.JTextField userText;private javax.swing.JPasswordField userpwd;private javax.swing.JPanel jp = new javax
20、.swing.JPanel()public void paintComponent(Graphics g)super.paintComponent(g);if(!isOpaque()return;Graphics2D g2d = (Graphics2D) g;int width = getWidth();int height = getHeight();GradientPaint gradientPaint = new GradientPaint(0,0,java.awt.Color.green,width/2,height/2,java.awt.Color.yellow,false);g2d
21、.setComposite(opaque);g2d.setPaint(gradientPaint);g2d.fillRect(0, 0, width,height);g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);private javax.swing.JButton logoin = null;private JFrame logo_Frame = new JFrame(logoon);public Logo()tryUIManager.setLookAndFee
22、l(UIManager.getCrossPlatformLookAndFeelClassName();catch(Exception exe)System.err.print(exe.getMessage();JFrame.setDefaultLookAndFeelDecorated(true);Toolkit tools = logo_Frame.getToolkit();Image logo = tools.getImage(res/logo.jpg);logo_Frame = new JFrame(logoon);logo_Frame.setIconImage(logo);jp.setL
23、ayout(new GridBagLayout();jp.setBackground(java.awt.Color.pink);javax.swing.ImageIcon pic = new javax.swing.ImageIcon(res/logo1.jpg);javax.swing.JLabel picture = new javax.swing.JLabel(pic);setupComponent(picture,0,0,GridBagConstraints.ABOVE_BASELINE_LEADING,1,true);javax.swing.JLabel users = new ja
24、vax.swing.JLabel(user);setupComponent(users,0,1,1,1,false);javax.swing.JLabel pas = new javax.swing.JLabel(password);setupComponent(pas,0,2,1,1,false);userText = new javax.swing.JTextField(12);userText.requestFocus();userText.addKeyListener(new KeyListener()public void keyTyped(KeyEvent e)public voi
25、d keyReleased(KeyEvent e)public void keyPressed(KeyEvent e)if(e.getKeyChar() = KeyEvent.VK_ENTER )&(userText.getText().trim() != )userpwd.requestFocus(););setupComponent(userText,1,1,1,1,false);userpwd = new javax.swing.JPasswordField(12);userpwd.addKeyListener(new KeyListener()public void keyTyped(
26、KeyEvent e)public void keyPressed(KeyEvent e)if(e.getKeyChar() = KeyEvent.VK_ENTER) & (userpwd.getText().trim() != )logoin.requestFocus();elseuserpwd.requestFocus();public void keyReleased(KeyEvent e);userText.setFocusable(true););int height = (int)(d.getHeight()-240)/2;logo_Frame.add(jp);logo_Frame
27、.setAlwaysOnTop(true);logo_Frame.setLocation(width, height);logo_Frame.setSize(350, 240);logo_Frame.pack();logo_Frame.validate();logo_Frame.setVisible(true);public void actionPerformed(ActionEvent e)public static void main(String args) / TODO 自动生成方法存根new Logo();public void setupComponent(JComponent
28、component,int gridx,int gridy,int gridwidth,int ipadx,boolean fill)final GridBagConstraints gridBagConstrains = new GridBagConstraints();gridBagConstrains.gridx = gridx;gridBagConstrains.gridy = gridy;gridBagConstrains.insets = new java.awt.Insets(5,3,3,3);if(gridwidth1)gridBagConstrains.gridwidth =
29、 gridwidth;if(ipadx 0)gridBagConstrains.ipadx = ipadx;if(fill)gridBagConstrains.fill = GridBagConstraints.HORIZONTAL;jp.add(component,gridBagConstrains);5.2主菜单界面 代码实现(部分)package src;import java.awt.event.*;import java.awt.*;import javax.swing.*;import java.text.SimpleDateFormat;import java.util.Date
30、;public class My_MainFrame private final static javax.swing.ImageIcon icon = new javax.swing.ImageIcon(res/logo1.jpg);private JFrame frame = new javax.swing.JFrame();private JMenuBar menuBar = null;private JToolBar toolBar = null;private JSplitPane splitPane = null;private JScrollPane scrollPane = n
31、ull;private JPanel panel = null;private JTabbedPane tabbedPane = new javax.swing.JTabbedPane();private JButton stuff_in = null;private JButton product_in = null;private JButton stuff_quit = null;private JButton stuff_stock = null;private JButton product_stock = null;private JButton yield_draw = null
32、;private JButton yield_off = null;private JButton yield_scrap = null; private JButton product_out = null;private JButton product_return = null;private JButton product_cancle = null;private JButton handle_record = null;private JButton flotsam_record = null;private JButton product_out_record = null;pr
33、ivate JButton stuff_old_record = null;private JButton product_old_record = null;private JButton help = null;private JButton about = null;private JButton exit_system = null;private String sql = null;public My_MainFrame() public My_MainFrame(String name)tryUIManager.setLookAndFeel(UIManager.getCrossPl
34、atformLookAndFeelClassName();catch(Exception exe)System.err.print(exe.getMessage();java.awt.Toolkit tool = frame.getToolkit();Image image = tool.getImage(res/logo.jpg);java.awt.Dimension dimn = tool.getScreenSize();String title = 实验室设备管理系统-+name;frame.setTitle(title);frame.setIconImage(image);frame.
35、setFocusable(true);frame.setLayout(new java.awt.BorderLayout();frame.setJMenuBar(createJMenuBar();frame.add(createJToolBar(),North);frame.add(createSplitPane(),Center);frame.addWindowListener(new WindowListener()public void windowActivated(WindowEvent e)public void windowClosed(WindowEvent e)public
36、void windowClosing(WindowEvent e)String name = frame.getTitle().trim().substring(8);SimpleDateFormat sdf = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);Date date = new Date(System.currentTimeMillis();String day = sdf.format(date);String s =+day+,+name+,+退出+;String sql = insert into handle_record values
37、(+s+);USeDB.UpdateDB(sql);stuff_in = new javax.swing.JButton(image6);stuff_in.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)AddStuffIn(零件买入););javax.swing.ImageIcon image7 = new javax.swing.ImageIcon(res/stuffquit.jpg);stuff_quit = new javax.swing.JButton(image7);st
38、uff_quit.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)AddStuffQuit(零件退货););javax.swing.ImageIcon image5 = new javax.swing.ImageIcon(res/stuffstock.jpg);stuff_stock = new javax.swing.JButton(image5);stuff_stock.addActionListener(new ActionListener()public void actio
39、nPerformed(ActionEvent e)String tit = 设备编号,设备名,设备名,收货员,检验员,单位,数量,规格,颜色,存放处,时间,备注;String sql = select * from stuff_in;AddTable(零件库存,tit,sql););javax.swing.ImageIcon image8 = javax.swing.JButton(image18);exit_system.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)String
40、 name = frame.getTitle().trim().substring(8);SimpleDateFormat sdf = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);Date date = new Date(System.currentTimeMillis();String day = sdf.format(date);String s =+day+,+name+,+退出+;String sql = insert into handle_record values(+s+);USeDB.UpdateDB(sql);frame.dispose
41、();System.exit(0););return scrollPane;其他截图管理系统其中的3个模块的详细设计 上级领导操作模块设备管理员操作模块 统功能操作模块第六章 系统测试1 设计测试用例测试方案:本测试方案采用黑盒法设计基本的测试方案,在黑盒法测试方案中,采用等价划分技术。测试的模块: 用户登陆模块 设备查询模块 报废记录查询模块 维修记录更新模块 维修记录查询模块 购买设备申请模块 退出系统模块 2 软件测试结果用例1项目/软件实验室设备管理系统编制时间 2017-06功能模块名 用户登陆模块用例编号 用户登录表功能特性 用户身份验证 测试目的 验证是否输入合法的信息,允许合法
42、登陆,阻止非法登陆 测试数据 用户名= administration 密码=admin 登陆权限=系统管理员 操作步骤 操作描述 数 据 期望结果 实际结果 测试状态 1 输入用户名和密码和登陆权限. 用户名=administration 密码= admin 登录显示进入后的页面。同期望结果。正常 2 输入用户名和密码和登陆权限. 用户名= administration 密码=0000000无密码错误!同期望结果。正常项目/软件实验室设备管理系统编制时间 2017-06功能模块名 设备查询模块用例编号 设备记录表功能特性 查询实验室设备情况 测试数据 设备型号=E002 设备名=计算机 规格=eeeeee 单价=5000 购买日期=2017-06生产厂商=联想 数量=1操作步骤 操作描述 数 据 期望结果 实际结果 测试状态 1 输入设备型号,设备名设备型号=E002设备名=计算机 设备型