APP下载

高校选课系统实现关键技术研究

2016-10-18张亮

微型电脑应用 2016年6期
关键词:绩点高校学生志愿

张亮

高校选课系统实现关键技术研究

张亮

现代教学管理对软件系统的依赖性越来越高,高校选课系统的开发有助于提高数字化校园建设,推进无纸化办公的实现。采用B/S架构开发设计,基于.Net技术,后台数据库采用Microsoft SQL Server 2008。对选课系统的体系结构、开发平台、功能模块、选课算法以及系统安全等方面进行了阐述,其中在公平选课算法中加入权重指标,可以适应高校学生个性化选课的需求,使选课结果更加公平,具有一定的人性化特色。

选课系统;志愿分级筛选算法;权重;系统安全

0 引言

随着互联网技术、高校校园信息化建设的蓬勃发展以及学分制的推行,学校教务管理信息化是必然趋势。当今社会对人才需求多样化,高校为了实行人性化的教育理念,对课程结构进行改革优化,高校均开设公共选修课来开拓学生的视野,其中,选修课的信息化建设成为学校教务管理信息化建设的重点工作之一。鉴于以上情况,设计并开发一个基于Web的职能选课系统是非常有必要的。本系统是在绩点[1]制管理下研究开发的,设计一个能满足高校学生个性化的选修课选课系统。

1 系统整体结构设计

1.1体系结构

本选课系统总体结构采用B/S模式[2]-[3],B/S是一种3层体系结构,由包括Web浏览器、Web应用服务器、后台数据库服务器3部分组成,层与层之间相互独立。这一结构是在C/S模式基础上改进结构应运而生。客户端由Web浏览器来实现,它将用户对页面的请求发送给Web应用服务器,Web应用服务器则根据所需向数据库服务器发出请求,数据库服务器根据数据请求给Web服务器返回响应的数据结果,然后对所获得的数据进行计算并将结果提交客户端。通过B/S结构学生只要通过Web浏览器就可以完成网上选课[4],并且B/S结构提高了系统的可扩展性、可伸缩性与安全性,系统维护升级简单,同时B/S结构对网络结构依赖性很强,其所有的工作只有在网络条件健全的情况下才能完成。

1.2开发平台

高校选课系统的实现主要用到的开发工具是Visual Studio 2010。Visual Studio.Net是第一批基于.Net框架发布的产品。.Net框架[5]的CLR(公共语言运行库)和类库是用来创建交互式动态Web应用程序的核心类库。后台数据库选择Microsoft SQL Server 2008,SQL Server 2008与以前的版本相比,在使用和伸缩性能等方面都大大提高了[6],可以在不同平台上运行,并且综合分析选课系统的事物处理数量和数据流量,认为选择SQL Server 2008是合适的。

1.3系统功能模块的设计

本系统从功能上可以分为3大模块:学生模块、教室模块和系统管理员模块。各模块具体实现的功能间系统模块如图1所示:

图1 系统模块图

2 关键技术的实现

2.1选课算法

2.1.1志愿分级筛选算法

本文采用志愿分级筛选算法来进行选修课选课,其原理类似高考录取工作[7],选课阶段是由学生预选和系统筛选两个阶段组成。每位学生在预选课程时,可以有多个不同志愿的选择。预选课程阶段结束后,系统按照不同志愿级别从第一志愿开始一级级遍历,若选择第一志愿选修课人数未超过该门课的限选名额,则全部被选中;若选择第一志愿选修课的人数超过该门课的限选名额,采用随机平均分布概率算法进行抽签,直到最终生成选修课学生名单。

从上面的分析可以看出,当选课的人数超过该门课的限选名额时,采用随机平均分布概率算法进行抽签,选课结果分布均匀,能实现公平的选课。但这种数学角度的概率公平,并没有考虑到学生成绩、专业之间的差异,按照随机平均分布概率算法进行选课可能导致一些很渴望此次学习的学生可能无法选上这门课程,会打消他们的学习积极性。

2.1.2算法的改进

第一,对分裂国家、破坏国家主权和领土完整的行为,要依法打击。应对“台独”分裂势力,2005年国家颁布、实施《反国家分裂法》,有效震慑了“台独”势力。应对“港独”势力,中央划定了爱国爱港者治港的原则底线,香港根据基本法等相关法律依法对“占中”违法分子定罪判刑。应对“疆独”分裂势力,2016年新疆颁布实施地方性反恐法规《新疆维吾尔自治区实施<中华人民共和国反恐怖主义法> 办法》,将打击和有效防范暴力恐怖活动纳入法治化轨道,依法打击蓄意挑拨民族关系、破坏民族团结、制造恶性事件的犯罪分子。中华人民共和国反恐怖主义法

为了更好的衡量一个学生学习的质量,高校现行采用学分绩点来衡量学生的学习质量。分段学分绩点=∑(课程学分×课程权重系数×课程绩点)/∑课程学分,本系统采用的课程绩点等级满分为4.0,共12个档次。具体分档如表1所示:

表1 绩点等级

为了提高了命中率,避免由于学生个体的差异导致选课的不公平,提出了一种基于权重优先的改进的选课算法。在随机数k生成时,加入分段学分绩点W1、专业W2(是否为本专业?0:1)这两个指标作为权重指标[8]-[10]。

首先以课程编号为索引,达到限选人选的课程则处理结束,不在处理其他志愿;统计未选满的课程,再对这些课程进行第二志愿处理,若达到了限选人数则不作处理,否则重复上述过程,直至志愿处理全部结束。

设课程的限选人数为M,第一志愿的选课人数N1,第二志愿的选课人数N2,以此类推。在处理第一志愿时,若N1≤M,则全部选中填入正式课表;若N1>M,引入随机数k=k*(W1+ W2),若k≤M,则全部选中填入正式课表,若k>M,则进行第二志愿的课程的选取。接着以同样的处理方法处理下一位学生,直至所有的第一志愿处理完毕。在处理第二志愿时,课程的限选人数变为M-N1, 若N2≤M-N1,则全部选中填入正式课表,否则处理过程同第一志愿。以此类推。当所有选课结束后,若仍有一部分学生未选到课程,则人工干预进行调剂。改进的第一志愿处理流程图如图2所示:

图2 改进的第一志愿处理流程

2.3数据库表结构的设计

根据数据库需求分析定义数据库中包含5个数据库表。

1.cAdmin表,用于保存管理员信息如表2所示:

表2 cAdmin表

2.cStudent表,用于保存学生信息如表3所示:

表3 cStudent表

表4 cTeacher表

4.cCourse表,用于保存课程信息如表5所示:

表5 cCourse表

5.cSC表,用于保存学生选课信息如表6所示:

表6 cSC表

2.3系统安全

1)验证码登陆

为了防止不良用户利用暴力破解程序不断地尝试登陆,造成用户信息泄露,本系统采用验证码技术。验证码是一种区分用户是计算机还是人的公共全自动程序。验证码技术能够有效地防止某黑客对某一特定注册用户用特定程序暴力破解方式进行不断地登录尝试。本系统通过引用公共类RandomImg类中的GenerateCheckCode()函数返回的随机字符串作为验证码。调用方法如下:

String code=RandomImg.GenerateCheckCode()

2)MD5加密

为了防止用户密码在数据库中以明文显示,在用户的身份认证中引入MD5加密。先将用户输入的信息进行不可逆加密,然后到数据库中验证用户的账号和密码是否存在。对用户输入的密码进行MD5加密通过调用公共类的Common的MD5()方法实现。使用方法如下:

Common.MD5(txtPwd.Text.Trim())

3)防止SQL注入式攻击

所谓SQL注入式攻击[11]-[12],就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。例如,在用户名中输入admin,在密码的文本框中输入’’or’1’=’1’,那么查询语句就成为

Select count(*) from tbAdmin where username=’admin’and password=’’or’1’=’1’

执行之后的返回值为所有的用户总数,通过上面的方法攻击者不需要知道用户名和密码就能顺利地登录系统,系统会错误的给攻击者授权,这将导致系统用户的身份不能真正进行验证。为了防止这种SQL注入式攻击,登录过程一般都是存储过程。调用公共类DBBase中的RunProcedureDataTable()函数返回查询到的用户记录。下面是调用DBBase使用存储过程的方法:

DataTabledt=DBBase.RunProcedureDataTable(“loginAd min”,parameters)

其中,loginAdmin为管理员登录的存储过程名,parameters为参数列表。

2.4选课页面设计

学生选课页面为学生用户使用,主要包含课程信息、学生选课、学生预选和选课信息查询4个模块,其页面设计如图3所示:

图3 页面设计

学生可以在这个界面检索课程信息,从中选择自己感兴趣的课程,完成各种选课的操作。

3 总结

本系统设计考虑到高校学生的个性化需求,学生可以根据自身学习及兴趣爱好进行选修课的选择。此系统可以实现高校学生选课不受时间和空间限制,随时随地的网上选课,使得选课变得更加灵活、方便。在选课算法中引入权重指标,避免了志愿分级筛选算法中只考虑单一因素的不足,提高了系统的公平性,在很大程度上满足了高校学生选择选修课的需求。

[1] 百度百科[OL].http://baike.baidu.com/view/1348515.htm

[2] 王翔,邱芬.基于ASP.NET的高校网络教务管理系统的开发与设计[J].科技广场,2014,(11):36-39

[3] 赵宏伟,秦昌明.基于B/S 三层体系结构的软件设计方法研究[J].实验室研究与探索,2011,30(07):64-66

[4] 路晓亚,楚志凯.高职院校网上选课系统的研究与实现[J].软件导刊,2011,10(03):198-200

[5] 王欢.基于.NET平台的信息发布系统的研究与设计[J].科技信息,2011,(25):64-65

[6] 陈翠红.基于ASP.NET+SQL SERVER2008的高校学生综合素质网上测评系统设计与开发[J].通化师范学院学报(自然科学),2014,35(03):33-35,68

[7] 杨海荣.基于校园网的网上选课系统的设计与实现[J].湖南税务高等专科学报学报,2003,16(05):55-57

[8] 李瑞俊,高霞.改进的基于权重优先的学生选课算法设计[J].信息通信,2014,(11):60-61

[9] Ferland JA,Fleruent C.SAPHIR:Adecision support system for Coursescheduling[J].Interfaces.1994,24(02):105-111

[10] 李文俊,喻金科,童强.选课系统中引入权重值分志愿筛选算法研究[J].计算机与现代化,2011,(04):7-9

[11] 张凡.基于.NET的SQL注入式攻击防范策略[J].电脑与电信,2009,(05):54-55

[12] 肖建芳,陆深焕,廖华丽.选课管理系统的安全分析与防范研究[J].岳阳师范学院学报,2013(03):45-48

Research on Key Technology of University Course-selecting System Implementation

Zhang Liang
(Network Information Center, China University of Petroleum (East China), Qingdao 266500, China)

The modern teaching management depends more and more on software system. Development of course-selecting system can be helpful to improve digital campus construction and promote the realization of no paper working. This system adopts B/S software system structure and is based on .NET with SQL Server 2008 as background database. This paper describes the course-selecting system from the aspects of architecture, development platform, function module, course-selection algorithm and so on. The weight index is added in the fair course-selection algorithm. This system which has certain characteristics of humanity,can adapt to college students' course-selecting demand personalized and makes the results more equitable.

Selecting Course System;Will-oriented Selecting Algorithm; Weight; System Security

TP311

A

1007-757X(2016)06-0036-03

2016.01.20)

中国石油大学高等教育研究基金(GJKT201502)

张 亮(1981-),男,汉族,启东,中国石油大学(华东),硕士研究生,工程师,研究方向:计算机信息和网络技术方面的研究,青岛,266500

猜你喜欢

绩点高校学生志愿
我志愿……
大学生成绩绩点影响因素分析
高校学生党支部建设及作用发挥探索
拥有《鹿鸣》书与卡,填报志愿成行家
高校学生意外伤害事件应对与处理
小小志愿 大大爱心
基于完全学分制下的独立院校的平均绩点计算方法
小议高校学生违纪处分制度
因爱汇聚,志愿同行
关于高校学生工作的思考