sydgq https://gitee.com/zc565095526/javakeshe/tree/master
吴越 https://gitee.com/ShangDaXueJiuBuLiaoZhongGuoRen/2019java_course_designwu_yue
sydgq:
吴越:
删除之后
输入学号
点击查看,显示该学生信息
换一个未添加学号,显示学号不存在
4.修改学生信息将宿舍号从503改为502
修改完后
5.清空功能要重新输入信息时,要一行行删除 太过麻烦。因此我们重新设计了一个“清空”按钮。以此来实现一键清空的功能
清空前
清空后
##6.显示所有学生信息
点击显示按钮,则会显示所有学生的信息。以“结束”作为标识符结束
六、项目关键代码 1.增加学生信息部分代码 // button1.addActionListener(new ActionListener() { // 监听增加, 使用内部类 public void actionPerformed(ActionEvent e) { if (e.getSource() == button1) { //点击增加数据按钮 button3.setEnabled(false); //使button3这个按钮变灰不可点击了 String number1 = number.getText(); //从文本框获取用户键盘输入的字符串 if (number1.length() == 12) { //学号要是12位的字符 try { ObjectInputStream input = new ObjectInputStream(new FileInputStream(file)); //读回对象 hash = (Hashtable) input.readObject(); //放到hash中去 input.close(); } catch (Exception e1) { } } else { JOptionPane.showMessageDialog(null, "请输入学生的学号"); //输入为空,就会提示此信息 } if (number1.length() == 12) { if (hash.containsKey(number1)) { JOptionPane.showMessageDialog(null, "该生信息已存在,请到修改页面修改!");//该学生已经存在,提示此信息 } else { String name1 = name.getText(); String dor1 = dor.getText(); String address1 = address.getText(); String sex1 = sex.getText(); String date1 = date.getText(); String pol1 = pol.getText(); String phone1 = phonenum.getText(); Student per = null; per = new Student(number1, name1, dor1, address1, sex1, date1, pol1, phone1); hash.put(number1, per); // 使用学号和学生来键值相对,添加 try { ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(file));//写出对象到对应文件中 output.writeObject(hash); output.close(); JOptionPane.showMessageDialog(null, "添加成功!"); } catch (Exception e1) {} } } } } }); 2.删除学生信息 button2.addActionListener(new ActionListener() { // 监听删除按钮 public void actionPerformed(ActionEvent e) { if (e.getSource() == button2) { button3.setEnabled(false); String number1 = number.getText(); if (number1.length() == 12) { try { ObjectInputStream input = new ObjectInputStream(new FileInputStream(file)); //每次都要读回对象 hash = (Hashtable) input.readObject(); input.close(); } catch (Exception e1) { } } else { JOptionPane.showMessageDialog(null, "请输入学生的学号");//提示信息 } if (hash.containsKey(number1)) { hash.remove(number1); //删除操作 ObjectOutputStream output = null; //初始输出置空 JOptionPane.showMessageDialog(null, "删除成功"); try { output = new ObjectOutputStream(new FileOutputStream(file)); //写出对象到对应文件中 output.writeObject(hash); //将hash中的数据写出 output.close(); } catch (IOException ex) { Logger.getLogger(Menu.class.getName()).log(Level.SEVERE, null, ex); } } else { JOptionPane.showMessageDialog(null, "学号不存在"); } } } }); 3.修改学生信息 button3.addActionListener(new ActionListener() { // 监听修改按钮 public void actionPerformed(ActionEvent e) { if (e.getSource() == button3) { button3.setEnabled(false); String number1 = number.getText(); String name1 = name.getText(); String dor1 = dor.getText(); String address1 = address.getText(); String sex1 = sex.getText(); String date1 = date.getText(); String pol1 = pol.getText(); String phone1 = phonenum.getText(); Student per = new Student(number1, name1, dor1, address1, sex1, date1, pol1, phone1); hash.put(number1, per); JOptionPane.showMessageDialog(null, "修改成功"); try { ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(file));//写出对象到对应文件中 output.writeObject(hash); output.close(); } catch (Exception e1) { } } } }); 七、项目代码扫描结果及改正 八、尚待改进 1.登陆界面在输完密码之后无法直接用回车进入系统,上网查资料无果,只能单击“登录”按钮才能进入系统。 2.图形界面的背景图部分,想要给其加自定义背景图片,但是由于时间比较赶(有去尝试过),也未能完成改进。 3.想通过其他信息部分进行索引,查到该学生的具体资料,但由于时间不够,就只做了以学号为索引的方式 4.学号的排序方式有问题,变成了从大到小进行排序,因为使用的是Enumeration遍历方法转载于:https://www.cnblogs.com/zc-565095526/p/10284188.html