java学生管理系统总结报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成都东软信息技术职业学院期末项目报告
项目名称:学生管理系统
系别:计算机科学与技术系
年级专业:xx级软件技术
班级:x
学号:xx
学生姓名:xx
xx年 xx 月 xx 日
1.项目内容及知识应用
1.1项目完成内容
➢首先实现登录模块,分为教室登录和学生登录
➢登录界面有一个下拉条分别为学生和教师,选中哪一个就会登录到相应的界面
➢学生管理系统分为两大块:学生和教师两个模块
➢学生登录后进入学生界面,学生界面有菜单项和按钮
➢学生界面里面有查询自己的成绩,查询自己的详细信息,还可以修改密码,修改自己的信息,菜单项还有帮助等按钮
➢教师界面里面可以增加学生,显示所有学生的成绩,查找学生,查询学生的详细信息,删除学生的成绩和删除学生,还有刷新和退出等功能
➢教室界面当点击选中学生时在上面的标签面板会显示学生的详细信息,当查询学生的详细信息时会之间进入该学生的学生面板,教师就可以对学生的信息进行修改
➢刚登录教师界面时系统启用了另外一个线程,会默认加载所有的学生成绩和信息,当教师点击“显示所有成绩”时就会马上把学生成绩的面板显示在界面上,所有教师就无需等待系统加载
➢教师界面当老师点击刷新时,会再启动一个线程来重新把学生的信息加载到内存然后显示到界面上
➢教师界面的成绩表中还有总分和平均分,系统加载的时候会自动计算每一个学生的总分和平均分
➢教师还可以直接在成绩表中修改学生的成绩,用以来会很方便,修改成绩后要点击刷新按钮来刷新总分和平均分
➢教室界面还增加了班级的分类,可以查看所有的班级,也可以查看一个班级的学生信息
➢学生管理系统还增加了上传照片的功能,每个学生都可以上传自己的照片,老师也可以帮学生上传照片
1.2知识(点)应用以及经验总结
➢该学生管理系统采用了分层的思想而且参考了MVC设计模式,但是都做得不够完美。
➢该系统分为业务逻辑层、实体层和显示层:
⏹业务逻辑层(niit.student.manage)有StudentManage、
GradeManage、PasswordNotFountException、StduentNotFountException
和GradeNotFountException。先写了一个工具类(DBConnection),负
责与数据库的连接,业务逻辑层联系数据库实体、显示层。进行综合的
控制与处理。这里自定义了几个异常类,主要是抛出无法找到相应类的
异常。这样就可以返回多个结果。
⏹实体层(niit.student)有两个类Student和Grade,是根据数
据库里面的表来实现的,字段就是实体里面的属性还有所有属性的get
和set方法,也可以写几个构造方法,没有其他的方法。业务逻辑层就
操作这两个类。
⏹显示层(niit.student.view)有Login、StduentGrade、Teacher、
ImagePanel、ShowImage、Uploading这六个类。主要是负责显示给客户,用于和客户交互信息。所有学生成绩用一个表来显示,Teacher类有另
外一个线程来读取所有学生的成绩,在表中教师可以直接在表中修改学
生的成绩,修改过后系统会自动修改数据库的数据,来实现动态修改。
⏹显示层主要是添加的内部匿名监听,由于会有重复监听所以大部分监听
都分别写了一个方法,来调用这个方法。
⏹每个学生都可以上传自己的照片,在有照片的情况下,老师可以看到学
生的照片这样可以让老师更快的认识每一个学生,点击学生的照片可以
放大该学生的照片,点击别的地方该放大的照片就会消失
➢该系统主要用到的知识有:
⏹流程控制
⏹类和对象
⏹类的继承
⏹接口和多态
⏹数组
⏹顺序表
⏹数据库编程
⏹常用的GUI组件
⏹JTable
⏹多线程
⏹事件处理
2.项目实现及关键代码(各个功能界面截图+代码说明,代码为关键代码并加入注释)
系统流程图
niit.student..Stduent类
说明:此类是一个学生的模型类,提供了学生的属性和get、set方法,便于StudentManage 来操作还提供了几个构造方法。
niit.student.Grade类
说明:此类是成绩模型类,提供了成绩的属性和get、set方法和几个构造方法,便于GradeManage来操作。
niit.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();
}
}