1、兰州交通大学毕业设计(论文)I摘要随着办公自动化技术的发展,利用计算机对信息进行自动化处理已经被各个群体广泛应用。为了提高学生选课的效率,借助计算机和网络技术来帮助学生选课是非常有必要的。以往的选课方式都是随堂报名的,而通过互联网在线选课比传统的选课方式更加方便,在提高选课效率的同时增加了学生选课的兴趣。因此,很有必要开发在线选课系统。首先,本系统根据大部分院校选课的需求,采用 B/S(浏览器/服务器)模式的基本设计思想对整个系统进行设计,然后把系统划分为系统管理员、教师、学生三部分分别进行设计与编码实现。基本实现了管理员对学生的选修课程进行管理、学生在线选课、老师提交学生成绩等功能。在线选课
2、系统运用了 Java、JSP 、MySQL 等技术完成了数据库的设计与开发、系统详细设计。关键词:在线选课系统,B/S,数据库设计AbstractWith the development of office automation technology, using a computer to deal with the information automatically have been widely used. To improve efficiency of students choosing classes, using computers and network technique
3、to help students choose classes is necessary. Previous ways of choosing coursesare class registration,but the online course selection via the Internet is more convenient than the traditional ways of choosing a course,and it also increases students interests of choosing courses.Thus,it is necessary t
4、o develop the online course selection system.At first, according to the requirements of most of the college,this system designs overall system using B/S pattern,and system is divided into administrator,teachers and students three parts, respectively for design and code implementation. It has basical
5、ly achieved administrator managing students elective courses, students online course selection, the teachers submitting student achievement and so on.Online course selection system uses Java, JSP, MySQL and other techniques to achieve the design and development of database and system detailed design
6、.Keywords: The Online Course Selection System, B/S mode, database design目录兰州交通大学毕业设计(论文)II摘要 IAbstractII1. 绪论 11.1 课题背景 11.2 开发的目的和意义 11.3 系统设计路线 21.4 论文组织结构 22. 系统关键技术介绍 32.1 Java EE 架构 32.2 MVC 架构 32.3 JSP 技术 42.4 Tomcat 服务器 42.5 MySQL 数据库 42.6 基于 B/S 模式的三层架构 52.7 系统开发环境 52.8 开发方法 63. 可行性分析 73.1 系
7、统流程图 73.1.1 管理员流程图 73.1.2 学生流程图 73.1.3 教师流程图 83.2 用户需求 83.3 系统需求 93.4 功能需求 93.4.1 前端界面需求 93.4.2 后端管理需求 103.5 可行性分析 103.5.1 经济可行性分析 113.5.2 技术可行性 113.5.3 运行可行性 114. 需求分析 12兰州交通大学毕业设计(论文)III4.1 整体设计 124.1.1 管理员对功能的需求 124.1.2 教师对功能的需求 124.1.3 学生对功能的需求 124.2 各个模块的详细分析 134.2.1 学生模块 134.2.2 教师模块 144.2.3 管
8、理员模块 145. 数据库设计与实现 155.1 数据库及其应用 155.2 系统的整体结构 155.3 数据库概念结构设计 155.4 E-R 图 175.5 数据库逻辑结构设计 175.5.1 数据库的逻辑模型 185.5.2 数据表的设计 186. 系统详细设计 226.1 配置服务器 226.1.1 JDK 的安装和配置 226.1.2 Tomcat 的安装和配置 236.1.3 配置 WEB 站点 236.1.4 发布工程到 Tomcat246.2 登录模块的设计 246.3 管理员功能 276.4 教师功能 306.5 学生功能 327. 系统测试 357.1 系统测试的含义 35
9、7.2 系统测试方法 367.3 系统测试的目标 367.4 软件测试步骤 36兰州交通大学毕业设计(论文)IV7.5 本系统测试 377.5.1 登录测试 377.5.2 选课测试 387.5.3 其他测试 38总结与展望 39致谢 41参考文献 42兰州交通大学毕业设计(论文)11. 绪论1.1 课题背景在线选课系统,即 The Online Course Selection System。它利用计算机和网络技术使得教务管理工作逐步信息化,这种自动化处理选课信息的系统方便了教务工作人员对学生选课的管理,同时提高了学生选课的灵活性。随着计算机应用技术和互联网的高速发展,对教学信息进行网络化管
10、理已被人们广泛应用,而通过网络进行选课是教学管理工作中最重要的部分。网络化的教学管理方式更能适应现代化的教育发展方式,使得学校教学管理人员、教师和学生之间的信息传播变得更加快速和准确。由于传统的选课模式具有复杂的工作流程环节,从而导致学校与教师和学生之间信息传递的实时性很难得到保证,不能满足学生和学校及时进行信息交流的愿望。然而在线选课系统带来的好处有:从教务工作的实际出发,排除信息联络不畅而带来的学校发展羁绊,使得学生与学校之间的信息传递与沟通变得更加顺畅。充分利用计算机的网络功能,解决教学工作中凸显出的难点问题,用计算机管理教学工作,帮助管理人员从繁杂的工作中解放出来,节省更多的人力资源。
11、由于互联网具有实时的交互性,使得信息的传递变得更加方便快捷,在线选课系统可以提高学校、教师对学生的管理效率,与传统的选课方式相比具有无可比拟的优点。例如:存储数据量大,查询数据速度快,并且能够减少人工对数据处理时产生的错误。这些优点是学校管理工作科学化、现代化,与世界接轨的重要表现,因此开发在线选课系统是十分有必要的。1.2 开发的目的和意义随着计算机应用的普遍化和网络技术的发展,各个高校充分利用自己的校内网资源为学校学生和老师提供更便利的服务。其中在线选课服务是最重要的服务之一。本系统的目的在于满足大多数高校选课的需求,设计开发一个符合高校培养计划并且选课信息能够自动化处理的在线选课系统。通
12、过本系统学生可以在教务处规定的时间内进行在线选课。在线选课系统让学生选课与管理员管理选课变得更加方便科学,进一步提高了选课工作的管理效率和质量,促进以后教学管理工作的创新。通过本系统学生可以进行选课并且能够查询自己所选课程的成绩等操作。具有安全、简洁、准确等特点。本系统预计达到以下要求:(1)在教务处指定的时间内登录在线选课系统进行选课。具有良好的通用性。兰州交通大学毕业设计(论文)2(2)管理员能够按照学校教务处选课的规定,及时修改待选的选修课程,保证学生能够顺利完成选课,保证了选课系统的实时性。(3)在线选课系统为选课、成绩查询等提供了便利,是网络化和智能化教务管理系统的重要组成部分。1.
13、3 系统设计路线本系统的设计路线如下:(1)对系统进行需求分析。(2)分析系统结构,采用 B/S 模式。(3)对数据库进行设计。(4)对每个功能模块进行进行详细设计。(5)对每个功能模块编码实现。(6)对系统进行测试。1.4 论文组织结构本论文的组织结构如下:(1)介绍课题背景以及开发的目的和意义。(2)介绍系统关键技术。(3)系统可行性分析。(4)系统需求分析。(5)数据库的设计与实现。(6)系统详细设计。(7)系统测试。2. 系统关键技术介绍2.1 Java EE 架构Java EE 技术 1具有良好的跨平台性、快速地存取数据库资源、提供丰富的企业级API 接口等优点,如 Java Mai
14、l、JAXP、JMS、EJB、JNDI、JTA 等。软件开发人员可以利用这些接口,开发出符合需求、跨平台性高的应用程序。Java EE 采用 B/S 多层体系结构,可以轻松地将不同的模块分离出来形成组件。这样既有利于总体设计和编码实现,又降低了软件测试和维护的难度,降低了系统各个模块之间相关联的程度。基于 Java EE 架构开发的系统可分为前端应用、Web 组件、业务逻辑层对方法和兰州交通大学毕业设计(论文)3数据的封装三部分。(1)前端应用提供应用程序最终的展示和用户的交互接口。通过使用 HTML、JavaScript、CSS 等技术,在浏览器中的客户端实现与用户的交互。(2)运行于 We
15、b 容器中的组件Web 组件主要由 JSP、Servlet 和 XML 组成,主要用来访问被封装的对象。这一层的主要作用是对 Web 客户端的用户请求作出响应。(3)业务逻辑层对方法和数据的封装业务逻辑层是 Java EE 架构最核心的部分,比如处理事务、保障系统安全性、优化数据库数据连接等。此层的一个代表为 EJB,EJB 提高了程序员开发软件的效率,使程序员专注的去分析系统的逻辑结构而不需要研究底层是如何实现的。(4)Eclipse 是替代 IBM Visual Age for Java(简称 IVJ)的下一代 IDE 开发环境,为了让 Eclipse 能支持任意一种语言的开发,可以对它的
16、插件进行多次开发。每个人都可以通过 Eclipse 开发平台在开放的源代码基础上开发出满足自己需求的功能插件。为了方便软件开发,Eclipse 平台在不久的将来会出现 C#、PHP 等语言的开发插件。同时可以通过开发新的插件对现有的 Tomcat 服务器插件进行无限扩展来满足程序开发员的需求。2.2 MVC 架构MVC(Model View Controller)架构 2即模型视图控制器架构。MVC 模型中 M 是数据模型, V 是用户界面,C 则是控制器。使用这种模型可以把数据库中的的数据和实现系统界面的代码分开。控制器和数据的同步使得数据模型和系统界面同步更新。2.3 JSP 技术JSP(
17、Java Server Pages)是一种动态网页技术标准 3。使用动态网页技术开发的程序具有良好的跨平台性。当服务器收到访问动态网页的请求时先执行其中的程序,然后把程序执行的结果返回给客户,由于程序执行的结果通常是 HTML 文本,所以客户可以用浏览器查看服务器返回的数据。利用动态网页请求中的 Java 程序段可以对数据库进行操作从而实现动态网页需要满足的功能。JSP 主要优点如下:兰州交通大学毕业设计(论文)4(1)一次编写,到处运行。(2)系统的多平台支持。(3)大部分开发工具都支持 JSP 开发。2.4 Tomcat 服务器Tomcat 服务器 4由 Apache、Sun(现已被 Or
18、acle 收购)和其他一些公司及个人共同开发而成,它是开放源码的免费服务器。由于有了 Sun 的参与和大力支持,最新的Servlet 和 JSP 规范在 Tomcat 中得到了充分的体现, Tomcat5 支持最新的 Servlet2.4 和JSP2.0 规范。技术先进、性能稳定,而且免费的 Tomcat 深受 Java 爱好者的喜爱并得到了软件开发商的认可,是目前比较流行的 Web 应用服务器之一。很多程序员都非常喜欢 Tomcat 服务器占用系统资源小、方便扩展、支持开发系统时需要经常使用的功能(例如邮件服务)等优点;而且它还一直在开发和改善中,每一个程序员都可以按照自己的需求在 tomc
19、at 服务器中修改原有的功能或者加入新的功能。Tomcat 服务器普遍使用在访问量不大的中小型系统中,为程序员开发和调试 JSP程序带来了很多的方便。虽然可以通过 Tomcat 服务器对 HTML 页面进行处理,但是Apache 服务器处理静态 HTML 页面的能力比 Tomcat 服务器更强。2.5 MySQL 数据库开放源码的 MySQL 数据库管理系统由 MySQLAB 公司开发、发布和支持。MySQLAB 是一家基于 MySQL 开发的商业公司,MySQLAB 公司的注册商标是MySQL5。MySQL 具有以下几个特点:(1)用 C 和 C+语言编写,具有良好的移植性和跨平台性。(2)
20、支持 AIX、FreeBSD、HP-Unix 、Linux 、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows 等多种操作系统。(3)为 C、C+ 、Python、Java、Perl、PHP 、Eiffel、Ruby 等编程语言提供了 API。(4)能够高效地利用 CPU 资源。(5)对传统的数据查询算法进行了优化,存取数据的速度变得更快。(6)提供了很多数据库连接的方法,例如:TCP/IP、ODBC 和 JDBC。(7)可以对拥有很多数据记录的大型数据库进行数据处理操作。兰州交通大学毕业设计(论文)52.6 基于 B/S 模式的三
21、层架构B/S(Browser/Server)模式 6即浏览器和服务器模式。是 C/S 模式的一种变化或者改进后的模式。在这种模式下,用户操作界面通过浏览器来实现。B/S 模式的三层架构分别为数据层(DAL)、逻辑层 (BLL)、表示层(UI) ,其中系统的主要功能和业务逻辑在逻辑层实现。利用 B/S 模式三层架构开发的系统成本低、灵活性好、节省客户机的 CPU 资源和内存,区别于以往的客户端访问方式,只要安装了浏览器就可以对系统进行访问。B/S模式减少了系统开发和维护的工作流程,只需要在应用服务器实现用户的所有需求功能而不必再为不同的用户开发功能不同的客户端程序。当系统的需求功能发生改变时只需
22、要对服务处理程序编码进行修改即可,而没有必要对不同的客户端进行升级。2.7 系统开发环境(1)系统硬件配置CPU:Intel(R)Core(TM)i5-2450MCPU2.50GHz内存:4G硬盘:500G网卡:1000M显示屏:14 英寸(2)系统软件配置操作系统:Windows7数据库:MySQLJava 开发工具包:JDK1.6.0_02开发工具:MyEclipse8.5Web 服务器:Tomcat6.02.8 开发方法根据不同的用户需求将系统分为三个模块(包括系统管理员、学生、教师)进行详细设计,以符合逻辑结构、开发成本低、实用性强为原则。本系统的后端采用动态网页技术标准编码实现,用
23、MySQL 数据库管理系统来存放系统中的数据,运用MyEclipse8.5 开发平台进行详细的编码设计。在系统开发的过程中对每一个模块进行详细的设计,然后对每个模块进行测试。最后把所有的模块集成在一起进行反复测试,兰州交通大学毕业设计(论文)6从而验证本系统是否已经实现所有的需求功能。采用 B/S 三层架构模式完成系统的设计与测试,最后认真的撰写毕业论文。兰州交通大学毕业设计(论文)73. 可行性分析3.1 系统流程图3.1.1 管理员流程图在本系统中,管理员可以对专业、班级和课程等信息进行添加、删除、修改、查询,对学生和老师的基本信息进行添加、修改、删除、查询。管理员具有特殊的权限,管理员成
24、功登录在线选课系统后点击不同模块菜单的按钮则进入相应的操作界面,管理员具体操作流程如图 3.1 所示。图 3.1 管理员操作流程图3.1.2 学生流程图学生成功登录在线选课系统后,可以修改个人信息、查看可供选修的课程信息、查看已选课程的信息,老师提交选修课成绩后学生可以查询自己的课程成绩,学生具体操作流程如图 3.2 所示。个人中心开始教师管理专业管理班级管理学生管理课程管理验证是否成功权限和密码验证管理员登录NY兰州交通大学毕业设计(论文)8Y图 3.2 学生操作流程图3.1.3 教师流程图教师成功登录在线选课后可以修改自己的个人信息、查询学生的出勤情况、新增学生的出勤、提交学生成绩、查询选
25、修自己所授课程的学生的成绩,并且可以把学生的成绩分布情况用柱状图和饼状图显示出来,这对以后的教学工作有很大的借鉴作用。点击不同的的模块跳转到相应的操作界面,教师具体操作流程如图 3.3 所示。3.2 用户需求本文的在线选课系统由三种用户构成,即管理员、教师、学生。管理员、教师与学生的权限是不一样的。管理员用户除了拥有教师的权限外同时还拥有管理权限,管理员对教师和学生进行管理。学生可以进行选课并且查询一些与自己有关的信息。个人中心学生登录权限和密码验证开始N选课管理成绩查询验证是否成功兰州交通大学毕业设计(论文)9Y图 3.3 教师操作流程图3.3 系统需求随着互联网的普及,互联网用户越来越多,
26、人们越来越习惯在互联网上办理一些业务。而在线选课系统能充分满足学生在网上选课的需求。由于在线选课系统的主要目标用户是在校学生,所以在线选课系统不需要其他复杂功能只要最基本的功能就可以了,还得设计的精简一点,让学生能够一目了然,清楚在那个模块中进行选课。3.4 功能需求该在线选课系统的功能由两部分组成,前端界面和后端管理。3.4.1 前端界面需求前端界面主要是给学生和老师看的。教师界面由个人中心、出勤管理、成绩管理开始出勤管理个人中心成绩统计教师登录权限和密码验证N成绩管理验证是否成功兰州交通大学毕业设计(论文)10模块组成。学生界面由个人中心、选课管理、出勤查询、成绩查询模块组成。(1)个人信
27、息:登录系统后里面有老师和学生最基本的信息,可以查看并且修改。(2)出勤管理:老师对学生上课的出勤情况进行管理,对没来上课的学生添加缺勤信息。(3)成绩管理:在结课后,老师提交选修自己所授课程的学生成绩,提交后还可以修改。老师还可以按照专业、班级、课程、学生姓名等限定条件来查找某个学生的成绩,老师可以以课程名作为限定条件将选修这门课程的学生的成绩用柱状图和扇形图直观的表现出来,对以后教学工作的顺利开展有很好的借鉴作用。(4)选课管理:学生可以查询学校开设的可供选择的课程,然后根据学校的教学培养计划进行选课,选课完成后可以查看自己已经选择的课程,退选兴趣热情不高的选修课。(5)出勤查询:学生可以
28、在限定日期和课程名称的条件下查询自己的出勤情况。(6)成绩查询:自己所选修的课程结课后学生可以通过本系统查询自己的课程成绩。3.4.2 后端管理需求只有系统管理员可以进入后端管理,管理员的功能需求有修改密码、专业管理、班级管理、课程管理,教师管理,学生管理和退出系统。(1)密码修改:管理员成功登录在线选课系统后可以对密码进行修改,输入原始的密码和新密码点确认修改即可。(2)专业管理:通过该模块管理员可以查询学校已开设的专业,删除已经取消的专业,增加新开设的专业。(3)班级管理:管理员可以查询已经开设的班级,删除已经毕业的班级,给大一新生增加新的班级。(4)课程管理:查询已经开设的选修课,新增待
29、选修的课程,删除已经结课的选修课。(5)老师管理:该模块分为老师账号管理和新增教师,老师管理中有老师的账号信息,管理员可以添加老师的账号和删除老师的账号,并且能够修改该账号信息。新增教师其实是一个添加老师账号的模块。(6)学生管理:这个模块只有删除学生账号以及添加新的学生账号两个功能。老师兰州交通大学毕业设计(论文)11管理和学生管理只有管理员有权限进行操作,增加了网站的安全性。3.5 可行性分析传统的选课管理方式给时间观念很强的教务工作人员带来了很多不便,教学教务管理中缺少一套完善的学生选课管理软件,为了让学生选课更加方便,节省资源,提高工作效率,开发人员进行了全面的调查与分析,结合各个高校
30、的培养计划,在满足众多高等院校选课需求的基础上开发了在线选课系统,实现了学校人力资源的优化和学生选课的科学管理目标。使用本系统,可以更加有效的管理学生选课信息,其中包括学生的基本信息,成绩信息并且具有信息的增加、查询、修改等功能。3.5.1 经济可行性分析经济可行性主要考虑系统开发的成本是否会超过运行的效益,系统维护费用是否昂贵。在线选课系统是为了方便学生进行选课而开发的,成功登录本系统后就能进行选课等操作,本系统投入使用后能够为学校节省很多的人力资源。由于本系统开发成本低,投入使用后带来的好处远远超过系统开发的成本,并且维护起来特别方便。因此,在经济方面是完全可行的。3.5.2 技术可行性技
31、术可行性是软件开发可行性分析最重要的部分。把不同高校对在线选课系统提出的功能需求、性能及开发本系统的各项限制条件充分结合起来,从技术层次方面去分析是否能完成本系统的设计与开发。根据系统所要满足的功能来分析当前的软件开发技术是否能实现这种功能,一般从所使用的开发技术当前是否成熟和稳定、软件和硬件的性能能否达到开发本系统的要求、相关开发人员的水平和经验等方面去分析和思考。本在线选课系统是基于 B/S 架构,用网页编码语言 JSP6进行开发,用的数据库是MySQL,数据冗余小。利用 MyEclipse8.5 集成开发平台进行在线选课系统的开发。3.5.3 运行可行性对教师和学生来说该在线选课系统操作
32、非常简单,学生不需要任何复杂的操作只需根据自己的需求和系统提示进行操作即可。教师只需要根据提示和链接进行操作,就能实现自己的需求。4. 需求分析兰州交通大学毕业设计(论文)124.1 整体设计随着软件开发技术的不断进步和成熟,信息化的管理方式被广泛的应用于各个领域,开发一套现代化的管理软件来满足高校学生的选课需求是十分必要的。用本系统进行选课,可以使得学生选课的速度和效率大大提高,同时也方便学校教务工作人员对选课信息的管理。本系统由三个模块组成,这三个模块分别为管理员、教师、学生。这三个部分共同访问数据库中不同的表。为了让本系统满足用户的需求,提高学校对学生选课工作的管理效率,在线选课系统的功
33、能需求应该包括管理员功能的需求、教师功能的需求和学生功能的需求三大部分,下面对这三个功能来进行系统分析和设计。4.1.1 管理员对功能的需求管理员模块的主要功能有个人中心(查看和修改个人信息、修改密码),专业管理(学校所开设专业的查询、增加与删除),班级管理(学校已开设班级的查询、增加与删除),课程管理( 对已开设的课程进行查询与删除、添加待开设的选修课程),教师管理(老师账号的查询、增加与删除),学生管理(学生账号的查询、增加与删除)。4.1.2 教师对功能的需求教师模块的主要功能有个人中心(查看和修改个人信息、修改密码),出勤管理(查询选修自己所授课程学生的出勤情况、对选修自己所授课程的学
34、生进行考勤管理),成绩管理( 提交选修自己所授课程学生的成绩、按专业、班级、课程名、学生姓名查询学生的成绩、按课程名把学生的成绩用柱状图和扇形图直观的表示出来)。4.1.3 学生对功能的需求学生可以登录此系统在线选课以及查询自己的相关信息,学生对功能的需求如下:学生模块的主要功能有个人中心(查看和修改个人信息、修改密码),选课管理(查询可供选修的课程、查看已选课程并且按照学校培养计划的安排选课),出勤查询(查询自己上课的出勤情况) ,成绩查询(结课后查询自己选修课程的成绩)。系统整体结构如图 4.1 所示。注销或修改用户状态在线选课系统分配账号和密码成绩查询浏览可选课程查看已选课程修改个人信息
35、浏览基本课程课程管理成绩管理修改个人信息出勤信息管理查看学生课程成绩设定课程人数管理员模块登录学生模块教师模块统计学生选课信息添加选修课程兰州交通大学毕业设计(论文)13图 4.1 系统整体结构图4.2 各个模块的详细分析4.2.1 学生模块本模块面向的对象是全体选课学生,学生可以通过这个模块进行选课和选课信息的查询等,具体设计如下:登录在线选课系统时,首先将登录界面输入的登录名和登录密码分别赋值给两个字符串变量,然后判断字符串变量与后台数据库用户表 c_user 中的登录名和登录密码是否匹配。若登录名匹配密码不匹配,则系统提示密码错误,若登录名不匹配则提示输入的登录名错误,请重新输入,完全匹
36、配后数据库会根据用户表 c_user 中登录名的用户类型进行权限判断(其中 1 代表学生,2 代表教师,3 代表系统管理员),然后系统会按照用户权限跳转到对应的操作模块界面。若用户未被管理员分配好权限那么也是无法登录本系统的。成功登录系统后学生就可以查看和修改个人信息、修改密码,查询可供选修的课程、查看已选课程并且按照学校培养计划的安排进行选课,退选自己不感兴趣的课程,查询自己上课的出勤情况,结课后查询自己选修课程的成绩。兰州交通大学毕业设计(论文)144.2.2 教师模块此模块用于老师登录在线选课系统之后进行具体的操作。老师登录的登录名和密码不是自己注册的,而是管理员进入管理界面后在教师管理
37、界面内通过添加老师的信息后赋予的登录名和登录密码。教师登录的流程和学生登录流程基本相同,只是进入的页面不同而已。教师成功登录系统后可以查看和修改个人信息、修改密码,查询选修自己所授课程学生的出勤情况、对选修自己所授课程的学生进行考勤管理,提交选修自己所授课程学生的成绩按并且按照专业、班级、课程名和学生姓名等限定条件查询学生的成绩,按课程名把学生的成绩用柱状图和扇形图直观的表示出来。这个模块比较简单,操作方便,既有利于提高工作效率又可以方便老师对一些信息的查询。4.2.3 管理员模块本模块主要用于管理员对教师、学生和课程进行管理。管理员成功登录系统后可以查看自己的信息、修改自己的密码,对学校已开
38、设的专业进行查询和删除、增加新开设的专业,对学校已开设的班级进行查询与删除、开设新的班级,对学校已开设的课程进行查询与删除、添加待开设的选修课程,对老师的账号进行查询、增加与删除,对学生的账号进行查询、增加与删除。只有管理员有权限添加新的用户并且为用户分配权限和 ID 编号( 注:系统管理员不可以删除自己的账号)。管理员删添加新用户,删除旧用户后后台数据库会自动更新数据。5. 数据库设计与实现5.1 数据库及其应用数据库是存储系统数据和信息的仓库 8,系统设计中最重要的一个环节就是数据库的设计。数据库软件有很多,如 Microsoft SQL Server 2008 等,在线选课系统的开发采用
39、 MySQL 来存储系统中的数据。用动态网页标准编写的用户操作界面通过 JDBC 与MySQL 数据库相连接,这样用户就可以在操作界面对数据库中的数据进行增加、删除、修改、查询而没有必要直接进入后台数据库管理系统对数据进行一系列的操作。数据库设计是所有系统开发的基础,正如根基的坚固与否会影响高楼大厦的建造一样,数据库逻辑结构设计的不合理会影响系统按照预期的目标进行开发的过程。在系统开发过程中,设计不合理、不完善的数据库会导致连锁反应(例如:增加系统后期维护难度、增加系统后期进行功能扩充和变更难度),更严重的是重做已完成的工作,对数据库重新进行设计。在对一个系统的后台数据库进行设计与开发时,首先
40、对系统的需求进行兰州交通大学毕业设计(论文)15详细的分析,其次进行数据库的逻辑设计,然后再去编码实现它。分析系统时,为了能够直观的表示数据库的需求,可以画出 E-R 图。5.2 系统的整体结构本文的在线选课系统是通过 B/S(浏览器和服务器模式)进行设计的。数据传输流程如图 5.1 所示。http 请求 获取数据结果输出 更新模型图 5.1 数据传输流程图5.3 数据库概念结构设计对系统进行详细分析以后,再具体分析不同实体用户,以及不同用户各自的属性。得出实体属性图。以下是不同实体用户各自的实体属性图:学生的实体属性图:图 5.2 学生的实体属性图学生课程的实体属性图:学生姓名班级 系号年龄
41、 年级入学时间专业性别学号学分课程名 课程号开课院系开课专业上课安排课程性质学时课程成绩开课学期数据库ModelJava BeansControllertView兰州交通大学毕业设计(论文)16图 5.3 学生课程实体属性图学生信息实体属性图:图 5.4 学生信息实体属性图教师实体属性图:课程学生信息系号 专业名系名 专业号教师号姓名 系部职称性别专业年龄兰州交通大学毕业设计(论文)17图 5.5 教师实体属性图5.4 E-R 图针对用户的需求的每一种实体以及他们之间的关系对系统进行详细分析和模块设计,为了让学生和老师之间的联系能直观的表现出来,本文规划和设计出教师和学生之间的 E-R 图,如
42、图 5.6 所示。5.5 数据库逻辑结构设计用 MySQL 数据库能够高效存储本系统的数据,满足不同用户的需求。充分考虑到系统的实际需要,系统数据库至少需要用户表,专业表,课程表,成绩表等。经过分析和调查,管理员、教师和学生的需求主要是对基本信息的增、删、改、查。NN图 5.6 学生和教师 E-R 图5.5.1 数据库的逻辑模型根据上述的实体属性图,对该在线选课系统的数据库进行设计,设计结果如下所教师MN系部选择 N MN 11 M图55 学生和教师 E-R 图课学生授课属于课程教师1 M兰州交通大学毕业设计(论文)18示:用户信息表(主键、唯一编号、用户名、登录密码、用户姓名、用户性别、用户
43、年龄、用户班级 ID、用户专业、管理员添加用户账号时间、用户类型)。班级信息表(主键、编号、班级名称、备注)。专业表信息(主键、编号、专业名称、备注)。课程表信息(主键、编号、课程名称、用户 ID、课程人数上限、已选人数、课时、备注) 。学生选课表(主键、编号、学生 ID、课程 ID)。学生出勤表(主键、编号、出勤日期、课程 ID、学生 ID、出勤类型)。学生成绩表信息(主键、编号、用户 ID、课程 ID、成绩)。5.5.2 数据表的设计根据上述对数据库的分析,最终确定数据库表的创建为用户基本信息,班级基本信息,专业信息,课程基本信息,学生选课信息,学生出勤情况,学生所选课程的结课成绩七张表。
44、(1)用户信息表用户信息表在数据库中的名称为:c_user,该表主要用于存储用户的基本信息。主要包括:用户唯一编号、用户登录名、用户登录密码、用户姓名、性别、用户年龄、学生所在班级 ID、学生所在专业、管理员添加用户账号的时间、用户类型。表 5.1 用户信息表(c_user)字段名称 字段表示 字段类型(长度) 主键编号 user_id int 用户名 user_name varchar(50)密码 user_pass varchar(200)姓名 real_name varchar(50)性别 user_sex int年龄 user_age int班级 ID classes_id int专业
45、 major_id int兰州交通大学毕业设计(论文)19注册时间 reg_date datetime用户类型 user_type int(2)班级信息表班级信息表在数据库中的名称为:c_class ,该表主要用于存储学生所在班级的基本信息。主要包括:班级唯一编号、班级名称、备注。表 5.2 班级信息表字段名称 字段表示 字段类型(长度) 主键编号 classes_id int(11) 班级名称 classes_name varchar(100)备注 note varchar(300)(3)专业信息表专业信息表在数据库中的名称为:c_major ,该表主要用来存储学生所在专业的基本信息。主要包
46、括:专业唯一编号、专业名称、备注信息。表 5.3 专业信息表字段名称 字段表示 字段类型(长度) 主键编号 major_id int(11) 专业名称 major_name varchar(100)备注 note varchar(300)(4)课程信息表课程信息表在数据库中的名称为:c_course,该表主要用来存储学生已选课程的基本信息。主要包括:课程唯一编号、已选课程名称、学生 ID、已选课程人数上限、课程已选人数、课程课时、备注。表 5.4 课程信息表字段名称 字段表示 字段类型(长度) 主键编号 course_id int(11) 课程名称 course_name varchar(50
47、)用户 ID user_id int课程人数上限 course_person int已选人数 apply_person int课时 course_hour int兰州交通大学毕业设计(论文)20备注 note varchar(300)(5)学生选课信息表学生选课信息表在数据库中的名称为:c_ucourse,该表主要用来存储学生已选课程的基本信息。主要包括:编号、学生 ID、课程 ID。表 5.5 学生选课信息表字段名称 字段表示 字段类型(长度) 主键编号 ucourse_id int(11) 学生 ID user_id int课程 ID course_id int(6)学生出勤信息表学生出勤
48、信息表在数据库中的名称为:c_attend,该表主要用来存储学生课堂的出勤情况。主要包括:编号、出勤日期、课程 ID、学生 ID、出勤类型。表 5.6 学生出勤信息表字段名称 字段表示 字段类型(长度) 主键编号 attend_id int(11) 出勤日期 attend_date date课程 ID course_id int学生 ID user_id int出勤类型 attend_type int(7)学生成绩信息表学生成绩信息表在数据库中的名称为:c_score,该表主要用来存储学生选修课程的结课成绩。主要包括:编号、学生 ID、课程 ID、成绩。表 5.7 学生成绩信息表字段名称 字段
49、表示 字段类型(长度) 主键编号 score_id int(11) 学生 ID user_id int课程 ID course_id int成绩 score_value double兰州交通大学毕业设计(论文)216. 系统详细设计6.1 配置服务器6.1.1 JDK 的安装和配置JDK(Java Development Kit) 是 Java 语言的软件开发工具包 (SDK),它主要包括 Java的运行环境,一部分 Java 命令工具和 Java 基础的类库文件,因此在进行 Java 语言软件开发之前必须安装 JDK。JDK 安装成功后要对系统环境变量重新设置,具体操作流程如下如下:(1)首先右击“ 我的电脑”,选择“属性”,接着选择左上角的“高级系统设置”按钮点击打开,然后在弹出的对话框中选择“高级”。(2)然后单击“ 环境变量”按钮,出现“环境变量”对话框。(3)在“系统变量 ”选项区中选择 path 环境变量,单击 “编辑”按钮,在弹出的“编辑系统变量”对话框中添加 JDK 安装目录下的 bin 子目录的路径,如图 6-1 所示。在“系统变量”中新建环境变量 JAVA_HOME。向 path