ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:84.92KB ,
资源ID:4980369      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4980369.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java学生管理系统总结报告.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java学生管理系统总结报告.docx

1、java学生管理系统总结报告成都东软信息技术职业学院期末项目报告项目名称:学生管理系统系 别:计算机科学与技术系年级专业:xx级软件技术班 级:x学 号:xx学生姓名:xxxx年 xx 月 xx 日1. 项目内容及知识应用1.1项目完成内容 首先实现登录模块,分为教室登录和学生登录 登录界面有一个下拉条分别为学生和教师,选中哪一个就会登录到相应的界面 学生管理系统分为两大块:学生和教师两个模块 学生登录后进入学生界面,学生界面有菜单项和按钮 学生界面里面有查询自己的成绩,查询自己的详细信息,还可以修改密码,修改自己的信息,菜单项还有帮助等按钮 教师界面里面可以增加学生,显示所有学生的成绩,查找

2、学生,查询学生的详细信息,删除学生的成绩和删除学生,还有刷新和退出等功能 教室界面当点击选中学生时在上面的标签面板会显示学生的详细信息,当查询学生的详细信息时会之间进入该学生的学生面板,教师就可以对学生的信息进行修改 刚登录教师界面时系统启用了另外一个线程,会默认加载所有的学生成绩和信息,当教师点击“显示所有成绩”时就会马上把学生成绩的面板显示在界面上,所有教师就无需等待系统加载 教师界面当老师点击刷新时,会再启动一个线程来重新把学生的信息加载到内存然后显示到界面上 教师界面的成绩表中还有总分和平均分,系统加载的时候会自动计算每一个学生的总分和平均分 教师还可以直接在成绩表中修改学生的成绩,用

3、以来会很方便,修改成绩后要点击刷新按钮来刷新总分和平均分 教室界面还增加了班级的分类,可以查看所有的班级,也可以查看一个班级的学生信息 学生管理系统还增加了上传照片的功能,每个学生都可以上传自己的照片,老师也可以帮学生上传照片1.2知识(点)应用以及经验总结 该学生管理系统采用了分层的思想而且参考了MVC设计模式,但是都做得不够完美。 该系统分为业务逻辑层、实体层和显示层: 业务逻辑层(com.ccniit.student.manage)有StudentManage、GradeManage、PasswordNotFountException、StduentNotFountException和G

4、radeNotFountException。先写了一个工具类(DBConnection),负责与数据库的连接,业务逻辑层联系数据库实体、显示层。进行综合的控制与处理。这里自定义了几个异常类,主要是抛出无法找到相应类的异常。这样就可以返回多个结果。 实体层(com.ccniit.student)有两个类Student和Grade,是根据数据库里面的表来实现的,字段就是实体里面的属性还有所有属性的get和set方法,也可以写几个构造方法,没有其他的方法。业务逻辑层就操作这两个类。 显示层(com.ccniit.student.view)有Login、StduentGrade、Teacher、Ima

5、gePanel、ShowImage、Uploading这六个类。主要是负责显示给客户,用于和客户交互信息。所有学生成绩用一个表来显示,Teacher类有另外一个线程来读取所有学生的成绩,在表中教师可以直接在表中修改学生的成绩,修改过后系统会自动修改数据库的数据,来实现动态修改。 显示层主要是添加的内部匿名监听,由于会有重复监听所以大部分监听都分别写了一个方法,来调用这个方法。 每个学生都可以上传自己的照片,在有照片的情况下,老师可以看到学生的照片这样可以让老师更快的认识每一个学生,点击学生的照片可以放大该学生的照片,点击别的地方该放大的照片就会消失 该系统主要用到的知识有: 流程控制 类和对象

6、 类的继承 接口和多态 数组 顺序表 数据库编程 常用的GUI组件 JTable 多线程 事件处理2. 项目实现及关键代码(各个功能界面截图+代码说明,代码为关键代码并加入注释)系统流程图StduentManage/GradeManage(逻辑处理层)DBConnectionLogin / Teacher / StduentGrade (显示层)Stduent / Grade(数据模型)Uploading / ShowImage / ImagePanel(显示层辅助类)数据库(数据持久层)类包层功能DBConnectioncom.ccniit.student.util逻辑连接数据库Studen

7、tcom.ccniit.student模型保存学生对象Gradecom.ccniit.student模型保存成绩对象StduentManagecom.ccniit.student.manage逻辑操作学生对象GradeManagecom.ccniit.student.manage逻辑操作成绩对象StudentNotFoundExceptioncom.ccniit.student.manage逻辑当学生找不到时抛出此异常GradeNotFoundExceptioncom.ccniit.student.manage逻辑当成绩找不到时抛出此异常PasswordNotFoundExceptioncom

8、.ccniit.student.manage逻辑当密码找不到时抛出此异常Logincom.ccniit.student.view显示显示登录界面Teachercom.ccniit.student.view显示显示教师界面StudentGradecom.ccniit.student.view显示显示学生界面ImagePanelcom.ccniit.student.view显示读取图片ShowImagecom.ccniit.student.view显示显示放大的图片Uploadingcom.ccniit.student.view显示上传图片com.ccniit.student.Stduent类说明

9、:此类是一个学生的模型类,提供了学生的属性和get、set方法,便于StudentManage来操作还提供了几个构造方法。com.ccniit.student.Grade类说明: 此类是成绩模型类,提供了成绩的属性和get、set方法和几个构造方法,便于GradeManage来操作。com.ccniit.student.util.DBConnection类说明:这个类的功能是与底层数据库创建连接给逻辑处理层,还有关闭连接的相关功能。/管理与数据库的连接public class DBConnection static try Class.forName(com.microsoft.sqlserv

10、er.jdbc.SQLServerDriver); catch (ClassNotFoundException e) e.printStackTrace(); public static Connection getConn() throws SQLException Connection conn = DriverManager.getConnection( jdbc:sqlserver:/localhost:1433;databaseName = studentManage, sa, 580000); return conn; /数据库关闭的方法 public static void cl

11、osePstmt(PreparedStatement pstmt) if (pstmt != null) try pstmt.close(); catch (SQLException e) e.printStackTrace(); public static ResultSet executeQuery(PreparedStatement pstmt) throws SQLException ResultSet rs = pstmt.executeQuery(); return rs; public static void closeRs(ResultSet rs) if (rs != nul

12、l) try rs.close(); catch (SQLException e) e.printStackTrace(); com.ccniit.student.manage.StudentManage类说明:此类是逻辑处理层里面的学生管理类,有添加学生、删除学生、修改学生信息、检查学生是否登录成功、查找学生等方法,显示层可以直接调用这些方法来实现需要的功能。其中查找方法是有方法的组合。public class StudentManage / 添加学生 public static boolean add(Student s) Connection conn = null; PreparedS

13、tatement pstmt = null; boolean flag = false; try conn = DBConnection.getConn(); String sql = insert into student(studentID, studentName, password, sex, birth, phone, qq, homeAddr, entranceTime) values(?, ?, ?, ?, ?, ?, ?, ?, ?); pstmt = DBConnection.getPstmt(conn, sql); pstmt.setString(1, s.getStude

14、ntID(); pstmt.setString(2, s.getStudentName(); pstmt.setString(3, s.getPassword(); pstmt.setString(4, s.getSex(); pstmt.setDate(5, s.getBirth(); pstmt.setString(6, s.getPhone(); pstmt.setString(7, s.getQq(); pstmt.setString(8, s.getHomeAddr(); pstmt.setDate(9, s.getEntranceTime(); if (pstmt.executeU

15、pdate() 0) flag = true; catch (SQLException e) e.printStackTrace(); finally DBConnection.closePstmt(pstmt); DBConnection.closeConn(conn); return flag; / 修改学生信息 public static boolean update(Student s) Connection conn = null; PreparedStatement pstmt = null; boolean flag = false; try conn = DBConnectio

16、n.getConn(); String sql = update student set studentName = ?, password = ?, sex = ?, birth = ?, phone = ?, qq = ?, homeAddr = ?, entranceTime = ? where studentID = ?; pstmt = DBConnection.getPstmt(conn, sql); pstmt.setString(1, s.getStudentName(); pstmt.setString(2, s.getPassword(); pstmt.setString(

17、3, s.getSex(); pstmt.setDate(4, s.getBirth(); pstmt.setString(5, s.getPhone(); pstmt.setString(6, s.getQq(); pstmt.setString(7, s.getHomeAddr(); pstmt.setDate(8, s.getEntranceTime(); pstmt.setString(9, s.getStudentID(); if (pstmt.executeUpdate() 0) flag = true; catch (SQLException e) e.printStackTra

18、ce(); finally DBConnection.closePstmt(pstmt); DBConnection.closeConn(conn); return flag; / 检查学生登录是否成功 public static Student check(String studentID, String password) throws StudentNotFoundException, PasswordNotCorrectException Student student = null; Connection conn = null; PreparedStatement pstmt =

19、null; ResultSet rs = null; try conn = DBConnection.getConn(); String sql = select * from student where studentID = ?; pstmt = DBConnection.getPstmt(conn, sql); pstmt.setString(1, studentID); rs = DBConnection.executeQuery(pstmt); if (!rs.next() throw new StudentNotFoundException(); else if (!rs.getS

20、tring(password).trim().equals(password) / System.out.println(rs.getString(password); / System.out.println(password); throw new PasswordNotCorrectException(); else student = new Student(rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getDate(5), rs.getString(6), rs.getString(7)

21、, rs.getString(8), rs.getDate(9); catch (SQLException e) e.printStackTrace(); finally DBConnection.closeRs(rs); DBConnection.closePstmt(pstmt); DBConnection.closeConn(conn); return student; com.ccniit.student.manage.GradeManage类说明:此类是逻辑处理层里面的成绩管理类,有添加成绩、删除成绩、修改成绩、查找成绩等方法,显示层可以直接调用这些方法来实现需要的功能。其中查找方法

22、是有方法的组合。com.ccniit.student.view.Login类说明:此类是显示层的登录界面,此界面类似一个对话框,但是他是继承JFrame,分为两个模块:学生登录和教师登录。有一个下拉条可以选择是学生登录还是教师登录,当选择学生登录时,会登录进入学生界面,当选择教师登录时会进入教师界面。 /添加登录界面的角色选择监听 jcbPost.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if (jcbPost.getSelectedItem().equals(学生) jl

23、Login.setText(学生登录); jlID.setText(学号:); else jlLogin.setText(教师登录); jlID.setText(教师号:); ); add(jcbPost); /监听登录按钮 jbLogin.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) /由于一般就是一个教师修改学生信息,所以教师没有建表,所有的教师都通过一个id号和密码登录 if (jcbPost.getSelectedItem().equals(教师) if (jtfID.

24、getText().trim().equals(jiaoshi) & String.valueOf(jpfPassword.getPassword().trim().equals(jiaoshi) setVisible(false); new Teacher().setVisible(true); else JOptionPane.showMessageDialog(Login.this, 登录失败!教师号:jiaoshi 密码:jiaoshi.); else String id = jtfID.getText().trim(); String password = String.valueO

25、f(jpfPassword.getPassword().trim(); if (.equals(id) JOptionPane.showMessageDialog(Login.this, 请输入学号!); return; else if (.equals(password) JOptionPane.showMessageDialog(Login.this, 请输入密码!); return; try /检查学生登录是否正确,会抛出下面的两种异常,返回登录的学生信息,传递给StudentGrade类 Student student = StudentManage.check(id, passwor

26、d); setVisible(false); new StudentGrade(student, false).setVisible(true); catch (StudentNotFoundException e1) JOptionPane.showMessageDialog(Login.this, 学号不存在!); catch (PasswordNotCorrectException e1) JOptionPane.showMessageDialog(Login.this, 密码错误!); ); com.ccniit.student.view.StduentGrade类说明:此类是显示层的

27、学生成绩界面,有菜单栏、内容窗口、功能按钮,此界面的功能是查询登录学生的成绩,查询学生的个人详细信息,修改个人信息,修改密码等功能。还新创建了一个线程来读取学生的成绩和信息,此线程是一个内部类,有一个修改密码的小窗口是一个内部类继承了JDialog,修改信息的内部类小窗口继承了JDialog。学生还可以上传自己的照片,修改自己上传的照片,上传后学生就能看到自己的照片,但是学生不能修改自己的班级和入学时间,这两项老师可以修改。部分界面如下图所示:还有一些关键代码: / 声明一个线程来默认读取学生的成绩信息 private class LoadThread implements Runnable

28、public void run() int records = GradeManage.findByID(grades, student.getStudentID(); Object columnNames = 课程名称, 学期, 学年, 分数 ; Object rowData = new ObjectrecordscolumnNames.length; for (int i = 0; i grades.size(); i+) Grade grade = grades.get(i); rowDatai0 = grade.getCourseName(); rowDatai1 = grade.getSemester(); rowDatai2 = grade.getSchoolYear(); rowDatai3 = grade.getGrade(); table = new JTable(rowData, columnName

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1