资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
成都东软信息技术职业学院期末项目报告项目名称:学生管理系统系 别:计算机科学与技术系年级专业:xx级软件技术班 级:x学 号:xx学生姓名:xxxx年 xx 月 xx 日 / 文档可自由编辑打印1. 项目内容及知识应用1.1项目完成内容 首先实现登录模块,分为教室登录和学生登录 登录界面有一个下拉条分别为学生和教师,选中哪一个就会登录到相应的界面 学生管理系统分为两大块:学生和教师两个模块 学生登录后进入学生界面,学生界面有菜单项和按钮 学生界面里面有查询自己的成绩,查询自己的详细信息,还可以修改密码,修改自己的信息,菜单项还有帮助等按钮 教师界面里面可以增加学生,显示所有学生的成绩,查找学生,查询学生的详细信息,删除学生的成绩和删除学生,还有刷新和退出等功能 教室界面当点击选中学生时在上面的标签面板会显示学生的详细信息,当查询学生的详细信息时会之间进入该学生的学生面板,教师就可以对学生的信息进行修改 刚登录教师界面时系统启用了另外一个线程,会默认加载所有的学生成绩和信息,当教师点击“显示所有成绩”时就会马上把学生成绩的面板显示在界面上,所有教师就无需等待系统加载 教师界面当老师点击刷新时,会再启动一个线程来重新把学生的信息加载到内存然后显示到界面上 教师界面的成绩表中还有总分和平均分,系统加载的时候会自动计算每一个学生的总分和平均分 教师还可以直接在成绩表中修改学生的成绩,用以来会很方便,修改成绩后要点击刷新按钮来刷新总分和平均分 教室界面还增加了班级的分类,可以查看所有的班级,也可以查看一个班级的学生信息 学生管理系统还增加了上传照片的功能,每个学生都可以上传自己的照片,老师也可以帮学生上传照片1.2知识(点)应用以及经验总结 该学生管理系统采用了分层的思想而且参考了MVC设计模式,但是都做得不够完美。 该系统分为业务逻辑层、实体层和显示层:n 业务逻辑层(com.ccniit.student.manage)有StudentManage、GradeManage、PasswordNotFountException、StduentNotFountException和GradeNotFountException。先写了一个工具类(DBConnection),负责与数据库的连接,业务逻辑层联系数据库实体、显示层。进行综合的控制与处理。这里自定义了几个异常类,主要是抛出无法找到相应类的异常。这样就可以返回多个结果。n 实体层(com.ccniit.student)有两个类Student和Grade,是根据数据库里面的表来实现的,字段就是实体里面的属性还有所有属性的get和set方法,也可以写几个构造方法,没有其他的方法。业务逻辑层就操作这两个类。n 显示层(com.ccniit.student.view)有Login、StduentGrade、Teacher、ImagePanel、ShowImage、Uploading这六个类。主要是负责显示给客户,用于和客户交互信息。所有学生成绩用一个表来显示,Teacher类有另外一个线程来读取所有学生的成绩,在表中教师可以直接在表中修改学生的成绩,修改过后系统会自动修改数据库的数据,来实现动态修改。n 显示层主要是添加的内部匿名监听,由于会有重复监听所以大部分监听都分别写了一个方法,来调用这个方法。n 每个学生都可以上传自己的照片,在有照片的情况下,老师可以看到学生的照片这样可以让老师更快的认识每一个学生,点击学生的照片可以放大该学生的照片,点击别的地方该放大的照片就会消失 该系统主要用到的知识有:n 流程控制n 类和对象n 类的继承n 接口和多态n 数组n 顺序表n 数据库编程n 常用的GUI组件n JTablen 多线程n 事件处理2. 项目实现及关键代码(各个功能界面截图+代码说明,代码为关键代码并加入注释)系统流程图StduentManage/GradeManage(逻辑处理层)DBConnectionLogin / Teacher / StduentGrade (显示层)Stduent / Grade(数据模型)Uploading / ShowImage / ImagePanel(显示层辅助类)数据库(数据持久层)类包层功能DBConnectioncom.ccniit.student.util逻辑连接数据库Studentcom.ccniit.student模型保存学生对象Gradecom.ccniit.student模型保存成绩对象StduentManagecom.ccniit.student.manage逻辑操作学生对象GradeManagecom.ccniit.student.manage逻辑操作成绩对象StudentNotFoundExceptioncom.ccniit.student.manage逻辑当学生找不到时抛出此异常GradeNotFoundExceptioncom.ccniit.student.manage逻辑当成绩找不到时抛出此异常PasswordNotFoundExceptioncom.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类说明:此类是一个学生的模型类,提供了学生的属性和get、set方法,便于StudentManage来操作还提供了几个构造方法。com.ccniit.student.Grade类说明: 此类是成绩模型类,提供了成绩的属性和get、set方法和几个构造方法,便于GradeManage来操作。com.ccniit.student.util.DBConnection类说明:这个类的功能是与底层数据库创建连接给逻辑处理层,还有关闭连接的相关功能。/管理与数据库的连接public class DBConnection static try Class.forName(com.microsoft.sqlserver.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 closePstmt(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 != null) 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;PreparedStatement 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.getStudentID();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.executeUpdate() 0) flag = true; catch (SQLException e) e.printStackTrace(); finally DBConnection.closePstmt(pstmt);DBConnection.clo
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号