选课系统-毕业论文
----------------------------------------------
装
订
线 Xxxxxxxx 毕业设计(论文) 题目: 选课管理系统 系 (院) 信息技术系 专业班级 学 号 学生姓名 指导教师 职 称 讲师
2012 年 05 月 10 日 ----------------------------------------------
摘要
随着校园网络的日趋普及以及计算机技术的飞速发展,计算机越来越多的应
用在教学管理中。我校近几年来快速发展,办学规模多元化,在校学生和教职员
工人数均在增加。而网上选课系统则可以让学生在任何时间、任意地点进行选课,这在一定程度上提高了教务教学管理的效率和质量。为了实现对学生选课进行科
学管理,学生需根据自身特点自己选择课程,所以,利用信息与网络技术,建立
一个安全高效的选课系统。这是我校加强信息化管理并提高管理水平的必然选择
也是当务之急。
本系统正是基于改变传统状况的一个尝试。因为JAVA 是一种简单的,面向
对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言,因而根据这些特性利用JAVA 实现选课管理中的各项功能。
通过对学校管理的需求分析, 创建了比较完善的选课管理系统。本文首先对选课
系统课题的背景进行了研究和分析,并对网络选课的重要意义进行了详细的阐
述。
本文详细介绍了系统各个功能模块界面的实现方法,前台界面的操作与后台
数据库的连接,最后总结开发阶段与测试阶段所遇到的问题与解决方法。本系统
完成了基本所需功能,界面清晰, 操作简单友好实用。并且,初步实验表明,本
系统可基本满足本校的需求、提高了学校的选课管理效率、节省了学校的管理支
出,从而具有一定的经济效益。
关键词: 选课系统 JAVA Oracle 数据库
ABSTRACT
With the growing popularity of campus network and the rapid development
of computer technology, more and more computer applications in teaching and management. Our school in recent years the rapid development of diversification in the school system, the number of students and workers have been expanding. However, an online course selection system may let all the students select their courses anywhere and anytime. Thus, this system will greatly improve the efficiency and quality of the university administration. In order to achieve the scientific management of elective courses about students, the students are required to choose their own courses according to their own characteristics. So using infomrmationand net technology to build and a safe and efficient subject-selection system has become the top priority to strengthen information management and improving school management.
This system is an attempt to change the current situation.As JAVA is
a dynamic language with many characteristics,such as: simple, objected-oriented,distributed,deciphered ,secured ,structure-neutral ,transplantable ,excellent-performanced and multistreading.Throught demand analysis to school management,it creates some thorough curricula-variable management system. This article manly talks about the research and analysis of the background for curricula-variable and give the details of the importance for this kind of system.
This article particularly introduces the applocale way to create the
interface for different functional module ,the link between the operation of front interface and back database system and problems and solution during the development stage and test stage. This system completes the basic demand function, clear interface simple and user-friendly operation. The preliminary Experiment shows that this system can meet the demand of our school improve the efficiency of subject-selecting ,save the expenditure of our school and in a way ,it has the merits of economic benefit.
Keywords :Course-selection system JAVA Oracle Database
目 录
第一章 绪论 ........................................................................................... 1
1.1 项目背景及研究意义 . ................................................................... 1
第二章 选课意义与开发工具 . ............................................................... 2
2.1网上选课的重要意义 . .................................................................... 2
2.2开发工具和语言 ............................................................................ 2
2.2.1开发工具 .................................................................................. 2
2.2.2 WEB服务器—Tomcat .............................................................. 3
2.2.3数据库服务器—Oracle 、plsql ................................................. 3
2.2.4 JAVA语言 ................................................................................. 3
第三章 系统设计概述 . ........................................................................... 6
3.1需求分析 ........................................................................................ 6
3.1.1设计目标 .................................................................................. 6
3.1.2用户特点 .................................................................................. 7
3.1.3选课系统的总需求目标 . .......................................................... 7
3.1.4数据需求 .................................................................................. 7
3.1.5功能性需求概述 ...................................................................... 8
3.2系统设计概述 ................................................................................ 8
3.3系统结构特点 ................................................................................ 8
3.4系统程序的开发 .......................................................................... 10
第四章 程序界面设计 . ......................................................................... 12
4.1欢迎页面设计 .............................................................................. 12
4.2用户模块-管理员/学生登录 ........................................................ 12
4.3课程管理模块 .............................................................................. 13
4.3.1添加课程模块 ........................................................................ 13
4.3.2修改课程模块 ........................................................................ 15
4.3.3删除课程模块 ........................................................................ 16
4.4学生管理模块 .............................................................................. 16
4.4.1添加学生模块 ........................................................................ 17
4.4.2修改学生模块 ........................................................................ 18
4.4.3删除学生模块 ........................................................................ 20
4.5学生选课管理模块 ...................................................................... 20
第五章 数据库设计以及接口分析 ...................................................... 22
5.1数据库设计 .................................................................................. 22
5.1.1数据结构 ................................................................................ 22
5.1.2表的设计 ................................................................................ 22
5.1.3数据库的冗余和备份 . ............................................................ 24
5.2接口分析与分页实现 . .................................................................. 24
5.2.1接口分析 ................................................................................ 24
5.2.3分页实现 ................................................................................ 25
第六章 项目的调试与优化 . ................................................................. 26
6.1项目的调试 .................................................................................. 26
6.1.1测试环境 ................................................................................ 26
6.1.2测试方案 ................................................................................ 26
6.1.3功能测试 ................................................................................ 26
6.1.4非功能测试 ............................................................................ 27
6.2项目的优化 .................................................................................. 27
第七章 总结 ......................................................................................... 28
致谢 . ...................................................................................................... 29
参考文献 ............................................................................................... 30
选课管理系统
第一章 绪论
1.1 项目背景及研究意义
随着现代计算机科学的迅速发展,信息和通讯技术的应用与推广,各校教学
管理模式正在发生着巨大的变革。学校教学管理工作信息化、数字化的教育与实
践也越来越受到重视。学生的选课工作与学生的学业和老师的教学工作息息相
关,也是高校信息管理的重要组成部分。全校性选修课的目的在于扩大学生知识
面,加强学生素质教育,培养复合型高级人才,具有不可替代的重要性。
当今社会对教育水平和教学管理软硬件的要求日益提高, 这对一个学校能够
具有一整套完善的教学管理软件提出了更多的要求。而要实现这一功能,就要求
学校管理者配备一套高效的教育管理网络系统,以便在学校内实施良好的一整套
完善的管理且以最快地速度响应教师和学生的需求,及时为他们提供服务,为他
们提供一个高效、便捷的环境。选课管理系统是校园网络中一个重要的应用系统,它大大改善了学校教学、科研与管理的基础环境,在一定程度上反映出学校管理
现代化的水平。
传统的选课模式大大地限制了学生的主观能动性,学生无法自由的选择自己
感兴趣的课程,不能将学生的学习兴趣完全调动起来,使学生们对学习感到枯燥
无味,教学效果不理想。并且,传统的选课活动因学生数量以及课程数目的增加
变得更加复杂和效率低下,且保密性差,这给查找、更新和维护带来了很多困难。
近年来,计算机科学日渐成熟,它已进入人类社会的各个领域并发挥着越来
越重要的作用,作为计算机应用的一部分,使用计算机对学校的管理系统进行管
理,具有人工管理无法比拟的优点:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些能极大的提高教学管理的效率,也是企业的
科学化、正规化管理与世界接轨的重要条件。随着网络信息化的发展,对选课管
理系统的要求也越来越高,我们应该在克服系统中存在的各种问题的前提下,更
进一步的完善选课管理系统,发挥其强大的作用,这样全校的学生就能够在各自
时间和不同地点进行教学计划查询,课程选择、课程更换和删除等选课操作。这
减轻了选课管理人员的工作量,也使得学生能够更加自由和灵活地进行选课。
本文以江苏经贸职业技术学院为重点,针对该院教务工作的实际需求,设计
并开发了基于JAVA 语言的选课管理系统。通过本系统的应用,可以提高江苏经
贸学院教学信息管理的工作效率,从根本上减轻教务管理工作量,改善教学管理
服务质量。也可实现选课流程的规范化,透明化。满足管理人员、教师、学生和
信息化管理等多方面的需要,而且还可以使目前分散的教学信息得到共享,这样
将对提高教学管理水平、实现教学管理现代化、信息化具有重要意义。
第二章 选课意义与开发工具
2.1网上选课的重要意义
现代的全面学分制对选课制度提出了三点要求:即规模大、范围广、时间紧。
“规模大,,是指由于对在校全日制的所有学生均以学分制的管理模式进行管理,选课的学生人数在某些高校达到上万,而全校各院系专业的课程数也达到成百上
千; “范围广”是指根据最新教改精神,学校各个院系的专业都要有一定数量的
任选课和文理跨专业选修课,以达到拓宽学生知识面和培养复合型人才‘的目的,这就增加了学生选课的随机性; “时间紧是指学生选课完毕与正式确定课程安排
的间隔处理时间只有几天。
因此,推行全面学分制下的选课制的先决条件是现代化的教务管理手段。单
独的电脑或独立的机房己经不能够及时高效地完成大量数据处理任务,进行教学
管理时必须利用网络资源。基于网络的选课系统能够及时地存储和处理选课学生
的选课结果,同时选课系统也能够快速地做出选课完整性判断,进而指导选课有
误的选课学生从新进行退选课程,补选课程,以及改选课程,并整理和打印出学
生需要的新课表以及教师所需要的学生点名册等内容。这些内容对于选课系统的
全面性也有着不可或缺的作用。
基于网络的选课系统的设计将会影响全面学分制的运行质量。现行高校的学
分制规定全部课程针对全部选课学生都具有,选课成功机会均等性,全部课程可
选性等。实现上述基本目标是选课系统成功的关键。
2.2开发工具和语言
学生选课系统的设计与开发过程中,选择恰当的开发工具,可为今后江苏经
贸学院学生选课系统的二次开发和部署教学改革所带来的新业务逻辑打下良好
的技术基础。
2.2.1开发工具
Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而
言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具。
Eclipse 最初是由 IBM 公司开发的替代商业软件 Visual Age for Java 的
下一代IDE 开发环境,2001 年 11 月贡献给开源社区,现在它由非营利软件供
应商联盟Eclipse 基金会管理。 2003 年,Eclipse 3.0 选择 OSGi(Open Service GatewayInitiative)服务平台规范为运行时架构。
Eclipse 是一个跨平台的自由集成的开发环境(IDE )。最初主要用来 Java 语
言开发,但是目前亦有人通过插件使其作为其他计算机语言比如 C++的开发工
具。
Eclipse 的本身只是一个框架平台,但是众多插件的支持使得 Eclipse 拥有
其他功能相对固定的 IDE 软件很难具有的灵活性。许多软件开发商以 Eclipse 为框架开发自己的 IDE。
2.2.2 WEB服务器—Tomcat
目前最为流行的Tomcat 服务器是Apache 一JarKarta 开源项目中的一个子项
目,是一个小型、轻量级的支持JSP 和servlet 技术的Web 服务器。
Tomcat 是一个开源的WEB 服务器,它是APache 基金会的Jakarta 项目中的
一个核心项目,由APache ,sun 和其它一些公司及个人共同开发而成。Tomcat
自4.0版本后都采用了新的Servlet 容器:Catalina,完整的实现了
Servlet2.3和JSP1.2规范。由于 Java的跨平台特性,基于Java 的Tomcat 也
具有跨平台性。
在Tomcat 中,应用程序的部署很简单,你只需将应用程序打包后得到的WAR
文件放到Tomcat 的web 应用程序的目录下,Tomcat 会自动检测到这个文件,并
将其解压。
2.2.3数据库服务器—Oracle 、plsql
Oracle 数据库包括Oracle 数据库服务器和客户端。
Oracle Server 是一个对象一关系数据库管理系统。它提供开放的、全面的、
和集成的信息管理方法。每个Server 由一个 Oracle DB和一个 Oracle Server
实例组成。它具有场地自治性(Site Autonomy)和提供数据存储透明机制,以
此可实现数据存储透明性。每个 Oracle数据库对应唯一的一个实例名SID 。 Oracle 支持大数据库、多用户的高性能的事务处理。Oracle 遵守数据存取语言、操作系统、用户接口和网络通信协议的工业标准。实施安全性控制和完整性控制。支持分布式数据库和分布处理。具有可移植性、可兼容性和可连接性。所以选择
Oracle 数据库。
PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而
成的编程语言,PL/SQL是Oracle 数据库对SQL 语句的扩展,增加了编程语言的
特点。数据操作和查询语句被包含在PL/SQL代码的过程性单元中,经过逻辑判
断、循环等操作完成复杂的功能或者计算。PL/SQL支持多种数据类型,如大对
象和集合类型。可用于创建存储过程、触发器和程序包,给SQL 语句的执行添加
程序逻辑。PL/SQL与 Oracle 服务器和 Oracle 工具紧密集成,具备可移植性、灵活性和安全性。
通过以上对Oracle 的了解,所以最后选择了Oracle 数据库,以及对数据库
进行操作的plsql 。
2.2.4 JAVA语言
JAVA 是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构
中立的,可移植的,性能优异的,多线程的动态语言。
Java 语言中的几个基础术语:
1.类:是面向对象语言的一种复合数据类型。类是复合数据类型的超集。
2.对象:是类的一个实例。类可以看作是一个模板。每当创建一个类的实例时,就得到一个对象。
3.成员:是组成对象的元素。
4.引用:在 Java 中,定义为类类型的变量实际上并不保存对象数据,只是用来标识一个实际对象。这种类型的变量成为引用。
为了有效地组织、管理数据,提高数据库的逻辑独立性和物理独立性,人们为数据库设计了一个严谨的体系结构,数据库领域公认的标准结构是三级模式结构,它包括外模式、模式和内模式。 美国家标准协会(American N ational Standard Instit ut e,ANSI) 的数据库管理系统研究小组于 1 9 78 年提出了标准化的建议,将数据库结构分为 3 级:面向用户或应用程序员的用户级、面向建立和维护数据库人员的概念级、面向系统程序员的物理级。
用户级对应外模式,概念级对应模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图。所谓视图,就是指观察、认识和理解数据的范围、角度和方法,是数据库在用户“眼中" 的反映,很显然,不同层次(级别) 用户所“看到’’的数据库是不相同的。
我们以选课系统的 E-R 图进一步了解数据库系统的三级体系结构。如图 2-2-1选课系统的 E-R 图
图 2-1 选课系统的 E-R 图
用户应用程序根据外模式进行数据操作,通过外模式一模式映射,定义和建
立某个外模式与模式间的对应关系,将外模式与模式联系起来,当模式发生改变时,只要改变其映射,就可以使外模式保持不变,对应的应用程序也可保持不变;另一方面,通过模式一内模式映射,定义建立数据的逻辑结构(模式) 与存储结构(内图 2-1 学生信息管理系统的 E-R 图模式) 间的对应关系,当数据的存储结构发生变化时,只需改变模式-内模式映射,就能保持模式不变,因此应用程序也可以保持不变。
第三章 系统设计概述
3.1需求分析
3.1.1设计目标
随着招生规模的不断扩大,许多高校出现了多个校区并存的局面,并且校区之间的地理位置跨度非常大,从而给高校选课工作的进行带来了不少弊端,增加了很大的工作量。为了解决这一问题,开发学生选课系统已成为必然。江苏经贸学生选课系统可以利用学院现有的网络资源,也可以利用国际互联网来进行部署。该系统可以显著减轻教务人员的工作负担,大大提高工作效率,从而实现教务管理的数字化和网络化。在安全性、保密性应得到可靠的保证,的同时,应具有以下业务需求:
通过实际调查,要求学生选课系统
(l)界面设计美观大方、操作简洁灵活。
界面人性化设计,录入表单强大的纠错功能。表格显示页面采用柔和字体,重要或者错误提示信息采用醒目的字体和颜色。
(2)实现学生信息的具体管理。
集中对全校的学生信息进行管理,具备对学生基本信息可以进行增加、修改、删除的功能。
(3)实现课程信息的具体管理。
集中对全校的课程信息进行管理,具备对课程信息可以进行增加、修改、删除的功能。非授权用户只能查看,不能修改和删除。
(4)学生登录。
学生入学后,可以由管理统一录入系统。系统登记学生信息,并可以根据学生填写的相关信息,自动识别学生信息且可以选择的课程信息。
(5)实现学生查看历史选课情况。
学生可以修改选课信息、查看选课情况。
(6)学生选课。
学生选课功能是本系统最基本的功能。学生登录系统,系统将列出可以选择的课程,供学生选择。学生选课之后,可查询和修改。
该系统完成对学生选课管理的另一个方面内容就是对全校学生的选课进行查询与统计了,而在查询与统计功能实现的同时,需要考虑到执行查询与统计操作的人群,学生可以对自己的信息及选课进行查询,前提是该学生知道自己的登录账号,而管理员(教师,班主任及学校领导)也可以查看学生基本信息及选课情
3.1.2用户特点
用户为非专业技术人员,对计算机技术没有详细了解,必须尽可能的提供友好的操作界面和使用提示。
3.1.3选课系统的总需求目标
在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的学生选课系统,实现学生信息增加,删除,课程增加、修改删除以及学生选课的自动化、高效的计算机系统。
3.1.4数据需求
(1)数据录入和处理的准确性和实时性
数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是手工输入。手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。
在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。
(2)数据的安全性
本系统为学校的学生管理部门设计,因此只有特定的管理者才能对数据实现增,删,改,查等操作。未获授权人员不能进入系统。
(3)数据的备份
要定期对数据库中的数据进行全部或新增部分的备份工作,以保证在硬件出现故障或人为原因导致无法运行时是可以快速及时的还原到原来的正常状态。
在一个正式的系统中,要实现的功能要求:
(1) 信息管理:对学生基本信息进行管理
(2) 课程管理:对选修课程进行管理
(3) 学生选课:学生选修课程、取消课程
运行需求:用户界面利用菜单界面驱动方式,对用户友好,必须对鼠标和键盘单独支持,在结束了系统最基本的需求分析后,将进入系统的总体设计阶段。
3.1.5功能性需求概述
(1)能够管理在校学生的基本信息,处理离校学生信息
(2)能够管理选修课程,可增加、编辑课程
(3)学生可以正常选课、取消课程
3.2系统设计概述
开发一个系统前需要对系统作一个良好的设计,设计的好坏决定开发成败的关键,一个好的设计将对开发带来极大的方便,同时设计阶段的好坏在一定程度上就决定开发能不能成功,能不能满足前面需求分析阶段所有的需求。
整个学生选课系统,预期达成的目标是:针对教育管理的特点设计,注重实用性、科学性和可操作性并重的原则,把管理人员从繁杂的手工劳动中解脱出来,提高管理的质量。
本管理系统设计的主要目标在于可以方便学生选择课程,规范学生选课数据的操作管理,使用权限管理保证数据的安全性和可靠性。
程序实现的主要功能:
1、学生基本信息的录入
2、学生基本信息的修改与删除
3、课程的增加与与修改以及删除
4、学生选择课程、取消课程
在提出上述研究的主要内容之后,最后通过本人所在单位的实际应用需求,针对企业信息化的过程中存在的遗留和不完善的项目:设备状态维修系统这一具体业务,应用该框架来实现,来解决企业信息化中遗留的具体问题,来取得应用的实效,并来验证该框架的简易实效性。使该框架在实际开发和具体应用开发中,体现出潜在的工程价值和实实在在的应用效果。本论文的选题着眼于国内软件开发的实际需求,开发出了具有自主知识产权的简易面向对象的软件。并针对本人所在学校的具体应用需求,采用该软件解决了在实际工作中学校面临具体问题。同时在具体应用的实践过程中,使该软件设计的效果的好坏得到一定程度的检验。
3.3系统结构特点
(1)采用简单易用的操作界面,用户可以在使用的同时获得实时帮助。
(2)采用数据库和程序分开设计的方式,他们之间通过驱动程序连接,以使系统达到较高的可靠性和扩展性。
系统总体结构设计如图 3-3-1。
图 3-1系统总体结构图
本系统是对学生的基本信息和选课进行管理,主要包括添加,修改和删除学生的基本信息,录入,增加、修改和删除课程,学生选择课程、取消课程,选课管理的自动化。系统主要划分为 3个模块:
(1)课程信息管理模块:管理员可以对课程进行管理,查看课程的信息、添加新课程、更改课程信息以及删除课程。包括的信息有:课程名、授课人、所属院系等。功能结构如图3-3-2。
图 3-2 课程信息管理模块
(2)学生信息管理模块:对学生的基本信息进行综合管理,可以添加,修改和删除基本信息,删除学生基本信息的同时删除该学生的选课信息,包括的信息有姓名,登录密码,性别,班级等。功能结构如图3-3-3。
图 3-3学生信息管理模块流程图
(3)学生选课模块:显示登录学生可以选择的所有课程列表,可以对想要选择的课程进行选课操作。功能结构如图
3-3-4.
图 3-4学生选课模块流程图
3.4系统程序的开发
1. 硬件环境:
(1)PC一台,配置如下:
CPU:IntelCore2DuoCPU
内存:2G
硬盘空间:80G
(2)打印机一台:佳能打印机
2. 软件条件:
(1)操作系统 :Windows7
(2)数据库:Oracle、plsql
(3)JAVA:jsdkl.6
(4)开发软件:Eclipse for java EE
(5)服务器:Tomcat6.0
3. 框架:Spring ,MVC ,底层框架,数据库层的框架C3P0
C3P0是一个开源的JDBC 连接池,它实现了数据源和JNDI 绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate ,Spring 等。
框架的优势:框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。
4. 设计模式:MVC
第四章 程序界面设计
4.1欢迎页面设计
在进行整个设计前,需要对软件的界面有所了解,比如,运行该软件后,呈现给使用者的界面是怎样,所以设计的第一步是设计一个友好的,简洁的使用操作主界面,在主界面下再进行一系列的添加,修改,删除,查询等课程、学生信息及选课的操作,如图 4-1 的主界面-欢迎界面所示,友好简洁的界面帮助使用者能迅速的学会对该软件的操作。
图 4-1 系统软件欢迎页面图
4.2用户模块-管理员/学生登录
管理员在登录页面adminLogin.jsp 对应的地方输入用户名、密码,确认后登录。界面设计如图 4-2
学生在登录页面studentLogin.jsp 对应的地方输入学号或姓名、密码,确认后登录。界面设计如图
4-3
图 4-2 管理员登录页面 图 4-3 学生登录页面
若检索到的记录集为空,则说明用户名/学号(姓名) 错误,从而转到相应的出错处理程序,若记录集不为空,再进行用户名/学号(姓名) 判断,若用户名/学号(姓名) 与表中的用户名/学号(姓名) 不相等,进行出错处理,若相等,进而检查密码是否相等,不相等,作出错处理,相等则转入管理员/学生登录成功的操作
页面,并将用户名、密码保存起来。
4.3课程管理模块
课程管理模块要完成的功能是课程的添加、修改与删除,界面设计如图4-4,其逻辑功能如图4-5。
图 4-4管理课程列表页面
图 4-5 逻辑功能图
4.3.1添加课程模块
当需要添加一门课程时,在添加信息模块只需完成对信息的添加功能,界面情况如图4-6。
图 4-6 添加课程页面
此时,我们只需要在界面的课题名称,授课人,院系等处录入该课程的基本信息即可完成添加课程功能。
输入:课程基本信息。
输出:添加成功或失败提示信息。
实现步骤为:
(1) 实例化数据库类,用来连接数据库。
(2) 实例化窗口中的各个基本组件,包括按钮,文本框和下拉菜单等。
(3) 初始化窗口,并在初始化工程中设置窗口的大小,标题等基本属性。
(4) 对各个菜单进行基本的设置。
(5) 得到界面的数据同时添加该记录到数据库。
(6) 在插入成功以后断开和数据库的连接。
该功能的逻辑如图 4-7 。
图 4-7 添加-功能逻辑图
添加课程界面具体设计如下:
4.3.2修改课程模块
当课程调动或者进行信息调整时,我们就需要该软件能提供一种方便进行选课管理的修改功能,该模块的主要功能是完成对课程的修改,界面情况如图 4-8 。
图 4-8 编辑课程页面
在修改前首先要先确定要修改的课程,然后根据需要对该课程的特定信息进行修改。例如我们在修改界面中找到计算机基础这么课程,需要对课题名称做修改,我们可以直接在修改界面上将计算机基础的课题名改为IT 基础与应用,然后点击提交按妞即可完成一次课程的修改,修改后的数据库信息也随之改变,效果如图 4-9 。
图4-9 修改后的课程页面
该功能的逻辑如图 4-10 。
图 4-10 修改-功能逻辑图
在设计界面代码时,要考虑到与数据库的连接,框架的建立,字体大小等,界面中各个功能组件的布局,包括标签组件,文本框组件,选择框组件,按妞组件都需要先进行实例化再进行布局,而组件的实例化方法前面已经提到。此处编辑按钮功能实现代码如下:
编辑
4.3.3删除课程模块
在课程结束或者一些其他因素不再有该课程的情况,我们也需要考虑到数据库的承载数据的容量问题,需要在该系统中完善一种删除课程的功能,该模块的主要功能就是对课程的信息进行删除。
首先选择好需要删除的课程,确认无误后对其进行删除操作,点击删除按钮可弹出删除提示框,点击确定按钮可删除成功。该操作将删除该课程的信息。 该功能的逻辑如图 4-11 。
图 4-11 删除-功能逻辑图
系统确认是否是删除此课程时的具体设计: function isdelete(){
if(window.confirm( '是否确定删除? ')){ return true; }else{
return false; } }
4.4学生管理模块
学生管理模块要完成的功能是学生基本信息的添加,修改与删除,界面设计如图 4-12,其逻辑功能如图 4-13。
图 4-12学生管理页面
图 4-13 逻辑功能图
界面说明:
模块初始化时,因为还没有当前学生,所以学生信息操作中只有“新增”按钮可用。若想对学生信息进行修改或者删除操作,首先新增学生信息。 确定存在该学生后,可进行修改或删除。
输入:学生基本信息,其中学号和姓名不能为空。
4.4.1添加学生模块
当需要添加一个学生信息时,比如新生入校后对该生的信息进行录入,在添加信息模块只需完成对信息的添加功能,界面情况如图 4-14 。
图 4-14 添加学生页面
此时,我们只需要在界面的姓名,密码,性别等处录入该生的基本信息以及登录密码即可完成添加信息功能。
输入:学生基本信息,其中学号和姓名不为空。
输出:添加成功或失败提示信息。 该功能的逻辑如图 4-15 。
图 4-15 添加-功能逻辑图
在设计界面时,需要考虑学生登录密码是否一致的问题。
(1)当密码输入不一致时,弹出“两次密码输入的不一致”的提示信息: function check(){
var pwd=document.getElementById("password").value; var pwd1=document.getElementById("password1").value; if(pwd!=pwd1){
alert("两次密码输入的不一致!"); pwd=""; pwd1=""; }
(2)studentList.jsp 中添加功能核心代码如下: function add() {
var form = document.getElementById("student");
form.action="${pageContext.request.contextPath}/student/forward/.do?pageName=add"; form.submit(); }
4.4.2修改学生模块
当需要进行学生班级调动或者进行信息调整时,我们就需要该软件能提供一种方便进行学生基本信息的修改功能,该模块的主要功能是完成对学生信息的修改,界面情况如图 4-16 。
图 4-16 编辑学生页面
在修改前首先要先确定需修改信息的学生,然后根据需要对该学生的特定信息进行修改。例如我们在修改界面中找到张三疯的学生信息,需要对其姓名做修改,我们可以直接在修改界面上将张三疯的姓名改为王小三,然后点击修改按妞即可完成一次学生信息的修改,修改后的数据库信息也随之改变,效果如图 4-17 。
图 4-17 编辑后的学生页面
该功能的逻辑如图 4-18 。
图 4-18 修改-功能逻辑图
在设计界面代码时,要考虑到与数据库的连接,框架的建立,字体大小等,界面中各个功能组件的布局,包括标签组件,文本框组件,选择框组件,按妞组件都需要先进行实例化再进行布局,而组件的实例化方法前面已经提到。由于要修改的学生信息与添加的学生信息的方法一致,接下来定义的变量与前面添加学生信息时定义的变量一致,添加的响应事件也与添加学生信息时一致,在此都不
重复说明。
此处studentList.jsp 中编辑核心代码如下: (1)function edit(primarykey) {
var form = document.getElementById("student");
form.action="${pageContext.request.contextPath}/student/forwa
rd/"+primarykey+".do?pageName=edit";
form.submit(); }
(2)编辑
4.4.3删除学生模块
在学生毕业,或者一些其他因素导致学生离校的情况,我们需考虑到数据库的承载数据的容量问题,需要在该系统中完善一种删除学生基本信息的功能,该模块的主要功能就是对学生的信息进行删除。
选择好需删除的学生,确认无误后对其进行删除操作,该操作将删除该学生对应的信息以及登录密码。该功能的逻辑如图 4-19 。
图 4-19 删除-功能逻辑图
系统确认是否删除该学生的核心代码如下: function isdelete(){
if(window.confirm( '是否确定删除? ')){ return true; }else{
return false; } }
4.5学生选课管理模块
在整个学校中,学生选课是致关重要的一个环节,每个班级,每个学科,每个学期,各个学生都需要选修课程,而在学生选课模块中主要实现的是学生选课主要功能。界面如图4-20,其逻辑功能如图4-21 。
图4-20 学生选择课程页面
图 4-21 选课-功能逻辑
由于学生较多以及所选课程也不少,学生直接通过选课系统来选择自己喜爱的课程。学生点击所选课程右侧选择框,点击保存按钮便可成功选择课程。若要取消选择,直接取消勾选,点击保存按钮,便可取消选择成功。 (1)若不选择课程,弹出的“至少选择一门科目”的提示信息: if(courseIds==""){
alert("至少选择一门科目"); return; }else{
courseIds=courseIds.substring(0,courseIds.length-1); document.getElementById("courseIds").value=courseIds; //alert(form.action); form.submit(); }
(2)若无课程可选择,则会显示“暂无数据”:
第五章 数据库设计以及接口分析
5.1数据库设计
选课系统的主要功能是通过大量的数据获得管理所需要的信息,这就须存储和管理大量的数据。因此建立一个良好的数据组织结构和数据库,使整个系统可以迅速、便捷、准确地调用和管理所需的数据,是有效开发信息系统工作的重要标志。
5.1.1数据结构
数据库系统设计主要是进行数据库的逻辑设计,即将数据系统功能的要求以及功能模块的划分,分类、分组系统和逻辑层次组织起来,采用面向对象的思想去分析该过程中所需要的数据结构,确定选课系统的各个组成部分的数据项和数据结构,分析选课数据流。该数据库的ER 图如图5-1
所示。
图 5-1 ER图
5.1.2表的设计
根据数据库需求分析,建立三个表,包含需要操作的所有数据信息。
5.1.3数据库的冗余和备份
本数据库是基于关系型数据库,表之间的关系应符合BC 范式标准。杜绝了本数据库数据的修改和删除冗余。本系统包含学生的个人信息,所以数据访问的安全性非常重要。为了防止通过非正常或者不合法的访问手段,对数据库的数据进行窃取或者破坏,在设计时充分考虑系统的安全性。主要从网络防火墙、数据库加密和定期的服务器维护等方面进行严密的设计,以保障数据库的安全访问和网络系统的安全性。并有专门的管理员对数据库进行定期的管理和备份。
5.2接口分析与分页实现 5.2.1接口分析
接口是什么? 《编程思想》中形象的称接口是“纯”的抽象类,就是说,接口进一步强化了抽象类的概念,即接口也是抽象的,不能直接实例化的。但与抽象类不同的是,接口中的方法要求都是抽象的,并没有给出方法体的定义。这就是接口。
接口有2种用途:以不变应万变、实现多继承。 该选课系统主要新建的包:dao (定义接口)、daoTmpl (实现接口)、service (对外接口)、controller (业务逻辑)等。其中定义接口dao 共分为三个接口:课程数据库接口、根据用户名和密码查询用户信息接口、用户接口。
(1)课程数据库接口CourseJdbcDao.java : package com.mvc.dao; import java.util.List;
import com.mvc.config.bean.JdbcParameterBean; public interface CourseJdbcDao{
Boolean insert (CourseBean course);/*新增*/ Boolean update (CourseBean course);/*修改*/ Boolean delete (Integer courseId);/*删除*/
Boolean updateStatus(Integer courseId);/*修改状态*/
CourseBean queryForBean(Integer courseId);/*根据课程编号查询课程信息*/
List queryForList(List paramList, int startIndex, int pagesize);/*根据参数查询课程信息列表*/
List queryForListByUserId(Integer userId);/*根据用户编号查询已选择的课程列表*/
}
(2)根据用户名和密码查询用户信息LoginJdbcDao.java : package com.mvc.dao;
public interface LoginJdbcDao {
UserBean queryForUserBean(UserBean user);}
(3)用户接口StudentJdbcDao.java : package com.mvc.dao; import java.util.List;
import com.mvc.config.bean.JdbcParameterBean; public interface StudentJdbcDao{ Boolean insert (UserBean user);/*新增*/ update (UserBean user);//修改
Boolean delete (Integer userId);//删除 UserBean queryForBean(Integer userId);// 根据用户编号查询用户信息
List queryForList(List paramList, int startIndex, int pagesize);// 根据参数查询用户列表
Boolean insertCourse(Integer[] courseId,Integer userId);// 批量添加用户与课程关联信息
}
5.2.3分页实现
分页 (pagination) 一种自动分页机制,可以将移动Web 窗体中的内容分割成一组组较小的页进行呈现,以适合于特定的设备。该机制还呈现可用于浏览到其他页的用户界面元素。它由参数设置起始页、页面大小等,通过SQL 语句实现,从而达到数据库层的分页。首先是在数据库完成的分页(只从数据库中查询一页数据), 而标签用来在页面上生成相应的分页信息,如:上一页,下一页,首页,末页等。后台提供分页的接口,“起始记录数”、和 "每页显示几条" 2个参数等,前台调用后台接口且前台需分页标签支持。
第六章 项目的调试与优化
6.1项目的调试 6.1.1测试环境
客户端环境:主流配置PC 机,可上网。IE 浏览器访问系统。 网络环境:校园网。 开发测试环境:
(1)操作系统 :Windows7 (2)服务器 :Tomcat6.0 (3)测试工具:IE浏览器 (4)数据库:Oracle
6.1.2测试方案
本系统的测试方案主要采用白盒测试、黑盒测试及性能测试工具相结合的方式。
6.1.3功能测试
在单元测试的基础上,进行了系统的功能测试。主要测试方法采用黑盒测试。测试结果如表6-1
表6-1测试结果
过测试。
6.1.4非功能测试
非功能测试主要采用测试工具QAload 来模拟多种正常、峰值以及异常负载条件对系统各项性能指标进行测试。
非功能测试的内容及结果, 如表 6-2 和 表 6-3 。
表 6-3 部分测试用例表
6.2项目的优化
问题:如果用户没登录直接访问选择课程的地址会报错。
解决:针对此问题经过请教发现,是因为session 对象没有用户信息导致,从而想到从前学到的过滤器,自己尝试结合学校的指数,写了一个用户身份验证的过滤器从而解决了此问题。
该过滤器的原理:获取所有请求对象,判断请求动作。如果为登录请求,跳过身份验证,否则获取session 对象中储存的用户信息如果为空,则直接跳转到登录页面。
第七章 总结
在本次论文写作初期,我寻找了相关资料,阅读了相关专业书籍,但由于实践经验不够,还不熟悉一些开发工具,编程能力有限,曾经一度难以入手。经过一段时间的请教老师,熟悉开发工具和进行实践以后,终于找到了切入点。
因为编程能力不够也出现了一些困难,后来在同学和实习单位同事的帮助下,设计才能得以进行。在整个设计阶段感受最为深刻的是掌握学习的方式和解决问题的方法。首先是解决问题的方式,虽然面临的信息很多,但是如何从大量的信息中筛选出所需的信息,有用的信息,才是解决问题的关键,另外一个就是解决问题的方法,就像我在解决设计中的很多问题一样,一开始总是在看书,和书上的进行比对,虽然书本上的只是大部分都是有价值,正确的,但实际上每个人编程的思路和对数据处理的方法、思想都是不同的,这就要求我们一定要通过实践才能找到解决问题的方案。在整个毕业设计的过程中,我深刻的体会到了这一点的重要性,也牢记主了这一点,在今后的学习和研究中我也会继续将这种方法延续下去。
通过完成这次论文写作,使我逐步加深了对 JAVA 知识的了解, 清楚一个管理软件的设计过程, 进一步全面认识和深刻体会了 JAVA 技术的发展过程以及 JAVA 技术在实际工作中的应用。同时编程能力也得到了一定的提高,且能更加熟练掌握Eclipse 。为了完成论文写作,我在指导老师的带领下,深入调查,掌握论文写作课程的具体流程、方法以及有关实例的原始数据资料,进一步加深了对计算机开发技术和 JAVA 技术的理解,为我今后更进一步的掌握与运用 JAVA 技术打下坚实的基础。
测试时出现了软件兼容问题,曾导致无法在多台计算机中调试此程序,虽然问题得以解决,今后希望能从系统软件本身去解决诸如此类的一系列问题。
致谢
行文至此,我的这篇论文已接近尾声。本次毕业设计历时两个月,在整个设计过程中历经很多挫折与难题,但都在指导老师高宇的帮助下按时的完成了这个毕业设计。高老师在闲暇的时候给予了我无私的指导和帮助,付出了精力,耐心和时间,不厌其烦的帮助我进行论文的修改和改进。另外,在单位实习的时候,开发人员也给了我很多方面的支持与帮助。在此向帮助和指导我的高老师表示最衷心的感谢!也向帮助我的同学以及同事表示感谢!谢谢你们在我写论文的过程中给我热情的帮助!
参考文献
[1]鲍诚毅. 针对Oracle 数据库的攻防技术研究. 上海交通大学,2011 [2]白蓥. 针对Oracle 数据库的SQL 注入攻击的研究. 吉林大学,2011 [3]宋秀荣.Oracle 数据库性能优化及实时监控研究. 燕山大学,2009 [4]陆钟石.Java 安全体系结构设计与实现. 北京邮电大学,2010
[5]李旭. 基于Java 语言的操作系统设计与实现技术研究. 国防科学技术大学,2009 [6]陈贤闯. 移动Java 平台的研究与实现. 杭州电子科技大学, 2009
[7]毕广吉.Java 程序设计实例教程[M]. 北京:冶金工业出版社,2009年 [8]赵文靖.Java 程序设计基础与上机指导. 北京:清华大学出版社,2010年 [9] 钱雪忠. 数据库原理及应用. 北京邮电大学出版社, 2009,8 第二版 [10]http://www.javaworld.com/