1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 学生档案信息管理系统(Java实现)

学生档案信息管理系统(Java实现)

时间:2024-03-15 10:24:39

相关推荐

学生档案信息管理系统(Java实现)

一、整体设计

该系统基于Java图形界面以及MySQL数据库实现,其中MySQL数据库操作实现了增查改删。用户可在登录界面进入学生信息填写系统、教师管理系统、管理员管理系统,还可进行注册学生、教师登录账号信息、修改密码等操作。其中在管理员管理系统中含有JTable表格实时显示账户信息。下面为实现该系统的层次图。

二、MySQL数据库

经过需求分析得MySQL数据库系统中有三个实体:账号信息(学生学号、学生姓名、密码);学生信息(学生姓名、性别、学生学号。班级、班主任、出生日期、民族、政治面貌、身份证号、家庭电话、个人电话、家庭住址);教师信息(教师姓名、教职工号、联系方式);

实体与实体之间还存在两个联系:账号与学生之间的注册关系(一个学生只能注册一个账号,一个账号只能被一个学生注册);学生与教师之间的管理关系(多个学生可以被多个教师管理,多个教师也可以管理多个学生),具体实现E-R图如下。

三、界面具体设计

3.1 用户登录界面

学生注册账号、账号登录;教师注册账号、账号登录;管理员登录。通过下次菜单进行选择。选择后某些文本编辑框会设置不可填状态。此外学生可进行修改密码操作。界面效果图如下。

部分实现代码。

@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubString pass = "";String s_account = "";if (e.getSource() == button) {s_account = textField_1.getText();pass = passField.getText();user = comboBox.getSelectedItem().toString();String r = "";String idss="";ResigerDaoImpl rdi = new ResigerDaoImpl();Resiger ri = rdi.selectpwd2(s_account);r = ri.getPass();String idcards=textField_2.getText();Manage_InfDaoImpl midi=new Manage_InfDaoImpl();List<Teacher_Inf> listtea=midi.getTeacherName(idcards);Iterator<Teacher_Inf> it=listtea.iterator();while(it.hasNext()){Teacher_Inf s=it.next();idss=s.getIdcard();}if (pass.equals(r) && user.equals("学生")) {// 跳转至学生填写信息界面并提示欢迎使用此系统frame.setVisible(false);WriteStudent ts = new WriteStudent();ts.frame.setVisible(true);JOptionPane.showMessageDialog(frame, "欢迎,请正确填写个人信息");}else if (user.equals("普通教师") && password.equals("classdesgin666")) {// 跳转至另一个界面并提示欢迎进入此系统if(idss.equals("")){JOptionPane.showMessageDialog(frame, "您输入的教职工号不存在,请联系管理人员");}else{frame.setVisible(false);TeacherFrame tf=new TeacherFrame();tf.frame.setVisible(true);JOptionPane.showMessageDialog(frame, "欢迎进入学生档案系统");}}else if (pass.equals("888") && user.equals("系统管理员")) {// 跳转至另一个界面并提示欢迎进入此系统frame.setVisible(false);ManageFrame tm = new ManageFrame();tm.frame.setVisible(true);JOptionPane.showMessageDialog(frame, "欢迎进入管理系统");} else {JOptionPane.showMessageDialog(frame, "密码错误或账号,请重新输入");passField.setText("");textField_2.setText("");}} else if (e.getSource() == button_1) {passField.setText("");textField_1.setText("");textField_2.setText("");comboBox.removeAllItems();comboBox.addItem("学生");comboBox.addItem("普通教师");comboBox.addItem("系统管理员");} else if (e.getSource() == button_2) {frame.setVisible(false);StudentResiger sr = new StudentResiger();sr.frame.setVisible(true);} else if (e.getSource() == button_3) {frame.setVisible(false);ChangeResiger cr = new ChangeResiger();cr.frame.setVisible(true);}}

3.2 学生修改密码界面

该界面实现了学生输入学号后判断是否存在、学号与密码是否匹配、原密码与新密码是否不一致等。界面效果图如下。

3.3学生填写个人信息界面

学生填写个人信息,点击提交按钮载入MySQL数据库。

部分实现代码。

JButton btnNewButton = new JButton("\u63D0\u4EA4");btnNewButton.setFont(new Font("宋体", Font.BOLD, 25));btnNewButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {Connection conn = DBtools.getconn();PreparedStatement pstmt = null;String sql = "select *from t_student where student_num=?";String student_num = textField_3.getText();JTextField[] jtf= {textField,textField_1,textField_2,textField_3,textField_4,textField_6,textField_9,textField_7,textField_8,textField_10};int a;for(a = 0; a<jtf.length; a++) {if(jtf[a].getText().equals("")) {JOptionPane.showMessageDialog(frame, "请将学生信息填写完整");jtf[a+1].setBorder(BorderFactory.createLineBorder(Color.RED)); break;}}try {pstmt = conn.prepareStatement(sql);pstmt.setString(1, student_num);ResultSet rs = pstmt.executeQuery();if(rs.isBeforeFirst()==false){if(a==jtf.length){t_Student_infDaoim sti = new t_Student_infDaoim();Student_Inf t_student = new Student_Inf();/* String id = textField.getText();*/String names = textField_1.getText();String sex = textField_2.getText();String student_nums = textField_3.getText();String gradeclass = textField_5.getText();String classboss = textField_6.getText();String birth = textField_4.getText();String natives = comboBox.getSelectedItem().toString();String political = textField_7.getText();String card_type = comboBox_1.getSelectedItem().toString();String card_number = textField.getText();String home_phone = textField_10.getText();String person_phone = textField_9.getText();String livehome = textField_8.getText();/*t_student.setId(id);*/t_student.setName(names);t_student.setSex(sex);t_student.setStudent_num(student_nums);t_student.setGradeclass(gradeclass);t_student.setClassboss(classboss);t_student.setBirth(birth);t_student.setNatives(natives);t_student.setPolitical(political);t_student.setCard_type(card_type);t_student.setCard_number(card_number);t_student.setHome_phone(home_phone);t_student.setPerson_phone(person_phone);t_student.setLivehome(livehome);int i = sti.addStudent(t_student);if(i!=0){JOptionPane.showMessageDialog(frame, "添加成功");textField.setText("");textField_1.setText("");textField_2.setText("");textField_3.setText("");textField_4.setText("");textField_5.setText("");textField_6.setText("");textField_7.setText("");textField_8.setText("");textField_9.setText("");textField_10.setText("");}}}else{JOptionPane.showMessageDialog(frame, "请勿重复添加学生信息");}} catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}});btnNewButton.setBounds(272, 440, 136, 37);jmp.add(btnNewButton);

3.4教师管理系统界面

教师界面可对学生信息进行增删改查,JTable表格中实时显示学生个人信息。教师可通过点击添加学生信息、修改学生信息按钮弹出新的界面对学生信息进行添加和修改,其中修改时必须在JTable中选中一条信息。也可通过点击下载学生档案按钮对学生档案信息进行下载

部分实现代码。

button = new JButton("\u67E5\u8BE2\u5B66\u751F\u4FE1\u606F");button.setForeground(Color.BLACK);button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {TableModel tables = agetData();table.setModel(tables);}});button.setBounds(1120, 541, 196, 52);button.setFont(new Font("宋体", Font.PLAIN, 23));btnNewButton = new JButton("\u6DFB\u52A0\u5B66\u751F\u4FE1\u606F");btnNewButton.setBounds(547, 805, 174, 52);btnNewButton.setFont(new Font("宋体", Font.PLAIN, 23));btnNewButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {AddStudent as = new AddStudent();as.frame.setVisible(true);}});btnNewButton_1 = new JButton("\u4FEE\u6539\u5B66\u751F\u4FE1\u606F");btnNewButton_1.setBounds(871, 805, 174, 52);btnNewButton_1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {int frow = table.getSelectedRow();//获得第一个选中行的索引if(frow == -1) {JOptionPane.showMessageDialog(frame, "请先单击选择一条记录");}else {//String[]中存入表格选中行的数据String[] sendData = new String[table.getColumnCount()];for(int i=0; i<sendData.length; i++) {sendData[i] = table.getValueAt(frow, i)+"";}//打开修改页面ModStudent ms = new ModStudent(sendData);ms.frame.setVisible(true);}}});btnNewButton_1.setFont(new Font("宋体", Font.PLAIN, 23));btnNewButton_2 = new JButton("\u5220\u9664\u5B66\u751F\u4FE1\u606F");btnNewButton_2.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {t_Student_infDaoim sd = new t_Student_infDaoim();Student_Inf student = new Student_Inf();t_name = textField.getText();student_num = textField_1.getText();student.setName(t_name);student.setStudent_num(student_num);int i = sd.deleteStudent(t_name, student_num);if(i!=0){JOptionPane.showMessageDialog(frame, "删除成功");frame.setVisible(false);// 先关闭new TeacherFrame().main(null);// 再重新运行该类实现刷新}else{JOptionPane.showMessageDialog(frame, "删除失败,清核对学生信息");}}});btnNewButton_2.setBounds(1120, 667, 196, 52);btnNewButton_2.setFont(new Font("宋体", Font.PLAIN, 23));jmp.setLayout(null);

学生档案信息另存为实现方法。

protected void download() {try {FileDialog fd = new FileDialog(frame, "另存为", FileDialog.SAVE);fd.setFile("学生档案信息表.txt");fd.setVisible(true);if(fd.getDirectory()!=null) {String url = fd.getDirectory()+fd.getFile();FileWriter fw = new FileWriter(url,false);Timestamp ts = new Timestamp(System.currentTimeMillis());fw.write("更新日期:"+ts.toString()+"\n\n");List<Student_Inf> books = si.selectStudent2();for(int i=0; i<books.size(); i++) {fw.write(books.get(i).toString()+"\n");}JOptionPane.showMessageDialog(frame, "下载成功!");fw.flush();fw.close();}} catch (IOException e) {e.printStackTrace();}}

3.5管理员管理界面

管理员负责管理教师所有教师注册的账号信息,对其进行增删改查。同教师管理系统界面实现功能相似,在此不做过多介绍。实现效果图如下。

部分实现代码。

@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubManage_InfDaoImpl midi = new Manage_InfDaoImpl();Teacher_Inf teacher = new Teacher_Inf();if (e.getSource() == btnNewButton) {// 添加if (textField.getText().equals("") || textField_1.getText().equals("")|| textField_2.getText().equals("")) {JOptionPane.showMessageDialog(frame, "请填写完整添加信息");} else {String t1_name = textField.getText();String idcard1 = textField_1.getText();String t1_number = textField_2.getText();teacher.setT_name(t1_name);teacher.setIdcard(idcard1);teacher.setT_number(t1_number);int i = midi.addTeacher(teacher);if (i != 0) {JOptionPane.showMessageDialog(frame, "添加成功");frame.setVisible(false);// 先关闭new ManageFrame().main(null);// 再重新运行该类实现刷新}}} else if (e.getSource() == btnNewButton_1) {if (textField_3.getText().equals("") || textField_4.getText().equals("")|| textField_5.getText().equals("")) {//判断所有文本框都不可为空JOptionPane.showMessageDialog(frame, "请填写完整修改信息");} else {String t2_name = textField_3.getText();String idcard2 = textField_4.getText();String t2_number = textField_5.getText();List<Teacher_Inf> listteach = midi.getTeacherName(idcard2);if (listteach.isEmpty()) {// 判断返回的集合是否为空值JOptionPane.showMessageDialog(frame, "你输入的教职工号不存在");} else {teacher.setT_name(t2_name);teacher.setT_number(t2_number);teacher.setIdcard(idcard2);int i = midi.updateTeacher(teacher);if (i != 0) {JOptionPane.showMessageDialog(frame, "修改成功");frame.setVisible(false);new ManageFrame().main(null);}}}} else if (e.getSource() == btnNewButton_2) {if (textField_6.getText().equals("")) {JOptionPane.showMessageDialog(frame, "请填写删除教师教职工号");} else {String idcard3 = textField_6.getText();int idcard4 = Integer.parseInt(idcard3);List<Teacher_Inf> listteach2 = midi.getTeacherName(idcard3);if (listteach2.isEmpty()) {JOptionPane.showMessageDialog(frame, "您输入的教职工号不存在");} else {int i = midi.deleteTeacher(idcard4);if (i != 0) {JOptionPane.showMessageDialog(frame, "删除成功");frame.setVisible(false);new ManageFrame().main(null);}}}} else if (e.getSource() == btnNewButton_3) {textField.setText("");textField_1.setText("");textField_2.setText("");} else if (e.getSource() == btnNewButton_4) {textField_3.setText("");textField_4.setText("");textField_5.setText("");} else if (e.getSource() == btnNewButton_5) {String selteach = textField_7.getText();if (selteach.equals("")) {JOptionPane.showMessageDialog(frame, "请输入教职工号");} else {List<Teacher_Inf> res = midi.getTeacherName(selteach);TableModel dataModel = getDataModel(selteach);table_2.setModel(dataModel);}} else if (e.getSource() == btnNewButton_6) {frame.setVisible(false);new ManageFrame().main(null);}}

至此,该学生信息管理系统的基本功能与界面展示完毕。如对您有所帮助,望留下宝贵一赞!谢谢!

print('加q:'+'1'+'3'+'5'+'1'+'0'+'9'+'7'+'4'+'3'+'1')

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。