您的当前位置:首页正文

毕业设计(论文)基于MVC架构的网上选课系统的设计与实现

来源:九壹网
滁州学院本科毕业论文

中图分类号: TP319

本 科 生 毕 业 论 文(或设计)

(申请学士学位)

论文题目 基于

MVC架构的网上选课

系统的设计与实现

作者姓名 张 楠 所学专业名称 计算机科学与技术 指导教师 刘士喜

2009年6月10日

滁州学院本科毕业论文

学 号:**********

论文答辩日期: 2009年5月30日

指 导 教 师: (签字)

滁州学院本科毕业论文

滁州学院本科毕业设计(论文)原创性声明

本人郑重声明:所呈交的设计(论文)是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果。本人完全意识到本声明的法律后果由本人承担。

作者签名:

注:本页放在学位论文封面后,目录前面。

年 月 日

滁州学院本科毕业论文

目 录

摘要 .............................................................................1 Abstract ..........................................................................1 1. 绪论 .........................................................................2

1.1 系统的研究现状 ...........................................................2 1.2 系统的研究目标 ...........................................................2 1.3 MVC概述 ................................................................3

1.3.1 MVC简介 ..........................................................3 1.3.2 MVC的优点 ........................................................3 1.3.3 JSP+Servlet+JavaBean技术简介 .........................................3

2. 系统规划 .....................................................................4

2.1 需求分析 .................................................................4

2.1.1 系统功能概述 .......................................................4 2.1.2 需求分析的方法简介 .................................................5 2.1.3 用例图描述 .........................................................5 2.1.4 系统活动描述 .......................................................9 2.1.5 非功能性需求 ......................................................10 2.2 可行性分析 ..............................................................11

2.2.1 开发的必要性 ......................................................11 2.2.2 开发的可能性 ......................................................11

3. 系统分析 ....................................................................11

3.1业务流程分析 .............................................................11 3.2 数据流程分析 ............................................................12 4. 系统设计 ....................................................................13

4.1 系统结构设计 ............................................................13 4.2 数据库设计 ..............................................................15 5. 系统主要功能的实现 ..........................................................20

5.1 登录的实现 ..............................................................20 5.2 管理员功能页面的实现 ....................................................26 5.3 学生功能页面的实现 ......................................................26 5.4 教师功能页面的实现 ......................................................28

滁州学院本科毕业论文

结论 ............................................................................33 参考文献 ........................................................................33 致谢 ............................................................................34

滁州学院本科毕业论文

基于MVC架构的网上选课系统的设计与实现

摘要:近年来,由于高校在校人数的增多以及对学生信息统一管理的需要,学生选课管理面临着巨

大的工作量。学校每学期的学生选课都需要进行综合统计,但是每次的选课工作都是人工收集和统计选票,这样既花费大量的时间,还容易出现误差。为解决这些问题,本文设计了一个基于MVC架构的网上选课系统,不仅使学生选课处理效率高,而且能够避免出错。对MVC进行了简要的描述,说明了使用MVC的优越之处。通过用例图和活动图对系统进行需求分析,并阐述了本系统实施的可行性。在分析本系统业务流程的基础上,进行系统设计。提出了本系统的总体结构和后台数据库,详细描述了系统的各功能模块的实现细节。最后给出本系统的优点和不足。

关键词: MVC;网上选课;用例图;活动图

The design and realization for on-line course selection management

based on MVC structure

Abstract:In recent years, with the increasing of students in university and the demand of Unified

management of students’ information, selecting course for students is facing giant work load. Every semester selecting for students needs to carry on the synthesis statistic in university, however, collecting and counting voting through manual work which not only spends much time, but also many errors occur easily. In order to solve these problems, the author designs an on-line course selcection management which based on MVC. It not only has high processing efficiency for students to select course, but also many mistakes can be avoided. This paper describes MVC briefly, and shows the advantage of using MVC. This system demand with the Use Case Diagram and Activity Diagram is analyzed, and the feasibility of this system’s implementation is explained. In the base of analysis of this system’s business processes , the system designis is given, and the gross structure and Database of this system is presented, and the realization of every function module of this system is described in details. Finally, the strengths and weaknesses of this system is presented.

Key words: MVC;on-line course selection;Use Case Diagram ;Activity Diagram

1

滁州学院本科毕业论文

1 绪论

1.1 系统的研究现状

目前对于网上选课系统的研究已经越来越深入,也越来越成熟,主要是基于B/S模式,采用JAVA、ASP等编程语言和ORACLE、SQL Server、ACCESS等数据库相结合进行设计和实现。

基于JAVA平台和ORACLE9i技术的网上选课系统,分析了基于WEB选课系统的需求,对系统进行了全面分析,并采用JAVA+ORACLE9i技术的具体设计方案,提出了设计过程中问题的解决办法。系统以Apache+Tomcat为应用服务器,Oracle9i为后台数据库,DreamweaverMx和Jbuilder9为开发工具[1]。

随着高校教育教学改革的不断深入,众多院校采用选课制。本文采用统一建模语言(UML)完成了该系统的分析和设计,提出了分布式3层体系结构的设计方案,并简要介绍了该系统的设计思想和功能模块[2]。

为了全面推进素质教育,越来越多的中等职业学校都采用了学分制教学管理制度。这种制度需要面对的一个重要问题就是学生的选课操作问题,如果采用人工的方法既费时又费力,因而需要选用一种新的选课方式解决这个问题。本系统是在学校校园网平台的基础上使用ASP.NET及数据库技术开发出的、适合于中等职业学校使用的网上选课系统,可以比较好地解决此问题[3]。

随着通讯技术和计算机网络技术的不断发展,高校教学管理网络化已成为一个发展趋势。针对高校教务管理改革中的一个重点问题——学生选课设计了一个切实可行的系统,并对基于ASP的网上选课系统开发的基本原理和系统结构作了阐述,讨论了如何利用ASP实现对数据库的动态操作,并介绍该在线选课系统的几个主要功能模块的设计过程并实现了该选课系统,选课效果良好[4]。

基于ASP.NET和SQL Server2005的网上选课系统的系统模块、逻辑体系结构、系统优化及实现的关键技术。在WindowsServer2003+IIS6.0+.net的平台上,以SQLServer2005为后台数据库,采用ASP.NET为基本开发工具,充分考虑了系统的安全性,实现了教师和所教课程的添加、修改、删除,还实现了学生注册、确认和分班的综合管理[5]。

基于MVC架构采用JSP+Servlet+JavaBean和SQL Server2000相结合的网上选课系统,能较安全,快捷的实现网上选课功能并且较易开发、复用度高、代码耦合度低,易维护。

1.2 系统的研究目标

开发高校学生网上选课系统的目标是为了方便学生的选课操作、教师的评选操作,提高选课的效率和灵活性,实现对选课数据进行统一的管理,较易维护。

2

滁州学院本科毕业论文

1.3 MVC概述

1.3.1 MVC简介

为了能有效的控制开发, MVC模式成为分析和设计Web应用程序最常用的模式, 它为软件的分层及实现提供了一种稳定而成熟的结构方案和开发方法。

MVC是英文Model、View、Controller的缩写,它不是一种技术,而是一种系统框架。 MVC包含:

⑴ 模型(Model)代表企业数据和业务规则,用来控制访问和数据更新。

⑵ 视图(View)代表模型的内容,它通过模型访问企业数据并指定这些数据的显示。视图负责模型状态改变后呈现给用户的数据也相应改变。 ⑶ 控制(Controller)把与视图交互转化成模型执行的动作。

1.3.2 MVC的优点

MVC架构有如下优点:

⑴ 多视图使用同一模型。模型与视图分离允许多视图使用同一企业模型。

⑵ 容易支持新类型的客户端。支持一个新类型的客户端,只需写一个视图和控制,然后把它连接到现存的企业模型中。

⑶ 有利于开发中的分工。在MVC模式中,由于按层把系统开,那么就能更好的实现开发中的分工。网页设计人员可以进行开发视图层中的JSP,对业务熟悉的开发人员可开发业务层JavaBean,而其它开发人员可开发控制层Servlet。

⑷ 有利于组件的重用。分层后更有利于组件的重用。如控制层可独立成一个能用的组件,视图层也可做成通用的操作界面。

1.3.3 JSP+Servlet+JavaBean技术简介

JSP是一种实现普通静态HTML和动态HTML混合编码的技术。JSP设计的目的在于简化表示层的表示。在JSP中编写静态的HTML更加方便,不必再用Println语句来输出每一行HTML代码。更重要的是借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开[6]。

Servlet是一种独立于操作系统平台和网络传输协议的服务器端的Java应用程序,它用来扩展服务器的功能,可以生成动态的Web页面。Servlet与传统Java应用程序最大的不同在于:它不是从命令行启动的,而是由包含Java虚拟机的Web服务器进行加载。它最大的用途是通过动态响应客户机请求来扩展服务器功能。其基本的工作流程如下:

⑴ 客户机将请求发送到服务器。

⑵ 服务器上的Web容器实例化(装入)Servlet,并为Servlet进程创建线程。

JavaBean组件是一些可移植、可重用,并可以组装到应用程序中的Java类。可以通过在 JavaBean中封装事务逻辑、数据库操作等,然后将JavaBean与JSP语言元素一起使用,可

3

滁州学院本科毕业论文

以很好地实现后台业务逻辑和前台逻辑的分离,使得JSP页面更加可读、易维护。

2 系统规划

2.1 需求分析

2.1.1 系统功能概述

基于项目的总体规划,可以将本系统划分为以下4个模块:

⑴ 用户登陆模块:负责验证系统中各级别用户的登录信息,并根据登陆用户的不同级别转向不同的页面。

⑵ 学生功能模块:负责学生的选课、查看课程成绩、课程简介、教学进度表以及更改学生信息的操作。

⑶ 教师功能模块:负责审批学生选课、公布学生成绩、编辑课程简介和教学进度表以及更改学生信息的操作。

⑷ 管理员功能模块:负责课程、班级和学生信息的添加、修改和删除等操作。

其中,用户登陆模块中涉及到用户身份级别的处理:不同身份的用户对系统的使用权限有所不同。系统管理员登录后可以对学生、教师、课程、班级等系统信息进行管理和维护,教师登陆后可以查看学生选课情况并给出所带学生课程成绩,学生登录后可以进行选课并查看自己某门课程的成绩。在功能实现方面,基于MVC的思想,用JSP实现系统的首页,提供用户登录信息输入接口;Servlet实现验证用户登陆信息(若正确则根据用户级别转向不同的页面);JavaBean实现整个系统与数据库的连接和关闭操作。

学生登录模块功能分析:学生登录以后,可以选报课程:系统会根据学生所在系及课程的先修课列出满足该生选报条件的课程;可以查看自己的成绩,包括该生每门课程的名称、学分以及总学分。如果教师还未给出成绩,则系统会有相关提示;可以查看该课程的课程简介、教学进度表的相关信息;可以更改自己的个人信息,包括密码、电话号码,其中要求密码不能为空。在功能实现方面,基于MVC的思想,用JSP实现学生登陆成功后显示的功能页面以及相关信息查询、更新学生注册信息页面;Servlet实现学生选课和查看成绩等操作;JavaBean实现学生选择课程。

教师登录模块功能分析:教师登陆以后,可以对学生选课申请进行审核,以及给自己所带的学生进行打分。教师可以查看有哪些学生选择了自己所教授的课程,其中系统列出了该教师所带课程的班级以及选报了该课程的所有学生信息,当该课程结束时教师可以给出所有选择该课程学生的成绩。当教师给出了学生某门课程的成绩之后,系统会根据成绩来判断该生是否通过了该课程,如果该成绩大于或等于60分,则在该生的学分上加上该课程的学分。在功能实现方面,基于MVC的思想,用JSP实现教师登陆成功后显示的功能页面以及查看相关信息、给学生打分的页面;Servlet实现执行批准学生选课和给学生打分等操作;JavaBean实现批准学生选课和打分等逻辑方法。

管理员模块功能分析:管理员在本系统中拥有最高权限,可以对学生、教师、课程、班级等信

4

滁州学院本科毕业论文

息进行管理和维护。在班级管理系统中“新增班级”是该模块的关键环节,其中班级号不能为空且输入的班级号未曾注册,同时还要保证同一教师不能在同一时间上两门课程,否则系统提示相关错误信息。在功能实现方面,基于MVC的思想,用JSP实现管理员成功登陆后的功能页面、以及添加、查看、更新相关信息的页面;Servlet实现执行添加、删除、修改学生信息、教师信息、课程信息、班级信息等操作;JavaBean实现封装关于学生信息、教师信息、课程信息、班级信息的业务逻辑方法。

2.1.2 需求分析的方法简介

本系统采用例驱动的分析方法进行需求分析。下面简要介绍一下此方法:UML(统一建模语言,Unified Modeling Language)是一种定义良好、易于表达、功能强大且普遍适用的可视化建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。用例建模是UML建模的一部分,也是UML里最基础的部分。用例建模的最主要功能就是用来表达系统的功能性需求或行为。用例建模可分为用例图和用例描述。用例图由参与者(Actor)、用例(Use Case)、系统边界、箭头组成,用画图的方法来完成。用例描述用来详细描述用例图中每个用例,用文本文档来完成。活动图是UML的另一个组成部分,活动图描述了满足用例要求所要进行的活动以及活动间的约束关系,活动图有利于识别并发活动。在进行用例建模的同时可以辅以活动图进行详细说明系统所进行的并发活动。当用例图和活动图结合起来时,系统的功能性需求就能够被完整地表达出来,并且简单明了[7]。

2.1.3 用例图描述

采用用例驱动方法分析需求,首先识别出系统的参与者主要有系统管理员、教师和学生,每一种参与者都有不同的权限,其中系统管理员权限最大,负责整个系统的维护。下面就对整个系统建立用例模型来表达需求:

5

滁州学院本科毕业论文

⒈ 系统管理员:主要负责对教师、学生、课程、班级的信息进行维护等。

图2-1 用例图—系统管理员

对图2-1用例图中的用例进一步描述如下:

⑴ 添加学生:录入学生的基本信息,并设置初始密码。

⑵ 删除学生:对于已毕业或其他情况不属于本学校的学生信息进行删除操作。 ⑶ 修改学生:对学生的信息有误之处进行修改并录入数据库。 ⑷ 添加教师:录入教师的基本信息,并设置初始密码。

⑸ 删除教师:对于已退休或其他情况不属于本学校的教师信息进行删除操作。 ⑹ 修改教师:对教师的信息有误之处进行修改并录入数据库。 ⑺ 添加课程:录入课程的基本信息。

⑻ 删除课程:对于已不开设的课程信息进行删除操作。

6

滁州学院本科毕业论文

⑼ 修改课程:对课程的信息有误之处进行修改并录入数据库。 ⑽ 添加班级:录入班级的基本信息。

⑾ 删除班级:对于已不开设的班级信息进行删除操作。 ⑿ 修改班级:对班级的信息有误之处进行修改并录入数据库。

⒉ 学生:从系统管理员处获得密码进入系统,主要完成选修课程、查看学分、更改信息等操作。其用例图如图2-2:

图2-2 用例图—学生

对图2-2用例图中的用例进一步描述如下:

⑴ 选修课程:学生登录系统之后可以选修自己的喜欢的课程。

⑵ 查看学分:系统根据学生信息列出该生的所有课程所获学分及总学分。 ⑶ 更改信息:学生进入该功能页面后,可以修改密码及其他个人信息。

7

滁州学院本科毕业论文

⒊ 教师:主要完成挑选学生及公布成绩等功能。其用例图如下:

图2-3 用例图—教师

对图2-3用例图中的用例进一步描述如下:

⑴ 挑选学生:登陆系统后,进入挑选学生的功能页面,审批学生选课同时可以进行编辑课程简介和教学进度表信息。

⑵ 公布成绩:对于选修该课程的学生给出成绩。

⑶ 更改信息:教师进入该功能页面后,可以修改密码及其他个人信息。

8

滁州学院本科毕业论文

2.1.4 系统活动描述

⒈ 学生选课的活动描述

图2-4 活动图—学生选课

学生登陆以后,可以选报课程,系统会根据学生所在系及课程的先修课等信息来判断学生是否具备条件,如果具备条件,学生可以注册课程进行选报;教师根据提交的选报该课程的学生信息进行审核及挑选,最后在该课程结束时给出所有学生的成绩。

⒉ 管理员对各种信息进行维护的活动描述

管理员登陆以后,可以对学生、教师信息进行添加、修改和删除等操作,并将结果录入到数据库中。

9

滁州学院本科毕业论文

a)

b)

图2-5 活动图—信息维护

以管理员身份登录后,管理员负责对学生、教师、课程、班级的信息进行管理及维护,管理员对于毕业或其他原因不属于本校的学生信息进行删除,对于录入有误的学生信息进行更新,同时对于新增的学生进行信息添加;对于退休或其他原因不属于本校的教师信息进行删除,对于录入有误的教师信息进行更新,同时对于新增的教师进行信息添加。

2.1.5 非功能性需求

学生网上选课系统的非功能性需求如下:

1. 使用简单。用户使用单一的Browser软件(如微软公司的Internet Explorer 简称IE 和网景公

司的Net scape Navigator) ,通过鼠标即可访问数据信息。

10

滁州学院本科毕业论文

2. 易于维护。用户端无需专用软件, 系统的维护工作简单。 3. 信息共享度高。实现系统内的信息传递,加快运转速度。

4. 扩展性好。可直接接入Intranet 和Internet , 具有良好的扩展性。 5. 可在局域网或广域网上运行。

2.2 可行性分析

在网上选课系统的目标及需求确定之后,就可以对这个系统的可行性进行分析,从该系统开发的必要性和可能性两个方面进行讨论。

2.2.1 开发的必要性

随着计算机应用的不断深入,信息产业的兴起,互联网的发展及应用,网上办公的作用日益明显。各行各业几乎都与计算机有着密切的联系,都实现了不同程度的自动化操作。网上选课系统对学生选修课程进行了规范、科学的设计,快捷有效地实现了学生对课程的选修。同时,该系统也录入了学生、教师、课程、班级等的基本信息,可以为学校的管理带来方便。

2.2.2 开发的可能性

1. 技术可行性:使用现如今已经成熟的MVC架构,系统数据库选择SQL Server2000 ,在系

统中的核心部分使用Servlet+JavaBean技术,实现JSP+Servlet+JavaBean和SQL Server 2000的有机集合。

2. 经济可行性:开发高校学生的网上选课系统属于高校的信息化建设,开发过程所需要的经济

费用是极其少的,在使用过程中也只需要浏览器的支持,其他环节并不涉及到经济问题,所以其在经济上是非常可行的,可以使整个选课的管理更高效快捷。

3. 社会可行性:学校的各级人员都对学校的信息化建设持支持的态度,并积极地为信息化建设

的开展而做自己能做的事;学校的组织管理制度已经非常成熟,暂时不会有大的变动;学校的工作人员文化水平都相对较高,这对信息化建设是非常有利的。

3 系统分析

3.1业务流程分析

通过调查,以滁州学院计算机系为例,可以分析学生网上选课的整个过程,得到如图3-1的业务流程图:

11

滁州学院本科毕业论文

图3-1 网上选课系统的业务流程图

⑴ 系统管理员对学生、教师、课程、班级信息进行管理和维护并录入系统数据库。 ⑵ 学生对选修的课程进行注册、修改个人信息并将相关信息录入数据库,同时学生可以查看可选报课程的课程简介和教学进度表的相关信息以及自己所有课程的学分情况,这些信息当被查看时自动以列表形式显示给学生。

⑶ 教师在系统中对选报其所带课程的学生进行审核并对修完所带课程的学生进行打分,系统自动根据该教师所带班级及课程信息列出选报并需审核的学生信息,在公布成绩时,系统自动根据该教师所带班级及课程信息列出需打分的学生信息;同时教师可以对该课程的课程简介和教学进度表进行编辑。

⑷ 系统根据教师给学生的成绩自动在该生的原始学分上加分并计算出其总学分,同时将结果录入系统数据库,从而避免了大量的手工输入以及由此可能产生的失误。

3.2 数据流程分析

由图3-1中的业务流程图,可以得到本网上选课系统的数据流程图,如图3-2所示:

12

滁州学院本科毕业论文

图3-2 网上选课系统的数据流程图

4 系统设计

4.1 系统结构设计

通过对业务流程的分析,结合现实情况,可以设计出整个学生网上选课系统的总体结构。由于本系统存在三种不同权限的用户,每种权限的用户进入系统后是其权限对应的不同页面,所以在进行系统结构设计时要分别考虑。

13

滁州学院本科毕业论文

1. 系统管理员的页面结构设计

图4-1 系统管理员页面的结构图

系统管理员有四个模块可以操作,分别是学生信息管理模块、教师信息管理模块、课程信息管理模块和班级信息管理模块。学生信息管理模块的下层模块分别是添加学生信息模块、删除学生信息模块、更新学生信息模块;教师信息管理模块所包含的模块分别是添加教师信息模块、删除教师信息模块、更新教师信息模块;课程信息管理模块所包含的模块分别是添加课程信息模块、删除课程信息模块、更新课程信息模块;班级信息管理模块所包含的模块分别是添加班级信息模块、删除班级信息模块、更新班级信息模块。

2. 学生功能页面结构设计

图4-2学生功能页面的结构图

14

滁州学院本科毕业论文

学生功能页面有三个模块可以操作,分别是选修课程模块、修改信息模块和查看学分管理模块。

以学生身份登录后进入选修课程功能页面:系统根据学生信息情况给出该生可以选报的课程;修改信息功能页面:修改个人密码和编辑个人资料;查看学分:可以查看自己所有课程的学分情况及总学分。

3. 教师功能的页面结构设计

图4-3 教师功能页面的结构图

教师功能页面有三个模块可以操作,分别是挑选学生模块、公布成绩模块、更改信息模块。

挑选学生管理模块完成教师对申请该课程学生的审核及批准操作;公布成绩模块完成给学生打分的操作;更改信息模块完成修改密码及编辑个人材料的操作。

4.2 数据库设计

根据以上的分析可以设计出本系统的数据库,所用到的数据库表说明如下:

表4-1管理人员表admin

序主键 备注 号 字段说明 字段名 字段类型 长度 1 管理人员ID id varchar 50 是 2 姓名 name varchar 50 3 密码 password varchar 50 4 联系电话 tel varchar 50 5 电子邮箱 e_mail varchar 50

15

滁州学院本科毕业论文

表4-2学生基本信息表student

序号 字段说明 1 学号 2 姓名 3 密码 4 籍贯 5 所属专业 6 性别 7 学分 8 联系电话 9 电子邮箱 主键 字段名 id name password jiguan department sex mark tel e_mail 字段类型 varchar varchar varchar varchar varchar varchar int varchar varchar

表4-3教师信息表teacher

备注 长度 50 50 10 100 100 100 4 50 50 是 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 主键 字段说明 教师号 姓名 职称 密码 联系电话 电子邮箱 最高学位 最高学历 毕业院校 所学专业 政治面貌 民族 研究方向 出生年月 性别 字段名 id name title password tel e_mail zgxw zgxl byyx sxzy zzmm mz yjfx csny xb

备注 字段类型 varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar 长度 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 是

16

滁州学院本科毕业论文

表4-4课程信息表course

序号 字段说明 1 2 3 4 5 6 7

课程号 课程名称 课程学分 课程先修课 课程性质 考察方式 字段名 id name mark prepare character examode 字段类型 varchar varchar varchar varchar varchar varchar varchar 长度 50 50 50 50 50 50 50 主键 是 备注 课程所属专业 dep 表4-5班级信息表classes

序号 字段说明 1 2 3 4 5

班级号 教师号 课程号 教室号 课程时间 字段名 id tea_id cour_id room_id cour_time 字段类型 varchar varchar varchar varchar varchar 长度 50 50 50 50 50 主键 是 是 备注 表4-6选课信息表enrol

序号 1 2 3 4 5 6 7 主键 字段说明 选课的学生ID号 选课学生所属班级ID号 选课成功标识位 总评成绩 平时成绩 实验成绩 期末成绩 字段名 id class_id accept score pingshi shiyan qimo 字段类型 varchar varchar bit varchar varchar varchar varchar

备注 长度 是 50 是 50 1 50 50 50 50

17

滁州学院本科毕业论文

表4-7课程简介kcjj

序号 1 2 3 4 5 6 7 8 9 10 11 12 13 字段说明 班级号 课程名称 课程类 课程负责人 联系电话 e_mail 教师队 开课学期 内容简介 课程说明 教材 教学参考书 字段名 id name kcl kcfzr lxdh e_mail jsd kkxq nrjj kcsm jc jxcks 字段类型 varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar

表4-8教学进度表jxjd

长度 50 50 50 50 50 50 50 50 50 50 50 50 50 主键 是 是 备注 先修课程要求 xxkcyq 序号 字段说明 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 职称 授课专业 班级 课程名称 教材名称 出版社 学年 学期 周数 计划学时 讲课 实验课 周次1 周学时1 讲课1 实验课1 教学内容摘要1 字段名 zc skzy bj kcmc jcmc cbs xn xq zs jhxs jk syk zc1 zxs1 jk1 syk1 jxnrzy1 字段类型 varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar 18

长度 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 800 主键 是 是 备注 授课教师姓名 skjsxm 滁州学院本科毕业论文

19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 周次2 周学时2 讲课2 实验课2 教学内容摘要2 周次3 周学时3 讲课3 实验课3 教学内容摘要3 周次4 周学时4 讲课4 实验课4 教学内容摘要4 周次5 周学时5 讲课5 实验课5 教学内容摘要5 周次6 周学时6 讲课6 实验课6 教学内容摘要6 周次7 周学时7 讲课7 实验课7 教学内容摘要7 周次8 周学时8 讲课8 实验课8 zc2 zxs2 jk2 syk2 jxnrzy2 zc3 zxs3 jk3 syk3 jxnrzy3 zc4 zxs4 jk4 syk4 jxnrzy4 zc5 zxs5 jk5 syk5 jxnrzy5 zc6 zxs6 jk6 syk6 jxnrzy6 zc7 zxs7 jk7 syk7 jxnrzy7 zc8 zxs8 jk8 syk8 varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar 50 50 50 50 800 50 50 50 50 800 50 50 50 50 800 50 50 50 50 800 50 50 50 50 800 50 50 50 50 800 50 50 50 50 19

滁州学院本科毕业论文

53 教学内容摘要8 jxnrzy8 varchar 800 5系统主要功能的实现

5. 1 登录的实现

图5-1 登录界面

登录的实现。用户选择用户类型并输入用户名、密码,系统通过调用login_confirm这个javabean类中的doPost(HttpSetvletRequest req,HttpServletResponse res)方法根据用户选择的类型到数据库相对应的表中将用户输入的用户名和密码与name,id字段进行验证,只有各项信息正确才能够进入系统,如果信息出错将提示出错的原因。在进行信息验证时系统将获得该用户的权限从而将对应的系统功能开放给用户。其关键代码为:

public void doPost(HttpServletRequest req,HttpServletResponse res) throws ServletException,

IOException {

String message=null; String id=null;

//接收用户的登录名 id=req.getParameter(\"id\");

//创建session对象

HttpSession session=req.getSession(true);

//将用户登录名存入session中

20

滁州学院本科毕业论文

session.setAttribute(\"id\ String password=null;

//接收用户登录的密码

password= req.getParameter(\"password\"); String kind =null;

//接收用户级别

kind=req.getParameter(\"kind\");

//调用getPassword方法,获取数据库中查询出来的密码 String temp =getPassword(req,res,id,kind);

//对比查询出的密码和用户输入的密码是否匹配 if( password.equals(temp))

//密码输入正确,调用goo方法 goo(req,res,kind); else {

//密码输入错误

message=\"用户名或密码有误!\"; doError(req,res,message) ;

} }

//根据用户的级别,分别转向不同的页面

public void goo(HttpServletRequest req, HttpServletResponse res,String kind)

throws ServletException,IOException{

//转向学生功能页面

if(kind.equals(\"student\")) {

RequestDispatcher rd = getServletContext().getRequestDispatcher(\"/student.jsp\");

rd.forward(req, res); }

//转向教师功能页面 if(kind.equals(\"teacher\")){

RequestDispatcher rd = getServletContext().getRequestDispatcher(\"/teacher.jsp\");

rd.forward(req,res); }

//转向管理员功能页面 if(kind.equals(\"admin\")){

RequestDispatcher rd = getServletContext().getRequestDispatcher(\"/admin.jsp\");

rd.forward(req, res); }

}

21

滁州学院本科毕业论文

//根据用户的级别和输入的用户名,查询对应的密码

public String getPassword(HttpServletRequest req, HttpServletResponse res,

String id,String kind)throws ServletException, IOException {

//声明数据库连接类sqlBean的实例

sqlBean db= new sqlBean();

String pw=\"\"; String sql=\"select password from \"+kind+\" where id='\"+id+\"'\";

try{

//进行数据库查询操作

ResultSet rs=db.executeQuery(sql); if(rs.next() ){

pw= rs.getString(\"password\");

} }catch(Exception e){ System.out.print(e.toString());} return pw;

}

5. 2 管理员功能页面的实现

图5-2 管理员功能页面

以管理员的身份登录系统后可以对学生、教师、课程、班级信息等进行管理、维护。

22

滁州学院本科毕业论文

图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(Exception e){}

}

// 如果请求中包含修改学生参数 if (\"update\".equalsIgnoreCase(action)) { try{

// 调用修改学生信息方法 stu = doUpdate(req,res, stu_id);

23

滁州学院本科毕业论文

// 并将修改后的学生信息存储在request上下文中,然后转向getStudent.jsp页面 sendBean(req,res,stu,\"/getStudent.jsp\"); } catch(SQLException e){} } // 如果请求中包含删除学生参数 if (\"delete\".equalsIgnoreCase(action)) { try{

//调用删除学生方法 success = doDelete(stu_id); } catch(SQLException e){}

if (success != 1) {

doError(req, res, \"StudentSvlt: Delete unsuccessful. Rows affected: \" + success);

}

else {res.sendRedirect(\"http://localhost:8080/CourseManagement/getStudent.jsp\");}

}

图5-4 教师信息管理界面

在教师信息管理模块中查看所有教师的基本信息。这个时候,管理员用户可以进行删除、更新及添加教师信息等操作,在添加教师信息时,教师号、姓名和登录密码,各项均不能为空,否则会提示出错信息。当点击提交后,系统会将各项内容录入到teacher表中;当删除教师信息时,系统会根据教师号到teacher表中找到该条记录并删除;当更新教师信息时,系统会根据教师号到teacher表中找到该条记录并更新相应的字段内容。

24

滁州学院本科毕业论文

图5-5 课程信息管理界面

在课程信息管理模块中查看所有课程的基本信息。这个时候,管理员用户可以进行删除、更新及添加课程信息等操作,在添加课程信息时,课程号和课程名称均不能为空,否则会提示出错信息。当点击提交后,系统会将各项内容录入到course表中;当删除课程信息时,系统会根据课程号到course表中找到该条记录并删除;当更新课程信息时,系统会根据课程号到course表中找到该条记录并更新相应的字段内容。

图5-6 班级信息管理界面

在班级信息管理模块中查看所有班级的基本信息。这个时候,管理员用户可以进行删除、更新及添加班级信息等操作,在添加教师信息时,班级号不能为空,否则会提示出错信息。当点击提交后,系统会将各项内容录入到classes表中;当删除班级信息时,系统会根据班级号到classes表中找

25

滁州学院本科毕业论文

到该条记录并删除;当更新班级信息时,系统会根据班级号到classes表中找到该条记录并更新相应的字段内容。

5. 3 学生功能页面的实现

图5-7 学生功能界面

以学生的身份登录系统后可以进行选修课程、查看学分、更改信息等操作。

图5-8 学生选修课程界面

查看可以选修的课程信息。图5-8列出了所有满足该生系别(该门课程所属系别和该生所在系别相同,即course表的dep字段和student表中的department字段相同)并且该生还未选报的课程,和先修课为public公共课程或者已通过其先修课的课程。学生可以对这些课程进行注册。当点击注册时,系统会将该生学号以及班级号录入到enrol表中,并将注册信息标志位accept置0。同时也可以查看该门课程的课程简介及教学进度表。其关键代码为:

26

滁州学院本科毕业论文

if(\"enrol\".equalsIgnoreCase(action)){

doEnrol(req,res,stu_id,cour_id,class_id,prepare); res.sendRedirect(\"DisplayCourse.jsp\");

}

public void doEnrol(HttpServletRequest req, HttpServletResponse res, String stu_id,String cour_id,String class_id,String prepare) throws ServletException, IOException {

int num=0;

//声明JavaBean对象

checkEnrol check=new checkEnrol(); //如果预修课学分为0,则注册

if(prepare.equals(\"0\") ) { num= check.enrol(class_id,stu_id); } else { //判断预修课是否符合要求

if( check.hasPassPrepare(prepare)){num= check.enrol(class_id,stu_id);} else doError(req,res,\"请先完成预修课\");

}

if(num==0){doError(req,res,\"注册课程失败!!\");}

}

图5-9 学生查看学分界面

查看自己所有课程的学分情况及所获总学分。当点击查看学分时,从StudentLoginSvlt中调用getScore(String stu_id)方法获取enrol、course、classes表中的课程名称、学分以及成绩。图5-9列出了该生所修课程的学分,以及现在所获的总学分。

27

滁州学院本科毕业论文

图5-10 学生更改信息界面

更改密码、电话、E_mail等信息。图5-10要求输入新密码以及对新密码的确认、电话、E_mail等信息,在修改信息时,新密码以及对新密码的确认信息,均不能为空,否则会提示出错信息,当点击提交后,系统会根据该生学号到student表中找到该条记录并更新相应的字段内容。

5. 4 教师功能页面的实现

图5-11 教师功能界面

以教师的身份登录进入系统后可以进行挑选学生、公布成绩等操作。查看申请所带课程的学生信息以及班级信息。图5-12列出了所带的课程号及班级号。这个时候教师可以审批选报该课程的学生。

28

滁州学院本科毕业论文

图5-12 挑选学生界面

查看所带学生信息及班级信息。当点击挑选学生时,系统通过MarkSvlt中doChoose(String tea_id)方法调用determine中的getClass(tea_id)方法获取教师所带的班级号、课程名称等信息。当点击课程简介时,系统通过调用determine中的kcjj(String class_id,String cour_name)方法获取该门课程的课程简介信息并可对其进行编辑;当点击教学进度表时,系统通过调用determine中的jxjd(String class_id,String cour_name)方法获取该门课程的教学进度信息并可对其进行编辑;当点击选择时,系统通过MarkSvlt中doAccept(String class_id)方法调用determine中的getStudents(class_id)方法获取选报该门课程的所有学生信息。其关键代码为:

public determine doChoose(String tea_id){

determine deter =new determine();deter.getClass(tea_id);return deter;

}

public ResultSet getClass(String tea_id){

String sql=\"select course.id,course.name,classes.cla_id \"+\"from course,classes \"+\"where course.id=classes.cour_id \"+

\"and classes.tea_id='\"+tea_id+\"' \";

sqlBean sqlbean = new sqlBean(); ResultSet rs = sqlbean.executeQuery(sql); return rs; }

public ResultSet kcjj(String class_id,String cour_name){

String sql=\"select * from kcjj where id='\"+class_id+\"'

and name='\"+cour_name+\"'\";

sqlBean db= new sqlBean(); ResultSet rs = db.executeQuery(sql);

29

滁州学院本科毕业论文

return rs; }

public ResultSet jxjd(String class_id,String cour_name){

String sql=\"select * from jxjd where bj='\"+class_id+\"'

and kcmc='\"+cour_name+\"'\";

sqlBean db= new sqlBean(); ResultSet rs = db.executeQuery(sql);

return rs; }

public determine doAccept(String class_id){

determine deter = new determine(); deter.getStudents(class_id); return deter; }

public ResultSet getStudents(String class_id){

String sql=\"select student.id,name,department,sex,mark,e_mail,tel \"+

\"from student,enrol,classes \"+ \"where student.id=enrol.stu_id \"+ \"and enrol.accept='0' \"+

\"and classes.cla_id=enrol.class_id \"+ \"and classes.cla_id='\"+class_id+\"' \";

sqlBean sqlbean = new sqlBean(); ResultSet rs = sqlbean.executeQuery(sql); return rs; }

30

滁州学院本科毕业论文

图5-13 公布学生成绩界面

图5-13列出了所带的课程号及班级号。当点击学生时,教师可以为所有选修该门课程的学生打分,系统通过MarkSvlt中doAccept2(tea_id)方法调用determine中的getStudent2(class_id)方法获取所有选修该门课程还未给出成绩的学生信息。当点击score时,系统将进入打分(marking.jsp)页面,分别给出总评成绩、平时成绩、实验成绩、期末成绩等,并将各项内容录入到数据库enrol表,同时,系统会根据成绩来判断该生是否通过了该课程,如果该成绩大于或等于60分,则在该生的总学分上加上该课程的学分,以供学生进行查看学分等操作。其关键代码为: public determine doAccept2(String class_id){

determine deter = new determine();deter.getStudents2(class_id);

return deter; }

public ResultSet getStudents2(String class_id){

String sql=\"select student.id,name ,department,sex,mark,e_mail,tel \"+

\"from student,enrol,classes \"+ \"where student.id=enrol.stu_id \"+ \"and enrol.accept='1' \"+ \"and enrol.score='0' \"+

\"and classes.cla_id=enrol.class_id \"+ \"and classes.cla_id='\"+class_id+\"' \";

sqlBean sqlbean = new sqlBean(); ResultSet rs = sqlbean.executeQuery(sql); return rs;

}

if (\"marking\".equalsIgnoreCase(action)) { class_id=req.getParameter(\"class_id\");

float p = Float.parseFloat(req.getParameter(\"p\"));

31

滁州学院本科毕业论文

float s = Float.parseFloat(req.getParameter(\"s\")); float q = Float.parseFloat(req.getParameter(\"q\"));

float pingshi = Float.parseFloat(req.getParameter(\"pingshi\")); float shiyan = Float.parseFloat(req.getParameter(\"shiyan\")); float qimo = Float.parseFloat(req.getParameter(\"qimo\")); float score=(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\"); }

public void doMarking(HttpServletRequest req, HttpServletResponse res, String stu_id,String class_id,float score,float pingshi,float shiyan, float qimo)throws ServletException, IOException{ int num=0; float temp=0;

determine deter =new determine();

num=deter.marking(stu_id,class_id,score,pingshi,shiyan,qimo); if(num==0) doError(req,res,\"更新失败!\"); try{

temp=score;

} catch(NumberFormatException e){System.out.print(e.toString());

doError(req,res,\"格式不对,请重输!!\");

}

if(temp>=60)

num=deter.addMark(stu_id,class_id); if(num==0) doError(req,res,\"更新失败!\");

}

32

滁州学院本科毕业论文

结 论

本系统的开发基本完成了预期的目标,较为成功的实现了网上选课并对学生、教师、课程、班级信息进行管理的功能。同时深入了解了JSP+Servlet+JavaBean的相关知识,利用其优点提高了该系统的运行效率并使该系统具有很好的交互性。本系统的开发可以实现一个学校的网上选课工作,从学生注册课程到教师审核以及批准,最终完成学生选课操作,所有数据处理都是由计算机程序实现。本系统具有如下特点:

⑴ 使用计算机统计处理数据,既提高了效率,又保证不容易出错。

⑵ 所有学生都使用的同一系统,并且都要经过教师的审核,这样得到的结果公开、公平。 ⑶ 系统中使用了JSP+Servlet+JavaBean技术,用户的操作更加直观方便。

⑷ 与以往的人工选课相比,使用该系统我们不需再使用专门的表格进行汇总统计,可以节约不少资源。

本系统还存在一些不足的地方,比如公平性方面,每个学生都有选报满足条件的课程的权利,但每个教师所需学生有限,该系统在对于教师挑选学生的依据以及策略上还存在着一些不足,可能会降低选课的公平性。

参考文献

[1] 黄龙军,段隆振,魏远旺.基于JAVA平台和ORALCE的网上选课系统[D].南昌水专学报,

2004年 02期

[2] 刘志远.基于UML网上选课系统的分析与设计[D].福建电脑,2006年 01期

[3] 田明,王新.中等职业学校网上选课系统的设计与开发[D].中国现代教育装备, 2007年 03

[4] 王娟,谭乐婷,谭涛,赖思渝.基于数据挖掘的高校学生网上选课系统的设计与实现[D].电

脑开发与应用,2007年 07期

[5] 张四平,王梅,彭顺生.基于ASP.net的网上选课系统的设计与实现[D].大众科学(科学研究

与实践),2007年 23期

[6] 郝玉龙,姜韡.Java EE编程技术[M].北京:清华大学出版社,2008

[7] 孙家广,刘强.软件工程:理论方法与实践[M].北京:高等教育出版社,2005 [8] 王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2006

[9] 孙更新,宾晟,吕婕.java毕业设计指南与项目实践[M].北京:科技出版社,2008 [10] Bruce Eckel. Thinking in Java,Third Edition.美国: Prentice Hall PTR,2002

33

滁州学院本科毕业论文

[11] 朱福喜.Java语言程序设计[M].北京:清华大学出版社,2005

[12] 李旭东,程仁洪,涂菶生.基于Internet的网上选课系统设计与实现[D].电脑开发与应用,

2000年 07期

[13] 辛后居,庞文涛.基于B/S模式的研究生网上选课系统的设计与实现[D].大众科技,2006

年 01期

[14] 陈先宇,李彦.开放型实验室网上选课系统设计构想[D].重庆交通大学学报(社会科学版),

2008年 02期

[15] 刘锦萍.基于UML及B/S架构网上选课系统的设计[D].电脑学习,2008年 03期 [16] 王国辉,王易.JSP数据库开发案例精选[M].北京:人民邮电出版社,2007

[17] CAY S. HORSTMANN,GARY CORNELL. Core Java,Volume I--Fundamentals (8th

Edition)[M].美国:Prentice Hall PTR,2007

34

滁州学院本科毕业论文

致 谢

通过本次的毕业设计我对高校学生网上选课的知识有了系统性的了解,学会了如何对一个课题进行查找资料并着手研究。深入了解了JSP、Servlet、JavaBean等技术,并且自己经历了完整的从分析、设计到最后把学生网上选课系统实现的整个过程,为以后自己的学习及工作打下了基础,自己受益匪浅。

值此设计完成之际,衷心地向我的导师刘士喜老师表示崇高的敬意和衷心的感谢。这个学期以来,刘士喜老师严谨的治学态度和精益求精的工作态度、诲人不倦的师者风范给我留下了深刻的印象。刘士喜老师从一开始的选题,系统设计的理论研究到系统的分析与设计再到系统的实现,甚至最后的论文排版装订的整个毕业设计的过程中,以及平时的学习生活中,都给予了我细致的关心指导,使我各方面都有了很大的进步。在此献上我最诚挚的感谢和祝福。

此外,还要感谢所有给予我论文帮助的老师和同学,正是由于你们的建议才使我的论文更加完善。同时感谢学院里各位领导和老师在四年里对我学习和生活给予的巨大帮助,为我提供了良好的学习环境和实践环境。同时,对这四年来所有给予我指导和帮助的老师和同学表示深深的谢意。

感谢我的家人,是他们的关心、支持和培养,使我顺利完成本科的学业,衷心祝福我的家人身体健康!

由于本人水平有限,毕业设计中的缺点和错误在所难免,敬请各位老师和同学的批评、指正。

35

因篇幅问题不能全部显示,请点此查看更多更全内容

Top