数据结构课程设计(论文)设备管理系统院(系)名称电子与信息工程学院专业班级学号学生姓名指导教师起止时间:2016.1.4—2016.1.15课程设计(论文)任务及评语院(系):电子与信息工程学院教研室:软件工程摘要如何利用先进的网络技术和日新月异的计算机设备来有效地收集、处理这些设备,建立以信息化为核心的管理体制,减轻管理人员和业务人员的数据处理负担,极大地提高设备管理效率和管理手段,己经成为当今社会的潮流。
在现代化大型研究所信息化管理体系建设中,设备管理系统被看作是重中之重。
因为设备是工厂生产中的主体,随着科学技术的不断发展,生产设备日益机械化、自动化、大型化、高速化和复杂化,设备在现代工业生产中的作用和影响也随之增大,在整个工业生产过程中对设备的依赖程度也越来越高。
设备管理的各项制度、流程涉及的点多面广。
设备管理系统则是一个以人为主导,利用计算机硬件、软件、网络设备通信设备以及其他办公设备,进行信息的收集、传输、加工、储存、更新和维护,以战略竟优、提高效率为目的,支持高层决策、中层控制、基层运作的集成化的人机系统。
而设备管理是管理系统的一个子系统,它具有管理信息系统的共性,同时也具有其特殊性。
设备是生产的生命线,对研究所正常生产起着决定性的作用。
信息安全设备管理已成为现代研究所管理的一个重要组成部分。
把信息安全设备管理纳入研究所管理的重要组成部分己经成为一种趋势。
关键词:设备管理;科学技术;管理信息目录第1章绪论 (1)1.1系统的开发背景 (1)1.2开发工具及语言 (1)第2章概要设计 (2)2.1模块划分 (2)2.2 数据结构的选择 (3)第3章系统详细设计与编码 (4)3.1完整的源程序 (4)3.2程序的输入和输出 (23)3.3调试程序中遇到的问题及解决方案 (24)第4章总结 (25)参考文献 (26)第1章绪论1.1研究背景设备管理系统是企业内部的信息管理系统,是连接企业内部各生产部门的桥梁与纽带,起着核心作用。
目前企业设备自动化管理水平不是很高。
大多数设备管理办法是设备的采购进来以后,将设备的基本情况和相关信息登记存档,然后将档案存档。
以后的档案基本就没人维护,如设备修改、删除情况、设备的当前运行状态等信息本不会呈现在管理工作人员面前,由于散乱、复杂、查找和整理不便,即设备跟踪信息不能及时体现在设备的档案上。
某些企业采用专门人工整点,对设备的跟踪信息即使能记录在案,但无形中增加了繁重的手工劳动,整个设备管理水平还是较低。
本系统会提高办公效率和设备可靠性,减少工作人员的劳动强度,减少办公耗材,提高现代化管理水平。
企业面对市场竞争的巨大压力,要求企业创造新的利润源,这为企业如何配置有限资源,利用先进计算机技术不断开发出操作简便、界面友好、灵活、实用、安全,更具时效性的设备信息管理系统有着更高的要求。
1.2开发工具及语言本系统使用JA V A语言MyEclipse工具开发,主界面清晰显示所有功能项,使用简单。
各个功能项均定义一个函数来实现,在主函数中调用各个子函数实现不同的功能。
第2章概要设计2.1模块划分学生籍贯管理系统分为4大功能模块,分别为:录入学生籍贯、修改学生籍贯、查询学生籍贯、删除学生籍贯。
1.系统各个部分及其包括的具体功能模块:2.程序流程图:设备管理录入设备信息修改设备信息查询设备信息删除设备信息编号名称价格编号名称价格编号名称价格编号名称价格设备管理录入设备信息输出设备信息删除设备信息查询设备信息2.2 数据结构的选择系统数据的逻辑结构采用线性结构,物理结构采用链式存储结构。
存储结构定义如下: Hashtable 基本信息=null; JTextField 编号,名称,价格;修改设备信息保存修改输出设备信息确定删除设备信息显示显示信息输出查询返回第3章系统详细设计与编码3.1完整的源程序//主函数代码public class Student implements java.io.Serializable{String number,name,discipling,grade,borth,sex;public Student(){}public void setNumber(String number){this.number=number;}public String getNumber(){return number;}public void setName(String name){=name;}public String getName(){return name;}public void setDiscipling(String discipling){this.discipling=discipling;}public String getDisciping(){return discipling;}public void setGrade(String grade){this.grade=grade;}public String getGrade(){return grade;}public void setBorth(String borth){this.borth=borth;}public String getBorth(){return borth;}public void setSex(String sex){this.sex=sex;}public String getSex(){return sex;}}//登录界面代码import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;class MyPanel extends JPanel{public void paintComponent(Graphics g){super.paintComponent(g);Image image=new ImageIcon("203.jpg").getImage();g.drawImage(image,0,0,this);}}public class Register extends JFrame {private MyPanel panel;private JLabel lab_zhanghao = new JLabel("账号:");private JTextField jta_text = new JTextField();Font lab = new Font("楷体",1,23);private JLabel lat_password = new JLabel("密码:");Font lat = new Font("楷体",1,23);private JTextField jtb_text = new JTextField();private JButton btn_register = new JButton("注册");private JButton btn_land = new JButton("OK");Font btn = new Font("楷体",2,15);public static int pd = 0;public static String ak1, ak2;File file=null;public Register() {this.setSize(500,300);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setLocationRelativeTo(null);this.setTitle("欢迎登录设备管理系统");this.setResizable(false);btn_register.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {pd = 1;ak1 = jta_text .getText();ak2 = jtb_text.getText();String fileName = "E:\\users.dat";try {Writer writer = new FileWriter(fileName);} catch (IOException e1) {e1.printStackTrace();}jta_text.setText("");jtb_text.setText("");JOptionPane.showMessageDialog(null,"注册成功!\n您的用户名是"+ak1+"\n密码是"+ ak2);}});btn_land.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if(pd==1) {if(ak1.equals(jta_text.getText()) && ak2.equals(jtb_text.getText())){JOptionPane.showMessageDialog(null, "登录成功!");dispose();new StudentMain();}else {JOptionPane.showMessageDialog(null,"登陆失败!检查账号密码是否正确",null,JOptionPane.ERROR_MESSAGE, null);jta_text .setText("");jtb_text .setText("");} } }});init();panel=new MyPanel();panel.add(lab_zhanghao);panel.add(lat_password);panel.add(jta_text);panel.add(jtb_text);panel.add(btn_register);panel.add(btn_land);panel.setLayout(null);getContentPane().add(panel);}private void init() {lab_zhanghao.setSize(200,100);lab_zhanghao. setLocation(80,20);lab_zhanghao.setFont(lab);lat_password.setSize(200,100);lat_password.setLocation(80,80);lat_password.setFont(lat);jta_text.setSize(190,30);jta_text.setLocation(150,55);jtb_text.setSize(190,30);jtb_text.setLocation(150,115);btn_register.setSize(60, 30);btn_register.setLocation(150, 180);btn_land.setSize(60, 30);btn_land.setLocation(250, 180);btn_register.setFont(btn);btn_land.setFont(btn);}public static void main(String[] args)throws ClassNotFoundException,InstantiationException, IllegalAccessException,UnsupportedLookAndFeelException {UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");new Register().setVisible(true);}}//主界面代码import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.Hashtable;public class StudentMain extends JFrame implements ActionListener{JMenuBar bar;JMenu fileMenu;JMenuItem 录入,修改,查询,删除;Container con=null;Hashtable 基本信息=null;File file=null;CardLayout card=null;JLabel label=null;JPanel pCenter;StudentSituation 基本信息录入=null;ModifySituation 基本信息修改=null;Inquest 基本信息查询=null;Delete 基本信息删除=null;public StudentMain(){this.setTitle("设备管理界面");录入=new JMenuItem("录入");修改=new JMenuItem("修改");查询=new JMenuItem("查询");删除=new JMenuItem("删除");bar=new JMenuBar();fileMenu=new JMenu("请点击这里!");fileMenu.add(录入);fileMenu.add(修改);fileMenu.add(查询);fileMenu.add(删除);bar.add(fileMenu);setJMenuBar(bar);label=new JLabel("欢迎进入设备管理系统",JLabel.CENTER);label.setFont(new Font("SansSerif",Font.BOLD+Font.ITALIC,25));label.setForeground(Color.GRAY);基本信息=new Hashtable();录入.addActionListener(this);修改.addActionListener(this);查询.addActionListener(this);删除.addActionListener(this);card=new CardLayout();con=getContentPane();pCenter=new JPanel();pCenter.setLayout(card);pCenter.setBackground(Color.YELLOW);file=new File("基本信息.txt");if(!file.exists()){try{FileOutputStream out=new FileOutputStream(file);ObjectOutputStream objectOut=new ObjectOutputStream(out);objectOut.writeObject(基本信息);objectOut.close();out.close();}catch(IOException e){}}基本信息录入=new StudentSituation(file);基本信息修改=new ModifySituation(file);基本信息查询=new Inquest(this,file);基本信息删除=new Delete(file);pCenter.add("欢迎语界面",label);pCenter.add("录入界面",基本信息录入);pCenter.add("修改界面",基本信息修改);pCenter.add("删除界面",基本信息删除);con.add(pCenter,BorderLayout.CENTER);con.validate();addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});setVisible(true);setBounds(200,180,400,200);validate();}public void actionPerformed(ActionEvent e){if(e.getSource()==录入){card.show(pCenter,"录入界面");}else if(e.getSource()==修改){card.show(pCenter,"修改界面");}else if(e.getSource()==查询){基本信息查询.setVisible(true);}else if(e.getSource()==删除){card.show(pCenter,"删除界面");}}public static void main(String args[]){new StudentMain();}}//录入代码import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class StudentSituation extends JPanel implements ActionListener {Hashtable 基本信息表=null;JTextField 编号,名称,价格;Student 学生=null;ButtonGroup group=null;JButton 录入;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;File file=null;public StudentSituation(File file){this.file=file;编号=new JTextField(10);名称=new JTextField(10);价格=new JTextField(10);group=new ButtonGroup();录入=new JButton("录入");录入.addActionListener(this);Box box1=Box.createHorizontalBox();box1.add(new JLabel("编号:",JLabel.CENTER));box1.add(编号);Box box2=Box.createHorizontalBox();box2.add(new JLabel("名称:",JLabel.CENTER));box2.add(名称);Box box3=Box.createHorizontalBox();Box box4=Box.createHorizontalBox();Box box5=Box.createHorizontalBox();box5.add(new JLabel("价格:",JLabel.CENTER));box5.add(价格);Box box6=Box.createHorizontalBox();box6.add(new JLabel(" ",JLabel.CENTER));Box boxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box5);boxH.add(box6);boxH.add(box4);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);setLayout(new BorderLayout());add(pCenter,BorderLayout.CENTER);JPanel pSouth=new JPanel();pSouth.add(录入);add(pSouth,BorderLayout.SOUTH);validate();}public void actionPerformed(ActionEvent e){if(e.getSource()==录入){String number="";number=编号.getText();if(number.length()>0){try{inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();}catch(Exception ee){}if(基本信息表.containsKey(number)){String warning="该价格已存在,请到修改页面修改!";JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);}else{String m="价格将被录入!";int ok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTION,RMATION_MESSAGE);if(ok==JOptionPane.YES_OPTION){String name=名称.getText();String grade=价格.getText();String sex=null;学生=new Student();学生.setNumber(number);学生.setName(name);学生.setGrade(grade);try{outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);基本信息表.put(number,学生);outTwo.writeObject(基本信息表);outTwo.close();outOne.close();编号.setText(null);名称.setText(null);价格.setText(null);}catch(Exception ee){System.out.println(ee);}}}}else{String warning="必须要输入编号!";JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);}}{编号.setText(null);名称.setText(null);价格.setText(null);}}}//查询代码import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Inquest extends JDialog implements ActionListener{Hashtable 基本信息表=null;JTextField 编号,名称,价格;JButton 查询;ButtonGroup group=null;FileInputStream inOne=null;ObjectInputStream inTwo=null;File file=null;public Inquest(JFrame f,File file){super(f,"查询对话框",false);this.file=file;编号=new JTextField(10);查询=new JButton("查询");编号.addActionListener(this);查询.addActionListener(this);名称=new JTextField(10);名称.setEditable(false);价格=new JTextField(10);价格.setEditable(false);Box box1=Box.createHorizontalBox();box1.add(new JLabel("输入要查询的编号:",JLabel.CENTER));box1.add(编号);box1.add(查询);Box box2=Box.createHorizontalBox();box2.add(new JLabel("名称:",JLabel.CENTER));box2.add(名称);Box box5=Box.createHorizontalBox();box5.add(new JLabel("价格:",JLabel.CENTER));box5.add(价格);Box boxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(box5);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);pCenter.setBackground(Color.CYAN);Container con=getContentPane();con.add(pCenter,BorderLayout.CENTER);con.validate();setVisible(false);setBounds(100,200,400,200);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){setVisible(false);} });}public void actionPerformed(ActionEvent e){名称.setText(null);价格.setText(null);if(e.getSource()==查询||e.getSource()==编号){String number="";number=编号.getText();if(number.length()>0){try {inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();}catch(Exception ee){}if(基本信息表.containsKey(number)){Student stu=(Student)基本信息表.get(number);名称.setText(stu.getName());价格.setText(stu.getGrade());}else{String warning="该编号不存在!";JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);}}else{String warning="必须要输入编号!";JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);}}}}//修改代码import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class ModifySituation extends JPanel implements ActionListener{Hashtable 基本信息表=null;JTextField 编号,名称,价格;JButton 开始修改,yes;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;File file=null;public ModifySituation(File file){this.file=file;编号=new JTextField(10);名称=new JTextField(10);价格=new JTextField(10);开始修改=new JButton("开始修改");yes=new JButton("确定修改");yes.setEnabled(false);编号.addActionListener(this);开始修改.addActionListener(this);yes.addActionListener(this);Box box1=Box.createHorizontalBox();box1.add(new JLabel("输入要修改的编号:",JLabel.CENTER));box1.add(编号);box1.add(开始修改);Box box2=Box.createHorizontalBox();box2.add(new JLabel("名称:",JLabel.CENTER));box2.add(名称);Box box5=Box.createHorizontalBox();box5.add(new JLabel("价格:",JLabel.CENTER));box5.add(价格);Box boxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(box5);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);setLayout(new BorderLayout());add(pCenter,BorderLayout.CENTER);JPanel pSouth=new JPanel();pSouth.add(yes);add(pSouth,BorderLayout.SOUTH);validate();}public void actionPerformed(ActionEvent e){if(e.getSource()==开始修改||e.getSource()==编号){String number="";number=编号.getText();if(number.length()>0){try {inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();}catch(Exception ee){}if(基本信息表.containsKey(number)){yes.setEnabled(true);Student stu=(Student)基本信息表.get(number);名称.setText(stu.getName());价格.setText(stu.getGrade());}else{yes.setEnabled(false);String warning="该编号不存在!";JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);编号.setText(null);名称.setText(null);价格.setText(null);}}else{yes.setEnabled(false);String warning="必须要输入编号!";JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);编号.setText(null);名称.setText(null);价格.setText(null);}}else if(e.getSource()==yes){String number="";number=编号.getText();if(number.length()>0){try {inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();}catch(Exception ee){}if(基本信息表.containsKey(number)){String question="您想修改他(她)的价格吗?";JOptionPane.showMessageDialog(this,question,"警告",JOptionPane.QUESTION_MESSAGE);String m="该价格将被修改!";int ok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTION,RMATION_MESSAGE);if(ok==JOptionPane.YES_OPTION){String name=名称.getText();String grade=价格.getText();String sex=null;Student student=new Student();student.setNumber(number);student.setName(name);try{outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);基本信息表.put(number,student);outTwo.writeObject(基本信息表);outTwo.close();outOne.close();编号.setText(null);名称.setText(null);价格.setText(null);}catch(Exception ee){System.out.println(ee);}yes.setEnabled(false);}else if(ok==JOptionPane.NO_OPTION){yes.setEnabled(true);}}else{String warning="该编号无对应价格,不能修改!";JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);yes.setEnabled(false);}}else{String warning="必须要输入编号!";JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);yes.setEnabled(false);}}}}//删除代码import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Delete extends JPanel implements ActionListener{Hashtable 基本信息表=null;JTextField 编号,名称,价格;JButton 删除;ButtonGroup group=null;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;File file=null;public Delete(File file){this.file=file;编号=new JTextField(10);删除=new JButton("删除");编号.addActionListener(this);删除.addActionListener(this);名称=new JTextField(10);名称.setEditable(false);价格=new JTextField(10);价格.setEditable(false);Box box1=Box.createHorizontalBox();box1.add(new JLabel("输入要删除的编号:",JLabel.CENTER));box1.add(编号);box1.add(删除);Box box2=Box.createHorizontalBox();box2.add(new JLabel("名称:",JLabel.CENTER));box2.add(名称);Box box6=Box.createHorizontalBox();box6.add(new JLabel(" ",JLabel.CENTER));Box box5=Box.createHorizontalBox();box5.add(new JLabel("价格:",JLabel.CENTER));box5.add(价格);Box boxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(box5);boxH.add(box6);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);pCenter.setBackground(Color.LIGHT_GRAY);setLayout(new BorderLayout());add(pCenter,BorderLayout.CENTER);validate();}public void actionPerformed(ActionEvent e){if(e.getSource()==删除||e.getSource()==编号){String number="";number=编号.getText();if(number.length()>0){try{inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();}catch(Exception ee){}if(基本信息表.containsKey(number)){Student stu=(Student)基本信息表.get(number);名称.setText(stu.getName());String m="确定要删除吗?";int ok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);if(ok==JOptionPane.YES_OPTION){基本信息表.remove(number);try{outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);outTwo.writeObject(基本信息表);outTwo.close();outOne.close();编号.setText(null);名称.setText(null);价格.setText(null);}catch(Exception ee){System.out.println(ee);}}else if(ok==JOptionPane.NO_OPTION){编号.setText(null);名称.setText(null);价格.setText(null);}}else{String warning="该编号不存在!";JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);}}else{String warning="请输入编号!";JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);}}}}3.2程序的输入和输出程序运行主界面:图3.1设备管理系统的主界面录入界面:图3.2设备管理系统录入界面修改界面:图3.3 设备管理系统修改界面删除界面:图3.4设备管理系统删除界面查询界面:图 3.5 设备管理系统查询界面3.3调试程序中遇到的问题及解决方案问题:删除信息的时候不能将剩余的数据信息加上和减去。