一、整体设计

该系统基于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')

学生档案信息管理系统(Java实现)相关推荐

  1. (附源码)ssm高校学生档案信息管理系统 毕业设计 010936

    ssm高校学生档案信息管理系统 摘要 在社会快速发展的影响下,教育事业蓬勃发展,大大增加了学校的数量.多样性.教育质量等要求,使教育的管理和运营比过去更加困难.依照这一现实为基础,设计一个快捷而又方便 ...

  2. ssm高校学生档案信息管理系统 毕业设计- 附源码010936

    ssm高校学生档案信息管理系统 摘要 在社会快速发展的影响下,教育事业蓬勃发展,大大增加了学校的数量.多样性.教育质量等要求,使教育的管理和运营比过去更加困难.依照这一现实为基础,设计一个快捷而又方便 ...

  3. ssm高校学生档案信息管理系统毕业设计源码010936

    摘要 在社会快速发展的影响下,教育事业蓬勃发展,大大增加了学校的数量.多样性.教育质量等要求,使教育的管理和运营比过去更加困难.依照这一现实为基础,设计一个快捷而又方便的高校学生档案信息管理系统是一项 ...

  4. 学生档案信息管理系统java_基于jsp的学籍档案信息管理系统-JavaEE实现学籍档案信息管理系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的学籍档案信息管理系统, 该项目可用各类java课程设计大作业中, 学籍档案信息管理系统的系统架构分为前后台两部分, ...

  5. 学生档案信息管理系统java_基于JAVA的简单档案管理系统

    基于java的档案管理系统 项目技术组成:(Spring+SpringMVC+MyBatis+shiro+vue等等) [if !supportLists]1. [endif]系统管理 [if !su ...

  6. Jsp+MySQL学生学籍信息管理系统 Java毕业设计

    中学生学籍信息管理系统主要有三个访问权限.首先是管理员,管理员是整个系统的所有功能的管理者,有对学科.班级.教师.学生学籍信息.课表.学生身体素质以及教务公告的管理权限,可以对以上所有信息进行增删改查 ...

  7. java学籍管理系统课设报告,基于SSM+Redis+LayUI的大学生学籍信息管理系统-java学生学籍信息管理系统mysql数据源...

    "基于SSM+Redis+LayUI的大学生学籍信息管理系统-java学生学籍信息管理系统mysql数据源 1.包含源程序,数据库脚本.代码和数据库脚本都有详细注释. 2.课题设计仅供参考学 ...

  8. java毕业生设计学生学籍信息管理系统计算机源码+系统+mysql+调试部署+lw

    java毕业生设计学生学籍信息管理系统计算机源码+系统+mysql+调试部署+lw java毕业生设计学生学籍信息管理系统计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构:B/S ...

  9. 基于Java毕业设计学生学籍信息管理系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计学生学籍信息管理系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计学生学籍信息管理系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S ...

  10. 【课程设计】基于java GUI实现学生个人信息管理系统(源码+论文+ppt+视频)

    源码资料 免费下载 不经常在线,需要源码和资料的留言私信我,主页有联系方式 技术架构 开发语言 主要用的是Java语言中的GUI(图形用户界面)和AWT(抽象窗口工具包)编程. (1) GUI 图形用 ...

最新文章

  1. 接口性能测试实战小结
  2. 机器学习网站收集(to be continued)
  3. 在阿里干了五年,面试个小公司挂了…
  4. 怎样Interlocked.Increment一个反射得到的field?
  5. paip.lbmall 安装doc
  6. PS中新建文件的一些常用预设信息
  7. 西数绿盘的“C1门”!!!
  8. 饥荒联机版Mod开发——制作栏(九)
  9. 研究生应如何合理管理时间
  10. 对象存储(OSD)及架构原理
  11. C++实现控制台迷宫小游戏
  12. sklearn机器学习:随机森林学习与调参
  13. Oracle11g密码忘记
  14. 超详细的wireshark笔记(2)-wireshark的使用技巧
  15. jquery.fn jquery.extend jquery.fn.extend
  16. vue各类轮播图大全
  17. karaf学习 (2)
  18. 汉明码生成过程图文详解
  19. CDMA码分多址原理
  20. Emlog新版导航源码/带用户中心

热门文章

  1. 计算机在档案管理出现的问题,浅议档案管理中存在的问题及解决措施_档案管理员资格证...
  2. WM8978音频模块梳理
  3. 加拿大MSB牌照简介
  4. freekan电影网站制作教程
  5. 790. 数的三次方根 Java题解 (二分)
  6. Linux如何进BIOS看硬盘,bios模式下怎么看硬盘
  7. YouTube改进之transformer
  8. html中绑定点击事件的三种方法
  9. 2014.10.6模拟赛【魔兽争霸】
  10. 前端开发程序员的月薪到底有多高?