当前位置:文档之家› JAVA语言程序设计报告

JAVA语言程序设计报告

JAVA语言程序课程设计设计题目:实验室设备管理系统实验室设备管理系统第一章问题定义 (1)第二章可行性研究 (1)2.1 系统建设目标 (1)2.2 可行性分析 (1)第三章系统的需求分析 (2)3.1 实验室设备管理系统的需求陈述 (2)3.2 使用结构化方法进行系统分析 (2)3.3 对系统进行面向对象分析 (3)第四章系统的概要设计 (5)4.1 系统体系结构图 (5)4.2 数据库设计 (5)第五章系统的详细设计及其实现 (8)5.1主模块 (8)5.2 用户综合管理模块 (11)第六章系统测试 (14)第一章问题定义每学年要对实验室设备使用情况进行统计、更新,其中:(1)对于已彻底损坏的作报废处理,同时详细记录有关信息。

(2)对于有严重问题(故障)的要即使修理,并记录修理日期、设备名、修理厂家、修理费、责任人等。

(3)对于急需但又缺少的设备需以“申请表”的形式送交上级领导请求批准购买。

新设备购入后要立即进行设备登记(包括类别、设备名、型号、规格、单价、数量、购置日期、生产厂家、购买人等),同时更新申请表的内容。

(4)随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段(某日期之前)查询。

系统目标与范围说明书项目名称:实验室设备管理系统。

问题:目前系统式手工操作,费时费力,效率低下。

项目目标:建立一个高效率、自动化操作实验室设备管理的计算机系统。

项目规模:开发成本应该不超过5万元。

初步设想:用学校现有的物力和人力资源开发该系统。

可行性研究:为了全面分析该系统开发的可能性,建议进行大约2周的可行性研究。

可行性研究成本不超过5000元。

第二章可行性研究2.1 系统建设目标在对系统初步调查的基础上就可以提出项目的开发目标,即新系统建立后所要求达到的运行指标,这是系统开发和评价的依据。

随着高校规模的扩大,实验室及仓库的增多,人工管理实验设备已变得过于低效,为了解决这一问题,高校实验室设备管理系统将实现设备管理的自动化。

实验室设备管理系统将贯穿于设备从购进到报废的整个流程的管理过程,帮助管理员高效地管理整个高校的所有设备,并给上级领导提供一个审核监督管理的平台,提供整个实验室管理的效率,使总体管理水平上升到一个新的高度。

本系统能减少很多不必要的资源,消除了以前用冗余的纸张式管理,大节省了学校能源。

2.2 可行性分析可行性分析是任何一个大型工程正式投入力量之前必须进行的一项工作。

这对于保证资源的合理利用、避免浪费是一个十分重要的,也是项目一旦开始以后能顺利进行的必要保证。

当系统的开发目标确定后,就可以从以下三方面对能否实现新系统目标进行可行性分析:1. 技术可行性技术可行性是指:根据现有的技术条件,能否达到所提出的要求;所需要的物理资源是否具备,能否得到。

针对于本系统,本系统属于一个普通的MIS系统。

在其组织关系上也未存在的很大的复杂性、繁琐性及不确定性,而且整个系统的技术构成上来看,它还是属于一个简单的数据库应用类的系统。

其基本操作还是对存在数据库进行添加、删除、查找、编辑等。

所以就单纯的数据库应用来看,暂不存在太大的技术问题。

并且本系统的开发我利用access作为本系统的数据库,把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。

使用eclipse作为系统开发的开发环境,它作为一种现代的编程语言,提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。

因此,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,它在技术上是可行的。

2. 经济可行性经济可行性分析要估计项目的成本和效益,分析项目经济上是否合理,并将费用与效益进行比较,看是否有利。

首先,实验室设备管理系统地实现的硬件支持只是一台简单的计算机,如今的性能较好的计算机的价格已经十分低廉。

而本系统的成功开发,将为学校的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面:第一,本系统的运行可以代替人工进行许多繁杂的劳动;第二,本系统的运行可以节省许多资源;第三,本系统的运行可以大大的提高学校的工作效率。

3. 运行可行性运行可行性是指所建立的信息系统能否在该企业实现,在当前的操作环境下能否很好的进行,即组织内外是否具备接受和使用新系统的条件。

本系统为一个普通的信息管理系统,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件;而且将来的操作界面简洁易操作,实验室设备管理人员无需培训即可很快学会如何进行操作。

因此,本系统在运行上是可行的。

4. 法律可行性整个系统由于是自行开发,自行使用,在开发过程中没有涉及合同、责任等与法律抵触的方面。

因此,本系统在法律上是可行的。

按上述四方面进行可行性分析、研究后,我们认为该项目是可行的。

第三章系统的需求分析3.1 实验室设备管理系统的需求陈述设备管理人员在实验室管理系统中完成对实验室设备的基本数据的维护,包括这些信息的增加、修改及对各项信息的变动。

新的学年,管理员首先根据学校的需求在实验室设备管理系统中进行设备的查找。

实验室设备管理系统需要具有以下的功能:3.2 使用结构化方法进行系统分析3.2.1系统功能建模流程详细说明:(1)仓库管理员统计仓库中设备的库存量,找出库存量不足的设备,填写购买申请表,领导对此申请表进行审核,审核通过后,产生购买报表交给购买员。

(2)购买员将购买的设备及购买信息交给购买登记员,由他进行购买登记。

购买登记员查询申请审核表,将设备分配到各仓库。

(3)仓库管理员对购买的设备进行入库登记,出库登记。

(4)实验室管理员负责对报废的设备进行报废登记并处理,找出要维修的设备填写维修申请表,领导对维修申请表进行审核,通过后产生维修报表交给维修员,维修员将设备送交某一修理厂家进行维修。

(5)设备维修完后,交还原实验室,由实验室管理员进行维修登记。

3.2.2 实验室设备管理系统的E-R图实验室设备管理系统系统管理员实验室管理员仓库管理员用户管理数据库管理购买登记员上级领导用户添加用户删除数据库备份数据库还原设备入库设备出库购买申请库存量统计设备报废维修申请维修登记设备数量统计购买登记申请表查询购买审核维修审核3.3 对系统进行面向对象分析3.3.1 系统用例模型1.参与者列表实验室设备管理员:检查整理设备并统计设备及申请购买设备。

2. 用例列表登录:用于验证用户权限。

设备管理员:用于管理设备。

(增加设备、删除设备、申请购买设备)上级领导:审核是否购买设备3.用例图4.用例规格说明设备入库优先级:高主要参与者:设备管理员其他关联人员:上级领导描述:该用例描述设备管理员在登录系统后,点击设备入库,完成设备的添加前置条件:上级领导同意购买设备触发条件:上级领导同意购买设备后置条件:设备管理员输入设备信息时,形成设备添加表,并在操作记录中记录假设:设备管理员通过正常操作形成设备添加表3.3.2 系统对象模型1.确定类与对象设备、设备管理员、上级领导、供应商2.确定关联供应商供应设备、设备管理员管理设备、上级领导审核申请表、设备管理员向上级领导提出申请。

3.确定属性设备的属性有大小、颜色4.确定服务设备管理员负责设备的一系列管理5.第四章系统的概要设计4.1 系统体系结构图本系统的软件体系结构图4.2 数据库设计实验室设备管理系统数据设计物理实现(1)实体表第五章系统的详细设计及其实现5.1登录界面代码实现(部分)package src;import java.awt.AlphaComposite;import java.awt.GradientPaint;import java.awt.Graphics;import java.awt.Graphics2D;import java.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 ActionListener{public static final String 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.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 = newGradientPaint(0,0,java.awt.Color.green,widt h/2,height/2,java.awt.Color.yellow,false);g2d.setComposite(opaque);g2d.setPaint(gradientPaint);g2d.fillRect(0, 0, width,height);g2d.setRenderingHint(RenderingHints. KEY_ANTIALIASING,RenderingHints.V A LUE_ANTIALIAS_OFF);}};private javax.swing.JButton logoin = null;private JFrame logo_Frame = new JFrame(logoon);public Logo(){try{UIManager.setLookAndFeel(UIManage r.getCrossPlatformLookAndFeelClassName( ));}catch(Exceptionexe){System.err.print(exe.getMessage());} JFrame.setDefaultLookAndFeelDecorat ed(true);Toolkit tools = logo_Frame.getToolkit();Image logo = tools.getImage("res/logo.jpg");logo_Frame = new JFrame(logoon);logo_Frame.setIconImage(logo);jp.setLayout(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,GridBagC onstraints.ABOVE_BASELINE_LEADING, 1,true);javax.swing.JLabel users = new javax.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 void keyReleased(KeyEvent e){}public void keyPressed(KeyEvent e){if((e.getKeyChar() == KeyEvent.VK_ENTER )&&(userText.getTe xt().trim() != "")){userpwd.requestFocus();}}});setupComponent(userText,1,1,1,1,false) ;userpwd = new javax.swing.JPasswordField(12);userpwd.addKeyListener(new KeyListener(){public void keyTyped(KeyEvent e){}public void keyPressed(KeyEvent e){if((e.getKeyChar() == KeyEvent.VK_ENTER) && (userpwd.getText().trim() != "")){logoin.requestFocus();}else{userpwd.requestFocus();}}public void keyReleased(KeyEvent e){}});userText.setFocusable(true);}});int height = (int)(d.getHeight()-240)/2;logo_Frame.add(jp);logo_Frame.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 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(gridwidth>1)gridBagConstrains.gridwidth = 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;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 = null;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;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;private 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){try{UIManager.setLookAndFeel(UIManage r.getCrossPlatformLookAndFeelClassName( ));}catch(Exceptionexe){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.setFocusable(true);frame.setLayout(newjava.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 void windowClosing(WindowEvent e){String name = frame.getTitle().trim().substring(8);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ddHH: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);stuff_in = new javax.swing.JButton(image6);stuff_in.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){AddStuffIn("零件买入");}});javax.swing.ImageIcon image7 = newjavax.swing.ImageIcon("res/stuffquit.jpg");stuff_quit = new javax.swing.JButton(image7);stuff_quit.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){AddStuffQuit("零件退货");}});javax.swing.ImageIcon image5 = newjavax.swing.ImageIcon("res/stuffstock.jpg");stuff_stock = new javax.swing.JButton(image5);stuff_stock.addActionListener(new ActionListener(){public void actionPerformed(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 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();System.exit(0);}});return scrollPane;}其他截图管理系统其中的3个模块的详细设计① 上级领导操作模块进入操作界面开始查询审核信息等待审核?审核操作退出YN②设备管理员操作模块③统功能操作模块第六章系统测试1.设计测试用例测试方案:本测试方案采用黑盒法设计基本的测试方案,在黑盒法测试方案中,采用等价划分技术。

相关主题