APP下载

网上选课系统的设计与分析

2010-10-16卢秀惠

赤峰学院学报·自然科学版 2010年1期
关键词:功能模块学分页面

卢秀惠

(渤海船舶职业学院,辽宁 葫芦岛 125005)

网上选课系统的设计与分析

卢秀惠

(渤海船舶职业学院,辽宁 葫芦岛 125005)

随着在校学生人数的不断增加,教务系统的数据量也不断地上涨.本文介绍了一个完整的网上选课系统,该系统可以方便教务处工作,让每个学生更好地选择自己所喜欢的科目.本系统从学生网上自主选课以及教师的课程发布两个方面进行了设计,并提出了选课学生自动筛选算法.

网上选课系统;教务系统;筛选算法

学生选课系统是教学管理中一个不可或缺的部分,它的内容对于学校的决策者和管理者来说都至关重要.但是一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如效率低、保密性差,另外时间一长,将产生大量的文件和数据,给查找、更新和维护带来不少的困难.

随着计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.作为计算机应用的一部分,使用计算机对选课信息进行管理,有着手工管理所无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等.因此,开发这样一套软件成为很有必要的事情.

下面将详细介绍一个完整的网上选课系统的设计与实现,介绍其开发过程和所涉及到的问题及解决方法.

1 系统分析

在本系统中有三类用户:系统管理员、教师和学生,三种不同的用户具有不同的操作权限以及操作内容.本系统可划分成7个功能模块,如图1所示.

图1 系统功能模块图

系统状态由系统管理员设置,系统状态分为四种,分别是教师开设课程状态、学生选课状态、筛选确定状态、系统关闭状态,系统根据状态开启和关闭各个功能模块.

2 系统设计

2.1 总体流程设计

用户通过身份验证模块,根据不同的用户类型和不同的系统状态,跳到不同的页面,整个选课流程如图2所示.

图2 整体选课过程流程图

2.2 筛选算法设计

筛选算法用来解决当选课人数过多、超过课程最大人数时,如何筛选掉一部分选课学生的问题.本系统的筛选算法的思路是,按照学分多少的顺序筛选,让学分少的学生能优先选到课程.

3 系统实现

本系统基于浏览器/服务器(B/S)模式构建,在WindowsXP操作系统中,使用C#语言在ASP.NET平台下开发实现.本系统使用了ADO.NET数据访问技术,使用SQL Server 2005作为数据库管理软件.

3.1 数据库操作功能的实现

在编码的过程中,本系统一个明显的特点是不同类型的操作封装在不同的类中.对底层数据库的操作都封装在Db类中,大部分的SQL语句都写在命名为SQL的类中.这样在web层进行功能实现的时候,先调用SQL类中的方法,再由SQL类中方法调用Db类中的方法,从而实现对数据库的操作,如图3所示.

将大部分的SQL语句封装到一个类——Sql类中,是本系统的一大显著特点.最常用的对数据库中表的操作就是增、删、改、查四种,在Sql类中,只要包含着四种操作的SQL语句,就基本上包括了对数据库表的所有操作.

图3 数据库操作实现

另外,Sql类对于Db类而言,它是调用者;对于Web层而言,它却是被调用者.Sql类处于Db类与Web层之间,起到了数据交换中承上启下的作用,这与三层架构模式中的业务逻辑层有着相似的作用.由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响,因此遵循了面向接口设计的思想,这种向下的依赖也应该是一种弱依赖关系.由此可见,Sql类对整个系统都起着重要的作用.

3.2 主要功能模块的实现

3.2.1 登录验证模块的实现

登录验证模块是所有用户公用的功能,所有用户登录本系统都会来到首页,即登录页面,如图4所示.

图4 登录页面

此时,用户可以输入用户编号、密码并选择用户类型,登录选课系统.登录验证模块自动验证用户编号、密码和用户类型是否相符,符合则跳转到相应的界面,不符合将弹框提示“用户名或密码错误”.

在登录模块中还引入了一个对系统非常重要的Session对象,模块中Session[“id”]对象用来存储登录时输入的用户编号值.Session的使用对系统的作用非常大,后边的模块将会频繁的用到Session[“id”]中存储的数据.

3.2.2 录入和维护信息模块的实现

录入和维护信息模块是管理员用户的功能,属于后台功能.

管理员登录后,进入管理员界面,此时可以跳转到教师、学生或者课程三个信息维护界面,这些操作的方法都非常相似,因此归结为一个功能模块.下面以课程信息维护界面为例,如图5所示.

图5 课程信息管理页面

信息显示使用的是.NET平台提供的GridView这一强大的控件,当页面登录时,系统将在GridView中显示所有课程的信息.当然,信息过多时可利用控件提供的自带的分页技术分页显示.由于管理员在系统中拥有最高权限,所以他可以用此模块对所有实体的数据表进行增、删、改、查的操作.

3.2.3 筛选模块的实现

先取得已选人数count,根据课程号取得课程最大人数max;比较 max与 count大小,count大于 max,进行筛选;用Sql语句,在已经按学分排好序的表中搜索,第max个选课学生的学分credit,并以此值作为阀值;用For循环遍历所有选课学生,取到第i个学生的已获得学分;用第i个学生的学分与阀值比较,大于阀值选课状态更新为“选课失败”;小于等于阀值,选课状态更新为“选课成功”.

筛选过程结束后,教师可以点击“生成选课学生名单”,页面跳转显示所有选课成功的学生名单.页面中还有打印按钮,点击后将输出word文件形式的选课学生名单.

4 结论

本系统可以大幅度减少学校教务工作中选课环节的工作量.无论是教师开课、学生选课、选课学生筛选都可以在本系统中轻松地完成.应用本系统,可以使学校里学生选课这项复杂的工作变得简单.教师可以方便地提交要开设课程的信息,学生可以更容易地选到喜欢的课程,教务管理员也可以更轻松地完成选课信息的管理工作.

〔1〕龚赤兵.精通.ASP.NET 2.0 网站开发[M].北京:人民邮电出版社,2008:52-65.

〔2〕满在龙.完全手册.ASP网络开发详解[M].北京:电子工业出版社,2007:23-26.

〔3〕张亚飞,杨娜.精通.ASP.NET 3.5 网络开发技术[M].北京:电子工业出版社,2009:33-37.

〔4〕Tom Archer.C#技术内幕[M].北京:清华大学出版社,2002:75-78.

TP393

A

1673-260X(2010)01-0034-02

猜你喜欢

功能模块学分页面
刷新生活的页面
如何用学分币激发小学生的学习兴趣
学分美食
基于ASP.NET标准的采购管理系统研究
斯皮尔伯格为什么要历时33年修完学分?
输电线路附着物测算系统测算功能模块的研究
功能模块的设计与应用研究
颈部淋巴结超声学分区
Web安全问答(3)
网站结构在SEO中的研究与应用