网上选课系统设计.docx
《网上选课系统设计.docx》由会员分享,可在线阅读,更多相关《网上选课系统设计.docx(14页珍藏版)》请在冰豆网上搜索。
网上选课系统设计
网上选课系统
详细设计说明书
学院:
计算机科学技术学院
专业:
软件工程
班级:
08-2班
组长:
一帆
组员:
田晓磊雪景隆萌
1引言
1.1编写目的
随著(WorldWideWeb)及Internet的快速发展及日渐普及,学校校务行政的电脑化也迈入以网络为基础的新纪元.选课系统是大学教务系统中非常重要一环,由于牵涉到每一学生该学期的学习,加上新的课程设计中,大量的选修与更具弹性的措施,使得传统的人工作业不合时宜,半自动的语音选课亦不能满足这些新需求;网际网路的兴起,使我们有机会重新检讨选课的作业流程,以及如何运用网路其不受时空限制的特性进行选课作业流程的改善.为了提高学校教务工作的效率,更加合理的利用既有的资源,减少传统选课方式给学生带来的不便和麻烦,网上选课系统的采用被提上日程。
此外,学生公寓宽带的安装使得学生能够在寝室非常方便的获取网络资源。
这又为网上选课系统被广学接受提供了必要的资源。
在以往学生常常抱怨不易找到所要资讯,以及选课期间同学因怕额满选不到理想的课,都挤在第一天选课造成塞车严重,而且若第一天有课的同学便常因抢不到理想的课而忿忿不平.此外在选课时同学们必须先查好所欲选之课程代码再来选课,为此教务处每学期要印出各系所开课表供学生查询选课资讯,即使每两人共用一册数量仍相当庞大且选课后课表便没用处,而且一旦调课或开课上的变更,无法及时异动,一方面造成纸资源的浪费,另一方面学生即使先查好课表再去选课,也无法确定自己的课表,既不方便又费时.在预选课后教务处人员要印一次点名计分册给老师,到了加退选后因选课有异动又得再印一次最新的选课名册给任课老师,造成教务处人员的重复工作负担,对老师而言,必须仰赖教务处工作人员的处理及列印,自己无法随时掌握选课学生,也甚不方便.每学期到了学期末同学们最关心的成绩,必须等收到成绩单才能知道自己的成绩,若要历年成绩单也要等开学后到教务处填申请单,再去出纳组缴费过一天后才能来领取.因此,如何建立一个方便且即时的成绩管理系统,以伴随选课系统也是十分迫切的.为了建立一个方便,公平,又有效率的选课系统,我们决定规划一个植基于网际网路的网路选课系统,并实现下列几个主要的目的:
(1).提升选课公平性;
(2).缩短选课时间,提高效率;
(3).节省课表列印经费并节省人力;
(4).学生可即时上网查询单学期或历年成绩
1.2项目背景
本项目(网上选课系统)是由华中科技大学教务处委托,由cs-cn.net负责开发。
网上选课系统将主要由学校计算机维护中心的数据库服务器组成。
本系统简要架构如下:
Firewall
1.3定义
1.3.1专门术语
Firewall防火墙
SQLSERVER:
系统服务器所使用的数据库管理系统(DBMS)。
SQL:
一种结构化查询数据库的语言
事务流:
数据进入模块后可能有多种路径进行处理。
ROLLBACK:
数据库的错误恢复机制。
1.3.2缩写
系统:
若未特别指出,统指网上选课系统。
SQL:
StructuredQueryLanguage(结构化查询语言)。
1.3.3关键词
网路选课,主从架构,多层次架构,校务行政电脑化
1.4参考资料
以下列出在概要设计过程中所使用到的有关资料:
洪杏林(2000)网路选课瓶颈的探讨大学电算中心技术通讯第5期
连顺,林威升(2000)网路课表查询程式制作资讯与教育双月刊79期
徐瑞奎(2002)网络资源应用在校园里研习资讯第18卷第2期
北方交通大学自动化系统研究所SQLServer2000开发工具指南
SQL*PlusUser'sGuideandReference(February,1999)
文档所采用的标准是参照《软件工程导论》美明著“计算机软件开发文档编写指南”。
构架参考《软件构架实践》第二版LenBass等著。
2.2用户类和特征
本项目所开发的系统用户有三类,学生、老师和系统管理员。
当学校公布可以选课了,学生就应该急时登陆选课系统进行选课。
对学生来说,只要有一个能上网的就行可以在浏览器登陆了。
系统中有哪些可选的课程由管理员添加,课程重要的信息之一就是该课程的老师。
当加入老师时。
应该跟老师的信息相关联。
当老师登陆时,可以查看自己所教的课程的报名情况,以及学生对该课的评价等等信息。
学生和老师都不可能使用管理员的功能。
2.3运行环境
(1)硬件环境
最低配置:
奔腾4处理器,512M存,60G硬盘。
建议配置:
奔腾双核T44002.2GHZ及其以上2G存、320G硬盘
(2)软件环境
A.windows98以上的操作系统
B.Myeclipse和pl/sql
C.Microsoftoffice2000
3.数据描述
3.1静态数据
(1)登录表(存放用户的信息)
字段
字段名
数据类型
宽度
1
用户名
Text
16
2
登录密码
Text
16
3
身份
Text
6
4
权限
Text
20
(2)教师表(存放教师信息)
字段
字段名
数据类型
宽度
1
Text
12
2
职工号
Text
16
3
性别
Text
2
4
所在系
Text
30
5
职称
Text
16
6
学历
Text
16
7
联系
Text
50
(3)学生表(存放学生信息)
字段
字段名
数据类型
宽度
1
学号
Text
16
2
Text
12
3
所在系
Text
30
4
专业
Text
50
5
级别
Text
4
6
联系
Text
16
7
选修课
Text
30
(4)课程表(存放课程信息)
字段
字段名
数据类型
宽度
1
课程号
Text
16
2
课程名
Text
30
3
课程类型
Text
20
4
任课教师
Text
16
5
上课时间
Date
自动
6
上课地点
Text
50
7
上课人数
int
3
8
已选人数
int
3
9
成绩
Int
3
(5)帮助表(存放帮助信息)
字段
字段名
类型
宽度
1
名称
Memo
自动
2
容
memo
自动
3.2动态数据
输入数据:
菜单选项,查找关键字,新建记录项。
输出数据:
由查询关键字确定的数据库记录集合。
部生成的数据:
中间查询结果。
3.3数据流图
(1)登录数据流图
(2)数据流图
3.4数据库E-R图
4.功能模块
4.1功能划分
功能模块
功能使用者
查询可选课程
学生,管理员
查询可选课程信息
学生,管理员
更改用户信息
所有用户可以更改自己信息
执行选课
学生
查看自己所教课程信息
老师
学生类:
属性:
学号:
用来存学生的学号,每个学生都有学号且唯一。
:
存学生的。
性别:
用来标识用户的性别。
年龄:
储存用户的年龄。
年级:
储存学生进入学校的时间。
方法:
登陆与注销:
最基本的功能,进入时必须登陆,长时间不使用系统自动注销用户。
修改资料:
对学生自己的可以修改的信息可以进行修改。
不能修改的就不能更改。
查看课程:
查看所有被选课程和个体课程的详细信息。
选课:
如果课程可以被选。
就可以调用这个方法进行选课。
查看成绩:
如果学生选了某门课并且已经考试,可以查看成绩。
取消选课:
如果对选的课不满意,在规定的时间可以取消。
老师类
属性:
职工号:
每个老师唯一的证件。
:
。
职称:
教师的职称号。
所在系:
教师工作院系名称
方法:
登陆/注销:
最基本的方法或者功能。
修改资料:
修改可以修改的自己的信息。
查看程信息:
查看自己带的课或者其它课程的信息,两种情况的结果不一样。
成绩登记:
当完成课程后,对学自己所带的课的学生添加成绩。
4.2功能描述
选课流程图表示
5.性能
5.1数据精确度
A.要按照严格的数据格式输入,否则系统不给予响应进行处理。
B.查询时要保证查全率,所有相应域包含查询关键字的记录都应能查到。
因为通常有文件的记录会很多,所以本系统采用了两种方法进行查询:
直接查询和模糊查询。
5.2时间特性
一般操作的响应时间应在1~2秒,对软磁盘和打印机的操作也应在可接受的时间完成。
5.3适应性
满足学校选课使用的需求。
对前面提到的运行环境要求不应存在困难。
6.运行
6.1外部接口
6.1.1用户界面
在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。
在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。
外观上也要做到合理化,考虑到用户多对WINDOW风格较熟悉,应尽量向这一方向靠拢。
在设计语言上,已决定使用MSVISUALC++进行编程,在界面上可使用VISUALC++所提供的可视化组件,向WINDOWS风格靠近。
其中服务器程序界面要做到操作简单,易于管理。
在设计上采用下拉式菜单方式,在出错显示上可调用VISUALC++库中的错误提示函数。
总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用。
6.1.2软件接口
服务器程序可使用VISUALC++提供的对SQLSERVER的接口,进行对数据库的所有访问。
服务器程序上可使用SQLSERVER的对数据库的备分命令,以做到对数据的保存。
在网络软件接口方面,使用一种无差错的传输协议,采用滑动窗口方式对数据进行网络传输及接收。
6.1.3硬件接口
在输入方面,对于键盘、鼠标的输入,可用VISUALC++的标准输入/输出,对输入进行处理。
在输出方面,打印机的连接及使用,也可用VISUALC++的标准输入/输出对其进行处理。
在网络传输部分,在网络硬件部分,为了实现高速传输,将使用高速ATM。
6.2部接口
部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。
具体参数的结构将在下面数据结构设计的容中说明。
接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。
6.3故障处理
正常使用时不应出错,若运行时遇到不可恢复的系统错误,也必须保证数据库完好无损。
调试中遇到的问题及解决的方案:
●遇到跳出“数据库已经关闭“提示信息阻止程序运行时
可以查看一下进行此项操作时,操作的表是否已经被关闭了或者是在没有关闭此表的情况
下又一次运用打开语句打开此表。
●关于空记录带来的麻烦
有些空记录往往会使程序无法运行。
此时你可用“ifnotisnull”语句先判断一下是否为
空记录,再操作。
●也可通过网络连接,实行联机帮助。
7质量属性
7.1可用性
系统出现故障以及出错预防详见下第8节。
选课系统出现错误一般是由服务器产生,当工作人员未能及时发现错误则很可能使整个系统出现故障,因此有必要对管理人员进行必要的故障修复培训,尽量缩短平均修复时间,依照公式:
ά=平均正常工作时间/(平均正常工作时间+平均修复时间),可大幅提高可用性。
7.2可修改性
对于本选课系统,考虑到最终用于大学教务系统,而国众多大学的选课机制相似,因而对于可修改性我们可以不用考虑过多。
7.3性能
由于采用了分阶段进行选课相关的操作,对高峰期的学生分流起了很大的作用,因此大大提高了系统的整个性能,对于学校的硬件配置,可以大大降低出现网络塞车的几率。
同时采用random的方法对课程资源进行分配保证了必修学生能够上到自己的课的可能。
7.4安全性
由于在系统上加了防火墙设置,可以有效提高系统安全性。
7.5易用性
系统将采用传统的窗口设计,登录界面用单选框的形式给出学生登录以及教师登录窗口,网页中以多个下拉菜单形式分别提供课程以及教师,上课时间(12节或34节或56节或78节)的列表,为学生提供多个选课进入方式,尽量使得整个系统易用简洁,方便快捷。
8运行设计
8.1运行模块的组合
访问网页者在有输入时启动接收数据模块,通过各模块之间的调用,读入并对输入进行格式化。
在接收数据模块得到充分的数据时,将调用网络传输模块,将数据通过网络送到服务器,并等待接收服务器返回的信息。
接收到返回信息后随即调用数据输出模块,对信息进行处理,产生相应的输出。
服务器程序的接收网络数据模块必须始终处于活动状态。
接收到数据后,调用数据处理/查询模块对数据库进行访问,完成后调用网络发送模块,将信息返回客户机。
8.2运行控制
运行控制将严格按照各模块间函数调用关系来实现。
在各事务中心模块中,需对运行控制进行正确的判断,选择正确的运行控制路径。
在网络传方面,用户在发送数据后,将等待服务器的确认收到信号,收到后,再次等待服务器发送回答数据,然后对数据进行确认。
服务器在接到数据后发送确认信号,在对数据处理、访问数据库后,将返回信息送回用户界面,并等待确认。
8.3运行时间
在软体的需求分析中,对运行时间的要求为必须对作出的操作有较快的反应。
网络硬件对运行时间有最大的影响,当同一时间学生登录人数过多,网络负载量大时,对操作反应将受到很大的影响。
所以将采用高速ATM网络,实现客户机与服务器之间的连接,以减少网络传输上的开销。
其次是服务器的性能,这将影响对数据库访问时间即操作时间的长短,影响加大客户机操作的等待时间,所以必须使用高性能的服务器,建议使用PentiumIIII处理器。
硬件对本系统的速度影响将会大于软件的影响。
9出错处理设计
9.1出错输出信息
程序在运行时主要会出现两种错误:
1、由于输入信息,或无法满足要求时产生的错误,称为软错误。
2、由于其他问题,如网络传输超时等,产生的问题,称为硬错误。
对于软错误,须在选课操作成功判断及输入数据验证模块由数据进行数据分析,判断错误类型,再生成相应的错误提示语句,送到输出模块中。
对与硬错误,可在出错的相应模块中输出简单的出错语句,并将程序重置。
返回输入阶段。
出错信息必须给出相应的出错原因,例:
此课程已经人满!
此课程你尚不能选!
此科目与此次选修课程冲堂
此科目需排志愿
无此开课代码
此科目有需先修课程
被拒绝修习此科目
选修科目与你已选修课程时间有冲突
你已选修过此科目
登录浏览人数已满,请稍后登录等。
9.2出错处理对策
服务器必须安装不间断电源以防止停电或电压不稳造成的数据丢失的损失。
若发生断电事件,断电后恢复过程可采用SQLSERVER的日志文件,对其进行ROLLBACK处理,对数据进行恢复。
在网络传输方面,可考虑建立一条成本较低的后备网络,以保证当主网络断路时数据的通信。
在硬件方面要选择较可靠、稳定的服务器机种,保证系统运行时的可靠性。
10安全设计
由于数据的传输上需要通过网络传输,为了客户资料进行,需要在网络的传输过程中对数据进行加密。
这个工作主要是在准备网络包,及解开网络包这两个模块完成,它们各对数据进行加密及解密还原工作。
在加密算法选择上将使用RSA加密算法。
具体算法可参照参考资料中《puterNetwork》p.598。
11维护设计
维护方面主要为对服务器上的数据库数据进行维护。
可使用SQLSERVER的数据库维护功能机制。
例如,定期为数据库进行Backup,维护管理数据库死锁问题和维护数据库数据的一致性等。