学生选课系统
1.1 项目开发背景
网络技术是从60年代初发展起来的计算机技术。Web技术在新的Internet环境中发生了很大的变化。数字图书馆、电子出版物、电子商务、远程教育系统等的出现,给Web数据库技术提出了更多、更高的要求。同时,随着国内高校校园网的建设,基于互联网的应用系统的开发正在蓬勃发展并发挥着较大的作用
[1]
。例如,我国许多高校的网上招生系统,学校的各种管理信息系统,学校选课
系统,还有一些医学院校开发出的网上诊所、远程诊断系统等等,都是基于校园网的应用系统。
国外的教学科研软件与国内相比开发的早而且比较成熟。早在七十年代末,美国就建成了NSFNET(国家科学基金网),其课题的申报及课题的进展情况汇报都在网上进行[2]。其网上教学教务管理系统也十分完善,世界各地的学生可以坐在家里通过互联网完成入学报名、选课、考试、毕业论文、取得学位这一学习生活的全过程。目前,国际上已具规模的远程教育学校就有数百所之多,网上教育正在各地发挥着巨大的作用,为世界各国培养出大批人才[2]。所有这些都表明,基于Internet的校园网的应用已深入到校园内的各个方面。
我国不少高校都实行了学分制,它的核心是允许学生自由选课,即把学习的自主权交给学生。在这里,学生选课时的制约因素比较复杂,工作量也很大,而且往往需要在较短的时间内完成。运用计算机辅助选课,即能实时地对大量选课数据进行检验和统计,十分方便地输出选课结果,同时也避免了人工处理时容易产生的错误。
1.2 课题研究的意义
学生选课系统是学校教学管理不可缺少的一部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差。随着时间累积,将产生大量的文件和数据,这对于查找、更新和维护都带来了许多困难。
随着科学技术的不断提高,计算机科学技术日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计
1
算机应用的一部分,使用计算机对选课信息进行管理,有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率,也是企业科学化、正规化管理,与世界接轨的重要条件。
1.3 可行性研究
1.3.1技术上可行性
本系统仅需要一台装有Office软件的计算机,对机器本身没有太高的要求,一般当前学校或个人电脑完全可满足要求。对于软件技术要求,现在的程序设计语言已非常成熟,要运用HTML样式,图形图像制作工具来制作生动活泼的网页及美观的图形文件或动画文件,数据库使用ACCESS。 1.3.2 经济可行性
由于本系统是为学生选课管理使用设计的,系统成本主要集中在系统软件的开发上。当系统投入运行后可以为学校节约大量的人力、物力。所带来的效益远远大于系统软件的开发成本,在经济上完全可行。 1.3.3操作可行性
界面设计充分考虑管理人员的习惯:操作简单;数据录入迅速、规范、可靠;统计准确;制表灵活;适应力强;容易扩充。
1.4 论文的主要工作
本文中所做的主要工作如下:
(1) 介绍了个性化页面的背景及IIS+ASP系统的一般原理。
(2) 阐述整个个性化页面生成系统的系统结构及工作原理;分析了系统实现中的特殊性、难点和重点。
(3) 设计实现用户管理、课程管理、课程的浏览和查找、学生查找等ASP页面 。
(4) 分析并解决实现中的若干技术问题。 (5) 建立完整的网上选课,并进行系统测试。
2
本系统的设计流程如图1.1所示:
资料查询 定 题 熟悉开发环境 调查研究 系统分析与设计 数据库设计 功能实现
图1.1 系统设计流程图
3
2 系统分析
2.1系统需求分析
目前,数据库在网上的应用,已经由
C/S方式逐步向B/S方式,Intranet方
式向Internet方式过渡[3]。如果采用C/S方式,就必须在每台可用于选课的接入校园网的计算机上安装客户端软件,而校园网以外的接入Internet的计算机就无法选课。然而,我们开发网上选课的目的,就是为了简化管理,方便学生随时随地进行选课。如果这样,无形中又加大了管理的工作量,选课计算机少,参选学生多的每将会出现。但是,基于B/S模式下的数据库应用的出现,使我们有机会彻底解决这一问题,开发基于出WEB数据库,可用于INTERNET的网上选课系统。这样以来,任何一台接入INTERNET的计算机都可参与我们的网上选课操作,极大的方便了学生的选课处理,彻底解决了以上矛盾。使学生可以通过网络在任意地点、任意时间(选课时间内)进行选课,这将大大提高教务管理的效率和质量。
所以本学生选课系统根据实际应用需求,在设计当中考虑了来自三方面的需求,分别是学生、教师和管理员。学生的需求是查询院系的课程、学生选课情况及对学生信息的修改;教师对选课系统学生选课情况进行操作,同时形成学生选课查看确认;选课管理员的功能最为复杂,包括对学生、教师、选课进行管理和统计,及系统状态的查看、维护并生成选课报表。学生可以直接查看选课情况,学生可以根据本人学号和密码登录系统,还可以进行本人学科成绩情况的查询和维护部分个人信息。一般情况下,学生只应该查询和维护本人的选课情况和个人信息,若查询和维护其他学生的选课及成绩查询信息,就要知道其他学生的学号和密码。这些是很难得到的,特别是密码,所以不但满足了学生的要求,还保护了学生的个人隐私。
2.2系统主要功能模块
学校工作人员有修改学生选课的权限,所以需对工作人员登录本模块进行更多的考虑。在此系统中,数据安全性和保密性要求最高。本功能实现对选课信息、教师信息、总体选课情况信息的查询和统计、工作人员和管理人员信息查看及维护。学校管理员可以浏览、查询、修改、统计选课的基本信息;浏览、查询、统计和修改学生选课的基本信息。浏览、查询、统计学生信息,但不能添加、删除和修改学生的信息,这部分功能应该由院系工作人员执行。但是,删除某条学生选课基本信息记录时,应实现对该学生选课的级联删除。并且还应具有生成选课报表,并打印输出的功能。设计不同用户的操作权限和登录方法,对所有用户开
4
放的学生选课查询和个人部分信息维护,查看个人情况信息,维护学生个人密码。根据选课情况对数据库进行操作,并生成报表。根据选课情况对数据库进行操作,并生成报表查询及统计。
本系统主要实现教师信息管理、学生信息管理、课程信息管理和系信息管理等功能,其中教师信息管理有教师姓名、教师工号、教师职称、教师所属系;学生信息管理有学生姓名、学生学号和学生所在系;课程信息管理有课程名称、学分、上课地点、已选人数、课程性质、开课系、课程人数。
(1)学生信息模块完成学生的登录,然后根据各位同学所在的系不同,调用相应的选课模块。其中学生登录模块的功能是验证登录人员是否为本院的学生,学生启动本系统后,系统提示输入学生学号码和密码,验证后进入主操作界面。 (2)教师信息模块完成教师的登录,然后根据各位教师所在的系不同,教师所教的课程不同,调用所选的课程。其中教师登录模块的功能是验证登录人员是否为本院的教师。教师启动本系统后,系统提示输入教师工号和密码,验证后进入主操作界面。
(3)课程信息管理模块包括必修课程和选修课程,学生必须先登录才能进行对课程的选课,否则不能进入选课系统。
2.2.1 选课系统的普通用户功能模块图 已 修 课程 本学期选课 选修课列表 选修课查询 专业教学计划 教师一览 更改密码 使用说明 注 销 查看选课情况 课程申报 网上登分 学生登录 教师登录 用户登录 图2.1系统的普通用户功能模块图
5
2.2.2 选课系统的管理员功能模块图
管理员登录 注 册 课 学教程 生师注 注注册 册 册
修 查 改 询 查查管注教学浏询询理册师生览课课员课信信学程程码程息息生选注密 修修修信修册改 改 改 息 情情况 况 图2.2系统的管理员功能模块图
6
删 除 教学教学生师计信信划 息 息 2.3系统数据模型设计
2.3.1实体属性图
工号 班级 姓名 教工 权限 系部 密码 图2.3教工信息属性图
系代码 系部(班级) 系名 班级 图2.4 班级信息属性图
7
学号
姓名 班级 学生 系部 密码
图2.5学生属性图
课程号 上课时间 课程简介 课程名 课程 教师号 上课地点 学分
图2.6课程属性图
学时 课程状态 8
2.3.2 数据表
本系统的数据库采用了大量的数据表
表2.1 学生信息表
名字 学号 姓名 班级 密码 总学分 字段名称 Stud_Code Stud_Name Stud_Class Stud_ID StudTotalCredit 类型 Char Varchar Varchar Varchar Smallint 描述 学号 姓名 班级 口令 学生总学分
表2.2学生课程信息表
名字 课程代码 学号 课程 成绩 学分 附加字段
表2.3选修限定信息表
名字 开始时间 结束时间 现在时间 附加字段 字段名称 Para_sTime Para_eTime Para_xTime Para_M
长度 7 10 20 10 2 空值 否 否 否 是 否 备注 主键 字段名称 KC_Code Stud_code Course_Time Course_Score Course_Credit MainKey 类型 Char Char Datetime Smallint Smallint timestamp 描述 课程代码 学号 课程上课日期 课程成绩 课程所得学分 自动增量 长度 10 7 8 2 2 2 空值 否 否 否 否 否 否 备注 外键 外键 主键
类型 Datetime Datetime DateTime timestamp
描述 选课开始日期 选课结束日期 现在时间 自动增量 长度 8 8 8 2 空值 是 是 否 否 备注 主键 9
表2.4选课表
名字 学生学号 课程代码 附加字段
表2.5课程类别表
名字 类别代码 类别名称 类别简介 字段名称 Class_Code Class_Name Class_Context 类型 Char Varchar Varchar 描述 课程类别代码 课程类别名称 课程类别简介 长度 2 50 200 空值 否 否 否 备注 主键 字段名称 Se_Id Se_Code Se_Cont 类型 Char Char timestamp 描述 选课学生的学号 选择的课程代码 自动增量 长度 7 8 2 空值 否 否 否 备注 外键 外键 主键
表2.6课程表
名字 课程代码 课程名称 课程学分 课程学时 课程简介 选修标志 课程类别 字段名称 KC_code KC_Name KC_core KC_Time KC_cont KC_flag KC_class 类型 Char VarChar Smallint Smallint Text Char Char 描述 课程类别代码 课程名称 该课程的学分 课程的总学时 课程内容简介 可否选修 课程类别 长度 8 50 2 2 200 1 2 空值 否 否 否 否 是 否 否 备注 主键 外键
10
表2.7教师表
名字 老师代号 老师姓名 老师学历 老师学位 出生日期 工作日期 任教课程 毕业院校 职称 论文专著 备注 照片 性别 字段名称 T_Code T_Name T_XL T_XW T_Date T_WorkDate T_Course T_School T_ZC T_LW T_Memo T_Photo T_Sex 类型 Char Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar 描述 老师代号 老师名称 老师学历 老师学位 老师出生日期 老师工作日期 老师所代课程 老师毕业院校 老师现在职称 老师的论文著 备注 老师的照片 老师的性别 长度 10 20 20 20 20 20 50 50 50 8000 8000 50 2 空值 否 是 是 是 是 是 是 是 是 是 是 是 是 备注 主键
表2.8教学计划表
名字 系名称 专业名称 文件名 字段名称 Xxx Ppp Htm 类型 Varchar Varchar Varchar 描述 系部名称 专业名称 教学计划网页名 长度 50 50 50 空值 是 是 是 备注 2.4 ASP简介
ASP是Active Server Pages的缩写[4],中文名称叫做“动态服务器页面”,服务器是所有Web站点的核心,后缀名为‘asp’。ASP内含于IIS(Internet Information Server)中[4],是Microsoft开发的服务器的脚本环境。通过ASP,可以结合HTML(HyperText Markup Language)、脚本命令和组件来创建动态、交互且高效的Web服务器应用程序[5]。
ASP程序是以asp为扩展的文本文件,其控制部分是用VBScript和Jscript等脚本语言来编写的[6]。ASP的工作流程大致是:①当浏览器从Web服务器上请求。asp文件时,服务器用ASP;②ASP全部读取请求的文件,执行所以的服务
11
器端脚本,并将脚本输出与静态HTML代码进行合并;③最终的HTML页面将在HTTP响应中传送给浏览器。
ASP程序是由文本、HTML标记和脚本组合而成的。在ASP程序中,脚本通过分隔符、文本和HTML标记区分开来。ASP用分隔符〈%和%〉包括脚本命令。由分隔符括起的命令称为主脚本命令,这些命令由主脚本语言进行处理。在ASP分隔符〈%和%〉内,可以包括主脚本语言允许的任何语句、表达式和操作符等。
ASP实际上是将标准的HTML文件扩展了一些附加特征,也像标准的HTML文件一样,包含HTML对象并且有一个浏览器解释并显示,任何可以放在HTML 中的东西—Java applets,闪烁字符串,客户端脚本,客户端ActiveX控制等。都可以放在ASP中。因此,ASP有如上四个重要特征,使之具备很强的通用性。
2.5数据库应用系统开发简介
在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识[8]。数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设计。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。数据库技术在计算机软件邻域研究中一直是非常重要的主题,产生于60年代,30多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统。并且,近年来,随着World Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术成为最热门技术之一。目前,大多数主流数据库管理系统把用户数据表示为关系。现在把关系看作数据表。表的列包含域或属性,表的行包含对应业务环境中的实体的记录。但不是所有的关系都同样符合要求,有些关系比其它关系更结构化一些。
2.6 IIS简介
Web服务器是Web应用程序的心脏。IIS(Internet Information Server)是微软推出的Windows NT Option Pack的主要成员,作为WindowsNT的扩展,自推出以来已经有了很大发展,其体系结构是当今市场上最受关注的Web服务器之一
[4]
。新推出的IIS4.0版本增强了系统安全性,具有服务器端脚本开发调试,内容
管理和站点分析,崩溃防护,内置JAVA虚拟机及全面支持ASP等强大功能。
2.7 IIS与ASP的结合
在过去,客户机/服务器结构的设计与Web的相关技术几乎处于平行线上,
12
两者相互独立并无法作出集成性的设计。现在我们利用IIS+ASP构成三层式Web结构的中间一层,将客户机/服务器结构与Web密切结合,完成前后端两者的集成输出功能,使得Web站点的开发更方便,功能更强大[6]。
利用IIS+ASP技术来集成Web前后端所带来的强大效益可归结为以下几个方面:
1.减少构建和维护成本 2.加快联机过程
3.应用软件集中在服务器端开发管理
4.前端可使用任何浏览器(IE、Netscape„„) 5.后端可存取任何数据库 (SQL、SQL„„)
6.可使用任何脚本语言开发 (VBScript、JavaScript、PERL„„)
13
3. 系统的核心技术
3.1数据库的连接
本系统只要采用ASP动态网页技术,利用ASP生成和执行动态,交互式,高效率的站点服务器应用程序,开发的脚本程序会全部运行在服务器端,最大限度地减少对客户端的要求。ASP编程的最大特点就是使用ADO的ActiceX控件动态地将数据库的内容插入到HTML文档中[7]。系统工作原理是一个基于网络的管理系统,由选课终端机/WEB浏览器,WEB服务器/IIS服务和ASP,应用系统及数据库服务器组成[8]。
工作原理图:
客户端 浏览器(IE, Netscape等) IIS/ WWW 服务器 ASP( Actice Server Page) ACTIVE 服务对象 (ADO等) ACCESS 数据库 图3.1工作原理图
3.2利用ASP查询选修课的课程信息
<%set conn=server.createobject(“ADODB.CONNEC-TION”)
„创建与数据库链接对象
Kc_name=Request(“kc_name”)
„用Request对象从客户端取得用户输入的查询条件
If kc_name<>“„then sql=sql+‟and 课程名称like„%‟+kc_name=„%‟” „根据用户条件形成相应数据库查询语句,各条件之间关系是逻辑与 Set rs=Server.CreateObject(“ADODB.Recordset”) „创建查询结果数据集
Rs.open sql,conn,1,1 打开返回数据结果集 „通过数据集相应字段访问其值 3.3选课操作
用循环的方法读取所有待选课程时,在每门课程所在记录中添加一个复选框,并以课程的id号(字段)作为复选框的名称,提交后检查每门课程是否被选
14
中。若选中,则检查是否达到了规定的选课门数,检查该课程是否被选过以及该课程是否在限定的人数之内。否则,将该学生学号,该课程号添加到已选课程表中。流程如图3.3所示:
开 始 读取课号 Y 是否超过限定的选课门数 N 是否已被选修 N 是否超过限定的人数 N 该课选入学期选修课程信息表 Y Y 是否为全部课程之后 Y 结束 图3.3选课操作的流程图
N
15
程序实现如下:
Set rs=server.createobiect(“adodb.recordset”) Sql=”select*from kc_tab where kc_selstate=1” Rs.open sql,conn,2,2 While not rs.eof
Number=rs(“kc_code”) If request(number)=“on”then ‘否达到了规定的选课门数 ‘课程是否被选过
‘课程是否在限定的人数之内 else
‘该学生学号,该选课号添加到已选课程表中 end if rs.movenext wend rs.close
。
16
4. 学生选课系统编码设计
4.1登录界面编码设计
登录页面中拥有客户端管理员入口,关于选课系统的公告栏、提示信息、对管理员的反馈链接(太极链,可选)[9],学生在登进系统时,使用自己的学号和密码或系统初始密码,系统有更改密码功能。
示例窗体如图4.1所示:
图4.1登录界面
登录界面的原代码: <%
if session(\"Xtime\")=0 then response.redirect \"sorry.asp\" response.end end if
17
%>
4.2 学生编码设计
1、在学生登录系统以后应能按照该学期的服务器端设置,进行相应的选课操作,该模块是全套系统客户端功能的核心所在,应该设计得,得体、恰当,信息量充足,操作简单、方便、灵活。在页面上端应有登录学生的基本信息:姓名,班级,学号,中部有该学生的总学分和所选课程的总学时,其下有该学期已选修过的课程名单,下部为所有该学期可选修的课程名单,所有可选修课程以复选框形式显示,使学生在打勾时表示本学期选修,不打勾代表本学期不选修,在学生单击提交按钮以后,系统应检查以下几个方面的内容:
⑴ 学生是否有重复选修的课程记录。
⑵ 和学生本学期的选修课程数目是否已经超过服务器端设置的该学期最大
18
可选修课程数值。
⑶ 如果有以上几项内容,则提示相应信息,并且返回选课页面重新选择(注意:该页面中没有将不可选修的课程列在选修课页面中)。
示例窗体如图4.2所示:
图4.2学生选课界面
该页面中课程信息栏应有如下几栏: ① 选课标志:CheckBox。
② 课程代码:依照数据库中的数据而加载。
③ 课程名称:依照数据库中的课程代码加载,在学生单击该项时,系统应以弹出页面方式显示课程的详细信息,包括:课程名称、课程代码、课程学分、课程学时、课程内容简介、本学期该门课的选修人数等(如果允许,可以加上该课程所属系部,教研室名称)。
④ 学分:系统数据库中定义的课程应得学分,依照课程代码加载。 学时:系统数据库中定义的课程本学期应有学时,依照课程代码加载。 ⑤ 任课教师:系统数据库中定义的本学期该门课程的代课老师名称,在学
19
生单击任该栏位时系统应以弹出页面方式显示该位教师的详细信息,包括教师照片,教师姓名,教师学历、学位、毕业院校、职称、出生年月、工作日期、论文专著、备注、所代课程等信息。
⑥ 本学期已选修该门课程的总人数:该项通过统计得到。 学生界面的原代码:
<%
if request.cookies(\"adminlogin\")=\"\"then response.redirect \"admin_err.htm\" response.end end if %>
<%se_idd=trim(request(\"t1\")) 'se_id=session(\"se_id\")
set rs=server.createobject(\"adodb.recordset\")
sql=\"select * from stud_course_tab where stud_code='\"&se_idd&\"'\" rs.open sql,conn,1,1
if rs.eof then
message=\"没有找到相关信息\"%> <%=message%> <%response.end end if %>
<%set rsst=server.createobject(\"adodb.recordset\")
20
sql=\"select * from stud_tab where stud_code='\"&se_idd&\"'\" rsst.open sql,conn,1,1 %>
width=\"75%\"
border=\"0\"
cellpadding=\"0\"
cellspacing=\"0\"
| | <% rsst.close set rsst=nothing %> 2、系统应能实现在选课期段内的课程退选操作,在学生已选课程的基础上实现退选,退选以后系统应能自动刷新页面,实现操作自动化、透明化。 align=\"center\">size=\"2\"> 班 级 : <%=rsst(\"stud_class\")%> align=\"center\">size=\"2\"> 姓 名 : <%=rsst(\"stud_name\")%> align=\"center\">size=\"2\"> 学 号 : <%=rs(\"stud_code\")%> 4.3查询界面的设计 1.查询信息: 该模块能够提供给学生的功能有: ① 已修课程信息:包括本学生历年已选修的课程名称、代码、选课日期、成绩、所得学分、已得总学分等信息。 ② 本学期选课信息:本学期该学生所选修的课程信息:包括代码、名称、学分、学时、任课教师等(如果允许:可以附上课程系部名称、教研室名称) 21 ③ 选修课列表:显示本学期所有可选修的课程列表:包括选修人数、课程代码、名称、学分、学时、任课教师,选修人数(如果允许:可以附上课程系部名称、教研室名称),并可以在课程上单击时显示课程的全部信息。 ④ 在页面上用两组Combo组合框显示所有本学期可以选课的课程,一组用来包含显示课程名称,一组用来包含显示课程代码[10]。学生可以任意单击其中一组来查询本学期所有可选修的课程信息。 ⑤ 教学计划:采用一新页面来显示系部各个教研室的教学计划,该页面包含三项内容:系部名称、专业名称、教学计划。在学生单击教学计划一栏时,采用一新页面打开已预定好的教学计划页面,该页面因为信息量巨大,而且不固定,所以页面形式可以过于简单和枯燥,如果允许,可以在上页面上部加一横栏,用于信息查询和美化页面。 ⑥ 教师一览:该页面上共有教师信息的六个栏目,无需显示教师的所有信息,把教师名称一栏设为超链接,单击时跳转到显示教师详细信息页面,示例窗体如图4.3所示: 图4.3查询界面 4.4 密码修改界面 更改密码:该页面采用两个文本框来接受学生输入的新密码,功能应能满足验证密码需求,因为密码可以在服务器端更改,所以该模块不要求太过繁琐,不用输入旧密码。单击确定按钮以后,将登录学生新密码回写到数据库,以便下次 22 登录时使用。示例窗体如图4.4所示: 图4.4密码修改界面 4.5意见反馈 意见反馈:该栏目主要用于学生在使用该系统以后对该系统提出的反馈和意见,在设计该模块时可以参考别的网站的留言册,其主要栏位有:序号(用于标识当前系统的留言数,和留言编号);留言主题,用于标识留言的提示信息;个人主页,留言学生的个人主页信息;浏览次数,用于标识该篇,帖子已被多少人浏览过,和认可度有多高;留言时间,用于标识该篇帖子的留言时间;当留言中存在有利于本系统的意见,或是帖子中存在不健康的信息时,应能按照这些信息予以追查或给予奖励,该模块的信息不存在主数据库中,另外用Access小型数据库充当后台数据库,这样既能缓解服务器负担,又能方便对数据库的管理。因为其不需要登录系统主数据库,而给别人留下系统后门。 4.6系统使用说明 以单一页面方式,详细解释该系统的操作方式,对系统的各个功能给予详细的解释和提示意见,以及对系统的各种反馈给予详细说明,其包括的内容应包括如下几个方面: ⑴ 功能说明:对各个模块实现的功能给予全面、具体的介绍包括:已修课程及成绩、本学期选课、选修课列表、选修课查询、教学计划、都是一览、更改密码、链接语议、意见反馈等几项内容,每一项都要单独的条目来解释,说明的时候务必注意语言精炼、明确,尽量避免使用二义性词语,言词不必太过偏激,不应使用过多的专业术语,务求没有本专业知识的学生也能从中得到所要用的东西。 23 ⑵ 使用说明:对各个功能的使用给予详细说明,包括进入页面的方法,登录方法,选修步骤,注意事项,页面布局等方面。 ⑶ 选课操作: ⅰ 每个课程前有一复选框,若要选修该课程,可将其打“√”,每次可选多门,然后点击提交,此时在上面的表格中将增加新选的课程。 ⅱ 每次可选修多门,即可在多门课程前的复选框中打“√”,但每个学期总的选课门数不得超过教务处规定的选课门数,如果你选择的课程超过了规定的选课门数,系统将出现提示对话框,此时,请点击“确定”返回重新选课。 ⅲ 同一门课程每学期只能选修一次,如果同一门课程你选了两次,此时系统将出现提示对话框,请点击“确定”返回重新选择选课。 4.7注销界面 注销:学生在登录系统完成选课操作以后系统可能在cache中留下一些私人信息,所以完成操作以后学生应进行注销操作以确保自己的信息不被别人窃取和对自己的成绩、学分等重要内容被更改,注销时注意提示是否注销成功,并将页面返回到登录页面,以方便多个学生在同一台机子上使用该系统。 系统提供计时功能,当系统在一定时间段内没有收到用户的操作请求或页面无数据更新时,自动退出。如果再次使用时,强行再次登录,确保学生的信息安全。该计时数值不应设置过大,应在5—10分钟之间,但也不能过小,以使学生操作麻烦,以免过于频繁的读取数据库而加大服务器端负载,影响系统性能。 4.8管理员界面 该模块也按照服务器端需求编写,整套系统只有一个管理员入口Admin,密码可以更改,管理员的数据存于系统主数据库中,有一个表Admin,这个表中的记录数不能多于1条,可以让管理员更改密码,密码长度为3-10个字符之间;客户端的管理员入口不应管理系统中敏感的数据,管理机制只应对客户端负责,以免在别有用心的人获得管理员权限以后,威胁到系统安全,它应包括以下几个方面的内容: ⑴ 课程注册:该模块与服务器端的添加课程拥有相同功能,通过对课程库的操作将信息添加进课程库中,它的信息包括课程库中的所有字段,具体操作请参阅服务器端《数据表的组织结构――课程库KC_Tab》。 ⑵ 学生注册:此模块的功能也与服务器端的添加学生吻合,填写完信息以后信息将添加到学生库中。它的信息也包含了所有学生库的定义的字段信息,在将新学生信息提交给数据库时,应注意保持数据库中的数据完整性。要对以下信 24 息进行检查:1、学生学号长度=7位;2、学生班级长度<=6位;3、学生口令长度>=6 并且 <=10;4、姓名最大长度为四个中文符。 ⑶ 教师注册:此模块的功能也与服务器端的添加老师吻合,填写完信息以后信息将添加到教师库中,它的信息也包含了所有教师库的定义的字段信息。在将新教师信息提交给数据库时应注意保持数据库中的数据完整性,要对以下信息进行检查:1、教师代码长度=10位;2、教师名称<=30位。因为该页面的控件较多,所以页面的布置有点难度,可以考虑采用框架方式,将类别相似的域组合在一个框中,可以适当缓解页面中因为控件太多而过于拥挤和难于布置问题。其中教师学历和教师学位、职称这三项采用组合框来包含预定义的信息,教师学历组合框包含以下一些信息:中专、大专、本科、研究生;都是职称包含以下信息:助教、工程师、讲师、高级讲师、副教授、教授等几项;教师学位包含以下信息:工学学士、理学学士、文学学士、法学学士、学士、硕士、博士等。 ⑷ 教学计划注册:添加教学计划到系统主数据库中,该需求一共有三项:系部名称、专业名称、教学计划网页名称。因为服务器端已经规定,该网页文件存放于客户端子目录JXJH下,所以应把教学计划拷贝到该目录下,在数据库中只存放数据库的文件名,不存放路径信息。 ⑸ 管理员密码修改:可能因为管理员太长时间没有登录系统管理员接口,以至忘记了管理员密码或是管理员密码不够安全,所以要更改密码。鉴于上述原因,管理员的旧密码不要求输入,而是以明文方式显示在窗体上方。该页面有两个文本框,分别为管理员新密码和验证管理员新密码两项,一个确定按钮,一个取消按钮。 ⑹ 学生信息修改:修改学生全部信息,与服务器端的“修改学生信息”功能上兼容,进入下一层首选显示的是要求输入学生学号的页面。如果系统中存在该学生则调出该学生的信息,然后让管理员修改。如果没有该学生,则提示没有该学生,并返回输入学生学号页面中,它可以修改的信息包括以下几个方面:姓名、班级、密码。 ⑺ 主页信息修改:修改主页提示信息,一共有三栏,分别为:标题、主页信息、发布时间等。 ⑻ 浏览学生信息:以列表方式显示所有学生,并把每个学生的姓名设为超链接,在管理员单击学生姓名时显示学生的详细信息,该页面采用动态制表的方式,因为学生可能存有几千人,所以要注意换页问题,页面中有下一个、上一个、最后一个、最前一个等四个按钮组成一个组合框,显示当前的总页数。一页最多可显示二十个学生,一个太极链,返回到管理窗口的首页。当数据到达最前面时上一个按钮不可用,当数据到达最后一页时,下一个按钮变为不可用,当数据库 25 无记录时四个按钮均为不可用。 ⑼ 查询学生基本信息及本学期选课信息:根据学生学号浏览一个学生所有选修的课程,包括历年已选修的课程和本学期选修的课程,课程名称、代码、学分、学时;学生的姓名、班级、学号;一共所得的总学分和本学期选修的课程的总学时等几项内容,其中选修课列表采用列表框方式显示,学生信息采用标签方式显示在页面最上部,因为学生选修课的记录可能多于20条,所以应注意换页,每一页规定最大选修课列表条数为20条;该模块同样要求输入学生学号,并在学生库中查找该学生,如果没有该学生则把信息反馈给管理员,并返回到输入学号页面。 ⑽ 查询课程注册情况:这里为了在添加课程或是需要了解课程详细情况的时候可用得上,该页面也采用列表框的方式从课程库中加载全部课程,把课程名设为超链接,单击该项时弹出页面,显示该门课程的所有详细信息,该页面规定一页中最多可显示的条数为20条,因为课程库中的记录可能多于20条所以请做好换页准备。在最首页时,上一页和第一页按钮隐藏,在末页时,下一页和最后一页按钮隐藏显示,别的情况四个按钮都显示为可用。因为不断向服务器提交更新数据请求,请务必在编写该页面脚本时,须一次从服务器获得全部的记录信息, ⑾ 删除教学计划:该页面一共有三栏,分别为系部名称,专业名称,删除按钮,在管理员单击删除按钮时,页面从教学计划库中按照系部名称和专业名称指定的要求从库中删除记录。如果不符合要求,则安全退出,不向管理员反馈信息。从库中删除信息以后,应从列表中删除该条项目,以明示删除结果,请做好在删除条目后的组表操作。 示例窗体如图4.5所示: 26 图4.5管理员界面 管理员界面原代码:
<% if request.cookies(\"adminlogin\")=\"\"then 27 response.redirect \"admin_err.htm\" response.end end if %> 28 5. 系统测试 5.1系统平台选择 选择微软平台作为主导,一方面考虑目前微软的飞速发展,越来越多的企业在规划内部网络时,将微软平台作为首选方案;另一方面从技术角度来讲,微软平台上的应用无论是在开发上,还是在软件的部署上都非常容易,而且性能优越。 处理器:Intel PII 450 或更好 内 存:256M 或更大 硬 盘:20G 或更大 Microsoft WindowsNT Server 4.0 或更高版本 软MS Access 2000 或更高版本 硬件 服 务 器 件 Microsoft IIS 4.0 或更高版本 Microsoft Office 2000 硬客 户 机 软Microsoft Windows / 95 / 98 或更高版本 件 Microsoft IE 4.0 或更高版本 件 无特殊要求,只要能上连接互联网即可 表5.1系统平台表 系统的性能要求通常指系统需要的存储容量以及后援存储,重新启动和安全性,运行效率等方面的考虑。 系统运行时对数据的保密性要求不高对一般的数据不要求进行加密。此外,对其它软件几乎没有依赖性,程序健壮性较好。 5.2测试方案 5.2.1系统可能出现的问题与不足 本系统是一个基于B/S结构的,图形化界面的Web数据库应用系统。针对它的特点,分析了可能存在问题的几个方面及原因: 1.软件复杂度--使用ASP来开发这个网上选课系统,对于我来说先前没有 29 任何经验,软件复杂性并未很好估计。图形化界面,浏览器/服务器和分布式的应用,数据通信,许多的关系数据库,应用程序的规模等指数般的增加了软件的复杂度。面向对象技术也有可能增加软件复杂度[11]。 2.编程错误--任何一个编程人员都可能产生错误。 3.不断变更的需求--需求的变更会引起结构的重新设计,重新安排,对其它项目的影响,已完成的工作可能不得不重做或推翻,例如课程模块的增加。如果存在许多小的变更或者其他的改动,由于系统中中不同部分间可知和不可知的依赖关系,这样就会产生问题,跟踪变更的复杂性也可能引入错误。 4.缺乏文档的代码--维护和修改很差的代码或缺乏文档的代码是很困难的。最终结果将导致BUG的出现。 由于在系统设计中对数据容错性的处理不够全面,对数据库中的数据管理不够细致,预计问题多会出现在响应用户错误输入时的判断和处理方面以及对数据库插入删除的错误上。 5.2.2采用的测试类型 这个网上选课系统,我决定对其进行以下几种类型的测试: 1.单元测试--这是测试中的最小单位,测试特殊的功能或代码模块。我将对设计的网上选课系统的各个代码模块进行测试。在MIS开发过程中采用了多种措施保证软件质量,但是实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,经周密测试的系统投入运行,将会造成难以想象的后果,因此系统测试是MIS开发过程中为保证软件质量必须进行的工作。大量统计资料表明,系统测试的工作量往往占MIS开发总工作量的40%以上。因此,我们必须重视测试工作。 由于程序中隐藏的缺陷只在特定的环境下才有可靠显露,系统缺陷通常是由于对某些特定情况考虑不周而造成的。因此测试不是为了表明程序正确,有意义的软件测试应该是从破坏软件系统的角度出发,精心设计最有可以暴露程序系统缺陷的测试方案。因此软件测试的目标应该是以尽可能少的代价和时间找出软件系统中潜在的错误和缺陷。 从产品角度看,测试计划中的测试项目包括软件结构中的分系统层、子系统层、功能模块层、程序模块层中的各类模块,从测试本身看,分为单元测试,组合测试,确认测试等。测试对象是随阶段而异的,最基本、最初的测试是单元测试。后面的组合测试、确认测试都是以被测过的模块作为测试对象的。 2.增量型的集成测试--随着新功能的增加,不断的对应用程序进行测试。在程序的所有部分完成之前,需要一个应用程序的各个部分之间能够相对独立的 30 进行工作。 3.兼容性测试--测试系统在不同的平台/硬件/操作系统/网络上的表现情况。因为选课系统无论是服务器端还是浏览器端都不能保证机器的平台是一致的,考虑到用户使用软硬件的多样性,需要对其进行兼容性测试。 4.系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题以及检测系统是否达到用户的实际要求。系统测试的依据是系统分析报告。系统测试应在系统的整个范围内进行,这种测试不只是对软件进行,而是对构成系统的硬、软件一起进行。系统测试需要确认从头到尾的功能正常运行才算完成。 本来还考虑对系统进行压力测试以及回归测试的,但限于系统能力以及自己编程能力的有限,最终只选择了进行以上四个类型的测试,而且都是基于手动的数据输入。 5.2.3采用的测试用例 一个测试用例就是一个文档,描述输入、动作、或者时间和一个期望的结果,其目的是确定应用程序的某个特性是否正常的工作。一个测试用例应当有完整的信息,如:测试用例ID号、测试用例名字、测试用例的目的、输入数据需求、步骤和期望结果。 由于本系统实现的功能都与用户的输入密切相关,使用的测试方式采用的是手动输入的方式,比如:在登录时、应输入正确的用户名或密码、才能确保登录成功。 5.3 测试的过程与结果分析 本系统测试采用了1位管理员用户,2个学生用户,测试了登录系统、选课操作,密码修改,后台管理的全部模块,经过测试发现系统运行正常,无任何错误产生,系统产生数据完全正确,从此证明本系统是安全可靠的,下面说明整个测试过程。 用学生信息登录进入系统,能够正常的选课,查询选修课的列表,查看教师简介,修改密码等等。 退出系统,用管理员身份登录后台管理界面,进行各项添加删除查找,均能正常运行。 重复测试上一步骤,没有发现错误。 测试结果反映出了许多问题出现在对输入非法数据的判断处理上以及对数 31 据库中相关数据表数据一致性的管理上,与预计的错误基本吻合,这也是由系统主要实现的功能决定的。当然,各种结构测试方法都不能保证程序的正确性。这一严酷的事实对热心测试的程序人员似乎是一个严重的打击。但是,测试的目的并非要证明程序的正确性,而是要尽可能找出程序中的错误。确实并不存在一种十全十美的测试方法,能够发现所有的错误。 32 结论 选课系统作为学校管理信息系统的核心,在学校管理信息系统中起着举足轻重的作用。有着广泛的应用前景,因此选课系统的研究很有实用价值,但系统的实现有一定的难度。 在系统解决的过程中,我对WEB服务器、ACCESS2003、ASP、VbScript等系列知识都有了进一步的认识。使用ASP开发页面的能力也得到了很大的提高。选课系统具体包括:学生选课、教师查看选课情况、管理员对系统的管理和维护三大块内容。 由于初次开发选课系统,经验匮乏,系统的设计与实现过程难免有漏洞或不足。本选课系统还存在着一些不足: 1. 在学生选课的设计中,没有考虑到学生可以直接在网上打印个人的学科成绩和本学期的课表。 2. 在管理员的后台管理模块,有一些小的功能模块还没有具体实现,例如教学计划注册。 总之,想要设计出一个功能完善的系统,需要长时间的积累经验。每个阶段的处理过程都不是单独存在,前面的阶段是基础,后面的阶段则依赖前面的阶段。所以在今后的工作中,将对系统作进一步的研究。 在设计中我深知自己掌握的知识还远远不够。掌握的一些理论知识应用到实践中去,总会出现这样或那样的问题。不是理论没有掌握好,而是光知道书本上的知识是远远不够的。所以在以后的工作中一定要把理论知识和实践结合起来。把学到的知识应用到时间中去,多做多练,才可以把理论的精华发挥出来。 33 参考文献 [1] 郝兴伟,阚铮,吕强. Web技术导论.北京:清华大学出版社,2005.2 [2] 姚兵,赵亚婉,马力. 基于Internet的多媒体远程教学系统设计及实现. 北京:人民邮电出版社,2006.8 [3] 肖金秀. ASP网络编程技术.北京:清华大学出版社,2005.10 [4] Scot Hillier,Daniel Mezick,Dan MezickScott Hillier.Programming Active Server pages. Microsoft Press. December 1997 [5] 陈语林等.网页制作与设计教程.中国水利水电出版社,2005.6 [6] 容钦科技. ASP+DreamwearveMX2004数据库网站开发与实例.北京:清华大学出版社,2004.11 [7] 梁嘉超,夏远强.数据库设计与编程实例详解.北京:电子工业出版社,2001.5 [8] 陈松乔.ASP数据库管理系统开发实例导航.北京:人民邮电出版社,2004.11 [9] 刘瑞新,卢晓飞,李树东. 网页设计与制作第2版.北京:机械工业出版社, 2003.7 [10] 任用功等.网站规划与网页设计第1版.北京:电子工业出版社,2004.7 [11] 刑琳等.软件工程第1版.北京:北京邮电大学出版社,2004.5 34 致谢 本次毕业设计大概持续了半年的时间,现在终于到结尾了。刚拿到这个课题时,觉得这个课题比较难。今天回过去看看,却十分的欣慰,因为通过我的努力终于完成了。虽然这不是我读大学以来第一次写论文,但却是花费心血最多的一次,这是对我大学四年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都进步了。 首先,我要特别感谢黄贤运老师对我的悉心指导,在设计期间黄老师帮助我收集文献资料,理清设计思路,指导操作方法,并对我所做的课题提出有效的改进方案。老师渊博的知识、严谨的作风、诲人不倦的态度和学术上精益求精的精神让我受益终生。 最后还要感谢我的评阅老师以及整个答辩小组对毕业设计的考核,如果可以得到老师们的认可,这将对我以后的工作给予了极大的鼓励。你们客观的评价和建议我将牢记在心,在今后的发展中扬长避短,更加努力的严格要求自己。 35
因篇幅问题不能全部显示,请点此查看更多更全内容 |