网上选课系统的分析与实现.docx
《网上选课系统的分析与实现.docx》由会员分享,可在线阅读,更多相关《网上选课系统的分析与实现.docx(49页珍藏版)》请在冰豆网上搜索。
![网上选课系统的分析与实现.docx](https://file1.bdocx.com/fileroot1/2023-2/2/a1ce24f5-441b-4a47-a55d-b7f9d5c3ea97/a1ce24f5-441b-4a47-a55d-b7f9d5c3ea971.gif)
网上选课系统的分析与实现
1引言
1.1开发背景
Internet的飞速发展深刻地影响了人们的日常生活和商业运作方式。
人们打开网页浏览当天的新闻,发电子邮件给远方的朋友,使用搜索引擎查找资料,进入网上商城购买商品——这一切都是在使用Internet。
社会的方方面面渗透着互连网的应用,使得一向烦琐的手工程序变得方便,快捷,而学校网上选课系统正是基于这一思想而发展起来的。
1.2开发目的
网上选课系统已经在很多高校得到广泛的应用,深得广大师生的称赞,它改变了以往由学校统发课程表到学生手中,然后由学生填好再反馈到学校,而学校还要对结果进行审查,确定有效性,最后才实施上课计划,这一传统的手工选课不仅复杂,也牵涉了很多的人力,对管理也造成了诸多不变,而借助网上选课系统,学生在规定选课时间段内,可以不受地点和时间的限制完成选修课的申请,而学校也可以方便地对系统进行管理和控制,提高工作效率。
1.3本文所做主要工作
本文采用ASP+SQLServer技术分析与设计了一个高校选课系统。
所做的主要工作如下:
………(此处把自己论文所做的主要工作叙述一下)
2开发环境
2.1B/S模式的特点
B/S(浏览器/服务器)是由浏览器、Web服务器、应用服务器和数据库服务器组成的多层结构体系。
B/S模式具有以下特点:
(1)用户界面简单易用。
用户使用单一的浏览器软件,通过鼠标即可访问文本、图像、声音、电影及数据库等信息,特别适合非计算机人员使用。
(2)易于维护与升级。
由于客户端无需专用的软件,所以,系统的维护和升级工作简单。
(3)具有良好的开放性。
浏览器/服务器结构采用标准的TCP/IP、HTTP协议,能够与遵循这些标准协议的信息系统及其网络很好的结合,具有良好的开放性,保护了用户的投资。
(4)信息共享度高。
HTML是数据格式的一种开放标准,目前信息系统中大多数流行的软件均支持HTML。
(5)扩展性好。
TCP/IP、HTTP的标准性使得浏览器/服务器结构可直接接入Internet,具有良好的扩展性。
(6)网络适应性强。
无论是PSTN、DDN、帧中继、X.25、ISDN、还是CATV、ADSL,浏览器/服务器结构均能适应。
(7)安全性好。
防火墙技术保证了浏览器/服务器结构的安全性。
2.2ASP的特点
ActiveServerPages(动态服务器页面,简称ASP)是微软推出的Web应用程序开发技术,它提供了一个服务器端的脚本环境,以生成和运行动态的、交互的、高效的Web服务器应用程序。
作为一种技术框架,ASP属于ActiveX技术中的服务器端技术,它包括五个内部的“ActiveXServerComponents”和六大内置对象。
这五个内部元件和六大内置对象的综合运用,使ASP具有了很强的通用性和可扩展性,是一个非常优秀的Web应用开发平台。
以下列出了ASP的一些特点:
(1)使用VBScript、Jscript等简单易懂的脚本语言,结合HTML代码,即可快速的创建网站的应用程序。
(2)无须编译,容易编写,可在服务器端直接执行。
(3)使用普通的文本编辑器,如Windows的记事本,即可进行编辑设计。
(4)与浏览器无关(BrowserIndependence),用户端只要使用可执行HTML代码的浏览器,即可浏览ASP所设计的网页内容。
(5)ASP能与任何ActiveXScripting语言相兼容。
除了可使用VBScript或Jscript语言来设计外,还可以通过Plug-in的方式,使用由第三方所提供的其他脚本语言,如Perl,Tcl等。
(6)ASP的源程序不会被传送到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。
(7)可使用服务器端的脚本来产生客户端的脚本。
(8)ActiveXServerComponents(ActiveX服务器元件)具有无限可扩充性。
可以使用VisualBasic,Java,VisualC++,COBOL等编程语言来编写所需要的ActiveX服务器元件
2.3SQLServer2000的特点
SQLServer2000是在SQLServe7.0的基础上发展起来的,是一个功能强大的关系型数据库管理系统。
作为在WindowsNT/2000/XP上运行得最好的数据库,SQLServer2000可以帮助各种规模的企业来管理数据,是创建企业应用程序时首选的关系型数据库管理系统。
随着用户需求的不断增长,SQLServer已经在易用性,可收缩性,可靠性,数据仓库等方面获得了重大的创新,因此,它具有很多新颖和有创造性的特点。
SQLServer2000已经成为业界领先的数据库管理系统。
1.易于安装、开发和使用
SQLServer2000包括许多工具和特性,它们都是基于图形的管理工具,这就简化了安装、开发、管理和使用数据库的过程。
SQLServer2000为数据库管理员(DBA)提供了所有使SQLServer2000的安装过程更有效的工具,SQLServer2000也能有效的运行在一个单用户的PC系统上。
2.可收缩性和高可靠性
SQLServer2000数据库引擎可以在Windows98,Windows2000Professional,WindowsXPHome/Professional,Windows2000Server/AdvancedServer上运行,而且还能够运行在WindowsNTVersion4.0的所有版本上。
数据库引擎是一个精力充沛的服务器,可以管理上千个用户访问的庞大数据库。
同时,SQLServer2000具有动态自我调解的特性,能有效的在笔记本电脑和PC机上工作。
3.支持数据仓库
SQLServer2000在处理大量数据方面已做了很多改进。
这使SQLServer2000在管理大型数据仓库方面相当完美。
数据仓库通常是一些海量数据库,这些数据库包含了来自于面向事务的数据库的数据。
4.系统集成
SQLServer2000是与其他产品和环境集成在一起的。
1)访问Internet的集成
SQLServer2000为运行在MicrosoftInternetInformationServices(IIS)下的Web应用程序形成一个高性能数据存储服务。
SQLServer2000可以和SiteServer一起建立和维护大型的、高级的电子商务Web站点。
SQLServer2000数据库引擎包括对XML的本地支持,Transact-SQL结果可以作为XML文档返回给使用OLEDB和ADOAPI的应用程序。
XML文档可以添加到SQLServer2000数据库中。
2)与WindowsNT安全性和Windows2000安全性的集成
SQLServer2000支持使用WindowsNT和Windows2000的用户和域帐号作为SQLServer2000注册帐号,这被称为Windows认证。
3)邮件集成
SQLServer2000可以通过MicrosoftExchange或其他MAPI兼容的邮件服务器发送并接收电子邮件和页面,这允许SQLServer2000通过批处理、存储过程或触发器发送电子邮件。
SQLServer2000也可以接收包含Transact-SQL语句的电子邮件。
3系统分析
3.1系统基本功能描述
网上选课系统是依据大学的选修课的网上申请和管理需求而进行设计的,目的是实现选修课的网上设置、申请功能。
根据大学选修课管理的基本过程,网上选课系统应具备课程设置、课程查询、学生选课、管理员管理等基本功能要求。
系统的主要使用者有学生、开课教师和教务管理人员。
3.2可行性分析
本系统的可行性分析包括以下几个方面的内容:
1.技术可行性。
由于校园网络的普遍应用,使得网上选课非常的方便,无需再进行网络的建设。
基于B/S模式的选课系统更加适合校园网,学生可以在校园网的任何地方完成选课过程。
SQLServer数据库和ASP技术的有机结合,可以开发出实用、简便、高效的基于网络的信息管理系统。
因此技术上是可以实现的。
2.经济可行性。
校园网已经普及,因此在网络设备上不需要进行大的投入。
加之,B/S模式的系统只要求客户端具备浏览器的基本功能,就能实现网上选课。
因此在校园的计算机实验室、公共机房,无需安装软件,即可实现网上选课功能。
因此,从经济上来说,开发网上选课不需要很大的投入,硬件上只需web服务器和数据库服务器即可。
3.操作可行性。
B/S模式的最大优势就是操作方便、如同浏览网页一样。
综上所述,网上选课系统在高校中是可行的。
3.3系统需求分析
通过对系统需求进行分析,我们可以确定系统中有三类用户:
管理员、教师和学生。
各类用户的具体描述如下:
(1)管理员
描述:
管理员维护整个系统,包括设置选课时段,选课前学生不可登录;选课结束,学生只可查询,管理员对选课结果进行统计;查询选课情况,对学生的选课申请进行处理,进行用户管理;限制最大选课人数;排课、发布选课信息;数据备份和恢复等。
(2)教师
描述:
教师撰写教师反馈,反馈选课信息,对排课者提出反馈意见,供排课者在排课时参考使用。
查询课程基本情况、学生情况。
(3)学生
描述:
在选课系统中查询课程、教室信息,查看教师反馈,提交选课申请,撤销申请,查询选课情况,登录系统,进行个人信息修改等与选课有关的活动。
根据上面所述,对系统进行了划分,分为三个主要功能,即登录控制、排课和选课,分别对应三个子系统,即登录子系统、排课子系统和选课子系统。
其中,登录子系统是前提,排课子系统是基础,选课子系统是关键。
登录子系统区分排课者(即系统管理员),教师和学生这三者的不同身份,给出不同的权限,在页面中根据身份判断其相应具有的权限,进行不同的操作。
排课子系统主要供排课者使用,其中设定选课时间段,进行排课并检测排课冲突,发布选课信息都是选课的前提和基础。
选课子系统是本系统要实现的最终目的。
选课子系统主要供学生选课使用,在这里可以进行与选课有关的活动,包括课程浏览查询、选课、退选课程。
3.3.1业务流程分析
(1)网上选课系统总体业务流程图如下所示:
图3-1系统总体业务流程图
(2)登录子系统主要验证不同的用户身份并取得不同的用户权限,进行不同的系统操作。
其业务流程图如下所示:
图3-2登录子系统业务流程图
(3)排课子系统主要完成设置选课时段、限制最大选课人数、排课并检测排课冲突、发布选课信息等功能。
其业务流程图如下所示:
图3-3排课子系统业务流程图
(4)选课子系统主要完成面向学生的选课功能,包括查询课程信息、提交选课申请、撤销申请、查询选课情况等。
其业务流程图如下所示:
图3-4选课子系统业务流程图
3.3.2数据流分析
根据业务流程分析,我们可以得到系统的数据流图。
(1)网上选课系统顶层数据流图如图2-5所示。
图3-5系统顶层数据流图
(2)网上选课系统第一层数据流图如图3-6所示。
图3-6网上选课系统第一层数据流图
(3)根据不同的用户权限,展开登录处理过程,数据流图如图3-7、3-8、3-9所示。
图3-7管理员登录数据流图
图3-8教师登录数据流图
图3-9学生登录数据流图
(4)排课过程的数据流图如图3-10所示。
图3-10排课过程数据流图
(5)选课过程的数据流图如图3-11所示。
图3-11选课过程数据流图
3.3.3数据字典
根据数据流程分析,对系统数据进行分析和汇总,建立系统数据字典。
下面列出部分数据字典内容。
(1)排课
系统名:
网上选课系统
条目名:
排课
输入:
课程信息表,教学楼信息表,教师信息表,院系信息表
输出:
排课表,选课通知表
描述:
排课者按年级排课。
排课表内容包括课程代号,课程名称,受课院系,专业代码,专业名称,教师代号,考察方式,学分,开课时间,上课时间,地点,开课院系,最大上课人数和课程选则限制(必修或选修)等。
在排课过程中,排课者可以查询教室使用情况和院系课程设置。
在排课者提交排课表以后,系统应当确保该排课方案中没有时间冲突和教室冲突。
如果有冲突,系统应该提示排课者具体冲突产生的原因。
(2)选课
系统名:
网上选课系统
条目名:
选课
输入:
排课表,选课通知表,教师反馈表
输出:
学生选课表
描述:
学生可以在规定的时间段内选课。
该规定时间段由排课者通过发布消息通知教师和学生。
选课过程如下:
学生在选课表上单击课程号,则该信息被提交到服务器,并显示学生的选课结果。
选课表的内容包括排课表的全部内容。
如果一门课程已经达到最大选课人数,则不能再选择这门课程。
如果有学生退课,则该门课程的已选人数减1。
(3)设定选课时间段
系统名:
网上选课系统
条目名:
设定选课时间段
输入:
选课时间段表输出:
选课时间段表
描述:
排课者应该设定选课时间段。
学生只能在此设定的时间段内选课和退课。
4系统设计
4.1数据库设计
4.1.1概念结构设计
(一)排课子系统
1系统涉及到的实体
排课中所涉及的主要实体及其属性有:
(1)管理员{用户名,密码,用户类型}
(2)课程{课程编号,面向专业编号,学分,限选性质,教师编号,考察方式,最大选课人数,课程名称,开课院系编号,面向的年级}
(3)选课通知{通知编号,通知标题,通知内容,通知时间,是否为“热点”}
(4)选课时间段{开始选课时间,终止选课时间}
2E-R模型如图4-1、4-2所示。
图4-1排课过程实体及其属性
图4-2排课过程E-R图
(二)选课子系统
1.系统涉及到的实体
选课中所涉及的主要实体及其属性有:
(1)学生{用户名,密码,用户类型,用户编号}
(2)课程{课程编号,面向专业编号,学分,限选性质,教师编号,考察方式,最大选课人数,课程名称,开课院系编号,面向的年级}
2.E-R模型如图4-3、4-4所示。
图4-3选课过程实体及其属性
图4-4选课过程E-R图
(三)合并上述E-R图,得到系统的总E-R图,如图4-5所示。
图4-5系统的总E-R图
4.1.2逻辑结构设计
根据以上的分析,将E-R模型转换成逻辑模型,设计出本系统数据库。
根据需要,设计了14个数据表,2个视图。
如下所示:
●排课表:
该表记录了排课的相关信息,包括排课编号、上课教室号、上课时间、课程设置号。
●院系信息表:
该表记录了开课院系的相关信息,包括院系编号、院系名称。
●教学楼信息表:
该表记录了所有教学楼的相关信息,包括教学楼编号、教学楼名称。
●教室信息表:
该表列出了所有可供上课的教室的详细信息,包括教室编号、教室名称、教学楼编号、教室属性。
●备份排课记录表:
该表列出了所有备份表信息,包括列表号、备份排课记录表ID。
●选课时间段信息表:
该表是控制整个选课过程的关键部分,学生只能在此设定的时间段内才能选课,包括开始选课时间和终止选课时间。
●选课通知表:
该表是为排课者及时通告选课信息而建的,包括通知编号、通知标题、通知内容、通知时间、是否为“热点”。
●课程详细信息表:
该表对课程的内容做了详细的介绍,包括课程设置编号、课程名称、课程介绍。
●开课信息表:
该表列出了选课表的详细信息,包括课程编号、面向专业号、学分、限选性质、教师编号、考察方式、备注、最大选课人数、课程编号、开课院系编号、面向的年级。
●选课信息表:
当学生成功的选课后,就会列出相应的信息,包括排课编号、学生学号。
●反馈信息表:
该表列出了教师的反馈信息,包括反馈信息编号、反馈信息标题、反馈信息内容、用户ID、反馈时间。
●学生信息表:
该表列出了所有在校学生的信息,包括学生学号、学生姓名、所属院系编号、专业号。
●教师信息表:
该表列出了所有在校教师的信息,包括教师编号、教师姓名、所属院系编号。
●系统用户信息表:
该表列出了所有登录过本系统的用户信息(教师、学生、管理员),包括用户类型、用户编号、用户名、用户密码。
以上是在数据库中的基本表。
在具体查询过程中,如果全部直接从基本表查询,则要建立多重的联合(内联)查询,这样用起来很不方便,也容易出错;同时影响系统效率。
因此建立2个视图,方便查询。
(1)排课信息视图(VIEW_Arrange)包括课程编号,课程名称,教师编号,教师姓名,限选性质,学分,考察方式,面向专业编号,最大选课人数,教室名称,教室属性,开课院系名称,教学楼名称,教学楼编号,上课时间,课程设置编号,排课号,教室编号。
(2)选课信息视图(VIEW_Select)包括排课号,课程编号,课程名称,教师编号,教师名称,面向专业编号,学生学号,学生姓名。
根据上面的逻辑结构设计,设计相应的表结构如下所示。
1.排课表(Arrange)
该表记录了排课的相关信息,包括排课编号、上课教室号、上课时间、课程设置号,其结构如表4-1所示:
表4-1Arrange
字段
说明
类型(长度)
备注
ARRANGE_ID
排课编号
int
主键,不为空
CLASSROOM_ID
上课教室号
int
外键,不为空
DAY_TIME
上课时间
Varchar(20)
不为空
SETTING_ID
课程设置号
datetime
外键,不为空
2.院系信息表(DeptInfo)
该表记录了开课院系的相关信息,包括院系编号、院系名称,其结构如表
4-2所示:
表4-2DeptInfo
字段
说明
类型(长度)
备注
DEPT_ID
院系编号
Char(10)
主键,不为空
DEPT_NAME
院系名称
Nchar(10)
不为空
3.学生信息表(StudentInfo)
该表列出了所有在校学生的信息,包括学生学号、学生姓名、所属院系编号、专业号,其结构如表4-3所示:
表4-3StudentInfo
字段
说明
类型(长度)
备注
STUDENT_ID
学生学号
Varchar(20)
主键,不为空
STUDENT_NAME
学生姓名
Nvarchar(10)
不为空
DEPT_ID
所属院系编号
Char(10)
外键,不为空
MAJOR_ID
专业号
Varchar(20)
不为空
4.教师信息表(TeacherInfo)
该表列出了所有在校教师的信息,包括教师编号、教师姓名、所属院系编号,其结构如表4-4所示:
表4-4TeacherInfo
字段
说明
类型(长度)
备注
TEACHER_ID
教师编号
Varchar(20)
主键,不为空
TEACHER_NAME
教师姓名
Nvarchar(10)
不为空
DEPT_ID
所属院系编号
Char(10)
外键,不为空
5.教学楼信息表(BuildingInfo)
该表记录了所有教学楼的相关信息,包括教学楼编号、教学楼名称,其结构如表4-5所示:
表4-5BuildingInfo
字段
说明
类型(长度)
备注
BUILDING_ID
教学楼编号
Int
主键,不为空
BUILDING_NAME
教学楼名称
Nchar(10)
不为空
6.教室信息表(ClassroomInfo)
该表列出了所有可供上课的教室的详细信息,包括教室编号、教室名称、教学楼编号、教室属性,其结构如表4-6所示:
表4-6ClassroomInfo
字段
说明
类型(长度)
备注
CLASSROOM_ID
教室编号
Int
主键,不为空
CLASSROOM_NAME
教室名称
Nchar(10)
不为空
BUILDING_ID
教学楼编号
Int
外键,不为空
PROPERTY
教室属性
Nchar(10)
不为空
7.课程详细信息表(CourseInfo)
该表对课程的内容做了详细的介绍,包括课程设置编号、课程名称、课程介绍,其结构如表4-7所示:
表4-7CourseInfo
字段
说明
类型(长度)
备注
COURSE_ID
课程设置编号
Char(20)
主键,不为空
COURSE_NAME
课程名称
Nchar(20)
不为空
INTRODUCTION
课程介绍
Nvarchar(300)
不为空
8.开课信息表(CourseSettingInfo)
该表列出了选课表的详细信息,包括课程编号、面向专业号、学分、限选性质、教师编号、考察方式、备注、最大选课人数、课程编号、开课院系编号、面向的年级,其结构如表4-8所示:
表4-8CourseSettingInfo
字段
说明
类型(长度)
备注
SETTING_ID
课程编号
Int
主键,不为空
ORIENT_DEPT_ID
面向专业编号
Varchar(20)
不为空
SCORE
学分
Tinyint
不为空
SELECT_LIMIT
限选性质
Nchar(4)
不为空
TEACHER_ID
教师编号
Varchar(20)
不为空
TEST_METHOD
考察方式
Nchar(4)
不为空
COMMENT
备注
Nvarchar(200)
默认值“无”,允许空
SELECTOR_NO_LIMIT
最大选课人数
Smallint
不为空
COURSE_ID
课程编号
Char(20)
不为空
DEPT_ID
开课院系编号
Char(10)
不为空
GRADE_ID
面向的年级
tinyint
不为空
9.反馈信息表(FeedBack)
该表列出了教师的反馈信息,包括反馈信息编号、反馈信息标题、反馈信息内容、用户ID、反馈时间,其结构如表4-9所示:
表4-9FeedBack
字段
说明
类型(长度)
备注
FEEDBACK_ID
反馈信息编号
Smallint
主键,不为空
FEEDBACK_TITLE
反馈信息标题
Nvarchar(20)
不为空
FEEDBACK_CONTENT
反馈信息内容
Nvarchar(3000)
不为空
USER_ID
用户ID
Varchar(20)
不为空
FEEDBACK_TIME
反馈时间
datetime
不为空
10.备份排课记录表(BackUpArrangeList)
该表列出了所有备份表信息,包括列表号、备份排课记录表ID,其结构如表4-10所示:
表4-10BackUpArrangeList
字段
说明
类型(长度)
备注
LIST_ID
列表号
Int
主键,不为空
BACKUP_ID
备份排课记录表
Varchar(20)
不为空
11.选课信息表(CourseSelect)
当学生成功的选课后,就会列出相应的信息,包括排课编号、学生学号,其结构如表4-11所示:
表4-11Cours