1、 华东交通大学理工学院 Institute of Technology. East China Jiaotong University Java课设 Java Design ( 2016年 ) 题 目 分 院: 电气与信息工程分院 专 业: 信息管理与信息系统 班 级: 一班 学
2、号: 20150210450122 学生姓名: 廖大雪 指导教师: 程志平 截至日期: 2016.12.29 1 贺冰:基于WEB的学生选课系统 华东交通大学理工学院 课程设计原创性申明 本人郑重申明:所呈交的课程设计是本人在导师指导下独立进行的研究工作所取得的研究成果。设计中引用他人的文献、数据、图件、资料,均已在设计中特别加以标注引用,除此之外,本
3、设计不含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式表明。本人完全意识到本申明的法律后果由本人承担。 课程设计作者签名: 廖大雪 日期: 2016 年 12月29日 课程设计版权使用授权书 本课程设计作者完全了解学院有关保留、使用课程设计的规定,同意学校保留并向国家有关部门或机构送交设计的复印件和电子版,允许设计被查阅和借阅。本人授权华东交通大学理工学院可以将本设计的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编程设设计。 (保密的程设设计在解
4、密后适用本授权书) 程设设计作者签名: 廖大雪 指导教师签名:程志平 签字日期: 2016年 12月 29日 签字日期:2016年 12月 29日 摘 要 随着高校等各类学校的年年持续扩招,及玲珑满目的各类学校的出现,学生(不管是本科、大专、高职、中专)人数逐年增加。为了满足广大学生的求学需要,各个高校的师资力量、硬件配置也随之增强。这样一来,日常行政部门的工作也就越来越繁重,这一点在选课这块显得尤为突出。而传统的人工操作,即费时又费力,而且容易出错,也容易出现公平问题,工作效率较低。因此,拥有一套实用、高效、完善的
5、在线选课系统就显得特别重要,它可以提升高校等各类学校的教育质量和教学管理质量,提高工作效率,降低行政成本。在当今高校等各类学校并且未来的一段时间里,“学生选课系统”将会发挥强大的作用服务于学校。 本选课系统着重应用JAVA WEB技术包括:JSP技术以及JDBC连接数据库。使用前台的技术包括JSP,JavaScript,CSS等。数据库采用MySQL。开发环境采用MyEclipse 10。 系统设计部分主要介绍了系统详细功能设计、数据库设计以及代码架构设计。系统界面友好,操作简单,安全性高,是一个实用的选课系统。 系统面向的用户为:管理员、教师、学生。主要的模块分为,用户登录模块,管理员
6、发布选课,进行增删查改。学生进行课程的选定以及退选。教师管理员可以查看自己所带课程选课的相关学生信息等等。 关键词:JSP;MySQL数据库;选课系统。 I 贺冰:基于WEB的学生选课系统 目 录 I 第一章 引 言 1.1 设计目的 随着高校等各类学校的年年持续扩招,及玲珑满目的各类学校的出现,学生(不管是本科、大专、高职、中专)人数逐年增加。为了满足广大学生的求学需要,各个高校的师资力量、硬件配置也随之增强。这样一来,日常行政部门的工作也就越来越繁重,这一点在选课这块显得尤为突出。而传统的人工操作,即费时又费力,而且容易出错,也容易出现公平问题
7、工作效率较低。因此,拥有一套实用、高效、完善的在线选课系统就显得特别重要,它可以提升高校等各类学校的教育质量和教学管理质量,提高工作效率,降低行政成本。在当今高校等各类学校并且未来的一段时间里,“学生选课系统”将会发挥强大的作用服务于学校。 1.2 研究内容 通过研究和探讨,确定该学生选课系统主要研究和设计的主要内容如下六点: - 3 - 1.院系管理 4.教师管理 2.专业管理 5.学生管理 3.课程管理 6.选课管理 1.3 开发环境 1.3.1 开发工具MyEclipse 10 MyEclipse,是基于Eclipse开发的功能强大的企业级集成开发环境,主要
8、用于Java、Java EE以及移动应用的开发。据官方介绍,诸如三星、IBM、戴尔、惠普、花旗集团、西门子、斯坦福大学、波音公司等知名机构均使用MyEclipse进行Java、JavaEE开发,80%以上的全球财富100强企业均是MyEclipse的用户。 MyEclipse提供了对UML、Ajax、Web、Web Services、J2EE、JSP、XML、Struts、JSF、Java Persistence、EJB、扩展数据库以及各种应用服务器的集成支持。MyEclipse也全面支持各种主流的第三方框架,让你能够快速高效地进行开发工作。此外,MyEclipse还全面支持各种基于Ecli
9、pse平台的插件,允许你自由定制或扩展个性化功能。 MyEclipse全面支持Eclipse开源平台的所有功能特性,如果你熟悉Eclipse,那么你能够轻松地上手MyEclipse,包括熟悉的Eclipse快捷键,而且使用MyEclipse完成某项任务往往要比使用Eclipse更加快速、简单。 而MyEclipse 10版本使用最高级的桌面和Web开发技术,包括HTML5和Java EE6,支持JPA 2.0、JSF 2.0、Eclipselink 2.1以及Open JPA2.0. 而对IBM WebSphere用户来说,MyEclipse Blue支持最新版本的WebSphere P
10、ortal Server 7.0、WebSphere 8以及以前的版本,无缝的支持IBM DB2数据库。 MyEclipse 10对检索功能以及错误查询功能更加强大,包括对js文件的错误查询。就目前本人的体验来说,最大的变化莫过于软件安装界面,推荐使用link方法进行插件安装,方便快捷。 本系统开发环境使用MyEclipse的原因还有一个,MyEclipse自带Tomcat 6.0,无需自己去下载和安装Tomcat。 1.3.2 MySQL数据库 MySQL是一个关系型数据库,由瑞典MySQ LAB公司开发,目前属于Oracle旗下公司。MySQL最流行的关系型数据库管理系统,在WEB
11、应用方面MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP,Linux和Apache可组成良好的开发环境,经
12、过多年的web技术发展,在业内被广泛使用的一种web服务器解决方案之一,称之为LAMP。 本系统采用MySQL的原因是:目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。 1.4 采用相关技术 1.4.1 JSP JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技
13、术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。 它实现了Html语法中的java扩张(以<%,%>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。 1.4.2 Servlet及HTTPServlet 1. Servlet Java Servlet是JSP的技术基础,而且大型的
14、Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 最早支持Servlet技术的是JavaSoft的Java Web Server。此后,一些其它的基于Java的Web Server开始支持标准的Servlet API。Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。这个过程为: 1) 客户端发送请求至服务器端; 2) 服务器将请求信息发送至Servlet; 3) Servlet生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户
15、端的请求; 4) 服务器将响应返回给客户端。 2. HTTPServlet HTTPServlet使用一个HTML表单来发送和接收数据。要创建一个HTTPServlet,请扩展HttpServlet类,该类是用专门的方法来处理HTML表单的GenericServlet的一个子类。HTML表单是由
标记定义的。表单中典型地包含输入字段(如文本输入字段、复选框、单选按钮和选择列表)和用于提交数据的按钮。当提交信息时,它们还指定服务器应执行哪一个Servlet(或其它的程序)。HttpServlet类包含init()、destroy()、service()等方法。其中16、init()和destroy()方法是继承的。 本系统采用的主要是其中两个方法:doGet()和doPost()。 doGet()方法: 当一个客户通过HTML表单发出一个HTTP GET请求或直接请求一个URL时,doGet()方法被调用。与GET请求相关的参数添加到URL的后面,并与这个请求一起发送。当不会修改服务器端的数据时,应该使用doGet()方法。 doPost()方法: 当一个客户通过HTML表单发出一个HTTP POST请求时,doPost()方法被调用。与POST请求相关的参数作为一个单独的HTTP请求从浏览器发送到服务器。当需要修改服务器端的数据时,应该使用doP
17、ost()方法 第二章 系统概述 2.1 系统需求分析 本人多方搜集资料,根据高校等各类学校的教务需求,以及具体的管理体系,本系统的用户身份设计上做出了不同的功能分配,分别设立了三个主要身份:管理员、教师、学生。用户分别以这三种不同身份登陆系统后,都会拥有各自的后台管理界面和不同的管理功能。 以管理员登入系统后,主要可以对六大功能模块进行增删查改:院系、专业、课程、教师、学生、选课等进行增删改查。 以教师身份进入系统,可以进行基本信息查询与修改,如对选了自己所带课程的学生信息进行查询等。 以学生身份登陆系统后,可以在规定的时间内,使用校园内任意一台接入校园网的计算机,进行学期选课和
18、退选等。 2.2 系统功能模块实现 因本人能力所限,在学校学习过程中,对做系统方面还存在很多不足之处,同时毕业设计要求一个人要做完一个完整的管理系统,所以在对需求分析阶段也存在考虑不周全的地方,介于此本学生选课系统主要实现功能有如下三点(实现的功能模块都能正常运行,并无虚设功能模块): 1. 管理员登陆后,可进行管理和设置的功能模块主要有6大功能,这也是做本系统所花时间最多的地方,示意图如图2-1所示: 图2-1 管理员登陆后可管理的功能模块 2. 教师登陆后可进行查看选了本人课程的所有学生信息及担任课程的课表信息(因本人能力和完成系统的时间所限,并且本系统是学生选课系统,以实现
19、学生选课为主,不是排课管理系统,所以课程表功能暂未实现,请多包涵),示意图如图2-2所示: 3. 学生登陆后可进行选课(选修自己感兴趣的课程)和退选(感觉后悔可以进行退选),以及对个人信息的查看和修改等功能,示意图如图2-3所示: 图2-2 教师登陆后可管理的功能模块 图2-3 学生登陆后可管理的功能模块 第三章 数据库设计 3.1 数据库设计工具 Navicat for MySQL是一套专为MySQL设计的强大数据库管理及开发工具。它可以用于任何3.21或以上的MySQL数据库服务器,并支持大部分MySQL最新版本的功能,包括触发器、存储过程、函数、事件、检索、权限管理等
20、等。 它为专业开发者提供了一套强大的足够尖端的工具,但对于新用户仍然易于学习。Navicat for MySQL基于Windows平台,为 MySQL量身订作,提供类似于 MySQL 的用管理界面工具。此解决方案的出现,将解放 PHP、J2EE 等程序员以及数据库设计者、管理者的大脑,降低开发成本,为用户带来更高的开发效率。 它使用了极好的图形用户界面(GUI),可以用一种安全和更为容易的方式快速和容易地创建、组织、存取和共享信息。 用户可完全控制 MySQL 数据库和显示不同的管理资料,包括一个多功能的图形化管理用户和访问权限的管理工具,方便将数据从一个数据库转移到另一个数据库中(Loc
21、al to Remote、Remote to Remote、Remote to Local),进行档案备份。 Navicat for MySQL 支援 Unicode,以及本地或远程 MySQL 服务器多连线,用户可浏览数据库、建立和删除数据库、编辑数据、建立或执行 SQL queries、管理用户权限(安全设定)、将数据库备份/复原、汇入/汇出数据(支援 CSV, TXT, DBF 和 XML 档案种类)等。软件与任何 MySQL 5.0.x 伺服器版本兼容,支援 Triggers,以及 BINARY VARBINARY/BIT 数据种类等的规范。如图3-1所示。 图3-1 Navicat
22、 for MySQL启动后 3.2 数据库表的结构设计 根据本文前面的分析以及要实现的功能的要求,并采用关系数据库范式设计中的第三范式(简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息)的设计要求,本系统的数据库xuanke总共包含9张数据表,分别是:courspeT(课程专业限制表)、courT(课程信息表)、courteaT(课程分配教师表)、depT(院系信息表)、selcourT(选课结果表)、speT(专业信息表)、stuT(学生基本信息表)、teaT(教师基本信息表)、userT(管理员信息表)。 每张表格的创建使用如下SQL语句就可以创
23、建成功,如下所示: 1. courspeT(课程专业限制表),SQL代码如下,结构如图3-2所示: CREATE TABLE `courspet` ( `id` int(11) NOT NULL AUTO_INCREMENT, `courId` int(11) DEFAULT NULL, `speId` varchar(500) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; 图3-2 courspeT表的结构 2. courT(课程信息表),
24、SQL代码如下,结构如图3-3所示: CREATE TABLE `court` ( `id` int(11) NOT NULL AUTO_INCREMENT, `courName` varchar(30) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8; 图3-3 courT表的结构 3. courteaT(课程分配教师表),SQL代码如下,结构如图3-4所示: CREATE TABLE `courteat` ( `id`
25、 int(11) NOT NULL AUTO_INCREMENT, `courId` int(11) DEFAULT NULL, `teaId` varchar(500) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; 图3-4 courteaT表的结构 4. depT(院系信息表),SQL代码如下,结构如图3-5所示: CREATE TABLE `dept` ( `id` int(11) NOT NULL AUTO_IN
26、CREMENT, `depName` varchar(16) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; 图3-5 depT表的结构 5. selcourT(选课结果表),SQL代码如下,结构如图3-6所示: CREATE TABLE `selcourt` ( `id` int(11) NOT NULL AUTO_INCREMENT, `courId` varchar(5) DEFAULT NULL, `stuId`
27、varchar(5) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8; 图3-6 selcourT表的结构 6. speT(专业信息表),SQL代码如下,结构如图3-7所示: CREATE TABLE `spet` ( `id` int(11) NOT NULL AUTO_INCREMENT, `speName` varchar(16) DEFAULT NULL, `spe_dep_id` int(11) DEFAULT NULL,
28、 PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8; 图3-7 speT表的结构 7. stuT(学生基本信息表),SQL代码如下,结构如图3-8所示: CREATE TABLE `stut` ( `id` int(11) NOT NULL AUTO_INCREMENT, `stuNo` varchar(14) DEFAULT NULL, `stuPwd` varchar(16) DEFAULT NULL, `stuName` varchar(10) DE
29、FAULT NULL, `stuSex` varchar(1) DEFAULT NULL, `stuCardId` varchar(18) DEFAULT NULL, `stuPhone` varchar(11) DEFAULT NULL, `stuQq` varchar(13) DEFAULT NULL, `stuEmail` varchar(30) DEFAULT NULL, `stu_spe_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=9
30、 DEFAULT CHARSET=utf8; 图3-8 stuT表的结构 8. teaT(教师基本信息表),SQL代码如下,结构如图3-9所示: CREATE TABLE `teat` ( `id` int(11) NOT NULL AUTO_INCREMENT, `teaNo` varchar(10) DEFAULT NULL, `teaPwd` varchar(16) DEFAULT NULL, `teaName` varchar(10) DEFAULT NULL, `teaSex` varchar(1) DEFAULT NULL, `teaC
31、ardId` varchar(18) DEFAULT NULL, `teaPhone` varchar(11) DEFAULT NULL, `teaQq` varchar(13) DEFAULT NULL, `teaEmail` varchar(30) DEFAULT NULL, `tea_dep_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; 图3-9 teaT表的结构 9. userT(管理员信息表
32、SQL代码如下,结构如图3-10所示: CREATE TABLE `usert` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uAcct` varchar(16) DEFAULT NULL, `uPwd` varchar(16) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; 图3-10 userT表的结构 第四章 系统详细设计 4.1 用户登陆页面设计 登陆页面HTML代码如下(由
33、于篇幅所限,这里只放关键代码,详细代码见本篇论文附录章节)。 JS代码如下,它主要用来对登陆表单的合法性进行验证,没有按照本系统的要求填写,将无法提交登陆信息,也就无法进行登陆。 表单
35、代码如下,它的功能是和用户进行交互,为用户提供表单控件,用户才可以进行用户名和密码的输入,并且提供登陆按钮。