基于bs结构的选课管理系统的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本科生毕业论文(设计)
基于B/S结构的学生选课管理系统的
设计与实现
BS选课管理设计J2EE,jsp,spring,hibernate,oracle
姓名
学号
专业
指导教师
二零一二年四月二十日
摘要
近年来随着高校使用网络管理学生的各项信息的普及。
本设计采用分析浏览器/服务器结构的特点,完成学生网上选课功能,并结合选课的实际情况简单的介绍了系统各功能模块及数据库的设计,学生可通过该系统进行选修课程的信息查询,对于教务处提供的课程进行选择或者退选,并且根据学生的选课情况自动生成课程表。
本选课系统着重应用java web技术包括:spring MVC 技术以及hibernate4.0 JDBC连接数据库.并大量使用Spring3.0的Annotation,注解驱动,减少了xml 配置,使应用开发更加轻量级。
使用前台的技术包括 jsp ,javascript,css,ajax 等。
数据库采用Oracle 11g。
开发环境采用Eclipse,项目总体架构在Maven3.0上,减少了对各种jar包的引用,并且结构目录清晰,易于管理和维护。
系统设计部分主要介绍了系统详细功能设计、数据库设计以及代码架构设计。
系统界面友好,操作简单,安全性高,是一个实用的选课系统。
开发过程中使用Junit保证底层代码方法的正确性,先后台再到前台的开发模式,在出现问题的时候才用debug模式进行问题的查找,直到形成满意的可行系统。
系统面向的用户为,学生、教师、管理员。
主要的模块分为,用户登录模块,管理员发布选课消息以及录入选课信息。
学生进行课程的选定以及退选。
教师管理员统计选课结果等等。
关键词:课程;管理;数据库;MVC
Abstract
‘Everything is Object’, with the popularity of Internet technology, Java which an object-oriented language get a wide range of applications. At the same time, network application become one of the most important part of person's life. Especially in universities, Application is more popular, Students' information management, The library books loan or information management, The student consumption system and so on . So java web because more and more popular . It is simple, easy to modify and maintenance. Provide many ways for JDBC which can make a perfect connect with Database. The most important is :It has a lot of frame work which can refer to learn and used in our development .Therefore it is very popular with the developer's favor
The system mainly technology including: spring MVC technology and hibernate4.0 connect to database of advantage, and the use of the Spring3.0 Annotation, annotate drive, reduce the XML configuration, make application development more lightweight.
In recent years, with the increase size of university students using the network to manage, all the information of the students has been popular. This design use the analysis browser/server (B/S) structure characteristics, it can complete students online choose courses function, and combining with the actual situation of the simple course introduces the system the function module and database design.
Use the front desk technology including the JSP, JavaScript, CSS, Ajax, etc. Database using Oracle 11 g. The Eclipse the development environment, the project general framework in Maven3.0 to reduce the reference of various kinds of jar , Also Maven make directory structure clear, easy to manage and maintain.
During the development used the JUint guarantee the correctness of the bottom code method, until satisfactory feasible system formed and used the Debug model to find the root cause when combine the jsp page and the backup code .Until it become a satisfied system .
This system mainly introduces the function of system in detail design, database design and code architecture design. It has friendly interface, simple operation, high safety, practical course system.
Key Words: course,management, database, MVC
目录
摘要 (I)
1 引言 (1)
1.1课题研究背景 (1)
1.2课题研究目的 (1)
1.3课题可行性分析 (2)
2 相关开发软件以及技术介绍 (3)
2.1开发环境介绍----E CLIPSE 以及M AVEN的使用 (6)
2.2 SPRING3.0新特性以及SPRING MVC (6)
2.3H IBERNATE连接数据库 (7)
2.4主要前台技术简介 (8)
2.4.1 JSP (8)
2.4.2 JavaScript (8)
2.4.3 CSS (8)
3 系统分析与总体设计 (9)
3.1系统功能分析 (9)
3.2系统功能模块设计 (10)
3.3数据库设计 (11)
3.3.1 教师模块数据库表结构 (11)
3.3.2 教师模块数据库表结构 (13)
3.3.3 学生模块数据库表结构 (13)
4 系统详细设计 (15)
4.1教师、学生、管理员登陆 (15)
4.2管理员发布选课通知 (20)
4.3管理员录入可选课程信息 (21)
4.4学生进行选课、退课 (22)
4.5教师统计已选自己课的结果 (24)
4.6管理员进行选课统计以及调节 (25)
5 设计过程中遇到的问题以及解决 (31)
5.1创建MAVEN项目后,为何目录生成不正确? (31)
5.2****未完待程序完成后,将典型问题列出**** (31)
参考文献 (35)
致谢 (37)
附录.............................................................................................................................. 错误!未定义书签。
附录一:登陆页面 .................................................................................................. 错误!未定义书签。
附录二:学生选课功能页面展示.......................................................................... 错误!未定义书签。
附录三:超出已选学分,提示信息 ..................................................................... 错误!未定义书签。
1 引言
1.1 课题研究背景
从计算机的普及和发展方面来看:一直以来,学生选课系统是学生们做毕业设计的热门题目,然而大多的题目设计多过于大众化,大多是运用一些简单的框架实现基本的简单选课功能。
这种设计的方式存在着诸多缺点,如手续繁琐、工作量大、效率低下、出错率高、界面不友好等,而且程序过于繁琐,结果也不清晰、更新及维护都带来不少困难。
随着科学技术的不断发展,计算机科学日渐成熟和普及,计算机已进入人类社会的各个领域并发挥着越来越重要的作用。
与传统的选课方式相比,网上选课系统利用局域网为学生选课带来了便利。
学生在学校的公共机房或者宿舍的个人电脑上通过网络来选课,只要选课还没有截止,学生能够灵活的修改自己的选课情况,大大提高了学校选课工作的效率。
教务处的教师则通过选课系统的管理员子系统来管理学生的选课情况,使得学生选课工作达到系统化和自动化,大大提高了学校的工作效率。
作为计算机应用的一部分,javaWeb开发已经变得越来越普遍。
相应的一些技术的产生给我们java程序的编写提供了很大的方便。
同时,现在较为普遍的框架的SSH (spring,hibernate),以及MVC架构的支持使我们的计算机web技术使用更加淳熟。
AJAX,JQuery技术的产生,为我们的计算机领web开发领域实现界面友好,异步信息存储的特点。
使用起来十分人性话。
因此,将这些相关的技术整合,应用到新的选课管理系统中,是十分必要的,从而构建由JQuery控制的前台界面,以及ajax实现信息的异步存取,经典的ssh框架的mvc结构。
实现选课系统的,检索迅速、查找方便、可靠性高、存储量大、保密性好等特点。
1.2课题研究目的
选课管理系统将作为现代化的教务管理系统中的一部分,是每个高校的系统中必要的组成部分,实现学生选课管理的统一,准确化。
该系统系统面向全校的学生以及教师,一次信息量相对较大,采用B/S结构,无需安装客户端,用户只需要在浏览器中输入相对应的地址即可,从服务器获得信息,方便快捷,更利于维护和更新。
同时,由于我国高校是允许学生自由选课,在这里,学生选课时的制约因素比较复杂,工作量也很大,而且往往需要在较短的时间内完成。
运用计算机辅助选课,即能实时地对大量选课数据进行检验和统计,十分方便地输出选课结果,同时也避免了人工处理时容易产生的错误。
例如,一名学生不能同时上两门课,一个老师不能同一时间交两门课程等等。
利用计算机辅助进行课表编排工作,既提高了排课工作的科学性,又可大大减轻管理人员
的工作强度,提高工作效率,因此,利用计算机辅助选课,可以节省大量人力,并且可以避免错误。
1.3课题可行性分析
J2EE平台的飞速发展,技术的成熟以及应用领域的不断扩大,为网上信息的交互提供了一个良好的平台和方便的操作界面。
由于J2EE平台基于用户需求的设计方法使得该系统的使用跟家的人性化、个性化、跟贴近用户。
以J2EE平台的构建思想来实现网上选课系统可以最大程度的做到实用性,可扩展性和可维护性相结合,安全性以及规范化原则。
采用本系统,能够使整个系统内部所有信息的工作简化,提高工作效益。
由于采用统一的数据信息,使相关资料能够快速地查询所需的数据、资料及其它信息的,使信息快速高效运行。
2 相关开发软件以及技术介绍
2.1 B/S结构介绍
2.5.1 B/S结构基础
B/S结构(Browser/Server结构)结构即浏览器和服务器结构。
它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现形成所谓三层结构。
这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。
它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库,它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
B/S结构最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。
只要有一台能上网的电脑就能使用,客户端零维护。
系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。
甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。
B/S结构系统的工作原理图,如图2-1所示。
图2-1 B/S结构系统的工作原理图
2.5.2B/S架构软件的优势与劣势
(1) 维护和升级方式简单
目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。
对一个稍微较大的单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。
无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行。
如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。
所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。
今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。
因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。
(2) 成本降低,选择更多
现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。
避免了高维护成本的windows系统,而且能够使大部分人使用Windows作为桌面操作系统电脑不受影响。
(3) 应用服务器运行数据负荷较重
由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器端(Server)完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。
但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。
因此,必须备有数据库存储服务器,以防万一。
2.5.3B /S与C/S结构软件技术上的比较
C/S(客户机服务器模式)结构软件分为客户机和服务器两层,客户机不是毫无运算能力的输入、输出设备,而是具有了一定的数据处理和数据存储能力,通过把应用软件的计算和数据合理地分配在客户机和服务器两端,可以有效地降低网络通信量和服务器运算量。
由于服务器连接个数和数据通信量的限制,这种结构的软件适于在用户数目不多的局域网内使用。
国内目前的大部分EKP(财务)软件产品即属于此类结构。
B/S(浏览器服务器模式)是随着Internet技术的兴起,对C/S结构的一种改进。
在这种结构下,软件应用的业务逻辑完全在应用服务器端实现,用户表现完全在Web服务器实现,客户端只需要浏览器即可进行业务处理,是一种全新的软件系统构造技术,这种结构更成为当今应用软件的首选体系结构。
(1)数据安全性比较
由于C/S结构软件的数据分布特性,客户端所发生的火灾、盗抢、地震、病毒、黑客等都成了可怕的数据杀手。
另外,对于集团级的异地软件应用,C/S结构的软件必须在各地安装多个服务器,并在多个服务器之间进行数据同步。
如此一来,每个数据点上的数据安全都影响了整个应用的数据安全。
所以,对于集团级的大型应用来讲,C/S结构软件的安全性是令人无法接受的。
对于B/S结构的软件来讲,由于其数据集中存储于总部的数据库服务器,客户端不保存任何业务数据和数据库连接信息,也无需进行什么数据同步,所以这些安全问题也就自然不存在了。
(2)数据一致性比较
在C/S结构软件的解决方案里,对于异地经营的大型集团都采用各地安装区域级服务器,然后再进行数据同步的模式。
这些服务器每天必须同步完毕之后,总部才可得到最终的数据。
由于局部网络故障造成个别数据库不能同步不说,即使同步上来,各服务器也不是一个时点上的数据,数据永远无法一致,不能用于决策。
对于B/S结构的软件来讲,其数据是集中存放的,客户端发生的每一笔业务单据都直接进入到中央数据库,不存在数据一致性的问题。
(3)数据实时性比较
在集团级应用里,C/S结构不可能随时随地看到当前业务的发生情况,看到的都是事后数据。
而B/S结构则不同,它可以实时看到当前发生的所有业务,方便了快速决策,有效地避免了企业损失。
(4)数据溯源性比较
由于B/S结构的数据是集中存放的,所以总公司可以直接追溯到各级分支机构(分公司、门店)的原始业务单据,也就是说看到的结果可溯源。
大部分C/S结构的软件则不同,为了减少数据通信量,仅仅上传中间报表数据,在总部不可能查到各分支机构(分公司、门店)的原始单据。
(5)服务响应及时性比较
企业的业务流程、业务模式不是一成不变的,随着企业不断发展,必然会不断调整。
软件供应商提供的软件也不是完美无缺的,所以,对己经部署的软件产品进行维护、升级是正常的。
C/S结构软件,由于其应用是分布的,需要对每一个使用节点进行程序安装,所以,即使非常小的程序缺陷都需要很长的重新部署时间,重新部署时,为了保证各程序版本的一致性,必须暂停一切业务进行更新,其服务响应时间基本不可忍受。
而B/S结构的软件不同,其应用都集中于总部服务器上,各应用结点并没有任何程序,一个地方更新则全部应用程序更新,可以做到快速服务响应。
(6)网络应用限制比较
C/S结构软件仅适用于局域网内部用户或宽带用户(1Mbps以上),而B/S结构软件可以适用于任何网络结构,特别适于宽带不能到达的地方。
从以上的分析可以看出,B/S结构的管理软件有着C/S结构软件无法比拟的优势。
而从国外的发展趋势来看,也验证了这一点。
目前,国外大型企业管理软件要么己经是B/S结构的,要么正在经历从C/S到B/S结构的转变。
从国内诸多软件厂商积极投入开发B/S结构软件的趋势来看,B/S结构的大型管理软件势必在将来的几年内占据管理软件领域的主导地位。
2.2 开发环境介绍----Eclipse Java EE
3.7 以及 Maven 的使用
Eclipse由于其开放源码,并可以在此基础上开发各自的插件,因此越来越受人们关注,尤其对于各高校,编写Java代码,它已经成为必用的开发工具。
本设计采用Eclipse 的版本代号:Indigo Service Release 2,平台版本3.7.发行日期2011年6月22日。
版本最新,集成了稳定的插件开发环境。
Maven:作为项目管理工具,它包含了一个项目对象模型,一组标准集合,一个项目生命周期,一个依赖管理系统,和用来运行定义在生命周期阶段中插件(plugin)目标(goal)的逻辑。
本社设计中使用Maven 主要完成生成站点,管理项目中用到的所有JAR文件,所有的依赖全部放在.pom文件中,需要是在配置中添加,maven 既可以到其仓库中进行查找并放到本地环境中。
同时,对于一个初学者,使用Maven的最大好处是,他可以是目录结构清晰,便于管理和开发的维护。
2.3 spring
3.0新特性以及spring MVC
Spring是Apache组织发布,是一个强大的基于 JavaBeans 的采用控制翻转原则的配置管理,使得应用程序的组建更加快捷简易。
由于Spring具有:轻量级。
控制反转,面向切面,声明式事物管理等特点,备受开发人员的青睐。
数据库事务的一般化抽象层,允许宣告式(Declarative)事务管理器,简化事务的划分使之与底层无关。
本身特点轻量级,无侵入性。
尤其在3.0后,增加了许多新特性,使得spring 框架更加完善。
下面列举几点spring3.0新特性
1)Spring Expression Language (Spring表达式语言)
2)IoC enhancements/Java based bean metadata (Ioc增强/基于Java bean元数据)
3)@MVC additions (@MVC增强)
4)Declarative model validation (声明式模型验证)
5)Embedded database support (嵌入式数据库的支持)
spring MVC :
Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。
所谓的MVC即:model,view,control 。
Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。
Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
使用Spring与前台进行交互,即可以使用command对象,将所要携带的信息发到model 里面。
在controller一层结构中,只需要集成spring的simpleformcontroller 接口,就可以达到处理表单的提交。
并可以针对请求的get
Post类型对应有不同的处理机制。
而且对于我这样的初学者,由于源代码开发。
可以引入框架本身资源jar包,便可以看到到框架本身的原代码,而且看起来也不费劲比较简单可以理解。
2.4 Hibernate连接数据库
Hibernate针对的是项目的持久层,提供了对JDBC进行了非常轻量级的对象封装,使得Java程序员可以使用对象编程思维来操纵数据库。
实现程序架构的松耦合,Hibernate引入了工厂-----factory 的概念,统一资源管理。
提供许多查询模板,避免开发过程中需要连接数据库时,每次写获取数据库连接,编写SQL ,关闭数据库连接相关代码并且提供常用的增删改查的SQL方法,我们在使用的时候,只需要传递参数,完全符合java的面向对象的编程思想。
它可以帮助我们完成数据库表的映射,包括一对一,一对多,多对一等,而使用者只需要在xml文件中配置。
Hibernate可以应用在任何使用JDBC的场合,就是我们多说的跨平台,可移植性。
目前为止有两个阶段性
的版本:Hibernate2,Hibernate3和Hibernate4,目前最新发布的版本是hibernate-core-4.1.1.Final。
也是设计中正在使用的。
2.5 主要前台技术简介
2.5.1 JSP
JSP(全称JavaServer Pages)是由Sun Microsystems公司倡导和许多公司参与共同建立的一种使软件开发者可以响应客户端请求,我的理解他就是一种动态HTML技术。
是的页面由静态发展到动态,并且可以再jsp 页面通过<% %>嵌入java代码,完成相应的业务要求。
可引入许多标签库,在页面中书写javascript脚本,通过css设定页面样式等等。
另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。
JSP页面最终会转化成servlet,并进行编译,在请求期间执行的实际上是编译后的servlet.因此,编写JSP页面实际上不过是另一种编写servlet的方式。
但是JSP中的HTML编写和维护都比较容易。
2.5.2 JavaScript
JavaScript是一种能让你的网页更加生动活泼的程式语言,也是目前网页中设计中最容易学又最方便的语言,JavaScript是一种动态、弱类型、基于原型的语言,通过浏览器可以直接执行;JavaScript一般用于在客户端根据业务动态的生成HTML,其基本用法和语法规则都与java类似,但是由于其为弱类型,在编写时相对简单,只需定义变量便可使用,不需生命变量类型。
而对应的Jquery 和 Ajax,在这里不再一一说明介绍,对于初学者,我的理解是Jquery是javascript的框架,可以在开发中引入对应的jar包,里面有封装好的方法便可以使用,它们是比较是轻量级的js库,使用它能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。
而Ajax,我这样评价它,他是软件开发中的一个神器,有了它,实现了在开发过程中数据的异步交互,这是很重要的,例如在处理数据的时候,可以做到页面不提交而通过Ajax将请求异步的传到后台,否则,哪怕是一个小的输入验证,整个页面都要提交买这样打的代价是不能忍受的。
增加可用户的实用性。
在我们的设计中,也会用到,例如注册信息或者登陆的时候,由于某一个域输入错误,这样当鼠标书群焦点的时候即可验证用户输入的是否正确,并将验证的结果返回到前台页面。
2.5.3 CSS
级联样式表(Cascading Style Sheet)简称“CSS”,通常又称为“风格样式表(Style Sheet)”,它是用来进行网页风格设计的。
是一种比较简单的技术,属性页
相对少,只要给对应要设置的内容设置<div >,然后对层取id,即可通过对id进行样式设定,比如,如果想让链接字未点击时是蓝色的,当鼠标移上去后字变成红色的且有下划线,这些风格都可以实现。
级联样式表可以使人更能有效地控制网页外观。
使用级联样式表,可以扩充精确指定网页元素位置,外观以及创建特殊效果的能力。
3 系统分析与总体设计
3.1 系统需求分析
根据高等院校的教务需求,以及具体的管理体系,该系统在用户身份设计上做出了不同的功能分配,分别设立三个主要身份:部门、教师、学生。
用户以不同身份登陆系统后,都会拥有各自的管理功能,并且在页面上会有具体身份的显示信息用来告知用户登陆身份。
部门身份包括学院教务处及各个院系,可以通过部门身份进行教师、学生、班级、课程等各个功能的管理,相当于教务系统中管理员。
教师身份进入系统,可以进行基本信息查询与修改,如授课情况的查询、学生成绩的录入等。
以学生身份登陆系统后,可以在规定的时间内,使用校园内任意一台接入校园网的计算机,进行学期选课,并能查询学期课表、成绩情况等信息。
3.2 系统功能分析
学生管理系统作为教务管理系统的一个分支,主要面向的用户三类:学生,教师,管理员。
系统这对不同的用户赋有不同的权限。
管理员权限最大,包括为系统添加学生或者教师用户,发布选课消息,规定选课学分,发布可选课程的详细信息,并针对最后的选课结果进行统计和调节,设置教师人数,删除相关信息,浏览修改教师,学生,教室信息等等。
学生模块的功能主要有:注册修改自己的相应信息,可进行选课,退课,与传统选课系统相区别的是,学生可以再选课的同时,查看授课的详细信息,包括职称以及著作,获奖情况等等,因此,学生也可以挑选自己感兴趣的老师、感兴趣的课程。
可以浏览信息,包括已选课程浏览、被选课程浏览、公共信息浏览、已发布课程信息浏览。
已选课程浏览是为学生提供的查看自己已经选择的课程信息
教师的功能主要有:注册修改自己的信息,统计选了自己课程的学生情况.查看选课学生的信息,查看上课时间、地点等等。
也可以浏览各种相关信息。
3.3 系统功能模块设计
表3-1 管理员功能模块。