1、东北大学秦皇岛分校java课程设计1.1.1 系统用户列表高校LEM面向五类用户:系统管理员,购买登记员,仓库管理员,实验室管理员,上级领导,这几类用户通过高校LEM系统进行设备管理上的交流,而该系统为用户提供不同的功能。【1】系统管理员1注册本系统用户;2注销本系统用户;3数据库的维护;4本人信息维护;【2】购买登记员1 将购买员提交的购买信息进行登记,记录有关设备基本信息,设备的购买信息如价格,数量等;2查询领导的购买申请审核信息;3根据审核信息将购买的设备分配到相应的仓库,将有关详单提交仓库管理员,4本人信息维护。【3】仓库管理员1 根据购买登记员提交的详单进行入库登记;2 根据实验室管
2、理员提交的详单进行出库登记;3 查询统计本仓库中的所有设备的库存量,统计出库存量不足的设备;4 根据统计信息进行购买申请。5 本人信息维护;【4】实验室管理员1 管理本实验室中各设备,找出需要维修的设备,进行维修申请;2 对于不能维修的设备,要进行报废记录;3 查询统计本实验室设备拥有量,统计出数量不足的设备,产生详单提交仓库管理员;4 对于已维修完成的设备,根据维修员提交维修单进行维修记录;5 本人信息维护。【5】上级领导1 查看购买申请表,对申请进行审核,审核后产生购买订单交于购买员;2 查看维修申请表,对申请进行审核,审核后产生维修订单交于维修员;3 个人信息维护。1.2 软件系统数据字
3、典3.21数据流条目1 登陆信息输入:设备管理员输出:身份验证1描述:登陆信息=用户名+密码+登陆权限2 查询信息输入:合法人员对设备的查询操作输出:设备信息表描述:查询信息=设备名/型号/类别/购置日期3 维修信息输入:所需维修设备的信息输出:确定维修设备的记录描述:维修信息=设备名+修理日期+修理厂家+修理费+负责人4 新设备输入:购买设备的信息输出:确定购买的新设备的记录描述:新设备=类别+设备名+型号+规格+单价+数量等5 报废设备输入:所需报废的设备的信息输出:报废的设备记录描述:报废设备=类别+设备名+型号等6 审核信息输入:审核3输出:上级领导描述:审核信息=报废设备信息/新设备
4、购买记录3.22加工条目身份验证1,统计查询2.1,维修2.2,购买2.3,报废2.4,生产报表3.1,审核3.23.23文件条目7 登陆表输入:身份验证1输出:身份验证1数据结构:用户名+密码+登陆权限8 设备基本信息表输入:统计查询2.1数据结构:类别+设备名+型号+规格等9 维修记录表输入:统计查询2.1,维修2.2输出:统计查询2.1数据结构:设备名+修理日期+修理厂家+修理费+责任人等10 新设备表输入:统计查询2.1,购买2.2输出:统计查询2.1数据结构:类别+设备名+型号+规格+单价+数量+生产厂家+购买人等11 报废记录表输入:报废2.4,统计查询2.1,生产报表3.1输出:
5、统计查询2.1,生产报表3.1数据结构:类别+设备名+型号等12 申请表输入:统计查询2.1,生产报表3.1输出:统计查询2.1,生产报表3.1,购买2.3数据结构:设备名+型号+规格+数量+负责人三:软件设计1实验室设备管理系统模块结构图2界面设计(1) 登录界面(2)任意注册管理人员登录后界面3实验室设备管理系统数据设计4管理系统其中的3个模块的详细设计1 上级领导操作模块设备管理员操作模块3 统功能操作模块5数据库设计1. 模型图2. E-R图3. 物理实现(1) 实体表【1】 用户表(UserInfo)字段类型备注uIdVarchar(15)用户名,主键uNameVarchar(15)
6、姓名uPasswdVarchar(15)密码uPositionVarchar(15)身份,主键【2】 仓库管理员表(StoreManagerInfo)字段类型备注uIdVarchar(15)用户名,主键sIdVarchar(15)仓库编号,外键约束于仓库表【3】实验室管理员表(StoreManagerInfo)字段类型备注uIdVarchar(15)用户名,主键lIdVarchar(15)仓库编号,外键约束于实验室表【4】仓库表(StoreInfo)字段类型备注sIdVarchar(15)仓库编号,主键sNameVarchar(15)仓库名称sPlaceVarchar(15)所在校区【5】实验
7、室表(LabInfo)字段类型备注lIdVarchar(15)实验室编号,主键lNameVarchar(15)实验室名称lPlaceVarchar(15)所在校区【5】设备表(EquipInfo)字段类型备注eIdVarchar(15)设备编号,主键eNameVarchar(15)设备名称eStandardVarchar(15)规格型号eProCompanyVarchar(15)生产厂商eTypeVarchar(15)设备类型【6】固定资产表(PropertyInfo)字段类型备注pIdVarchar(15)固定资产编号,主键eIdVarchar(15)所属设备编号,外键约束于设备表lIdVa
8、rchar(15)所在实验室编号,外键约束于实验室表(2) 关系表【1】 入库登记表(InInfo)字段类型备注eIdVarchar(15)设备编号,主键,外键约束于设备表sIdVarchar(15)仓库编号,主键,外键约束于仓库表iDateDateTime入库时间,主键iNumint入库数量【2】出库登记表(OutInfo)字段类型备注eIdVarchar(15)设备编号,主键,外键约束于设备表sIdVarchar(15)仓库编号,主键,外键约束于仓库表lIdVarchar(15)实验室编号,主键,外键约束于实验室表iDateDateTime出库时间,主键iNumint出库数量(3) 记录表
9、【1】购买申请表(BuyApplyInfo)字段类型备注baIdVarchar(15)序列号,主键eIdVarchar(15)设备编号,外键约束于设备表smNameVarchar(15)申请人,外键约束于仓库管理员表baDateDateTime申请时间baNumInt申请数量【2】维修申请表(MaintainInfo)字段类型备注maIdVarchar(15)序列号,主键pIdVarchar(15)固定资产编号,外键约束于固定资产表lmNameVarchar(15)申请人,外键约束于实验室管理员表maDateDateTime申请时间【3】购买登记表(BuyInfo)字段类型备注bIdVarch
10、ar(15)序列号,主键eIdVarchar(15)设备编号,外键约束于设备表bPriceMoney购买单价bDateDateTime购买时间bNumInt购买数量【4】维修记录表(MaintainInfo)字段类型备注mIdVarchar(15)序列号,主键pIdVarchar(15)固定资产编号,外键约束于固定资产表mDateDateTime维修时间【5】报废记录表(DiscardInfo)字段类型备注dIdVarchar(15)序列号,主键pIdVarchar(15)固定资产编号,外键约束于固定资产表dDateDateTime报废时间【6】 购买审核表(BuyCheckInfo)字段类型
11、备注bcIdVarchar(15)序列号,主键baIdVarchar(15)申请序列号,外键约束于购买申请表olNameVarchar(15)审核人,外键约束于上级领导表bcDateDateTime审核时间【7】维修审核表(MaintainCheckInfo)字段类型备注mcIdVarchar(15)序列号,主键maIdVarchar(15)申请序列号,外键约束于维修申请表olNameVarchar(15)审核人,外键约束于上级领导表mcDateDateTime审核时间四、编码与单元测试1、用户登录界面:package com.niit.gui_event;import com.niit.lo
12、gical.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Login extends JFrame /* * */ private static final long serialVersionUID = 1L; / 控件声明 private JLabel lPosition, lName, lPasswd, lTitle; private JComboBox cbPosition, cbName; private JPasswordField pfPasswd; private JB
13、utton bConfirm, bCancel; private Container con; private JPanel pCon; private User info; public Login() super(用户登录); / 控件初始化 con = getContentPane(); lPosition = new JLabel(身 份:); lName = new JLabel(用户名:); lPasswd = new JLabel(密 码:); lTitle = new JLabel(实验室设备管理系统); lTitle.setForeground(Color.RED); pfP
14、asswd = new JPasswordField(); bConfirm = new JButton(确定); bCancel = new JButton(取消); String aPosition = new String 系统管理员, 仓库管理员, 实验室管理员, 购买登记员, 上级领导 ; cbPosition = new JComboBox(aPosition); int index = cbPosition.getSelectedIndex(); if (index = 0) info = new Administration(); else if (index = 1) inf
15、o = new StoreManager(); else if (index = 2) info = new LabManager(); else if (index = 3) info = new BuyManager(); else info = new OverLeader(); / 数组初始化 pCon = new JPanel5; String cName = info.getIdByPosition(info); cbName = new JComboBox(cName); for (int i = 0; i pCon.length; i+) pConi = new JPanel(
16、); public void launch() / 控件添加 con.setLayout(new GridLayout(5, 1); pCon0.add(lPosition); pCon0.add(cbPosition); pCon1.add(lName); pCon1.add(cbName); pCon2.add(lPasswd); pCon2.add(pfPasswd); pCon3.add(bConfirm); pCon3.add(bCancel); pCon4.add(lTitle); add(pCon4); for (int i = 0; i pCon.length - 1; i+)
17、 con.add(pConi); / 控件设置 pfPasswd.setEchoChar(*); pfPasswd.setColumns(10); setBounds(400, 100, 400, 400); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); / 添加监听器 cbPosition.addActionListener(new ListenAction(); bConfirm.addActionListener(new ListenAction(); bCancel.addActionListener
18、(new ListenAction(); pfPasswd.addKeyListener(new ListenKey(); / 定义按钮,下拉框处理器 class ListenAction implements ActionListener public void actionPerformed(ActionEvent e) if (e.getSource() = bConfirm) /点击确定按钮 info.setuId(cbName.getSelectedItem().toString(); info.setuPasswd(new String(pfPasswd.getPassword()
19、; info.setuPosition(cbPosition.getSelectedItem().toString(); if (info.login(info) new Main(info).launch(); setVisible(false); pfPasswd.setText(null); else JOptionPane.showMessageDialog(new Login(), 用户名,密码或身份错误); pfPasswd.setText(null); else if (e.getSource() = cbPosition) /身份下拉框改变时 int index = cbPos
20、ition.getSelectedIndex(); if (index = 0) info = new Administration(); else if (index = 1) info = new StoreManager(); else if (index = 2) info = new LabManager(); else if (index = 3) info = new BuyManager(); else info = new OverLeader(); String cName = info.getIdByPosition(info); /刷新用户名列表 cbName.remo
21、veAllItems(); for (int i = 0; i cName.length; i+) cbName.addItem(cNamei); else System.exit(0); pfPasswd.setText(null); /定义键盘处理器 class ListenKey extends KeyAdapter SuppressWarnings(static-access) public void keyPressed(KeyEvent e) if (e.getKeyText(e.getKeyCode().compareToIgnoreCase(ENTER) = 0) bConfi
22、rm.doClick(); 2、主界面:package com.niit.gui_event;import javax.swing.*;import com.niit.logical.*;import java.awt.event.*;public class Main extends JFrame /* * */ private static final long serialVersionUID = 1L; private JTabbedPane tp; private JPanel p; private User info; public Main() super(实验室设备管理系统);
23、 tp = new JTabbedPane(); p = new JPanel8; public Main(User info) this(); this.info=info; p0 = new UserManage(); p1 = new EquipIn(); p2 = new EquipOut(); p3 = new Register(info); p4 = new Apply(info); p5 = new Checks(info); p6= new Search(); p7=new PasswdModyfy(info); public void launch() tp.addTab(用
24、户管理, p0); tp.addTab(设备入库, p1); tp.addTab(设备出库, p2); tp.addTab(设备登记, p3); tp.addTab(设备申请, p4); tp.addTab(审核申请, p5); tp.addTab(统计查询, p6); tp.addTab(个人信息维护, p7); if(info instanceof Administration) tp.setEnabledAt(1, false); tp.setEnabledAt(2, false); tp.setEnabledAt(3, false); tp.setEnabledAt(4, false)
25、; tp.setEnabledAt(5, false); tp.setEnabledAt(6, false); else if(info instanceof StoreManager) tp.setEnabledAt(0, false); tp.setEnabledAt(3, false); tp.setEnabledAt(5, false); tp.setSelectedIndex(1); else if(info instanceof LabManager) tp.setEnabledAt(0, false); tp.setEnabledAt(1, false); tp.setEnabl
26、edAt(2, false); tp.setEnabledAt(5, false); tp.setSelectedIndex(3); else if(info instanceof BuyManager) tp.setEnabledAt(0, false); tp.setEnabledAt(1, false); tp.setEnabledAt(2, false); tp.setEnabledAt(4, false); tp.setEnabledAt(5, false); tp.setSelectedIndex(3); else if(info instanceof OverLeader) tp
27、.setEnabledAt(0, false); tp.setEnabledAt(1, false); tp.setEnabledAt(2, false); tp.setEnabledAt(3, false); tp.setEnabledAt(4, false); tp.setSelectedIndex(5); getContentPane().add(tp); setSize(1280, 780); setVisible(true); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); 3、设备申请:package
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1