《在线选课管理系统(共30页).doc》由会员分享,可在线阅读,更多相关《在线选课管理系统(共30页).doc(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上1.1 课题背景当今社会是一个信息时代,计算机技术发展迅速,同时信息的自动处理以及网络式的信息交互方式越来越被人们认可和应用,让计算机来管理学生的信息是现在各个高校都在积极进行的工作之一,也是高校教学管理工作的重要内容之一。网上选课与传统的选课方式相比更加节约资源,同时,随着学生选课自主权的增加,网上选课有效的避免了许多不良现象,使教学更加透明。1.2 国内外研究现状国外的教学科研软件与国内相比开发的早,而且相对比较成熟。早在七十年代末,美国就建成了NSFNET(国家科学基金网),其课题的申报以及课题的进展情况汇报都在网上进行。国外一些国家网上教学教务管理系统也十分完
2、善,世界各地的学生可以坐在家里通过互联网完成入学报名、选课、考试、毕业论文、取得学位这一学习生活的全过程。目前,国际上已具规模的远程教育学校就有数百所之多,网上教育正在各地发挥着巨大的作用,为世界各国培养出大批人才。所有这些都表明,基于Internet的校园网的应用已深入到校园内的各个方面。1.3 本课题研究的意义学生选课系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段。但是一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差、时间长、将产生大量的文件和数据,这对于
3、查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已深入到人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对选课信息进行管理,有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高了教务管理的效率,也是学校的科学化、现代化管理,与世界接轨的重要条件。因此,开发这样一套软件成为很有必要的事情。1.4 本课题的研究方法根据用户使用选课系统的实际流程设计整个系统的选课流程,以稳定性、实用性、安全性为总体原则。本系统的后台采用MS SQL
4、server 2000做为系统的数据库服务器。选用Dreamweaver 8 作为开发工具。网络服务器选用IIS 5.0,测试浏览器IE 6.0。开发过程中采取的是边开发边验证的方式,最后把模块进行集成,从而实现预期效果。整个设计采用软件工程的方法,系统采用B/S结构进行开发与设计,最后对整个系统进行测试,完成毕业论文的撰写。第一章 系统需求分析2.1课题的可行性分析1.课题调研(1)与实践活动和相关的文件和资料由教师提供,同时对学校教务的需求进行了现场调研。(2)本课题要求学生有熟练的ASP开发能力,有较强的自学能力以及一定的关系数据库理论开发功底。(3)具有对数据库进行合理设计和配置与处理
5、的能力。(4)具体问题再做详细调查研究并与指导老师面谈。2.可行性分析(1)技术可行性本系统需要配有Office软件的PC机,网络环境和作为数据库服务器的计算机,系统对机器本身没有太高的要求,一般当前学校或个人电脑完全可满足要求。对于软件技术要求,现在的程序设计语言已非常成熟,要运用HTML样式,图形图象制作工具来制作生动活泼的网页及美观的图形文件或动画文件,数据库使用SQLServer 2000中提供的数据库桌面工具ODBC。(2) 经济可行性-由于本系统是为学生选课管理使用的系统,装上该应用软件,即可使用系统,系统成本主要集中在系统软件的开发上,当系统投入运行后可以为学校节约大量的人力,物
6、力。所带来的效益远远大于系统软件的开发成本,在经济上完全可行。(3) 操作可行性-界面设计时充分考虑管理人员的习惯,制作了较精美的人机操作界面,使得操作简单、数据录入迅速、规范、可靠;统计准确;制表灵活;适应力强;容易扩充。2.2 系统需求分析 学生选课系统需要满足来自三方面的需求,这三个方面分别是学生、教师和管理员。学生的需求是查询院系的课程、学生选课情况及学生信息的修改;教师是查看、查询所有课程信息和自己做带课程信息以及教师信息修改;管理员的功能最为复杂,包括对学生、教师、选课进行管理和统计,及系统状态的查看、维护。学生可以直接查看选课情况,也可以用本人学号和密码登录系统。一般情况下,学生
7、只应该具有查询和维护本人的选课情况和个人信息的权限,若查询和维护其他学生的选课及成绩查询信息,就要知道其他学生的学号和密码。这些是很难得到的,特别是密码,所以不但满足了学生的选课要求,还保护了学生的个人隐私。学校工作人员有修改学生选课的权限,所以需对工作人员登录模块进行更多的考虑。在此系统中,学校工作人员可以为学生加入选课或是登录记录,并打印生成相应的报表给用户查看和确认院系管理人员等功能,满足信息量大,数据安全性和保密性要求。这个模块实现对选课信息、教师信息、总体选课情况信息的查询和统计、工作人员和管理人员信息查看及维护。学校管理员可以浏览、查询、修改、统计选课的基本信息;浏览、查询、统计和
8、修改学生选课的基本信息,浏览、查询、统计学生信息,但不能添加删除和修改学生的信息,这部分功能应该由院系工作人员执行,但是,删除某条学生选课基本信息记录时,应实现对该学生选课的级联删除。并且还应具有生成选课报表,并打印输出的功能。本系统主要实现教师信息管理、学生信息管理、课程信息管理和留言信息管理,其中教师信息管理有教师姓名、教师工号、教师职称、教师所属系;学生信息管理有学生姓名、学生学号和学生所在系;课程信息管理有课程名称、学分、学时、上课地点、上课时间、已选人数、课程性质、开课系、课程人数;留言信息管理有删除和查看留言。(1)学生信息模块完成学生的登录,然后根据各位同学所在的院系不同,调用相
9、应的选课模块。其中学生登录模块的功能是验证登录人员确实是本院的学生,学生启动本系统后,系统提示输入学生学号码和密码,验证后进入主操作界面。(2)教师信息模块完成教师的登录,然后根据各位教师所在的院系不同,教师所教的课程不同,调用所选的课程.其中教师登录模块的功能是验证登录人员确实是本院的教师,教师启动本系统后,系统提示输入教师工号和密码,验证后进入主操作界面。(3)课程信息管理包括必修课程和选修课程,学生必需先登陆才能进行对课程的选课否则不能进入选课系统。(4)留言信息管理中所有用户都可以留言,只有管理员才有权限对留言进行删除。4.系统开发平台系统的性能要求通常指系统需要的存储容量以及后援存储
10、,重新启动和安全性,运行效率等方面的考虑。本系统运行环境为网络环境,在运行时对系统整体性能要求较高,要求:软件系统环境:IIS5.0 +SQL Server 2000 + Dreamweaver 8硬件系统环境:C600、64MB(RAM)、500MB(HD)。系统运行时对数据的保密性要求不是很高,对一般的数据不要求进行加密。此外,对其它软件几乎没有依赖性,程序健壮性较好。 硬件 软件 硬件 软件 服务器处理器:Intel PII 450 或更好,内 存:256M 或更大,硬 盘:20G 或更大Microsoft WindowsNT Server 4.0 或更高版本,Microsoft Sql
11、 Server 7.0 或更高版本,Microsoft IIS 5.0 或更高版本,Microsoft Office 2005,Dreamweaver 8客户端无特殊要求,只要能上连接互联网即可Microsoft Windows /NT / XP 或更高版本Microsoft IE 5.0 或更高版本图2-2 系统配置5.系统开发技术本系统采用ASP语言开发。ASP是Active Server Pages的缩写,中文名称叫做“动态服务器页面”,服务器是所有Web站点的核心,后缀名为.asp。ASP内含于IIS(Internet Information Server)中,是Microsoft开发
12、的服务器的脚本环境。通过ASP,可以结合HTML(HyperText Markup Language )、脚本命令和组件来创建动态、交互且高效的Web服务器应用程序。ASP程序是以 。asp为扩展的文本文件,其控制部分是用VBScript和Jscript等脚本语言来编写的。ASP的工作流程大致是:浏览器向服务器发出请求;ASP全部读取请求的文件,并执行所有的服务器端脚本,并将脚本输出与静态HTML代码进行合并;最终的HTML页面将在HTTP响应中传送给浏览器。ASP程序是由文本、HTML标记和脚本组合而成的。在ASP程序中,脚本通过分隔符与文本和HTML标记区分开来。ASP用分隔符%和%包括脚
13、本命令。由分隔符括起的命令称为主脚本命令,这些命令由主脚本语言进行处理。在ASP分隔符%和%内,可以包括主脚本语言允许的任何语句、表达式和操作符等。ASP实际上是将标准的HTML文件扩展了一些附加特征,也像标准的HTML文件一样,包含HTML对象并且有一个浏览器解释并显示,任何可以放在HTML 中的东西Java Applets,闪烁字符串,客户端脚本,客户端ActiveX控制等。都可以放在ASP中。因此,ASP有如下四个重要特征,使之具备很强的通用性。本系统用SQL Server作为后台数据库服务器。SQL Server 是一个后台数据库管理系统,它功能强大操作简便,日益为广大数据库用户所喜爱
14、。越来越多的开发工具提供了与SQL Server的接口。SQL Server 是一个分布式关系数据库管理系统,它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的。于1988 年推出了第一个OS/2 版本,在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新
15、版本,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能、具有使用方便、可伸缩性好与相关软件集成程度高等优点。数据库必须具有坚固的安全系统,才能控制可以执行的活动以及可以查看和修改的信息。无论用户如何获得对数据库的访问权限,坚固的安全系统都可确保对数据进行保护。 SQL Server 2000 内置的安全工具,并包含下列信息: (1)(2)(3)(4)(5)(6)(7)MS SQL Server不但可以应用于大中型数据库管理中,建立分布式关系数据库,并且也可以开发桌面数据库。事实上,SQL Server数据库处理的基本结构,采取关系型数据库模式,尽管如此,S
16、QL Server的数据库处理方式,是使用面向对象的操作方式,也就是说,SQL Server的所有功能,都可以基于系统已经建立好的一些对象来达成,它相当OO(面向对象)的系统结构。SQL Server 企业管理器是 SQL Server 的主要管理工具,它提供了一个遵从 MMC 标准的用户界面,使用户得以:定义 SQL Server 实例组,将个别服务器注册到组中,为每个已注册的服务器配置所有 SQL Server 选项,在每个已注册的服务器中创建并管理所有的SQL Server 数据库、对象、登录、用户和权限。在每个已注册的服务器上定义并执行所有SQL Server管理任务。通过唤醒调用 S
17、QL 查询分析器, 验证主要是通过对session的判断,所有用户通过登录进入选课系统,登录信息提交单的查询可以查看该学期选择某一门课程的学生情况。(4)信息修改模块:信息修改包括课程信息的修改,学生信息的修改,教师信息的修改。课程信息的修改用于管理员对相关课程维护;密码的修改用于教师、学生这两种非管理员用户出于安全考虑对自己的帐户进行维护;学生信息、教师信息用于教务处对教师和学生信息进行更新。本功能只有管理员才可以完成。(5)课程发布模块:课程发布用于管理员发布新的课程信息,其他用户可查看最新的课程信息。3.3 系统流程图管理员拥有系统最高权限,以管理员身份登陆后,会出现所有的子任务菜单,例
18、如学生信息的管理、课程信息的管理、教师信息的管理等等,单击菜单,进入相应的操作界面,管理员具体操作流程如下:图3-1 管理员模块图 在学生选课系统中,学生是主要的用户之一,选择学生用户登陆后,会出现所有学生的子任务菜单,例如查看课程、选择课程、教师信息查看等等,单击菜单,进入相应的操作界面,学生具体操作流程如下: 图3-2 学生模块流程图教师是主要的用户之一,教师登陆后,选择教师用户登陆后,会出现所有教师的子任务菜单,例如查询课程、查看已任课程等等,单击菜单后进入相应的操作界面,教师具体操作流程如下:图3-3 教师模块流程图3.4 数据库的概念设计信息系统的主要任务是通过大量的数据获得管理所需
19、要的信息,这就必须存储和管理大量的数据。因此建立一个良好的数据组织结构和数据库,使整个系统都可以迅速、方便、准确地调用和管理所需的数据,是衡量信息系统开发工作好坏的主要指标之一。数据库系统设计数据库设计主要是进行数据库的概念设计和逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照数据库提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。为了更好地组织数据和设计出实际应用数据库,应该注意如下问题,规范化地重组数据结构,对数据进行规范化
20、表达,这在后面将会具体讨论。关系数据结构的建立,在进行了数据基本结构的规范化重组后,还必须建立整体数据的关系结构。这一步设计完成后数据库和数据结构设计工作基本完成,只待系统实现时将数据分析和数据字典的内容代入到所设计的数据整体关系结构中,一个规范化数据库系统结构就建立起来了。建立关系数据结构涉及三方面内容:确定关联的关键指标项并建立关联表;确定单一的父系记录结构;建立整个数据库的关系结构。定义安全保密性的方法一般有如下几种: a原则上所有文件都定义为4级,个别优先级特别高的办公室(终端或微机的入网账号)可定义高于4级的级别,反之则定义为低于4的级别。 b统计文件(表)和数据录入文件一般只对本工
21、作站定义为只写方式,对其它工作站则定义为只读方式。 以下为本系统主要ER图:图3-4 总体关系模型图3-5学生、课程关系模型图3-6管理员、课程关系模型图3-6管理员、学生关系模型图3-7管理员、教师关系模型图3-8教师、课程关系模型E-R图实体属性:管理员(管理员ID、密码)教师(教师ID、姓名、密码、性别、职称)学生(学号、密码、姓名、性别、系别)课程(课程ID、课程名、人数、学时、学分、任课老师ID、学期、系别、上课时间、上课地点、课程介绍)3.5 数据库的逻辑设计(1)在根目录chd下建立一个data文件夹用于存放chdxk数据库文件(2)在chdxk数据库文件下建立admin 、cl
22、ass 、book 、kecheng、stu_kecheng、teacher、xibie、七个数据表,内部具体设置如下:Admin表:adminid 、adminpsd分别为超级用户名和超级用户密码,验证管理员用。class表:xuehao 、name 、psd xkmax等,分别存放学号、姓名、密码、最多选课等,主要存储学生信息。stu_kecheng表:主要存放学生选课信息。teacher表:teacherid、teachername、teacherpsd、zhicheng等,主要存放教师ID、密码等信息.book表:id、name、content、booktime等,主要存放留言信息。基
23、于前面对系统的需求分析和详细设计。本系统的数据库采用了七张数据表:表3-1 数据库表数据库表名数据库表存储内容Admin管理员表Kecheng存储课程详细信息Class存储学生信息 Teachaer存储教师信息Stu_kecheng学生和课程的关联表Xibie存储系别信息Book存储留言信息表3-2 xibie(系部信息表)列(属性)名中文名称类型宽度是否允许为空ID系别IDint4NOT NULLName系别名字vachar50NOT NULLAdminid外键vachar50NULL系部信息表用来记录系别ID、系别名字等信息。表3-3 teacher(教师信息表)列(属性)名中文名称类型宽
24、度是否允许为空Teacherid教师IDint4NOT NULLTeachername教师姓名char10NOT NULLTeacherpsd教师密码char10NOT NULLTeachersex性别char10NULLZhicheng教师职称char10NULLAdminid外键vachar50NULL教师信息表用来记录教师ID、教师姓名、性别、教师职称、教师密码等信息。表3-4 class(学生信息表) 列(属性)名中文名称类型宽度是否允许为空Xuehao学号int4NOT NULLName姓名char10NOT NULLPsd密码vachar50NOT NULLSex性别char10N
25、ULLXibie系别vachar50NULLXkmax最多选课int4NULLAminid外键vacher50NULL学生信息表用来记录学号、姓名、密码、性别、系别、最多选课数量等信息。表3-5 kecheng(课程信息表)列(属性)名中文名称类型宽度是否允许为空Id课程IDint4NOT NULLName名称vachar50NOT NULLRenshu人数int4NOT NULLXueshi学时int4NOT NULLXuefen学分int4NOT NULLTeacherid任课教师IDint4NULLXueqi学期int4NOT NULLxibie系别vachar50NOT NULLshi
26、jian上课时间vachar50NULLdidian上课地点vachar50NULLjieshao课程介绍vachar50NULLadminid外键vachar50NULL课程信息表用来记录课程ID、名称、人数、学时、学分、任课教师ID、学期、上课时间、上课地点、课程介绍等信息。表3-6 book(留言信息表)列(属性)名中文名称类型宽度是否允许为空id自动编号int4NOT NULLname姓名vachar50NOT NULLcontent内容vachar50NOT NULLbooktime发表时间datetime8NULLxibie系别vachar50NULLhuifu回复内容vachar
27、50NULLaminid外键vacher50NULL 留言信息表用来记录姓名、内容、发表时间、系别、回复内容等信息。表3-7 admin(管理员帐户表)列(属性)名中文名称类型宽度是否允许为空adminid管理员IDvachar50NOT NULLadminpsd密码vachar50NOT NULL管理员账户表用来记录管理员ID、密码等信息。表3-8 stu_kecheng(学生、课程关联表) 列(属性)名中文名称类型宽度是否允许为空ID自动编号int4NOT NULLxuehao学号vachar50NOT NULLkechengid课程IDvachar50NOT NULL 学生、课程关联表用
28、来记录学号、课程ID等信息。第四章 软件设计与实施面向对象、可视化是ASP的一个特点,结合此特点,本系统设计时主要采用自顶向下方法:设计一个主页,通过菜单调用各个子模块。4.1 系统总体设计框架公用代码作为单独的一个文件,其他程序在需要时调用该文件,下面为公共函数和主要部分模块,系统所使用的公共文件为conn.asp,此文件中包含了连接数据库代码,主要是打开、关闭数据库:Connection对象主要的用途是打开和关闭数据库连接。Open:打开一个数据库使用server.createobject方法建立Connection对象实例,再指派给conn.PROVIDER=SQLOLEDB指明使用的驱
29、动程序。4.2 登陆模块该系统分为管理员、学生、教师三种用户,不同身份具有不同的操作权限,因此,登陆系统时,根据session值来判断该用户的身份,对三种身份的判断使用相同的方法,以下为管理员登陆界面: 图4-1 管理员登陆相应代码如下:%dim name,Pwdname=Request.Form(ID)Pwd=Request.Form(PSD)dim rs,sqlset rs = Server.CreateObject(ADODB.Recordset)sql=select adminid,adminpsd from admin where adminid=&name& and adminps
30、d=&Pwd&rs.open sql,conn,3,2 if not rs.EOF thensession(ID)=nameresponse.redirect admin_caozuo.asp else rs.close set rs=nothing conn.close set conn=nothingresponse.Write window.alert(您输入的帐号及密码错误,请重新输入!);window.history.go(-1);end if%4.3 查看课程信息模块图4-2 课程浏览从数据库中调出所有的课程信息:4.4 课程信息管理模块 图4-3 添加课程添加课程是选课系统中重要
31、的模块,部分代码如下检查是否存在相同ID号的课程:进行插入记录课程删除主要是在后台运行,其代码如下:4.5 课程查询模块图4-4 课程查询首先是对身份的判断,禁止非法用户,接受上一页传递过来的参数,查询数据库,显示符合要求的课程信息。%if session(xuehao) thenid=session(xuehao)end ifif session(teacherid) thenid=session(teacherid)end ifif session(ID) thenid=session(ID)end if%4.6 留言模块相应代码如下:%pageno=request.QueryString
32、(pageno) 使用request.QueryString集合取得参数pageno的值rs.pagesize=pagecounter 把页面记录数赋值给Recordset对象的pagesize属性,即一页所包含的记录数page=rs.pagecount rs对象包含的数据页面if pageno= or pageno1 then 当取到的当前页为空或者小于1时,把页面定位在第一页pageno=1end ifif rs.eof or rs.bof thenresponse.Write暂时没有留言!elsers.absolutepage=Cint(pageno) 当页面不为空时,定位到pageno
33、页面position=rs.PageSize*pageno 计算到当前页面总的记录数 pagebegin=position-rs.PageSize+1 当前页面开始的记录数 if position rs.RecordCount then pagend=position else pagend= rs.RecordCount end ife=1do while not rs.eof and e4.7 修改密码模块验证密码长度是否一致,是否包含非法字符Function CheckSqlIn(Str,Length,NotStr)if len(Str)Length thenCheckSqlIn=fal
34、seexit function end ifDim NotStrArrDim INotStrArr=Split(NotStr,|)for I=LBound(NotStrArr) to UBound(NotStrArr)if Instr(Str,NotStrArr(I)0 thenCheckSqlIn=falseexit function end ifNextCheckSqlIn=trueEnd Function 4.8 管理留言模块页次:/记录:至条1 then%a href=?pageno=上一页1 and Cint(pageno)a href=?pageno=下一页4.9条件查询模块4.1
35、0 查看选课模块%pageno=request.QueryString(pageno) 使用request.QueryString集合取得参数pageno的值rs.pagesize=pagecounter 把页面记录数赋值给Recordset对象的pagesize属性,即一页所包含的记录数page=rs.pagecount rs对象包含的数据页面if pageno= or pageno1 then 当取到的当前页为空或者小于1时,把页面定位在第一页pageno=1end ifif rs.eof or rs.bof thenresponse.Write暂时没有记录!elsers.absolute
36、page=Cint(pageno) 当页面不为空时,定位到pageno页面position=rs.PageSize*pageno 计算到当前页面总的记录数 pagebegin=position-rs.PageSize+1 当前页面开始的记录数 if position rs.RecordCount then pagend=position else pagend= rs.RecordCount end ife=1do while not rs.eof and e4.11查询教师所任课程模块4.12系别信息管理模块对输入的信息进行合法性验证MsgBox 该系别已存在!location.href=caozuo_xibie1.aspMsgBox 请输入系名!location.href=caozuo_xibie1.asp%dim rs,sqlset rs = Server.CreateObject(ADODB.Recordset)sql=insert into xibie(name) values