河北联合大学综合课程设计题目:学生选课系统学院:计算机自动控制学院专业:计算机科学与技术班级:07计2班姓名:曹大为学号:200701030213指导教师:石宝英完成日期:2010年1月I目录第一章:绪论………………………………………………2第二章:需求分析…………………………………………4第三章:总体设计…………………………………………8第四章:详细设计…………………………………………14第五章:系统实现…………………………………………16第六章:系统测试…………………………………………36第七章:设计总结…………………………………………37II一、绪论1、引言1.1编写目的:网上选课系统针对在校学生和教师使用。从学生的角度来说,由于学校教学制度的改革,现在大部分高等院校开始实行的是学生的自主选课模式。传统的教学模式(学生按照学校安排好的课程上课)已经不能适应新型的教学模式,如果仍然通过纸上的方式选课,一方面浪费了大量的人力、物力资源,另一方面浪费时间以及会在人为的统计汇总过程中出现可避免的差错等情况。随着高校人数的增多,上述弊端会越来越多的暴露出来。如果利用网络进行选课,学生只要在计算机前输入自己的个人选课信息即可完成教务部门原来几倍的作业量。从教师的角度来说,教师提出代课申请完成课程发布的工作更加容易,得到教学的信息更加快捷,因此通过网上选课系统可以大幅度的减少教师的工作量,方便了教学工作。1.2项目背景:我国高校都实行了学分制,它的核心是允许学生自由选课,即把学习的自主权交给学生。在这里,学生选课时的制约因素比较复杂,工作量也很大,而且往往需要在较短的时间内完成。运用计算机辅助选课,即能实时地对大量选课数据进行检验和统计,十分方便地输出选课结果,同时也避免了人工处理时容易产生的错误。在高等学校的教务管理工作中,课程表的编排是一项十分复杂、棘手的工作。在排课过程中,除了满足大量的制约条件以外,还必须解决许多冲突与矛盾,例如:两位教师不能同一时间在同一班级上课、一位教师不能在同一时间上两门课等等。利用计算机辅助进行课表编排III工作,既提高了排课工作的科学性,又可大大减轻管理人员的工作强度,提高工作效率,从而使学校教务管理现代化迈上了一个新台阶。2、任务描述2.1目标:学生正确登录到系统中,查询可选课程,选择自己喜欢的课程,并可以删除已选课程,查看课程表。2.2运行环境:本系统用java开发,无论事windows系统还是linux,只要具备tomcat和mysql环境都可以正确运行。3、数据描述3.1输入收据:用户名和密码,查询条件等3.2输出数据;可选课程列表,已选课程列表,课程表。4、功能要求:1.已注册用户的正确登录。2.登录用户查询可选课程。支持模糊查询。3.用户选课,支持批量处理。4.已选课程的查询。删除,支持批量处理。5.查询课表,显示学分。二、需求分析1、需求调查1.1组织机构调查教务处负责后台管理本系统,网络中心负责日常维护,教务处组织教师和学生使用本系统进行网上录入课程和网上选课。1.2业务需求调查IV1.3对新系统的要求调查2、功能需求2.1功能划分1.已注册用户的正确登录。开始选课准备进入选课主页登录:录入学号和密码正确进入选课主界面修改密码进入修改密码菜单返回登录页面不正确进入选课(筛选制)公共选修课网上选课(单击需选模块)一般选修课网上选课(单击需选菜单)单击“课程名称”、“教师姓名”、“详细信息”显示具体的相关信息单击需选课程前面的小方框使之打上小黑钩单击选定选定课程显示在网页下面单击退选确定选课,退出系统退选核对本人基本信息V2.登录用户查询可选课程。支持模糊查询。3.用户选课,支持批量处理。4.已选课程的查询。删除,支持批量处理。5.查询课表,显示学分。2.2功能描述身份验证:通过登录才可进入选课系统,登录信息提交后检验登录者的身份是否合法,合法,则转入对应的操作界面。在本系统中,只有三种身份:学生、老师、管理员。选课:用于学生的网上选课,通过选择被选学期,查看被选专业的课程,完成该学期的选课任务。查看课表:学生选完课程之后可以实时查看学生课表,帮助学生确定上课时间地点.3、数据描述3.1数据描述3.2数据库描述教师号姓名性别系别教师VI3.3数据词典系别系别系别号系别名专业别专业号专业名学生学号姓名年龄姓名年级班级专业课程课程号课程名学分状态(教师申请用)学时已选人数限选人数星期节数选课表学生号课程号成绩VII1:性别:男,女2:课程属性:必修,选修,任选。4、性能需求4.1数据精确度:暂无2时间特性:暂无4.3适应性:暂无5、运行需求5.1用户界面:采用树状导航菜单,简单明了。5.2硬件接口:本系统要求每个计算机都有网卡。5.3软件接口:暂无5.4基本要求1)体系结构:Broswer/Server2)操作系统:windows系列或Linux系列3)数据库管理系统:mysql4)开发工具:eclipse软件需求:操作系统WINDOWS2000AdvanceServer以上;数据库服务器端软件mysql,eclipse。硬件需求:10M以上的LAN接入网络带宽,P43.0GXeonCPU/1G内存/360G(10K)SCSI硬盘的服务器,P3以上微机(带网卡)的客户机,P43.0GXeonCPU/1G内存/36G(10K)RAID硬盘的数据库服务器6、其他需求具有高可使用性、安全保密要高、可维护性要强、可移植性要求强。三、总体设计VIII1、总体结构和模块外部设计1.1功能结构1.2模块设计登陆模块:登陆模块:用户在提供正确的验证信息之后,进一步使用本系统。管理员模块:教师信息管理模块:增删查改教师的基本信息。学生信息管理模块:增删查改学生的基本信息。登陆密码设置模块:用于修改登陆密码。成绩查询模块:查询所有成绩的基本信息。成绩录入模块:录入所教学生的成绩信息。登陆系统管理员学生教师信息管理学生信息管理可选课程查询登陆密码设置成绩查询成绩录入成绩修改已选课程查询课程表查询学生选课IX成绩修改模块:修改所教学生的成绩信息。学生模块:查询可选课程选择喜欢的课程查询所选课程删除所选课程查看本学期课表1.3总体结构设计当学生成功登录后,将学生的姓名、学号、密码、学期作为共用信息保存下来,作为密码修改模块、查询选课信息模块、修改选课信息模块使用时的参数。查询选课信息模块中的课程编码、学期、教师姓名信息作为传递参数用于查询教师信息模块、查询选课名单模块、查询课程信息模块、修改选课信息。同样,教师登录模块中,成功登录后将教师名、教师的身份证号、教师姓名作为参数保存下来,传递到密码修改模块、查询已发布课程信息模块、删除课程发布信息模块、修改课程发布信息模块。2、数据结构设计关系模式:系别:(系别号,系别名)专业:(专业号,专业名)学生:(学号,姓名,年龄,性别,年级,班级,系别名,专业名)教师:(教师号,姓名,性别,系别号)X课程:(课程号,课程名,学分,学时,状态,已选人数,限选人数,星期,节数)选课结果:(学号,课程号,成绩)授课:(课程号,教师号)管理员:(ID,用户名,密码)3、数据库设计3.1逻辑设计系别表dic_xy字段数据类型长度允许空值备注idint11否主键namevarchar50否系别名专业表Profess字段数据类型长度允许空值备注ProIDint20否主键专业号ProNamevarchar50否专业名称学生表Student字段数据类型长度允许空值备注Snochar20否学号主键XISnamevarchar50否学生姓名Sagechar20否学生年龄SsexChar20否性别Sgradevarchar20否年级SclassVarchar20否班级DepnOchar20否学生系别ProIDchar20否学生专业教师表Teacher字段数据类型长度允许空值备注Tnochar20否教师号主键Tnamevarchar50否教师姓名TsexChar20否教师性别Depnochar20否教师所在系课程表Course字段数据类型长度允许空值备注Cnochar20否课程号Cnamevarchar50否课程名Creditfloat否学分Ctimeint否学时Stateint否开课状态Cstunochar20否已选人数XIICcstuchar20否限选人数选课结果表stu_course字段数据类型长度允许空值备注Snochar20否学号Cnochar20否课程号Scorechar20否分数授课表class字段数据类型长度允许空值备注Cnochar20否课程号Tnochar20否教师号管理员表:admin字段数据类型长度允许空值备注IDInt否主键编号NameChar20否用户名Passwordchar20否密码3.2物理设计数据库服务器和web服务器部署在同一台电脑上,以减少它们之间的通信成本,并提高速度。4、外部接口设计4.1用户界面:页面分三部分,上面部分是系统名称,下面部分又分为左右两部分,左面是导航树,右面是内容部分。4.2软件接口:暂无XIII4.3硬件接口:暂无5、出错处理设计5.1出错输出信息5.2出错处理对策:1.数据库处理事务失败自动回滚技术,保证数据库表的数据一致性和完整性。2.重要数据的校验检查,例如已经选过的课程,不允许再选。3.提供友好的用户界面和帮助信息及配合严格的检查。6、维护设计说明为方便维护工作的设施,如维护模块等。可包括数据库的导如和导出,参数的设定等四、详细设计1、代码设计:学号采用12位数字,前四位代表年级,五六位代表学院,七八位代表专业,九十位代表班级,最后两位代表在班级内排名。2、程序设计:2.1、登录模块:在登录页面对应的地方输入用户名、密码、学号/身份证号,确认后登录。在提交后的asp文件中,首先通过学号/身份证号对数据库中的student/teacher表进行检索,若检索到的记录集为空,则说明学号/身份证号错误,从而转到相应的出错处理程序,若记录集不为空,再进行姓名判断,若姓名与表中的姓名不相等,进行出错处理,若相等,进而检查密码是否相等,不相等,作出错处理,相等则转入学生/老师登录成功的操作XIV页面,并将姓名,密码,学号/身份证号以session对象保存起来。选课模块:从数据库中将课程表中的课程信息查询出来后显示在页面中,学生通过checkbox选择自己喜欢的课程,点击确认后,从session里取出学生登录信息,将学生的学号和所选则的课程的课程号,作为一条记录保存到数据库score表中。这之前要遍历学生已选的课程的上课时间和地点是否和他即将选择的课程相冲突,如果冲突则不会保存,并给出提示,否则顺利保存。五、系统实现packagexsxk.controller;importjava.io.IOException;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importjava.util.*;importxsxk.exception.SysException;importxsxk.model.Course;importxsxk.model.PageModel;importxsxk.model.Student;importxsxk.service.Service;importxsxk.service.impl.ServiceImpl;@SuppressWarnings(serial)publicclassControllerextendsHttpServlet{privateServiceserv