博主介绍:专注于Java .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了1000+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
基于Web的教学管理系统详细设计
1. 系统功能设计
基于Web的教学管理系统主要是实现网上选课、信息查询、个人信息修改等功能的系统。根据教学管理系统的基本需求和不同角色使用系统的权限不同,设定本系统的具体功能如下:
1、管理员功能:实现学生信息查询、教师信息查询、添加或删除学生、添加或删除教师、留言管理、公告管理、课程信息录入及修改等功能。
2、教师功能:实现学生成绩录入及修改、个人信息查询及修改、选择选课的学生、网上留言和查看公告等功能。
3、学生功能:实现网上选课、成绩查询、个人信息查询及修改、网上留言及查看公告等功能。
2. 系统功能模块
系统功能模块所下如所示:
3. 数据库设计与实现
3.1 数据库功能设计
依据教学管理系统的处理需求,对数据库表的设计及功能如下:
学生个人信息表:用于存放学生的基本信息。
教师个人信息表:用于存放教师的基本信息。
课程信息表:用于存放课程的基本信息。
学生成绩表:用于存放学生的成绩纪录。
选课情况表:用于存入学生的选课纪录。
留言信息表:用于存放所有人的留言纪录。
3.2 数据库概念结构设计
1、实体及其联系图:
2、系统流程图:
3.3 数据库逻辑结构设计
根据上面的E-R图,建立六张数据库表,其结构如下所示:
学生个人信息表
字段名 | 数据类型 | 是否为空 | 说 明 |
number | varchar(20) | not null | 学号(主码) |
name | varchar(20) | not null | 姓名 |
sex | varchar(5) | not null | 性别 |
age | bigint | not null | 年龄 |
department | varchar(50) | not null | 专业 |
college | varchar(50) | not null | 学院 |
phone | varchar(20) | not null | 电话 |
address | varchar(50) | not null | 地址 |
inTime | varchar(50) | not null | 入学时间 |
outTime | varchar(50) | not null | 毕业时间 |
password | varchar(20) | not null | 密码 |
教师个人信息表
字段名 | 数据类型 | 是否为空 | 说 明 |
number | varchar(20) | not null | 职工号(主码) |
name | varchar(20) | not null | 姓名 |
sex | varchar(5) | not null | 性别 |
age | bigint | not null | 年龄 |
department | varchar(50) | not null | 部门 |
post | varchar(20) | not null | 职称 |
remark | varchar(100) | not null | 备注 |
password | varchar(20) | not null | 密码 |
课程信息表
字段名 | 数据类型 | 是否为空 | 说 明 |
number | varchar(20) | not null | 课程号(主码) |
name | varchar(20) | not null | 课程名 |
credit | bigint | not null | 学分 |
teacher | varchar(20) | not null | 授课老师 |
time | varchar(50) | not null | 上课时间 |
address | varchar(50) | not null | 上课地点 |
type | varchar(50) | not null | 课程类型 |
学生成绩表
字段名 | 数据类型 | 是否为空 | 说 明 |
snumber | varchar(20) | not null | 学生学号(外码) |
cnumber | varchar(20) | not null | 课程号(外码) |
year | varchar(50) | not null | 学年 |
term | bigint | not null | 学期 |
grade | float | not null | 成绩 |
chongXiu | varchar(10) | not null | 重修标志 |
选课情况表
字段名 | 数据类型 | 是否为空 | 说 明 |
sno | varchar(20) | not null | 学生学号 |
cno | varchar(20) | not null | 课程号 |
name | varchar(20) | not null | 课程名称 |
credit | bigint | not null | 课程学分 |
teacher | varchar(20) | not null | 授课老师 |
time | varchar(50) | not null | 上课时间 |
address | varchar(50) | not null | 上课地点 |
type | varchar(50) | not null | 课程类型 |
selected | varchar(20) | not null | 选课标志 |
留言信息表
字段名 | 数据类型 | 是否为空 | 说 明 |
title | varchar(100) | not null | 主题 |
name | varchar(20) | not null | 留言人 |
| varchar(50) | null | 留言人email |
time | varchar(50) | not null | 留言时间 |
content | varchar(2000) | not null | 留言内容 |
4. 业务逻辑层各Bean功能
以下简单介绍一下一些主要的JavaBean及其相关方法。
1、Course.java:
public Collection queryOperator(String hql):封装了查询的方法。
public Course getCourse(String id):返回指定id的课程。
public static void addCourse(CourseForm course):添加一门新的课程。
public static void deleteCourse(String id):删除指定id的课程。
public Collection getCourses():返回所有课程信息。
public void changeCourseInfo(String id,Course cour):修改指定课程的信息
2、Grade.java:
public Collection queryOperator(String hql):封装了查询的方法。
public void addGrade(GradeForm grade):添加一条成绩纪录。
public Collection getAllGrades(String sno):返回指定学生的所有成绩纪录。
public Collection getYearGrades(String sno,String year):返回指定学生在指定学年的成绩。
public Collection getTermGrades(String sno,String year,Long term):返回指定学生在指定学期的成绩。
public static void changeGrade(String sno,String cno,String grade):修改指定学生指定课程的成绩。
3、Sc.java:
public Collection queryOperator(String hql):封装了查询的方法。
public static Sc getSc(String sno,String cno):返回一条指定的选课纪录。
public static void addSc(Sc sc):增加一条选课纪录。
public static void deleteSc(String sno,String cno):删除一条选课纪录。
public Collection getScs(String sno):返回指定学生所选修的所有课程。
public Collection getStudents(String cno):返回选修指定课程的所有学生。
public Collection getTeaScs(String teaName):返回指定教师开设的选修课。
public Collection getSelectedStudents(String cno):返回选修指定课程并且已经入选的学生。
public void f_tSc(String sno,String cno):选择指定学生选修指定课程(即让其从未选中状态变成选中状态)。
public void t_fSc(String sno,String cno):取消指定学生选修指定课程(即让其从选中状态变成未选中状态)。
4、Message.java:
public void addMessage(MessageForm message):添加留言。
public void deleteMessage(String title,String name,String email,String time,String content):删除留言。
public int getMessageCount():返回留言总数。
public Page listDate(String page_num):获得指定页面的数据,并封装在Page中返回。
public Vector getResult():返回查询结果。
5、Student.java:
public Collection queryOperator(String hql):封装了查询的方法。
public static void addStudent(Student student):添加一个学生。
public static void deleteStudent(String id):删除指定id的学生。
public static Student getStudent(String id):返回指定id的学生。
public boolean isStudent(LoginForm student):验证学生用户的登陆信息。
public Collection getInformation(String id):返回指定学号的学生信息。
public void chahgeStuInfo(StuInfoForm student):修改个人信息。
6、Teacher.java:
public Collection queryOperator(String hql):封装了查询的方法。
public static void addTeacher(Teacher teacher):添加一个教师。
public static void deleteTeacher(String id):删除指定id的教师。
public static Teacher getTeacher(String id):返回指定职工号的教师。
public boolean isTeacher(LoginForm teacher):验证老师用户的登陆信息。
public Collection getInformation(String id):返回指定职工号的教师信息。
public void chahgeTeaInfo(TeaInfoForm teacher):修改个人信息。
5. 控制处理层
系统的流程控制主要由Servlet与Action来共同完成,当用户提交了相关信息,便把这些信息发送到Servlet或Action中,Servlet或Action再调用对应的JavaBean的相关功能执行用户期望的操作,之后再跳转到相应的页面,并返回操作后的结果。这一过程对用户来说是透明的,用户仅能看到操作后返回的页面信息,对于整个系统的流程控制完全可以不必了解。
结论
通过Eclipse开发工具与JSP开发语言的结合,Struts框架和Hibernate技术的整合应用,能很好
的建设一个教学管理网站,实现该网站所应有的功能模块。在此基础上经过两个多月的设计和开发,教学管理系统基本开发完毕,其功能基本符合要求,所有的模块的功能也都已经基本完成。在这次的设计过程中虽然碰到了许多难题。
大家点赞、收藏、关注、评论啦 其他的定制服务 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者