1、课程设计学生选的修课程管理系统课程设计-学生选修课程管理系统 学生选修课程管理系统 第9小组 学号 姓名 具体模块 成绩 备注041140336 蔡忠文 老师操作模块 组长041140337 李梓郡 学生操作模块 组员041140338 王超 课程操作模块 组员041140339 张畅 数据库设计 组员1 可行性分析 31.1 经济上的可行性 31.2 技术上的可行性 31.3 操作上的可行性 32 需求分析 42.1需求陈述 42.2分析建模 43 分析设计 103.1系统功能结构设计 103.3系统软件架构设计 144 详细设计 165 实现 206 测试 316.1测试方法 316.2测
2、试用例 327 总结 347.1小组总结 347.2个人总结 34 1 可行性分析1.1 经济上的可行性 界面友好,操作简单,系统实现可行,因此经济可行。该系统可以容易实现学生、老师和教学系统管理员与学校之间的联系,在Internet上实现完成部分教务工作,提高办事效率。1.2 技术上的可行性 随着互联网的蓬勃发展,越来越多的机构将科研管理与Internet融合到一起,以方便个高校管理。在这样一个社会背景下,基于Windows和SQL Server 2005设计出数据库 ,运用先进的ASP.NET技术、先进的C#语言,采用B/S模式开发的大学生选修课管理系统,将学生、老师、管理员有机地结合在一
3、起,有效地提高管理水平和效率。随着科学技术的不断提高,计算机科学日渐成熟,基于以上的技术在现今比较容易实现。 1.3 操作上的可行性 该系统操作方便,简单。 2 需求分析2.1需求陈述 系统功能模块基本将本系统划分为三大模块,即学生选课模块、教师开课模块以及管理员管理模块。 (1)学生选课模块:在这个模块中,允许学生修改个人信息,浏览基本的课程;并实现主要的选课功能,包括填写选课信息、查看已选课程、修改选课等。 (2)教师开课模块:这个模块主要是让教师申请教课,同时教师可以修改个人信息、浏览基本课程以及查看学生的选课情况等。 (3)管理员管理模块:这个模块的功能比较多,主要包括创建课程的指定任
4、课老师、设定课程人数、统计学生选课信息、发通知等等。 (4)通用功能模块:即用户登录、密码修改等功能的实现。2.2分析建模 根据系统需求 角色确定,外部参与者如下: 管理员:对学生和教师基本资料维护,对课程基本资料进行添加、 删除、 更新或查询等; 学生:进行课程预览,选课信息查询,进行选课,成绩查询等; 教师:查询课程,申请教课及课程报名人数情况,进行成绩评定等; 确定用例 与管理员有关的用例: 发布通知、分配帐号密码、注销或修改用户状态、创建课程,定任课老师、设定课程人数、统计学生选课信息; 与学生有关的用例: 修改个人信息、选课操作、修改选课、浏览课程、查询成绩 与教师有关的用例: 申请
5、教课、浏览课题、查询学生选课情况、成绩评定 建立系统用例图 此系统用例图包括:学生选课系统的高层用例图,管理员管理子系统用例图,教师管理子系统用例图以及学生选课子系统的用例图。 系统用例 大学生选修课用例描述 管理员:管理员负责整个选修课系统的全面工作 管理员使用子系统“选课管理”中的教学大纲信息和“科室分配管理”中的教师信息,制定选课表 管理员点击子系统“课程信息管理” 对学生和教师基本资料维护,课程基本资料进行添加、删除、更新或查询等相关操作 学生:进行课程预览,选课信息查询,进行选课,成绩查询等; 教师:查询课程,申请教课及课程报名人数情况,进行成绩评定等; 成绩查询:登录选课系统选择用
6、户“学生”输入密码,提交提示登录成功或错误信息选择“选修课成绩查询”,选择学期查到对应成绩。 成绩管理:教师进行操作,包括教师录入和维护学生的成绩,统计成绩查询成绩,也可进行学生成绩的删除和修改工作。 详细描述如下: 登录:通过用户名及密码登录学生选课系统验证当前用户权限。 课程信息浏览:让学生可以详细的了解课程情况。 选课:学生可以选择要选修的课程 。选课概述:前提条件(正确登录、同一选课选修两次第二次不计学分)点击选课项提交按钮提示选课情况 修改选课:由于主观或客观原因要求退课。修改选课概述:前提条件(限定的课程开设人数已满,或是不足规定人数取消该课程安排的信息,以及个人在规定日期前可以修
7、改选课等) 成绩查询:登录选课系统选择用户“学生”输入密码,提交提示登录成功或错误信息选择“选修课成绩查询”,选择学期查到对应成绩。学生选课系统的高层用例图如图2-1所示 图2-1 学生选课系统的高层用例图 管理子系统用例 (1)用户登录 获取用户输入的用户名及密码; 若出现用户名、密码错误或不匹配现象,反馈错误提示; 在用户名及密码都正确的前提下,支持密码修改。 (2)选课系统 首先发布选课通知,即先对教师发出通知(教师得到通知后才可申请教课),然后对学生发出通知(此时已安排完有关选修课的所有信息) 创建课程指定任课教师 设定课程的人数和开课时间安排 分配账号及密码(由于是管理员操作此部分)
8、。 (3)教师教课申请 获取教师申请教课的信息,包括教师信息及其所要教的课程课程信息; 提供教师浏览课程的功能,即课程时间、教室等的安排;并提供查询学生选课情况的功能,即选此门课程的名单等; 处理和统计教师对学生成绩的评定。 (4)学生选课 提供学生修改个人信息的功能; 提供学生浏览全部选修课信息的功能,然后接受学生的选课操作; 获取学生及其所选课程的信息后,提供学生浏览自己所选课程的安排情况; 得到选课系统的指令,在相应时间内可以让学生修改自己的选课; 将选课系统统计好的成绩信息反馈给学生供其浏览。 管理员管理子系统用例详细描述如下: 发放通知:此用例包含两种情况,一是相对于教师的,二是相对
9、于学生的。相对于教师,即对于选课信息录入后发放给教师的通知,相对于学生即是在安排完选课相应的教师、选课限定人数等规则后发放给学生的通知。 学生及教师列表:对于学生的个人信息、选课信息,教师的个人信息、对应教受的课程信息等的查询、删除、修改等操作。 可选课程列表:在限定人数已满或是人数不够不进行课程开设等情况下对于课程选择的限定。 学生已选课程列表:在课程修完教师评定相应成绩后,对于学生已选课程的成绩统计以及录入发放。 管理员添加及密码修改:根据实际情况进行添加、修改等。 管理员管理子系统用例图如图2-2所示: 图2-2 管理员管理子系统用例图 教师进行查询课程,申请教课及课程报名人数情况,进行
10、成绩评定等工作。 主要是学生选课操作 提供学生修改个人信息的功能; 提供学生浏览全部选修课信息的功能,然后接受学生的选课操作; 获取学生及其所选课程的信息后,提供学生浏览自己所选课程的安排情况; 得到选课系统的指令,在相应时间内可以让学生修改自己的选课。 学生选课子系统如图2-3所示 图2-3学生选课子系统用例图 3 分析设计 3.1系统功能结构设计 首先输入用户名和密码登录系统,系统给出提示,若登录成功后则进行课程信息查询。 然后对信息进行详细查看,例如选课时间安排、教师安排、人数安排等,之后可点击选择课程并提交确认,此时系统也会给出提示,若成功选择给出课程详细信息,否则将提示人数已满的限制
11、信息。 修改所选课程,也必须找到自己已选课程列表并进行删除,然后再按相同方法进行选课,最终完成选课。当然修改课程过程中,也要注意修改时间的限定,因为管理员也要统计学生及其所选课程的信息,所以必须在规定时间进行修改。 经过活动如图3-1所示 图3-1 学生选课操作的活动图 顺序图如图3-2所示 图3-2学生选课操作顺序图 学生选课操作的协作图3-3所示: 图3-3学生选课操作的协作图 参与交互的对象有课程信息模块、课程安排模块及面向教师、学生。此图主要考虑通过对象之间的交互共同完成选课操作的过程,各信息流向及标明的顺序更好诠释出管理员进行管理时所需对象及时间上的配合。管理员管理操作的协作图如下所
12、示: 参与的交互对象有课程信息模块、成绩评定模块、成绩管理模块以及学生。 首先教师进入课程信息模块,选择自已所教授的选修课,进而得到所有学生信息。然后通过反馈的信息及自己记录的考勤情况(如特定安排取消的课时等)进入成绩评定模块。一般是将所有学生进行统一打分,若不是统一的情况或是有修改等情况都可进入成绩管理模块进行相应操作。在规定日期前上交评定成绩信息后再反馈给学生。如图3-4所示: 图3-4教师评定成绩的协作图 学生在选课操作中其生存周期中所处的不同状态、转换时的条件,虽然看似较为简单,但并不可忽视。对于此信息的详细设计,可进一步用于用类状态的设计和编制类。如图3-5所示: 图3-5学生登录选
13、课的状态图 3.2.系统硬件结构设计 类模型是面向对象方法的核心,类模型从对象的角度描述系统的组成,描述对象及相互间的关系。系统已在前面进行过简单描述,通过检查问题陈述中的所有名词短语和代词,得到初始类: 学生 教师 管理员 选课操作选课管理申请教课 成绩管理成绩查询用户管理课程信息可选课程学生已选课程 经过分析最后得到教师、学生、管理员、课程信息及系统维护这几个类。并标识出类的名称及属性。如下图3-6所示: 图3-6类名称及属性3.3系统软件架构设计 3.3.1功能要求: 1 设计数据对象表、视图、规则、函数等,完成学生自主选课,实现对于数据库完整性的检查; 2 根据用户不同,指派不同权利:
14、管理员具有dbo权限,学生具有插入选课表、退课表权限,查询课程表权限,确保数据库的安全性; 3 能够实现对于学生选课信息、课程信息、授课教师信息、教室使用信息的查询; 4 设计触发器/存储过程,优化数据库查询、冲突检测、扩展数据库完整性和数据操纵功能; 5 设计选课时间段,在指定时间段内,允许选课、退课。 6 完成数据库的备份等事务处理,保证数据库的一致性,可靠性。 3.3.2 实现要求 1 根据系统的功能要求,建立了概念模型,设计各功能块的E-R图,对其合并,形成系统总E-R图, 如图3-1所示。 2 利用T-SQL实现数据库,关系表,视图,数据类型,存储过程及其他数据对象的建立、更新、修改
15、及数据库完整性检查。4 详细设计 蔡忠文设计内容: 老师操作模块: 1)增加老师 2)根据教师号码修改教师信息 3)根据教师号码删除教师信息 4)根据教师号码查询教师的信息 5)查询所有教师的信息 李梓郡设计内容: 学生操作模块 1)增加学生 2)根据学号修改学生信息 3)根据学号删除学生信息 4)根据学号查询学生信息 5)查询所有学生信息 王超设计内容: 课程操作模块 1)增加课程 2)根据课程号修改课程信息 3)根据课程号删除课程的信息 4根据课程号查询课程的信息 5)查询所有课程 张畅设计内容: 系统的数据库设计: 本系统设计的是一个以班级为单位的选课数据库,能够实现学生自主选课功能,并
16、能实现学生信息、课程信息、学生选课信息、教室信息、授课教师信息等的创建、更新、删除、修改,数据库完整性检查、冲突检测、查询优化以及数据库角色、权限的分配,实现数据库的备份等事务处理以保证数据的完整性、一致性、安全性、可靠性。E-R图如4-1所示 图4-1 学生选课系统总E-R图 表4-1教师表字段名 字段类型 字段长度 是否为空 是否为主键 描述tno varcher 10 是 教师号teacher pessword varcher 10 是 密码tname varcher 10 是 姓名tsex varcher 5 是 性别dno varcher 10 否 系别cnumber varcher
17、 10 否 所带课程号 4-2课程表字段名 字段类型 字段长度 是否为空 是否为主键 描述cname varcher 10 否 否 课程名cno varcher 10 否 是 课程号csore double 否 否 课程的学分dno varcher 10 否 否 课程的系别 4-3成绩表字段名 字段类型 字段长度 是否为空 是否为主键 描述cno varcher 10 否 课程号son varcher 10 否 学号score varcher 10 是 成绩 4-4学生表 字段名 字段类型 字段长度 是否为空 是否为主键 描述 sno varcher 10 是 学号 sname varcher
18、 10 否 姓名 ssex varcher 5 否 性别 dno varcher 10 否 系别 sage int 否 年龄 spassword varcher 10 否 密码 4-5管理员表字段名 字段类型 字段长度 是否为空 是否为主键 描述manager varcher 10 是 账号managerpassword varcher 10 否 密码 4-6系表 字段名 字段类型 字段长度 是否为空 是否为主键 描述 dno varcher 10 是 系号 dname varcher 10 否 系名 5 实现1.管理员底层代码: package xiangmu.dao; import /.t
19、; import /.rse; import /.ager; import /.dent; import /.cher; public interface ManagerDao /管理员登录 public boolean inToSystemmanager m; /增加学生 public boolean addStudentforManagerstudent s; /根据学生的学号修改学生的信息 public boolean updateStudentforManagerString sno,student s; /根据学号删除学生的全部信息 public boolean deleteStud
20、entforManagerString sno; /根据学号查询学生的信息 public student selectStudentforManagerString sno; /查询所有学生的信息 public List selectAllStudent; /增加老师 public boolean addTeacherforManagerteacher t; /根据教师号修改教师的信息 public boolean updateTeacherforManagerString tno,teacher t; /根据教师号删除教师的信息 public boolean deleteTeacherfor
21、ManagerString tno; /根据教师号查询教师的信息 public teacher selectTeacherforManagerString tno; /查询所有教师的信息 public List selectAllTeacher; /增加课程 public boolean addCourseforManagercourse c; /根据课程号修改课程的信息 public boolean updateCourseforManagerString cno,course c; /根据课程号删除课程的信息 public boolean deleteCourseforManagerStr
22、ing cno; /根据课程号查询课程的信息 public course selectCourseforManagerString cno; /查询所有课程的信息 public List selectAllCourse; /退出系统 public void backSystem; 2.学生模块底层代码: package xiangmu.dao; import /.t; import /.ChengJi; import /.rse; import /.re; import /.dent; public interface StudentDao /登录系统 public boolean inToS
23、ystembyStudentString sno,String spassword; /选课 public boolean xunKebyStudentString sno,String cno; /查询所有已选课程 public List xunAllKeChengbyStudentString sno; /查询自身的信息 public student xunStudentString sno; /查询所选课程的成绩 public List xunChengJibyStudentString sno,score s; /退课 public boolean deleteCoursebyStud
24、entString sno,course c; /退出系统 public void backSystembyStudent; 3.老师模块底层代码: package xiangmu.dao; import /.t; import /.dent; import /.cher; public interface TeacherDao /登录系统 public boolean inToSystembyTeacherString tno,String tpassword; /查询所有自身所带课程的所有学生的信息 public List xunAllStudentbyStudentString tno;
25、 /输入成绩(在上一步的结果上,输入成绩) public boolean chengjibyTeacherString sno,String sscore,String cno; /查询自身的信息 public teacher xunTeacherbyTeacherString tno; /退出系统 4.主界面的servlet代码如下: package xiangmu.gongneng; import /.xception; import /.ntWriter; import /.vletException; import /.p.HttpServlet; import /.p.HttpSer
26、vletRequest; import /.p.HttpServletResponse; public class main extends HttpServlet private static final long serialVersionUID 1L; Override protected void doGetHttpServletRequest req, HttpServletResponse resp throws ServletException, IOException req.setCharacterEncodingutf-8; resp.setContentTypetext/
27、6html;charsetutf-8; PrintWriter out resp.getWriter; String username req.getParameterusername; String password req.getParameterpassword; String yonghu req.getParameteryonghu; ifyonghu.equalsstudent req.getRequestDispatcher/studentcaozuo.forwardreq, resp; else ifyonghu.equalsteacher req.getRequestDisp
28、atcher/teachercaozuo.forwardreq, resp; else ifyonghu.equalsmanager req.getRequestDispatcher/managercaozuo.forwardreq, resp; Override protected void doPostHttpServletRequest req, HttpServletResponse resp throws ServletException, IOException this.doGetreq, resp; 5、管理员界面的代码: package xiangmu.gongneng; import /.xception; import /.ntWriter; import /.vletException; import /.p.HttpServlet; import /.p.HttpServletRequest; import /.p.HttpServletResponse; import /.agerDaoimpl; import /.ager; public class managercaozuo extends HttpServlet p
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1