学生成绩查询管理系统的设计与开发报告.docx
- 文档编号:11942055
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:29
- 大小:952.30KB
学生成绩查询管理系统的设计与开发报告.docx
《学生成绩查询管理系统的设计与开发报告.docx》由会员分享,可在线阅读,更多相关《学生成绩查询管理系统的设计与开发报告.docx(29页珍藏版)》请在冰豆网上搜索。
学生成绩查询管理系统的设计与开发报告
生产实习报告
学院:
信息科学与工程学院
专业:
软件工程
班级:
15-1班
学号:
3152012011124
指导教师:
杨铁军
实习时间:
2018.9.3—2018.9.28
2018年10月11日
1、项目背景
学生成绩管理系统(StudentScoreManagerWeb)是一个学校不可缺少的部分,传统的人工管理档案的方式存在着很多的缺点,如:
效率低、保密性差等,所以开发一套综合教务系统管理软件很有必要,它应该具有传统的手工管理所无法比拟的优点,如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大的提高学校的管理效率,有助于推进学校的信息化建设。
其次,学生成绩管理系统极大提高了工作效率,大大减少了以往的操作方式,为使用者带来了很多方便。
学校学生管理系统,查找方便,管理方便,而且一些参数还可以手动修改。
通过分析学校学生管理工作的某些不足,我们设计了一个功能全面的学生信息管理系统,该系统主要功能:
学期管理,院系管理,教师管理,班级管理,学生管理,课程管理,登录日志,成绩管理,成绩分析。
当今时代是飞速发展的信息时代。
在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于它能够进行信息管理。
使用计算机进行信息控制,不仅能提高工作效率,而且大大的提高了其安全性。
尤其对于复杂信息的处理,计算机能够充分发挥它的优越性。
2、技术选型与开发环境
系统环境:
Windows
开发工具:
Eclipse
Java版本:
JDK1.7
服务器:
tomcat7.0
数据库:
MySQL5.1
系统采用技术:
Servlet+Jsp+Jdbc+H-ui+EasyUI+jQuery+Ajax+面向接口编程
3、需求分析
该学生成绩管理系统涉及到学生、教师、系统管理员、班级、学生成绩、课程。
设置一个系统管理员对系统进行管理。
所有用户需输入账号、密码登录进入系统;管理员(admin)进入系统后可对学生、老师、班级、课程进行增删改查操作,对成绩进行统计分析,查看学生的请假和缺勤信息;学生(student)进入系统,查看成绩、查看考勤、请假和修改自己的信息;老师(teacher)进入系统后,对自己这门课程的学生设置课程成绩、查看和修改自己的信息,查看学生的信息和成绩、批改学生的请假申请、查看学生的考勤记录以及统计分析学生的成绩;
管理员为班级设置年级,为年级设置课程,为班级的每门课程设置老师,为学生设置班级。
一个年级有多门课程(数据结构、计算机网络、数据库等等),班级的每门课程只能有一名老师,一个老师可以有多门课程;老师选择自己这门课程为该课程的学生登记成绩。
老师可以查看其他老师的信息(可以当成是老师的通讯录),查看本课程学生的信息和成绩;学生可以查看班级其他同学的信息(可以看成是班级的同学录)。
考试分为两种,一种是年级统考,一种是平时考试。
年级统考需要管理员事先添加一次年级统考,考试成绩出来后,老师进入系统选择该次考试为学生登记成绩。
平时考试则是班级平时的考试,老师添加考试信息,登记成绩。
成绩统计分析则是针对年级统考进行分析,主要涉及各学科分数名次,总分名次。
4、系统功能菜单
管理员功能菜单
学生信息管理
学生列表
教师信息管理
教师列表
班级信息管理
班级列表
年级列表
课程信息管理
课程列表
考勤信息管理
请假信息管理
成绩统计分析
考试列表
系统管理
修改密码
系统设置
退出系统
学生功能菜单
学生信息管理
选课信息管理
教学管理
学生成绩查询
考勤信息管理
请假信息管理
系统管理
个人信息
修改密码
退出系统
教师功能菜单
教学管理
班级信息管理考勤信息管理
教师信息管理请假信息管理
课程信息管理成绩信息管理
选课信息管理
系统管理
个人信息
修改密码
退出系统
5、系统设计
系统用户(user)
字段
类型
注释
id
int
ID
account
String
账号(学生和老师的学号即为账号)
password
String
密码
type
int
账号类型(1为管理员,2为学生,3为老师)
对象设计
学生(Student)
字段
类型
注释
id
int
ID
number
String
学号
name
String
姓名
sex
String
性别
phone
String
电话
String
photo
String
照片路径
clazz
Clazz
学生所在班级
老师(Teacher)
字段
类型
注释
id
int
ID
number
String
工号
name
String
姓名
sex
String
性别
phone
String
电话
String
photo
String
照片路径
courseList
List
所选课程集合
课程(Course)
字段
类型
注释
id
int
ID值
name
String
课程名称
年级(Grade)
字段
类型
注释
id
int
ID值
name
String
年级名称
clazzList
List
该年级下的班级
courseList
List
该年级的课程集合
studentList
List
该年级下的学生集合
班级(Clazz)
字段
类型
注释
id
int
ID
name
String
班级名称
grade
Grade
年级
studentList
List
班级的学生集合
考试(Exam)
字段
类型
注释
id
int
ID
name
String
考试名称
time
Date
考试时间
remark
String
备注
grade
Grade
年级
clazz
Clazz
班级(平时考试涉及到某个班级,统考则为所有班级)
type
int
考试类型,默认1(1为年级统考,2为平时考试)
考试成绩(EScore)
字段
类型
注释
id
int
记录的id值
exam
Exam
考试
clazz
Clazz
班级
course
Course
课程
student
Student
学生
score
int
该门课程的成绩
•数据表设计
系统用户表(user)
字段名
类型
是否主键
是否为空
说明
id
int
是
否
主键值
account
varchar(30)
否,不能重复,管理员账号,教师工号,或学生学号
账号
password
varchar(30)
否
密码
name
varchar(20)
用户姓名
type
tinyint
否
用户类型,默认2(1为管理员,2为学生,3为老师)
学生表(student)
字段名
类型
是否主键
是否为空
说明
id
int
是
否
主键值
number
varchar(20)
学号
name
varchar(20)
姓名
sex
varchar(4)
性别
phone
varchar(20)
电话
varchar(20)
photo
varchar(200)
照片路径
clazzid
int
外键(班级ID)
班级ID
教师表(teacher)
字段名
类型
是否主键
是否为空
说明
id
int
是
否
主键值
number
varchar(20)
工号
name
varchar(20)
姓名
sex
varchar(4)
性别
phone
varchar(20)
电话
varchar(20)
photo
varchar(200)
照片路径
课程表(course)
字段名
类型
是否主键
是否为空
说明
id
int
是
否
主键值
name
varchar(50)
否
课程名称
年级(grade)
字段名
类型
是否主键
是否为空
说明
id
int
是
否
主键值
name
varchar(50)
否
课程名称
班级(clazz)
字段名
类型
是否主键
是否为空
说明
id
int
是
否
主键值
name
varchar(50)
否
课程名称
gradeid
int
外键(年级ID)
年级ID
年级-课程(grade_course)
字段名
类型
是否主键
是否为空
说明
id
int
是
否
主键值
gradeid
int
外键(年级ID)
年级ID
courseid
int
外键(课程ID)
课程ID
班级-课程-老师(clazz_course_teacher)
字段名
类型
是否主键
是否为空
说明
id
int
是
否
主键值
clazzid
int
外键(clazz.id)
班级ID
courseid
int
外键(grade_course.cid)
课程ID
teacherid
int
外键(teacher.id)
教师ID
考试表(exam)
字段名
类型
是否主键
是否为空
说明
id
int
是
否
主键值
name
varchar(50)
考试名称
time
Date
考试时间
remark
varchar(200)
备注
type
tinyint
(1)
考试类型,默认1(1为年级统考,2为平时考试)
gradeid
int
外键(grade.id)
年级ID
clazzid
int
外键(clazz.id)
班级ID
考试成绩表(escore)
字段名
类型
是否主键
是否为空
说明
id
int
是
否
主键值
examid
int
外键(exam.id)
考试ID
studentid
int
外键(student.id)
学生ID
clazzid
int
外键(clazz.id)
班级ID
courseid
int
外键(grade_course.id)
课程ID
score
int
默认0
成绩
考勤表
考勤表(sleave)
字段名
类型
是否主键
是否为空
说明
id
int
是
否
主键值
Student_id
int
外键(exam.id)
学生ID
Info
Varchar
外键(student.id)
学生请假信息
status
tinyint
外键(clazz.id)
状态ID
remark
varchar
外键(grade_course.id)
许可ID
6、界面设计
登录界面:
6.1管理员角色
管理员主界面:
管理员——学生列表管理:
管理员——选课信息管理:
管理员——考勤信息管理:
管理员-------成绩信息界面:
管理员-------添加成绩信息界面:
、
管理员——导入成绩信息界面:
管理员——成绩导出Excel界面:
管理员——修改成绩信息界面:
管理员——删除成绩界面:
管理员——统计成绩页面:
6.2教师界面
教师——教师信息界面:
教师——管理班级信息界面
教师——修改教师信息界面:
管理员——课程信息管理界面:
教师——考勤信息管理
教师——请假信息管理
教师——成绩信息管理
系统管理
6.3学生界面
学生登录主界面:
学生——选择课程界面:
学生——考勤信息界面:
学生——显示课表界面:
学生——我的成绩单:
学生——密码修改界面:
7、关键技术的介绍
7.1使用Servlet和Ajax实现点击不同的选项,在左侧面板中显示不同的界面。
URL具体代码如下:
var_menus={"menus":
[
{"menuid":
"2","icon":
"","menuname":
"学生信息管理",
"menus":
{"menuid":
"21","menuname":
"学生列表","icon":
"icon-user-student","url":
"StudentServlet?
method=toStudentListView"},
]
},
iftest="${userType==1||userType==3}"> "menuid": "4","icon": "","menuname": "班级信息管理", "menus": [ {"menuid": "42","menuname": "班级列表","icon": "icon-house","url": "ClazzServlet? method=toClazzListView"} ] },
if>
iftest="${userType==1||userType==3}"> {"menuid": "3","icon": "","menuname": "教师信息管理", "menus": [ {"menuid": "31","menuname": "教师列表","icon": "icon-user-teacher","url": "TeacherServlet? method=toTeacherListView"}, ] },
if>
iftest="${userType==1||userType==3}"> {"menuid": "6","icon": "","menuname": "课程信息管理", "menus": [ {"menuid": "61","menuname": "课程列表","icon": "icon-book-open","url": "CourseServlet? method=toCourseListView"}, ] },
if>
{"menuid":
"7","icon":
"","menuname":
"选课信息管理",
"menus":
[
{"menuid":
"71","menuname":
"选课列表","icon":
"icon-book-open","url":
"SelectedCourseServlet?
method=toSelectedCourseListView"},
]
},
{"menuid":
"8","icon":
"","menuname":
"考勤信息管理",
"menus":
[
{"menuid":
"81","menuname":
"考勤列表","icon":
"icon-book-open","url":
"AttendanceServlet?
method=toAttendanceServletListView"},
]
},
{"menuid":
"9","icon":
"","menuname":
"请假信息管理",
"menus":
[
{"menuid":
"91","menuname":
"请假列表","icon":
"icon-book-open","url":
"LeaveServlet?
method=toLeaveServletListView"},
]
},
{"menuid":
"10","icon":
"","menuname":
"成绩信息管理",
"menus":
[
{"menuid":
"101","menuname":
"成绩列表","icon":
"icon-book-open","url":
"ScoreServlet?
method=toScoreListView"},
iftest="${userType==1||userType==3}"> {"menuid": "101","menuname": "成绩统计","icon": "icon-book-open","url": "ScoreServlet? method=toScoreStatsView"},
if>
]
},
{"menuid":
"5","icon":
"","menuname":
"系统管理",
"menus":
[
{"menuid":
"51","menuname":
"修改密码","icon":
"icon-set","url":
"SystemServlet?
method=toPersonalView"},
]
}
]};
7.2成绩录入与查询设计功能实现
privatevoidgetScoreList(HttpServletRequestrequest,
HttpServletResponseresponse){
//TODOAuto-generatedmethodstub
intstudentId=request.getParameter("studentid")==null?
0:
Integer.parseInt(request.getParameter("studentid").toString());
intcourseId=request.getParameter("courseid")==null?
0:
Integer.parseInt(request.getParameter("courseid").toString());
IntegercurrentPage=request.getParameter("page")==null?
1:
Integer.parseInt(request.getParameter("page"));
IntegerpageSize=request.getParameter("rows")==null?
999:
Integer.parseInt(request.getParameter("rows"));
Scorescore=newScore();
//获取当前的用户类型
intuserType=Integer.parseInt(request.getSession().getAttribute("userType").toString());
if(userType==2){
//如果是学生,那只能查看自己的信息
StudentcurrentUser=(Student)request.getSession().getAttribute("user");
studentId=currentUser.getId();
}
score.setCourseId(courseId);
score.setStudentId(studentId);
ScoreDaoscoreDao=newScoreDao();
List
inttotal=scoreDao.getScoreListTotal(score);
scoreDao.closeCon();
response.setCharacterEncoding("UTF-8");
Map
ret.put("total",total);
ret.put("rows",courseList);
try{
Stringfrom=request.getParameter("from");
if("combox".equals(from)){
response.getWriter().write(JSONArray.fromObject(courseList).toString());
}else{
response.getWriter().write(JSONObject.fromObject(ret).toString());
}
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
privatevoidaddScore(HttpServletRequestrequest,
HttpServletResponseresponse){
//TODOAuto-generatedmethodstub
intstudentId=request.getParameter("studentid")==null?
0:
Integer.parseInt(request.getParameter("studentid").toString());
intcourseId=request.getParameter("courseid")==null?
0:
Integer.p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩 查询 管理 系统 设计 开发 报告