基于SQL Server与Java的PC端的学生选课评分系统的开发与应用
2018-05-23宋国伟薛益鸽
宋国伟 薛益鸽
摘 要: 本文论述了Java以及SQL Server的技术简介,分析了Java以及SQL Server的发展历程。针对应用需求,研究选择Java语言作为整个系统的开发语言,SQL Server 2008作为系统数据库,通过运用SQL语句对数据进行增、删、改、查,实现了按条件查询相对应信息、智能选课、人员信息的增、删、改、查。并通过JDBC接口链接数据库,使用Java语言实现所有的功能模块的界面,更为全面的实现了学生选课评分系统,其中全面包括教师对学生课程的增删改查,学生退选课的操作以及教师对学生的评分操作。
关键词: 学生选课评分系统;Java;SQL Server
Abstract:The paper discusses the Java and SQL Server technology profiles and analyzes the development process of Java and SQL Server. According to the application requirements the research chooses Java as the development language of the whole system and SQL Server 2008 as the system database and uses SQL statements to add or delete data for achieving the query of the corresponding information according to the conditions intelligent course selection additions and deletions of personnel information search. Meanwhile through the JDBC interface to link the database Java language is adopted to achieve all the interfaces of functional modules. Therefore the student selective scoring system is more comprehensively realized which includes a systematic examination of teachers' additions and deletions of student classes students' retirement class operations and teachers' scoring operation.
Key words: the student selective scoring system;Java;SQL Server
引言
Java是一种高级的面向对象的程序设计语言,同时也是一种跨平台语言。从PC端到手机应用都有Java开发的程序和游戏,Java程序可以运行在任何设备和平台上,不论是任何计算机、操作系统、或是支持Java的硬件设备[1]。
Java语言的语法规则与C++类似,但同时也简洁许多,去除了C语言中的指针类型,大大提高了可靠性,并且还具备更高的安全性,堪称时下在使用中最为广泛的优秀程序编程语言。
发展至今,Java依据应用范围可划分为3个版本,即Java SE、Java EE、Java ME,也就是Sun ONE(Open Net Environment)体系。其中,Java SE是Java的标准版,适用于Java桌面应用的开发,设计中包含着Java语言基础、JDBC(Java 数据库连接性)操作、I/O(输入/输出)、网络通信、多线程等技术。Java EE是指Java enterprise edition,也就是Java企业版,多用于企业级开发,包括Web开发等诸多组件内容在内。Java ME则可为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个综合强大的背景环境。Java ME 包括灵活的用户界面、健壮的安全模型、多组内置网络协议以及对可以動态下载的连网和离线应用程序的丰富支持[2]。
在运行中,Java设计配置了三大框架,也就是:Struts+Hibernate+Spring。Java三大框架主要用来研发Web应用。其中,Struts主要提供层的显示,Spring利用内置的IOC和AOP来处理控制业务(重点用于对数据库的操作),Hibernate主要是将数据持久化到数据库中。
在已有的研究工作中,Java语言呈现出如下特性:简单、面向对象、分布性、可移植性、解释性、安全性、健壮性、多线程、高性能、动态。
SQL Server是一种关系数据管理系统。2008年,SQL Server 2008 简体中文版即已在中国正式发行。SQL Server 2008 版本可以将结构化、半结构化,非结构化文档的数据直接存储到数据库中。可以通过SQL语句对数据进行增、删、改、查等各类操作。
SQL Server2008除了继承SQL Server 2005的优点外,还提供许多的新特性、新功能,具备数据压缩,基于策略的管理和集成全文检索功能[3]。此外,SQL Server 2008 允许在Microsoft.Net和Visual Studio 开发的自定义应用程序中使用数据,在面向服务的框架(SOA)和基于Microsoft Biz Talk Server展开的业务流程中使用数据。
2012年的SQL Server 2012是在原有SQL Server 2008的基础上又加入了重大改进,除了保留SQL Server 2008的风格外,还在管理、安全,以及多维数据分析、报表分析等方面做出了进一步的优化提升。
1 开发工具
MyEclipse(MyEclipse Enterprise Workbench,简称MyEclipse)是对Eclipse IDE的扩展,可以利用MyEclipse在数据库和Java程序开发中高效提升研发的效率。这是JavaEE的集成开发环境,包括编码、调试、测试和发布功能,全方面支持HTML、Struts、JSP、CSS、Javascript、Spring、SQL和Hibernate。
究其实质,MyEclipse 就是一个巨大的插件集合,可以将其视作Eclipse,但却是经过扩展后的Eclipse,也就是在最初的Eclipse中高度集成了大量的其它插件,并经过优化,从而能够个性化定制设计基本的Java代码编写、Web开发,以及各种主流框架和数据库开发。
JDBC是一种链接Java与SQL语句的API,是由Java编写的类和接口组成。使用JDBC,在Java中调取SQL语句极为方便,不必再重写一个链接数据库的程序,因为Java和JDBC结合起来使用就无需考虑不同平台的问题,这也是Java语言“编写一次,处处运行”的特点优势之所在。JDBC不仅可以用于桌面应用开发,而且还可用于网页开发。随着Java语言的推广,对数据库的应用也日益增加,JDBC就尤显得完备与重要。
2 学生选课评分系统的应用实例设计分析
2.1 SQL部分设计
2.1.1 关系模型设计
如图1所示,数据库关系模型设计内容表述如下:
管理员(用户名[TXX-],密码)
学生表(学号[TXX-],姓名,密码,系部名称)
选课表(学号[TXX=],课程号[TXX=],志愿号,报名状态)
成绩表(学号[TXX=],课程号[TXX=],教师号[TXX=],成绩)
教师表(教师号[TXX-],教师名,密码)
课程表(课程号[TXX-],课程名,最大报名人数,当前报名人数,学分,上课时间,教师号)
课程候选(课程号[TXX-],课程名,最大报名人数,当前报名人数,学分,上课时间,教师号
2.1.2 关系结构设计
(1)实体完整性。所有实体的主码不能为空。即管理员的“用户名”和“密码”都不能为空;学生表中的“学号”、“密码”不能为空;选课表中的“学号”、“课程号”不能为空;成绩表中的“学号”、“课程号”、“教师号”不能为空;教师表中的主码“教师号”、课程表中的主码“课程号”、上报课程中的主码“课程号”均不能为空;课程表中的“学分”必须“>0”;成绩表中的“成绩”必须在“0-100”之间;选课表中的“状态”只能为“1”或“0”;当课程表“当前报名人数=最大报名人数”时,则选课表该课程不能插入。
(2)参照完整性。参照关系“选课表”中的“学号”的值必须是被参照关系“学生表”中“学号”的值,并且是被参照关系“学生表”的外码。参照关系“选课表”中的“课程号”的值必须是被参照关系“课程表”中“学号”的值,并且是被参照关系“课程表”的外码。参照关系“成绩表”中的“学号”的值必须是被参照关系“学生表”中“学号”的值,并且是被参照关系“学生表”的外码。参照关系“成绩表”中的“课程号”的值必须是被参照关系“课程表”中“学号”的值,并且是被参照关系“课程表”的外码。参照关系“成绩表”中的“教师号”的值必须是被参照关系“教师表”中“教师号”的值,并且是被参照关系“教师表”的外码。参照关系“教师表”中的“课程号”的值是被参照关系“课程表”的外码。
综上研究可得,学生选课评分系统数据库关系结构描述可见表1。
2.2 Java部分设计
Java模块设计流程如图2所示。
3 系统设计与实现
3.1 登录及主界面功能模块实现
如图3所示,登录页面中,依据权限来区分登录账户,具体就是:学生、教师、管理员。然后进入不同的界面,实现不同的功能。
当选择“管理员”权限时,只能以管理员的账号密码登入,并跳转到管理员主界面。管理員权限可以对学生/教师进行增、删、改、查,并且允许新开课程,对课程做出删除与修改。当选择“学生”权限时,只能以学生的账号密码登入,并跳转到学生主界面。学生权限可以查看所有课程信息以及自身的成绩信息,而且可以开展选课以及退选课程的操作。当选择“教师”权限时,只能以教师的账号密码登入,再跳转到教师主界面。教师权限可以查看所有课程信息,上报欲开设课程,再对选课学生设置评分操作。
3.2 管理员功能模块实现
选择管理员权限,用管理员号和密码登录进入教师的功能模块界面。
3.2.1 教师添加界面
如图4所示,在输入框内输入一个新的教师号和教师姓名,就能把一名新教师加入到数据库中,并且可设置新教师的默认登入密码为“123456”。由于新增教师尚未开设课程,课程号为空,课程名为空,表单中不能显示,就可以读取到课程表中默认的课程号和课程名的值,赋予新教师默认课程号为999,默认课程为暂定。
3.2.2 教师管理
如图5所示,可以查询所有在系统库里的教师,并且可以通过教师号实现精准查询,同时会在表单中显示教师对应的课程号和课程。选取表单中课程时,会获取到该条记录的所有信息,可以对得到的记录进行删除和修改操作,并刷新表单显示新的数据。
3.2.3 课程上报管理
教师开设一门新课程就会将上报的课程提交到课程候选表中,并在该界面提供效果显示,具体如图6所示。当获准开设一门课程时,该课程会加入到课程表中,随即在课程候选表中删除该课程;当否决设置一门课程时,就直接将该门课程从候选表中删除。
对学生和课程的修改和删除操作的原理基本与教师相同,同样可以在文本框中获取到表单中选中的学生或者课程信息并对其执行修改和删除处理,每次操作都会重新刷新获取到、以及表单中的信息。
3.3 學生功能模块实现
选择学生权限,用学生号和密码登录进入学生的功能模块界面。学生功能主要包括学生查询所有课程信息,以及可供学生选取的退选课操作,功能布局设计则如图7所示。
由图7可知,学生可以通过课程名称、教师姓名、以及上课时间分别展开更为快捷的查询。学生可以选取中意的课程进行报名,该门课程信息会自动加入选课表并在已选课程中显示出来,同时随即将更新增加当前报名人数。若当前报名人数等于最大报名人数时,将不能再申报该门课程。而学生进行退选操作时,已选课程中删除这名学生的信息,并且当前报名人数也将发生跳减变化。
此外,学生还能查询自己的成绩信息,加载查询成绩界面时就会获取到当前登录的学生学号,但仅会显示登录学生本人的成绩。
3.4 教师功能模块实现
选择教师权限,用教师号和密码登录进入教师的功能模块界面。
(1)教师查询课程。如图8所示,教师可以查询所有课程,同样可以通过课程号精准查询出对应的课程信息。
(2)教师上报课程。如图9所示,教师首开一门课程时,必须通过上报课程功能提交到管理员的课程候选表,经由管理员同意后加入课程表。教师上报课程界面会自动获取到登录的教师号。
(3)成绩评定。如图10所示,教师登录会获取到选择这名教师所开课程的学生,教师可以选中学生信息对学生成绩给出评定,评定成绩会刷新学生成绩表的记录,同时学生登录查看成绩也会查询到教师评定的新数据。
4 结束语
本次研究中,经过不断的改进、测试与完善,基本实现了学生选课评分的所有功能。在项目推进过程中,由于对需求功能未能臻至系统、明确,对数据库进行了多次修改,这大大降低了研发速度,这一经验历练对日后的研究开展也将不无裨益。研究中更进一步加深了对数据库的高端认知与了解,并且还对Java与数据库的链接运用也更趋于灵活与熟练。同时,在PC端系统的探讨设计后,将继续着眼于手机端App的综合打造,使该系统的应用性更加广泛,且更为时尚便捷。希望该系统能够对中小规模的校园选课评分系统发挥应有的技术支持作用。
参考文献
[1] 谷庆华 李成贵. 基于Java语言实现数据库的访问[J]. 计算机技术与发展 2008 18(2):13-16.
[2] 王雷春. 基于Java的媒体框架(JMF)研究[J]. 福建电脑 2003(8):47.
[3] 阳国贵 昌月楼 高洪奎. 发展中的SQL语言[J]. 计算机工程与应用 1995(4):1-3.
[4] 李岩. hibernate详解[EB/OL].[2013-04-24]. http://liyanblog.cn/articles/2012/09/17/1347848802900.html.