计算机毕业论文-基于MVC架构的网上选课系统的设计与实现_第1页
计算机毕业论文-基于MVC架构的网上选课系统的设计与实现_第2页
计算机毕业论文-基于MVC架构的网上选课系统的设计与实现_第3页
计算机毕业论文-基于MVC架构的网上选课系统的设计与实现_第4页
计算机毕业论文-基于MVC架构的网上选课系统的设计与实现_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

滁州学院本科毕业论文PAGE中图分类号:TP319 本科生毕业论文(或设计)(申请学士学位)论文题目基于MVC架构的网上选课系统的设计与实现作者姓名张楠计算机科学与技术指导教师刘士喜2009年6月10日学号:5051251034论文答辩日期:2009年指导教师:(签字)滁州学院本科毕业设计(论文)原创性声明本人郑重声明:所呈交的设计(论文)是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果。本人完全意识到本声明的法律后果由本人承担。作者签名:年月日注:本页放在学位论文封面后,目录前面。目录摘要 1Abstract 11.绪论 21.1系统的研究现状 21.2系统的研究目标 21.3MVC概述 31.3.1MVC简介 31.3.2MVC的优点 31.3.3JSP+Servlet+JavaBean技术简介 32.系统规划 42.1需求分析 42.1.1系统功能概述 42.1.2需求分析的方法简介 52.1.3用例图描述 52.1.4系统活动描述 92.1.5非功能性需求 102.2可行性分析 112.2.1开发的必要性 112.2.2开发的可能性 113.系统分析 113.1业务流程分析 113.2数据流程分析 134.系统设计 134.1系统结构设计 134.2数据库设计 155.系统主要功能的实现 205.1登录的实现 205.2管理员功能页面的实现 225.3学生功能页面的实现 265.4教师功能页面的实现 28结论 33参考文献 33致谢 35PAGE35基于MVC架构的网上选课系统的设计与实现摘要:近年来,由于高校在校人数的增多以及对学生信息统一管理的需要,学生选课管理面临着巨大的工作量。学校每学期的学生选课都需要进行综合统计,但是每次的选课工作都是人工收集和统计选票,这样既花费大量的时间,还容易出现误差。为解决这些问题,本文设计了一个基于MVC架构的网上选课系统,不仅使学生选课处理效率高,而且能够避免出错。对MVC进行了简要的描述,说明了使用MVC的优越之处。通过用例图和活动图对系统进行需求分析,并阐述了本系统实施的可行性。在分析本系统业务流程的基础上,进行系统设计。提出了本系统的总体结构和后台数据库,详细描述了系统的各功能模块的实现细节。最后给出本系统的优点和不足。关键词:MVC;网上选课;用例图;活动图Thedesignandrealizationforon-linecourseselectionmanagementbasedonMVCstructureAbstract:Inrecentyears,withtheincreasingofstudentsinuniversityandthedemandofUnifiedmanagementofstudents’information,selectingcourseforstudentsisfacinggiantworkload.Everysemesterselectingforstudentsneedstocarryonthesynthesisstatisticinuniversity,however,collectingandcountingvotingthroughmanualworkwhichnotonlyspendsmuchtime,butalsomanyerrorsoccureasily.Inordertosolvetheseproblems,theauthordesignsanon-linecourseselcectionmanagementwhichbasedonMVC.Itnotonlyhashighprocessingefficiencyforstudentstoselectcourse,butalsomanymistakescanbeavoided.ThispaperdescribesMVCbriefly,andshowstheadvantageofusingMVC.ThissystemdemandwiththeUseCaseDiagramandActivityDiagramisanalyzed,andthefeasibilityofthissystem’simplementationisexplained.Inthebaseofanalysisofthissystem’sbusinessprocesses,thesystemdesignisisgiven,andthegrossstructureandDatabaseofthissystemispresented,andtherealizationofeveryfunctionmoduleofthissystemisdescribedindetails.Finally,thestrengthsandweaknessesofthissystemispresented.Keywords:MVC;on-linecourseselection;UseCaseDiagram;ActivityDiagram1绪论1.1系统的研究现状目前对于网上选课系统的研究已经越来越深入,也越来越成熟,主要是基于B/S模式,采用JAVA、ASP等编程语言和ORACLE、SQLServer、ACCESS等数据库相结合进行设计和实现。基于JAVA平台和ORACLE9i技术的网上选课系统,分析了基于WEB选课系统的需求,对系统进行了全面分析,并采用JAVA+ORACLE9i技术的具体设计方案,提出了设计过程中问题的解决办法。系统以Apache+Tomcat为应用服务器,Oracle9i为后台数据库,DreamweaverMx和Jbuilder9为开发工具[1]。随着高校教育教学改革的不断深入,众多院校采用选课制。本文采用统一建模语言(UML)完成了该系统的分析和设计,提出了分布式3层体系结构的设计方案,并简要介绍了该系统的设计思想和功能模块[2]。为了全面推进素质教育,越来越多的中等职业学校都采用了学分制教学管理制度。这种制度需要面对的一个重要问题就是学生的选课操作问题,如果采用人工的方法既费时又费力,因而需要选用一种新的选课方式解决这个问题。本系统是在学校校园网平台的基础上使用ASP.NET及数据库技术开发出的、适合于中等职业学校使用的网上选课系统,可以比较好地解决此问题[3]。随着通讯技术和计算机网络技术的不断发展,高校教学管理网络化已成为一个发展趋势。针对高校教务管理改革中的一个重点问题——学生选课设计了一个切实可行的系统,并对基于ASP的网上选课系统开发的基本原理和系统结构作了阐述,讨论了如何利用ASP实现对数据库的动态操作,并介绍该在线选课系统的几个主要功能模块的设计过程并实现了该选课系统,选课效果良好[4]。基于ASP.NET和SQLServer2005的网上选课系统的系统模块、逻辑体系结构、系统优化及实现的关键技术。在WindowsServer2003+IIS6.0+.net的平台上,以SQLServer2005为后台数据库,采用ASP.NET为基本开发工具,充分考虑了系统的安全性,实现了教师和所教课程的添加、修改、删除,还实现了学生注册、确认和分班的综合管理[5]。基于MVC架构采用JSP+Servlet+JavaBean和SQLServer2000相结合的网上选课系统,能较安全,快捷的实现网上选课功能并且较易开发、复用度高、代码耦合度低,易维护。1.2系统的研究目标开发高校学生网上选课系统的目标是为了方便学生的选课操作、教师的评选操作,提高选课的效率和灵活性,实现对选课数据进行统一的管理,较易维护。1.3MVC概述1.3.1MVC简介为了能有效的控制开发,MVC模式成为分析和设计Web应用程序最常用的模式,它为软件的分层及实现提供了一种稳定而成熟的结构方案和开发方法。MVC是英文Model、View、Controller的缩写,它不是一种技术,而是一种系统框架。MVC包含:=1\*GB2⑴模型(Model)代表企业数据和业务规则,用来控制访问和数据更新。=2\*GB2⑵视图(View)代表模型的内容,它通过模型访问企业数据并指定这些数据的显示。视图负责模型状态改变后呈现给用户的数据也相应改变。=3\*GB2⑶控制(Controller)把与视图交互转化成模型执行的动作。1.3.2MVC的优点MVC架构有如下优点:=1\*GB2⑴多视图使用同一模型。模型与视图分离允许多视图使用同一企业模型。=2\*GB2⑵容易支持新类型的客户端。支持一个新类型的客户端,只需写一个视图和控制,然后把它连接到现存的企业模型中。=3\*GB2⑶有利于开发中的分工。在MVC模式中,由于按层把系统开,那么就能更好的实现开发中的分工。网页设计人员可以进行开发视图层中的JSP,对业务熟悉的开发人员可开发业务层JavaBean,而其它开发人员可开发控制层Servlet。=4\*GB2⑷有利于组件的重用。分层后更有利于组件的重用。如控制层可独立成一个能用的组件,视图层也可做成通用的操作界面。1.3.3JSP+Servlet+JavaBean技术简介JSP是一种实现普通静态HTML和动态HTML混合编码的技术。JSP设计的目的在于简化表示层的表示。在JSP中编写静态的HTML更加方便,不必再用Println语句来输出每一行HTML代码。更重要的是借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开[6]。Servlet是一种独立于操作系统平台和网络传输协议的服务器端的Java应用程序,它用来扩展服务器的功能,可以生成动态的Web页面。Servlet与传统Java应用程序最大的不同在于:它不是从命令行启动的,而是由包含Java虚拟机的Web服务器进行加载。它最大的用途是通过动态响应客户机请求来扩展服务器功能。其基本的工作流程如下:=1\*GB2⑴客户机将请求发送到服务器。=2\*GB2⑵服务器上的Web容器实例化(装入)Servlet,并为Servlet进程创建线程。JavaBean组件是一些可移植、可重用,并可以组装到应用程序中的Java类。可以通过在JavaBean中封装事务逻辑、数据库操作等,然后将JavaBean与JSP语言元素一起使用,可以很好地实现后台业务逻辑和前台逻辑的分离,使得JSP页面更加可读、易维护。2系统规划2.1需求分析2.1.1系统功能概述基于项目的总体规划,可以将本系统划分为以下4个模块:=1\*GB2⑴用户登陆模块:负责验证系统中各级别用户的登录信息,并根据登陆用户的不同级别转向不同的页面。=2\*GB2⑵学生功能模块:负责学生的选课、查看课程成绩、课程简介、教学进度表以及更改学生信息的操作。=3\*GB2⑶教师功能模块:负责审批学生选课、公布学生成绩、编辑课程简介和教学进度表以及更改学生信息的操作。=4\*GB2⑷管理员功能模块:负责课程、班级和学生信息的添加、修改和删除等操作。其中,用户登陆模块中涉及到用户身份级别的处理:不同身份的用户对系统的使用权限有所不同。系统管理员登录后可以对学生、教师、课程、班级等系统信息进行管理和维护,教师登陆后可以查看学生选课情况并给出所带学生课程成绩,学生登录后可以进行选课并查看自己某门课程的成绩。在功能实现方面,基于MVC的思想,用JSP实现系统的首页,提供用户登录信息输入接口;Servlet实现验证用户登陆信息(若正确则根据用户级别转向不同的页面);JavaBean实现整个系统与数据库的连接和关闭操作。学生登录模块功能分析:学生登录以后,可以选报课程:系统会根据学生所在系及课程的先修课列出满足该生选报条件的课程;可以查看自己的成绩,包括该生每门课程的名称、学分以及总学分。如果教师还未给出成绩,则系统会有相关提示;可以查看该课程的课程简介、教学进度表的相关信息;可以更改自己的个人信息,包括密码、电话号码,其中要求密码不能为空。在功能实现方面,基于MVC的思想,用JSP实现学生登陆成功后显示的功能页面以及相关信息查询、更新学生注册信息页面;Servlet实现学生选课和查看成绩等操作;JavaBean实现学生选择课程。教师登录模块功能分析:教师登陆以后,可以对学生选课申请进行审核,以及给自己所带的学生进行打分。教师可以查看有哪些学生选择了自己所教授的课程,其中系统列出了该教师所带课程的班级以及选报了该课程的所有学生信息,当该课程结束时教师可以给出所有选择该课程学生的成绩。当教师给出了学生某门课程的成绩之后,系统会根据成绩来判断该生是否通过了该课程,如果该成绩大于或等于60分,则在该生的学分上加上该课程的学分。在功能实现方面,基于MVC的思想,用JSP实现教师登陆成功后显示的功能页面以及查看相关信息、给学生打分的页面;Servlet实现执行批准学生选课和给学生打分等操作;JavaBean实现批准学生选课和打分等逻辑方法。管理员模块功能分析:管理员在本系统中拥有最高权限,可以对学生、教师、课程、班级等信息进行管理和维护。在班级管理系统中“新增班级”是该模块的关键环节,其中班级号不能为空且输入的班级号未曾注册,同时还要保证同一教师不能在同一时间上两门课程,否则系统提示相关错误信息。在功能实现方面,基于MVC的思想,用JSP实现管理员成功登陆后的功能页面、以及添加、查看、更新相关信息的页面;Servlet实现执行添加、删除、修改学生信息、教师信息、课程信息、班级信息等操作;JavaBean实现封装关于学生信息、教师信息、课程信息、班级信息的业务逻辑方法。2.1.2需求分析的方法简介本系统采用例驱动的分析方法进行需求分析。下面简要介绍一下此方法:UML(统一建模语言,UnifiedModelingLanguage)是一种定义良好、易于表达、功能强大且普遍适用的可视化建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。用例建模是UML建模的一部分,也是UML里最基础的部分。用例建模的最主要功能就是用来表达系统的功能性需求或行为。用例建模可分为用例图和用例描述。用例图由参与者(Actor)、用例(UseCase)、系统边界、箭头组成,用画图的方法来完成。用例描述用来详细描述用例图中每个用例,用文本文档来完成。活动图是UML的另一个组成部分,活动图描述了满足用例要求所要进行的活动以及活动间的约束关系,活动图有利于识别并发活动。在进行用例建模的同时可以辅以活动图进行详细说明系统所进行的并发活动。当用例图和活动图结合起来时,系统的功能性需求就能够被完整地表达出来,并且简单明了[7]。2.1.3用例图描述采用用例驱动方法分析需求,首先识别出系统的参与者主要有系统管理员、教师和学生,每一种参与者都有不同的权限,其中系统管理员权限最大,负责整个系统的维护。下面就对整个系统建立用例模型来表达需求:=1\*GB1⒈系统管理员:主要负责对教师、学生、课程、班级的信息进行维护等。图2-1用例图—系统管理员对图2-1用例图中的用例进一步描述如下:=1\*GB2⑴添加学生:录入学生的基本信息,并设置初始密码。=2\*GB2⑵删除学生:对于已毕业或其他情况不属于本学校的学生信息进行删除操作。=3\*GB2⑶修改学生:对学生的信息有误之处进行修改并录入数据库。=4\*GB2⑷添加教师:录入教师的基本信息,并设置初始密码。=5\*GB2⑸删除教师:对于已退休或其他情况不属于本学校的教师信息进行删除操作。=6\*GB2⑹修改教师:对教师的信息有误之处进行修改并录入数据库。=7\*GB2⑺添加课程:录入课程的基本信息。=8\*GB2⑻删除课程:对于已不开设的课程信息进行删除操作。=9\*GB2⑼修改课程:对课程的信息有误之处进行修改并录入数据库。=10\*GB2⑽添加班级:录入班级的基本信息。=11\*GB2⑾删除班级:对于已不开设的班级信息进行删除操作。=12\*GB2⑿修改班级:对班级的信息有误之处进行修改并录入数据库。=2\*GB1⒉学生:从系统管理员处获得密码进入系统,主要完成选修课程、查看学分、更改信息等操作。其用例图如图2-2:图2-2用例图—学生对图2-2用例图中的用例进一步描述如下:=1\*GB2⑴选修课程:学生登录系统之后可以选修自己的喜欢的课程。=2\*GB2⑵查看学分:系统根据学生信息列出该生的所有课程所获学分及总学分。=3\*GB2⑶更改信息:学生进入该功能页面后,可以修改密码及其他个人信息。=3\*GB1⒊教师:主要完成挑选学生及公布成绩等功能。其用例图如下:图2-3用例图—教师对图2-3用例图中的用例进一步描述如下:=1\*GB2⑴挑选学生:登陆系统后,进入挑选学生的功能页面,审批学生选课同时可以进行编辑课程简介和教学进度表信息。=2\*GB2⑵公布成绩:对于选修该课程的学生给出成绩。=3\*GB2⑶更改信息:教师进入该功能页面后,可以修改密码及其他个人信息。2.1.4系统活动描述=1\*GB1⒈学生选课的活动描述图2-4活动图—学生选课学生登陆以后,可以选报课程,系统会根据学生所在系及课程的先修课等信息来判断学生是否具备条件,如果具备条件,学生可以注册课程进行选报;教师根据提交的选报该课程的学生信息进行审核及挑选,最后在该课程结束时给出所有学生的成绩。=2\*GB1⒉管理员对各种信息进行维护的活动描述管理员登陆以后,可以对学生、教师信息进行添加、修改和删除等操作,并将结果录入到数据库中。a)b)图2-5活动图—信息维护以管理员身份登录后,管理员负责对学生、教师、课程、班级的信息进行管理及维护,管理员对于毕业或其他原因不属于本校的学生信息进行删除,对于录入有误的学生信息进行更新,同时对于新增的学生进行信息添加;对于退休或其他原因不属于本校的教师信息进行删除,对于录入有误的教师信息进行更新,同时对于新增的教师进行信息添加。2.1.5非功能性需求学生网上选课系统的非功能性需求如下:使用简单。用户使用单一的Browser软件(如微软公司的InternetExplorer简称IE和网景公司的NetscapeNavigator),通过鼠标即可访问数据信息。易于维护。用户端无需专用软件,系统的维护工作简单。信息共享度高。实现系统内的信息传递,加快运转速度。扩展性好。可直接接入Intranet和Internet,具有良好的扩展性。可在局域网或广域网上运行。2.2可行性分析在网上选课系统的目标及需求确定之后,就可以对这个系统的可行性进行分析,从该系统开发的必要性和可能性两个方面进行讨论。2.2.1开发的必要性随着计算机应用的不断深入,信息产业的兴起,互联网的发展及应用,网上办公的作用日益明显。各行各业几乎都与计算机有着密切的联系,都实现了不同程度的自动化操作。网上选课系统对学生选修课程进行了规范、科学的设计,快捷有效地实现了学生对课程的选修。同时,该系统也录入了学生、教师、课程、班级等的基本信息,可以为学校的管理带来方便。2.2.2开发的可能性技术可行性:使用现如今已经成熟的MVC架构,系统数据库选择SQLServer2000,在系统中的核心部分使用Servlet+JavaBean技术,实现JSP+Servlet+JavaBean和SQLServer2000的有机集合。经济可行性:开发高校学生的网上选课系统属于高校的信息化建设,开发过程所需要的经济费用是极其少的,在使用过程中也只需要浏览器的支持,其他环节并不涉及到经济问题,所以其在经济上是非常可行的,可以使整个选课的管理更高效快捷。社会可行性:学校的各级人员都对学校的信息化建设持支持的态度,并积极地为信息化建设的开展而做自己能做的事;学校的组织管理制度已经非常成熟,暂时不会有大的变动;学校的工作人员文化水平都相对较高,这对信息化建设是非常有利的。3系统分析3.1业务流程分析通过调查,以滁州学院计算机系为例,可以分析学生网上选课的整个过程,得到如图3-1的业务流程图:图3-1网上选课系统的业务流程图=1\*GB2⑴系统管理员对学生、教师、课程、班级信息进行管理和维护并录入系统数据库。=2\*GB2⑵学生对选修的课程进行注册、修改个人信息并将相关信息录入数据库,同时学生可以查看可选报课程的课程简介和教学进度表的相关信息以及自己所有课程的学分情况,这些信息当被查看时自动以列表形式显示给学生。=3\*GB2⑶教师在系统中对选报其所带课程的学生进行审核并对修完所带课程的学生进行打分,系统自动根据该教师所带班级及课程信息列出选报并需审核的学生信息,在公布成绩时,系统自动根据该教师所带班级及课程信息列出需打分的学生信息;同时教师可以对该课程的课程简介和教学进度表进行编辑。=4\*GB2⑷系统根据教师给学生的成绩自动在该生的原始学分上加分并计算出其总学分,同时将结果录入系统数据库,从而避免了大量的手工输入以及由此可能产生的失误。3.2数据流程分析由图3-1中的业务流程图,可以得到本网上选课系统的数据流程图,如图3-2所示:图3-2网上选课系统的数据流程图4系统设计4.1系统结构设计通过对业务流程的分析,结合现实情况,可以设计出整个学生网上选课系统的总体结构。由于本系统存在三种不同权限的用户,每种权限的用户进入系统后是其权限对应的不同页面,所以在进行系统结构设计时要分别考虑。系统管理员的页面结构设计图4-1系统管理员页面的结构图系统管理员有四个模块可以操作,分别是学生信息管理模块、教师信息管理模块、课程信息管理模块和班级信息管理模块。学生信息管理模块的下层模块分别是添加学生信息模块、删除学生信息模块、更新学生信息模块;教师信息管理模块所包含的模块分别是添加教师信息模块、删除教师信息模块、更新教师信息模块;课程信息管理模块所包含的模块分别是添加课程信息模块、删除课程信息模块、更新课程信息模块;班级信息管理模块所包含的模块分别是添加班级信息模块、删除班级信息模块、更新班级信息模块。学生功能页面结构设计图4-2学生功能页面的结构图学生功能页面有三个模块可以操作,分别是选修课程模块、修改信息模块和查看学分管理模块。以学生身份登录后进入选修课程功能页面:系统根据学生信息情况给出该生可以选报的课程;修改信息功能页面:修改个人密码和编辑个人资料;查看学分:可以查看自己所有课程的学分情况及总学分。教师功能的页面结构设计图4-3教师功能页面的结构图教师功能页面有三个模块可以操作,分别是挑选学生模块、公布成绩模块、更改信息模块。挑选学生管理模块完成教师对申请该课程学生的审核及批准操作;公布成绩模块完成给学生打分的操作;更改信息模块完成修改密码及编辑个人材料的操作。4.2数据库设计根据以上的分析可以设计出本系统的数据库,所用到的数据库表说明如下:表4-1管理人员表admin序号字段说明字段名字段类型长度主键备注1管理人员IDidvarchar50是2姓名namevarchar503密码passwordvarchar504联系电话telvarchar505电子邮箱e_mailvarchar50表4-2学生基本信息表student序号字段说明字段名字段类型长度主键备注1学号idvarchar50是2姓名namevarchar503密码passwordvarchar104籍贯jiguanvarchar1005所属专业departmentvarchar1006性别sexvarchar1007学分markint48联系电话telvarchar509电子邮箱e_mailvarchar50表4-3教师信息表teacher序号字段说明字段名字段类型长度主键备注1教师号idvarchar50是2姓名namevarchar503职称titlevarchar504密码passwordvarchar505联系电话telvarchar506电子邮箱e_mailvarchar507最高学位zgxwvarchar508最高学历zgxlvarchar509毕业院校byyxvarchar5010所学专业sxzyvarchar5011政治面貌zzmmvarchar5012民族mzvarchar5013研究方向yjfxvarchar5014出生年月csnyvarchar5015性别xbvarchar50表4-4课程信息表course序号字段说明字段名字段类型长度主键备注1课程号idvarchar50是2课程名称namevarchar503课程学分markvarchar504课程先修课preparevarchar505课程所属专业depvarchar506课程性质charactervarchar507考察方式examodevarchar50表4-5班级信息表classes序号字段说明字段名字段类型长度主键备注1班级号idvarchar502教师号tea_idvarchar50是3课程号cour_idvarchar504教室号room_idvarchar505课程时间cour_timevarchar50是表4-6选课信息表enrol序号字段说明字段名字段类型长度主键备注1选课的学生ID号idvarchar50是2选课学生所属班级ID号class_idvarchar50是3选课成功标识位acceptbit14总评成绩scorevarchar505平时成绩pingshivarchar506实验成绩shiyanvarchar507期末成绩qimovarchar50表4-7课程简介kcjj序号字段说明字段名字段类型长度主键备注1班级号idvarchar50是2课程名称namevarchar50是3课程类kclvarchar504课程负责人kcfzrvarchar505联系电话lxdhvarchar506e_maile_mailvarchar507教师队jsdvarchar508开课学期kkxqvarchar509内容简介nrjjvarchar5010课程说明kcsmvarchar5011先修课程要求xxkcyqvarchar5012教材jcvarchar5013教学参考书jxcksvarchar50表4-8教学进度表jxjd序号字段说明字段名字段类型长度主键备注1授课教师姓名skjsxmvarchar502职称zcvarchar503授课专业skzyvarchar504班级bjvarchar50是5课程名称kcmcvarchar50是6教材名称jcmcvarchar507出版社cbsvarchar508学年xnvarchar509学期xqvarchar5010周数zsvarchar5011计划学时jhxsvarchar5012讲课jkvarchar5013实验课sykvarchar5014周次1zc1varchar5015周学时1zxs1varchar5016讲课1jk1varchar5017实验课1syk1varchar5018教学内容摘要1jxnrzy1varchar80019周次2zc2varchar5020周学时2zxs2varchar5021讲课2jk2varchar5022实验课2syk2varchar5023教学内容摘要2jxnrzy2varchar80024周次3zc3varchar5025周学时3zxs3varchar5026讲课3jk3varchar5027实验课3syk3varchar5028教学内容摘要3jxnrzy3varchar80029周次4zc4varchar5030周学时4zxs4varchar5031讲课4jk4varchar5032实验课4syk4varchar5033教学内容摘要4jxnrzy4varchar80034周次5zc5varchar5035周学时5zxs5varchar5036讲课5jk5varchar5037实验课5syk5varchar5038教学内容摘要5jxnrzy5varchar80039周次6zc6varchar5040周学时6zxs6varchar5041讲课6jk6varchar5042实验课6syk6varchar5043教学内容摘要6jxnrzy6varchar80044周次7zc7varchar5045周学时7zxs7varchar5046讲课7jk7varchar5047实验课7syk7varchar5048教学内容摘要7jxnrzy7varchar80049周次8zc8varchar5050周学时8zxs8varchar5051讲课8jk8varchar5052实验课8syk8varchar5053教学内容摘要8jxnrzy8varchar8005系统主要功能的实现5.1登录的实现图5-1登录界面登录的实现。用户选择用户类型并输入用户名、密码,系统通过调用login_confirm这个javabean类中的doPost(HttpSetvletRequestreq,HttpServletResponseres)方法根据用户选择的类型到数据库相对应的表中将用户输入的用户名和密码与name,id字段进行验证,只有各项信息正确才能够进入系统,如果信息出错将提示出错的原因。在进行信息验证时系统将获得该用户的权限从而将对应的系统功能开放给用户。其关键代码为:publicvoiddoPost(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException{ Stringmessage=null;Stringid=null;//接收用户的登录名id=req.getParameter("id");//创建session对象HttpSessionsession=req.getSession(true);//将用户登录名存入session中session.setAttribute("id",String.valueOf(id));Stringpassword=null;//接收用户登录的密码password=req.getParameter("password");Stringkind=null;//接收用户级别kind=req.getParameter("kind");//调用getPassword方法,获取数据库中查询出来的密码Stringtemp=getPassword(req,res,id,kind);//对比查询出的密码和用户输入的密码是否匹配if(password.equals(temp))//密码输入正确,调用goo方法goo(req,res,kind);else{//密码输入错误message="用户名或密码有误!";doError(req,res,message) ; }}//根据用户的级别,分别转向不同的页面publicvoidgoo(HttpServletRequestreq,HttpServletResponseres,Stringkind)throwsServletException,IOException{//转向学生功能页面if(kind.equals("student")){ RequestDispatcherrd=getServletContext().getRequestDispatcher("/student.jsp");rd.forward(req,res);}//转向教师功能页面if(kind.equals("teacher")){RequestDispatcherrd=getServletContext().getRequestDispatcher("/teacher.jsp");rd.forward(req,res);}//转向管理员功能页面if(kind.equals("admin")){RequestDispatcherrd=getServletContext().getRequestDispatcher("/admin.jsp");rd.forward(req,res);}}//根据用户的级别和输入的用户名,查询对应的密码publicStringgetPassword(HttpServletRequestreq,HttpServletResponseres,Stringid,Stringkind)throwsServletException,IOException{//声明数据库连接类sqlBean的实例sqlBeandb=newsqlBean(); Stringpw=""; Stringsql="selectpasswordfrom"+kind+"whereid='"+id+"'";try{//进行数据库查询操作ResultSetrs=db.executeQuery(sql); if(rs.next()){pw=rs.getString("password"); }}catch(Exceptione){System.out.print(e.toString());} returnpw;}5.2管理员功能页面的实现图5-2管理员功能页面以管理员的身份登录系统后可以对学生、教师、课程、班级信息等进行管理、维护。图5-3学生信息管理界面在学生信息管理模块中可以查看所有学生的基本信息。这个时候,管理员用户可以进行删除、更新及添加学生信息等操作,在添加学生信息时,学号、姓名、密码、和学分,各项均不能为空,否则会提示出错信息。当点击提交后,系统会将各项内容录入到student表中;当删除学生时,系统会根据该生的学号到student表中找到该条记录并删除;当更新学生信息时,系统会根据该生的学号到student表中找到该条记录并更新相应的字段内容。其关键代码为://如果请求中包含新增学生参数if("new".equalsIgnoreCase(action)){try{ if(!hasLogin(req,res,stu_id)){ doError(req,res,"对不起,该学生号已经被注册过了,请重新注册!");}else{doNew(req,res); res.sendRedirect("http://localhost:8080/CourseManagement/getStudent.jsp");}catch(Exceptione){}}//如果请求中包含修改学生参数if("update".equalsIgnoreCase(action)){try{//调用修改学生信息方法 stu=doUpdate(req,res,stu_id);//并将修改后的学生信息存储在request上下文中,然后转向getStudent.jsp页面sendBean(req,res,stu,"/getStudent.jsp");}catch(SQLExceptione){}}//如果请求中包含删除学生参数 if("delete".equalsIgnoreCase(action)){try{ //调用删除学生方法success=doDelete(stu_id); }catch(SQLExceptione){} if(success!=1){ doError(req,res,"StudentSvlt:Deleteunsuccessful.Rowsaffected:"+success);}else{res.sendRedirect("http://localhost:8080/CourseManagement/getStudent.jsp");}}图5-4教师信息管理界面在教师信息管理模块中查看所有教师的基本信息。这个时候,管理员用户可以进行删除、更新及添加教师信息等操作,在添加教师信息时,教师号、姓名和登录密码,各项均不能为空,否则会提示出错信息。当点击提交后,系统会将各项内容录入到teacher表中;当删除教师信息时,系统会根据教师号到teacher表中找到该条记录并删除;当更新教师信息时,系统会根据教师号到teacher表中找到该条记录并更新相应的字段内容。图5-5课程信息管理界面在课程信息管理模块中查看所有课程的基本信息。这个时候,管理员用户可以进行删除、更新及添加课程信息等操作,在添加课程信息时,课程号和课程名称均不能为空,否则会提示出错信息。当点击提交后,系统会将各项内容录入到course表中;当删除课程信息时,系统会根据课程号到course表中找到该条记录并删除;当更新课程信息时,系统会根据课程号到course表中找到该条记录并更新相应的字段内容。图5-6班级信息管理界面在班级信息管理模块中查看所有班级的基本信息。这个时候,管理员用户可以进行删除、更新及添加班级信息等操作,在添加教师信息时,班级号不能为空,否则会提示出错信息。当点击提交后,系统会将各项内容录入到classes表中;当删除班级信息时,系统会根据班级号到classes表中找到该条记录并删除;当更新班级信息时,系统会根据班级号到classes表中找到该条记录并更新相应的字段内容。5.3学生功能页面的实现图5-7学生功能界面以学生的身份登录系统后可以进行选修课程、查看学分、更改信息等操作。图5-8学生选修课程界面查看可以选修的课程信息。图5-8列出了所有满足该生系别(该门课程所属系别和该生所在系别相同,即course表的dep字段和student表中的department字段相同)并且该生还未选报的课程,和先修课为public公共课程或者已通过其先修课的课程。学生可以对这些课程进行注册。当点击注册时,系统会将该生学号以及班级号录入到enrol表中,并将注册信息标志位accept置0。同时也可以查看该门课程的课程简介及教学进度表。其关键代码为:if("enrol".equalsIgnoreCase(action)){doEnrol(req,res,stu_id,cour_id,class_id,prepare); res.sendRedirect("DisplayCourse.jsp");}publicvoiddoEnrol(HttpServletRequestreq,HttpServletResponseres,Stringstu_id,Stringcour_id,Stringclass_id,Stringprepare)throwsServletException,IOException{intnum=0;//声明JavaBean对象checkEnrolcheck=newcheckEnrol();//如果预修课学分为0,则注册if(prepare.equals("0")){num=check.enrol(class_id,stu_id);}else{//判断预修课是否符合要求 if(check.hasPassPrepare(prepare)){num=check.enrol(class_id,stu_id);}elsedoError(req,res,"请先完成预修课");}if(num==0){doError(req,res,"注册课程失败!!");}}图5-9学生查看学分界面查看自己所有课程的学分情况及所获总学分。当点击查看学分时,从StudentLoginSvlt中调用getScore(Stringstu_id)方法获取enrol、course、classes表中的课程名称、学分以及成绩。图5-9列出了该生所修课程的学分,以及现在所获的总学分。图5-10学生更改信息界面更改密码、电话、E_mail等信息。图5-10要求输入新密码以及对新密码的确认、电话、E_mail等信息,在修改信息时,新密码以及对新密码的确认信息,均不能为空,否则会提示出错信息,当点击提交后,系统会根据该生学号到student表中找到该条记录并更新相应的字段内容。5.4教师功能页面的实现图5-11教师功能界面以教师的身份登录进入系统后可以进行挑选学生、公布成绩等操作。查看申请所带课程的学生信息以及班级信息。图5-12列出了所带的课程号及班级号。这个时候教师可以审批选报该课程的学生。图5-12挑选学生界面查看所带学生信息及班级信息。当点击挑选学生时,系统通过MarkSvlt中doChoose(Stringtea_id)方法调用determine中的getClass(tea_id)方法获取教师所带的班级号、课程名称等信息。当点击课程简介时,系统通过调用determine中的kcjj(Stringclass_id,Stringcour_name)方法获取该门课程的课程简介信息并可对其进行编辑;当点击教学进度表时,系统通过调用determine中的jxjd(Stringclass_id,Stringcour_name)方法获取该门课程的教学进度信息并可对其进行编辑;当点击选择时,系统通过MarkSvlt中doAccept(Stringclass_id)方法调用determine中的getStudents(class_id)方法获取选报该门课程的所有学生信息。其关键代码为:publicdeterminedoChoose(Stringtea_id){ determinedeter=newdetermine();deter.getClass(tea_id);returndeter;}publicResultSetgetClass(Stringtea_id){ Stringsql="selectcourse.id,,classes.cla_id"+"fromcourse,classes"+"wherecourse.id=classes.cour_id"+ "andclasses.tea_id='"+tea_id+"'"; sqlBeansqlbean=newsqlBean();ResultSetrs=sqlbean.executeQuery(sql);returnrs;}publicResultSetkcjj(Stringclass_id,Stringcour_name){ Stringsql="select*fromkcjjwhereid='"+class_id+"'andname='"+cour_name+"'"; sqlBeandb=newsqlBean(); ResultSetrs=db.executeQuery(sql); returnrs;}publicResultSetjxjd(Stringclass_id,Stringcour_name){ Stringsql="select*fromjxjdwherebj='"+class_id+"'andkcmc='"+cour_name+"'"; sqlBeandb=newsqlBean(); ResultSetrs=db.executeQuery(sql); returnrs;}publicdeterminedoAccept(Stringclass_id){ determinedeter=newdetermine(); deter.getStudents(class_id); returndeter;} publicResultSetgetStudents(Stringclass_id){ Stringsql="selectstudent.id,name,department,sex,mark,e_mail,tel"+ "fromstudent,enrol,classes"+ "wherestudent.id=enrol.stu_id"+ "andenrol.accept='0'"+ "andclasses.cla_id=enrol.class_id"+ "andclasses.cla_id='"+class_id+"'";sqlBeansqlbean=newsqlBean();ResultSetrs=sqlbean.executeQuery(sql);returnrs;}图5-13公布学生成绩界面图5-13列出了所带的课程号及班级号。当点击学生时,教师可以为所有选修该门课程的学生打分,系统通过MarkSvlt中doAccept2(tea_id)方法调用determine中的getStudent2(class_id)方法获取所有选修该门课程还未给出成绩的学生信息。当点击score时,系统将进入打分(marking.jsp)页面,分别给出总评成绩、平时成绩、实验成绩、期末成绩等,并将各项内容录入到数据库enrol表,同时,系统会根据成绩来判断该生是否通过了该课程,如果该成绩大于或等于60分,则在该生的总学分上加上该课程的学分,以供学生进行查看学分等操作。其关键代码为:publicdeterminedoAccept2(Stringclass_id){determinedeter=newdetermine();deter.getStudents2(class_id);returndeter;}publicResultSetgetStudents2(Stringclass_id){Stringsql="selectstudent.id,name,department,sex,mark,e_mail,tel"+ "fromstudent,enrol,classes"+ "wherestudent.id=enrol.stu_id"+ "andenrol.accept='1'"+ "andenrol.score='0'"+ "andclasses.cla_id=enrol.class_id"+ "andclasses.cla_id='"+class_id+"'";sqlBeansqlbean=newsqlBean();ResultSetrs=sqlbean.executeQuery(sql);returnrs; }if("marking".equalsIgnoreCase(action)){class_id=req.getParameter("class_id");floatp=Float.parseFloat(req.getParameter("p"));floats=Float.parseFloat(req.getParameter("s"));floatq=Float.parseFloat(req.getParameter("q"));floatpingshi=Float.parseFloat(req.getParameter("pingshi"));floatshiyan=Float.parseFloat(req.getParameter("shiyan"));floatqimo=Float.parseFloat(req.getParameter("qimo"));floatscore=(pingshi*p+shiyan*s+qimo*q)/100;stu_id=req.getParameter("id"); doMarking(req,res,stu_id,class_id,score,pingshi,shiyan,qimo);res.sendRedirect("score.jsp");}publicvoiddoMarking(HttpServletRequestreq,HttpServletResponseres,Stringstu_id,Stringclass_id,floatscore,floatpingsh

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论