




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计-学生选修课程管理系统 学生选修课程管理系统 第9小组 学号姓名 具体模块 成绩 备注蔡忠文老师操作模块 组长李梓郡学生操作模块 组员王超课程操作模块 组员张畅数据库设计 组员目录1 可行性分析31.1 经济上的可行性31.2 技术上的可行性31.3 操作上的可行性32 需求分析42.1需求陈述42.2分析建模43 分析设计103.1系统功能结构设计103.3系统软件架构设计144 详细设计165 实现206 测试316.1测试方法316.2测试用例327 总结347.1小组总结347.2个人总结34 1 可行性分析1.1 经济上的可行性 界面友好,操作简单,系统实现可行,因此经济可行。该系统可以容易实现学生、老师和教学系统管理员与学校之间的联系,在Internet上实现完成部分教务工作,提高办事效率。1.2 技术上的可行性 随着互联网的蓬勃发展,越来越多的机构将科研管理与Internet融合到一起,以方便个高校管理。在这样一个社会背景下,基于Windows和SQL Server 2005设计出数据库 ,运用先进的ASP.NET技术、先进的C#语言,采用B/S模式开发的大学生选修课管理系统,将学生、老师、管理员有机地结合在一起,有效地提高管理水平和效率。随着科学技术的不断提高,计算机科学日渐成熟,基于以上的技术在现今比较容易实现。 1.3 操作上的可行性 该系统操作方便,简单。 2 需求分析2.1需求陈述 系统功能模块基本将本系统划分为三大模块,即学生选课模块、教师开课模块以及管理员管理模块。 (1)学生选课模块:在这个模块中,允许学生修改个人信息,浏览基本的课程;并实现主要的选课功能,包括填写选课信息、查看已选课程、修改选课等。 (2)教师开课模块:这个模块主要是让教师申请教课,同时教师可以修改个人信息、浏览基本课程以及查看学生的选课情况等。 (3)管理员管理模块:这个模块的功能比较多,主要包括创建课程的指定任课老师、设定课程人数、统计学生选课信息、发通知等等。 (4)通用功能模块:即用户登录、密码修改等功能的实现。2.2分析建模 根据系统需求 角色确定,外部参与者如下: 管理员:对学生和教师基本资料维护,对课程基本资料进行添加、 删除、 更新或查询等; 学生:进行课程预览,选课信息查询,进行选课,成绩查询等; 教师:查询课程,申请教课及课程报名人数情况,进行成绩评定等; 确定用例 与管理员有关的用例: 发布通知、分配帐号密码、注销或修改用户状态、创建课程,定任课老师、设定课程人数、统计学生选课信息; 与学生有关的用例: 修改个人信息、选课操作、修改选课、浏览课程、查询成绩 与教师有关的用例: 申请教课、浏览课题、查询学生选课情况、成绩评定 建立系统用例图 此系统用例图包括:学生选课系统的高层用例图,管理员管理子系统用例图,教师管理子系统用例图以及学生选课子系统的用例图。 系统用例 大学生选修课用例描述 管理员:管理员负责整个选修课系统的全面工作 管理员使用子系统“选课管理”中的教学大纲信息和“科室分配管理”中的教师信息,制定选课表 管理员点击子系统“课程信息管理” 对学生和教师基本资料维护,课程基本资料进行添加、删除、更新或查询等相关操作 学生:进行课程预览,选课信息查询,进行选课,成绩查询等; 教师:查询课程,申请教课及课程报名人数情况,进行成绩评定等; 成绩查询:登录选课系统选择用户“学生”输入密码,提交提示登录成功或错误信息选择“选修课成绩查询”,选择学期查到对应成绩。 成绩管理:教师进行操作,包括教师录入和维护学生的成绩,统计成绩查询成绩,也可进行学生成绩的删除和修改工作。 详细描述如下: 登录:通过用户名及密码登录学生选课系统验证当前用户权限。 课程信息浏览:让学生可以详细的了解课程情况。 选课:学生可以选择要选修的课程 。选课概述:前提条件(正确登录、同一选课选修两次第二次不计学分)点击选课项提交按钮提示选课情况 修改选课:由于主观或客观原因要求退课。修改选课概述:前提条件(限定的课程开设人数已满,或是不足规定人数取消该课程安排的信息,以及个人在规定日期前可以修改选课等) 成绩查询:登录选课系统选择用户“学生”输入密码,提交提示登录成功或错误信息选择“选修课成绩查询”,选择学期查到对应成绩。学生选课系统的高层用例图如图2-1所示 图2-1 学生选课系统的高层用例图 管理子系统用例 (1)用户登录 获取用户输入的用户名及密码; 若出现用户名、密码错误或不匹配现象,反馈错误提示; 在用户名及密码都正确的前提下,支持密码修改。 (2)选课系统 首先发布选课通知,即先对教师发出通知(教师得到通知后才可申请教课),然后对学生发出通知(此时已安排完有关选修课的所有信息) 创建课程指定任课教师 设定课程的人数和开课时间安排 分配账号及密码(由于是管理员操作此部分)。 (3)教师教课申请 获取教师申请教课的信息,包括教师信息及其所要教的课程课程信息; 提供教师浏览课程的功能,即课程时间、教室等的安排;并提供查询学生选课情况的功能,即选此门课程的名单等; 处理和统计教师对学生成绩的评定。 (4)学生选课 提供学生修改个人信息的功能; 提供学生浏览全部选修课信息的功能,然后接受学生的选课操作; 获取学生及其所选课程的信息后,提供学生浏览自己所选课程的安排情况; 得到选课系统的指令,在相应时间内可以让学生修改自己的选课; 将选课系统统计好的成绩信息反馈给学生供其浏览。 管理员管理子系统用例详细描述如下: 发放通知:此用例包含两种情况,一是相对于教师的,二是相对于学生的。相对于教师,即对于选课信息录入后发放给教师的通知,相对于学生即是在安排完选课相应的教师、选课限定人数等规则后发放给学生的通知。 学生及教师列表:对于学生的个人信息、选课信息,教师的个人信息、对应教受的课程信息等的查询、删除、修改等操作。 可选课程列表:在限定人数已满或是人数不够不进行课程开设等情况下对于课程选择的限定。 学生已选课程列表:在课程修完教师评定相应成绩后,对于学生已选课程的成绩统计以及录入发放。 管理员添加及密码修改:根据实际情况进行添加、修改等。 管理员管理子系统用例图如图2-2所示: 图2-2 管理员管理子系统用例图 教师进行查询课程,申请教课及课程报名人数情况,进行成绩评定等工作。 主要是学生选课操作 提供学生修改个人信息的功能; 提供学生浏览全部选修课信息的功能,然后接受学生的选课操作; 获取学生及其所选课程的信息后,提供学生浏览自己所选课程的安排情况; 得到选课系统的指令,在相应时间内可以让学生修改自己的选课。 学生选课子系统如图2-3所示 图2-3学生选课子系统用例图 3 分析设计 3.1系统功能结构设计 首先输入用户名和密码登录系统,系统给出提示,若登录成功后则进行课程信息查询。 然后对信息进行详细查看,例如选课时间安排、教师安排、人数安排等,之后可点击选择课程并提交确认,此时系统也会给出提示,若成功选择给出课程详细信息,否则将提示人数已满的限制信息。 修改所选课程,也必须找到自己已选课程列表并进行删除,然后再按相同方法进行选课,最终完成选课。当然修改课程过程中,也要注意修改时间的限定,因为管理员也要统计学生及其所选课程的信息,所以必须在规定时间进行修改。 经过活动如图3-1所示 图3-1 学生选课操作的活动图 顺序图如图3-2所示 图3-2学生选课操作顺序图 学生选课操作的协作图3-3所示: 图3-3学生选课操作的协作图 参与交互的对象有课程信息模块、课程安排模块及面向教师、学生。此图主要考虑通过对象之间的交互共同完成选课操作的过程,各信息流向及标明的顺序更好诠释出管理员进行管理时所需对象及时间上的配合。管理员管理操作的协作图如下所示: 参与的交互对象有课程信息模块、成绩评定模块、成绩管理模块以及学生。 首先教师进入课程信息模块,选择自已所教授的选修课,进而得到所有学生信息。然后通过反馈的信息及自己记录的考勤情况(如特定安排取消的课时等)进入成绩评定模块。一般是将所有学生进行统一打分,若不是统一的情况或是有修改等情况都可进入成绩管理模块进行相应操作。在规定日期前上交评定成绩信息后再反馈给学生。如图3-4所示: 图3-4教师评定成绩的协作图 学生在选课操作中其生存周期中所处的不同状态、转换时的条件,虽然看似较为简单,但并不可忽视。对于此信息的详细设计,可进一步用于用类状态的设计和编制类。如图3-5所示: 图3-5学生登录选课的状态图 3.2.系统硬件结构设计 类模型是面向对象方法的核心,类模型从对象的角度描述系统的组成,描述对象及相互间的关系。系统已在前面进行过简单描述,通过检查问题陈述中的所有名词短语和代词,得到初始类: 学生 教师 管理员 选课操作选课管理申请教课 成绩管理成绩查询用户管理课程信息可选课程学生已选课程 经过分析最后得到教师、学生、管理员、课程信息及系统维护这几个类。并标识出类的名称及属性。如下图3-6所示: 图3-6类名称及属性3.3系统软件架构设计 3.3.1功能要求: 1 设计数据对象表、视图、规则、函数等,完成学生自主选课,实现对于数据库完整性的检查; 2 根据用户不同,指派不同权利:管理员具有dbo权限,学生具有插入选课表、退课表权限,查询课程表权限,确保数据库的安全性; 3 能够实现对于学生选课信息、课程信息、授课教师信息、教室使用信息的查询; 4 设计触发器/存储过程,优化数据库查询、冲突检测、扩展数据库完整性和数据操纵功能; 5 设计选课时间段,在指定时间段内,允许选课、退课。 6 完成数据库的备份等事务处理,保证数据库的一致性,可靠性。 3.3.2 实现要求 1 根据系统的功能要求,建立了概念模型,设计各功能块的E-R图,对其合并,形成系统总E-R图, 如图3-1所示。 2 利用T-SQL实现数据库,关系表,视图,数据类型,存储过程及其他数据对象的建立、更新、修改及数据库完整性检查。4 详细设计 蔡忠文设计内容: 老师操作模块: 1)增加老师 2)根据教师号码修改教师信息 3)根据教师号码删除教师信息 4)根据教师号码查询教师的信息 5)查询所有教师的信息 李梓郡设计内容: 学生操作模块 1)增加学生 2)根据学号修改学生信息 3)根据学号删除学生信息 4)根据学号查询学生信息 5)查询所有学生信息 王超设计内容: 课程操作模块 1)增加课程 2)根据课程号修改课程信息 3)根据课程号删除课程的信息 4根据课程号查询课程的信息 5)查询所有课程 张畅设计内容: 系统的数据库设计: 本系统设计的是一个以班级为单位的选课数据库,能够实现学生自主选课功能,并能实现学生信息、课程信息、学生选课信息、教室信息、授课教师信息等的创建、更新、删除、修改,数据库完整性检查、冲突检测、查询优化以及数据库角色、权限的分配,实现数据库的备份等事务处理以保证数据的完整性、一致性、安全性、可靠性。E-R图如4-1所示 图4-1 学生选课系统总E-R图 表4-1教师表字段名字段类型字段长度是否为空是否为主键描述tnovarcher 10 是教师号teacher pesswordvarcher 10 是密码tnamevarcher 10 是姓名tsexvarcher 5 是性别dnovarcher 10 否系别cnumbervarcher 10 否所带课程号 4-2课程表字段名字段类型字段长度是否为空是否为主键描述cnamevarcher 10 否 否课程名cnovarcher 10 否 是课程号csoredouble 否 否课程的学分dnovarcher 10 否 否课程的系别 4-3成绩表字段名字段类型字段长度是否为空是否为主键 描述cnovarcher 10 否 课程号sonvarcher 10 否 学号scorevarcher 10 是 成绩 4-4学生表 字段名字段类型字段长度是否为空是否为主键 描述 snovarcher 10 是 学号 snamevarcher 10 否 姓名 ssexvarcher 5 否 性别 dnovarcher 10 否 系别 sageint 否 年龄 spasswordvarcher 10 否 密码 4-5管理员表字段名字段类型字段长度是否为空是否为主键 描述managervarcher 10 是 账号managerpasswordvarcher 10 否 密码 4-6系表 字段名字段类型字段长度是否为空是否为主键 描述 dnovarcher 10 是 系号 dnamevarcher 10 否 系名 5 实现1.管理员底层代码: package xiangmu.dao; import /.t; 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 deleteStudentforManagerString sno; /根据学号查询学生的信息 public student selectStudentforManagerString sno; /查询所有学生的信息 public List selectAllStudent; /增加老师 public boolean addTeacherforManagerteacher t; /根据教师号修改教师的信息 public boolean updateTeacherforManagerString tno,teacher t; /根据教师号删除教师的信息 public boolean deleteTeacherforManagerString tno; /根据教师号查询教师的信息 public teacher selectTeacherforManagerString tno; /查询所有教师的信息 public List selectAllTeacher; /增加课程 public boolean addCourseforManagercourse c; /根据课程号修改课程的信息 public boolean updateCourseforManagerString cno,course c; /根据课程号删除课程的信息 public boolean deleteCourseforManagerString 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 inToSystembyStudentString 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 deleteCoursebyStudentString 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; /输入成绩(在上一步的结果上,输入成绩) 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.HttpServletRequest; 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/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.getRequestDispatcher/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 private static final long serialVersionUID 1L; public void doGetHttpServletRequest request, HttpServletResponse response throws ServletException, IOException this.doPostrequest, response; public void doPostHttpServletRequest request, HttpServletResponse response throws ServletException, IOException PrintWriter out response.getWriter; String username request.getParameterusername; String password request.getParameterpassword; manager m new managerusername,password; ManagerDaoimpl mipml new ManagerDaoimpl; ifmipml.inToSystemm request.getRequestDispatchermanagergongneng.jsp.forwardrequest, response; else request.getRequestDispatcher/managerdengluerror.forwardrequest, response; out.printlnusername; out.printlnpassword; 6.学生模块界面的代码: package xiangmu.gongneng; import /.xception; import /.ntWriter; import /.vletException; import /.p.HttpServlet; import /.p.HttpServletRequest; import /.p.HttpServletResponse; import /.p.HttpSession; import /.dentDaoimpl; public class studentcaozuo extends HttpServlet private static final long serialVersionUID 1L; public void doGetHttpServletRequest request, HttpServletResponse response throws ServletException, IOException this.doPostrequest, response; public void doPostHttpServletRequest request, HttpServletResponse response throws ServletException, IOException PrintWriter out response.getWriter; String sno request.getParameterusername; String spassword request.getParameterpassword; StudentDaoimpl simpl new StudentDaoimpl; String sname simpl.chaSnameforSnosno; HttpSession sessionsno request.getSession; HttpSession sessionsname request.getSession; sessionsno.setAttributesno, sno; sessionsname.setAttributesname, sname; ifsimpl.inToSystembyStudentsno, spassword request.getRequestDispatcherstudent/studentgongneng.jsp.forwardrequest, response; else request.getRequestDispatcher/managerdengluerror.forwardrequest, response; out.printlnsno; out.printlnspassword; 7.老师界面的servlet代码: package xiangmu.gongneng; import /.xception; import /.ntWriter; import /.vletException; import /.p.HttpServlet; import /.p.HttpServletRequest; import /.p.HttpServletResponse; import /.cherDaoimpl; public class teachercaozuo extends HttpServlet private static final long serialVersionUID 1L; public void doGetHttpServletRequest request, HttpServletResponse response throws ServletException, IOException this.doPostrequest, response; public void doPostHttpServletRequest request, HttpServletResponse response throws ServletException, IOException PrintWriter out response.getWriter; String tno request.getParameterusername; String tpassword request.getParameterpassword; TeacherDaoimpl timpl new TeacherDaoimpl; String tname timpl.chaTnameforTnotno; iftimpl.inToSystembyTeachertno, tpassword request.getRequestDispatcherteacher/teachergongneng.jsp?tname+tname+.forwardrequest, response; else request.getRequestDispatcher/managerdengluerror.forwardrequest, response; out.printlntno; out.printlntpassword; out.flush; out.close; 8、数据库设计的代码: /创建课程表 create table t_course cno varchar10 primary key , cname varchar10 , cscore varchar5 , dno varchar10 foreign KEY dno REFERENCES t_deptdno /创建系表 create table t_dept dno varchar10 primary key, dname varchar10 /创建学生表 create table t_student sno varchar10 primary key, spassword varchar10, sname varchar10, ssex varchar5, sage int , dno varchar10 foreign KEY dno REFERENCES t_deptdno, /创建教师表 create table t_teacher tno varchar10 primary key, tpassword varchar10 , tname varchar10, tsex varchar5 , dno varchar10 foreign KEYdno REFERENCES t_deptdno, cno varchar10 foreign KEYcno REFERENCES t_coursecno /创建成绩表 create table t_score cno varchar10 foreign KEYcno REFERENCES t_coursecno, sno varchar10 foreign KEYsno REFERENCES t_studentsno, sscore varchar5, primary KEYsno,cno /创建管理员表 create table t_manager managerid varchar10 primary KEY, managerpassword varchar10 程序的部分界面:学生界面如图5-1和 5-2所示:图5-1图5-2 2.老师操作界面的部分截图如图5-3和5-4所示: 图5-3 图5-4 3.管理员操作界面的部分截图5-5和5-6所示: 图5-5 图5-6 6 测试6.1测试方法 黑盒测试 选取测试用例的原则: 1、所设计出的测试用例能够减少为达到合理测试所需要设计的附加测试用例数目 2、所设计出的测试用例能够告诉我们,是否存在某些类型的错误,而不是仅仅指出与特定测试相关的错误是否存在 3、正确的划分等价类,已根据等价类设计测试方案,以满足所有的测试都能追溯到用户需求 尽量避免含糊的测试用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村新能源市场2025年技术创新与能源互联网研究报告
- 2025年新能源商用车辆在环卫设施清洁中的应用场景及市场前景报告
- 保险行业数字化理赔服务在信用保险中的信用风险监测报告
- 2025年生物质能广告宣传合规与技术创新案例分析报告
- 2025年智慧工厂射频识别(RFID)技术在供应链管理中的应用案例分析报告
- 安全教育培训纳入刑法课件
- 共享民宿项目在2025年共享经济浪潮中的可行性研究评估报告
- 教育行业质量评估与认证体系在学生法治教育中的实践探索报告
- 2025风力发电设备制造行业:技术创新与新能源产业融合报告
- 2025-2026学年六年级英语上册辽师大版期末模拟测试卷三(含答案)
- 2024年中级注册安全工程师《金属非金属矿山安全》真题及答案
- 《血小板功能检测》课件
- 人教版(2024)七年级下册英语Unit 5 Here and Now 教案
- 公司志编纂工作方案
- 抗战胜利70周年主题班会教案
- 2025年保安证考试沟通能力试题及答案
- 2025年禁毒社工考试试题及答案
- T-CTSS 90-2024 茶叶碳足迹核算方法
- 劳动合同法全文(2024年版)
- 餐饮服务与数字化运营 习题及答案 项目三
- 《空调基础知识》课件
评论
0/150
提交评论