学生选课系统的设计与实现--毕业设计

更新时间:2024-06-01 13:51:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

学号:*********

*************** 学士学位论文

题 目 学生选课系统的设计与实现 学 生 ****** 指导教师 ****** 讲师 年 级 2006级

专 业 计算机科学与技术 系 别 计算机科学与技术 学 院 计算机科学与信息工程学院

\\

学 士 学 位 论 文

\\

题 目 学生选课系统的设计与实现 学 生 ***** 指导教师 ****** 讲师 年 级 2006级

专 业 计算机科学与技术 系 别 计算机科学与技术 学 院 计算机科学与信息工程学院

*************** 2010年5月

摘 要:随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。学生选课系统作为一种现代化的教学技术,以越来越受到人民的重视,是一个学校不可缺少的部分, 学生选课系统就是为了管理好选课信息而设计的。学生选课系统的将使选课管理工作规范化,系统化,程序化,避免选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。

系统实现了对课程的基本信息和学生选课、学生和教师用户进行管理。系统对学生角色提供个人信息查看、选课管理以及其他功能;对教师提供查看自己所担任课程的课表和选该门课程的学生信息;提供给管理员以下功能:查看所有课程、学生、教师的信息并可以对它们进行管理(添加、编辑、删除),以及实现新闻的发布并修改。

关键字:选课、课程信息发布、B/S、SQL Server 2000、JSP

\\

目 录

第一章 绪论.......................................................................................................... 1

1.1 选课背景和意义..................................................................................... 1 1.2 国内外的发展状况 ................................................................................. 2 1.3 论文的工作和内容介绍 .......................................................................... 3 第二章 相关软件及技术介绍 ............................................................................... 4

2.1 B/S结构简介 ......................................................................................... 4 2.2 Microsoft SQL Server 2005简介 ......................................................... 4 2.3 IIS 6.0 和 Windows Server 2003相关简介.......................................... 5 2.4 ASP的特点与功能 .................................................................................. 6

2.4.1 ASP方法与传统静态主页的区别 .................................................. 6 2.4.2 ASP的特点与功能 ....................................................................... 7 2.5 JSP技术介绍 ......................................................................................... 7 2.6 Ajax技术简介 ....................................................................................... 8 第三章 系统统计 ................................................................................................11

3.1.1 技术可行性 ..................................................................................11 3.1.2 经济可行性 ..................................................................................11 3.3.3 操作可行性 ..................................................................................11 3.2 业务分析 ................................................................................................11

3.2.1 系统需求分析.............................................................................11 3.2.2 业务流程分析............................................................................ 12 3.3 数据分析 ............................................................................................. 15 3.4 功能模块分析 ...................................................................................... 17 3.5 网络拓扑结构分析 ............................................................................... 18 3.6 安全性分析.......................................................................................... 19 第四章 系统统计 ............................................................................................... 20

4.1 系统结构统计 ...................................................................................... 20 4.2 数据库设计.......................................................................................... 20

4.2.1 概念结构设计............................................................................ 21 4.2.2 逻辑结构设计............................................................................ 22 4.2.3 数据表设计 ............................................................................... 23 4.3 功能设计 ............................................................................................. 25 4.4 软件的运行环境 .................................................................................... 26 第五章 系统实现 ............................................................................................... 27

5.1 系统实现概况 ...................................................................................... 27 5.2 登陆模块 ............................................................................................. 27 5.3学生用户界面设计.................................................................................. 30

5.3.1 个人信息模块功能模块设计 ........................................................ 31 5.3.2 网上平台模块功能设计 ............................................................... 32 5.3.3 选课信息查询 ............................................................................. 34 5.4 管理员用户界面设计 ............................................................................. 37

5.4.1用户管理模块功能设计 ................................................................ 38 5.4.2 网上平台模块功能设计 ............................................................... 39 5.4.3 系统公告模块设计 ...................................................................... 39 5.4.4 排课模块.......................................................................................... 40 5.5 教师用户界面设计 ................................................................................. 41

5.5.1 浏览已发布信息 .......................................................................... 42 5.5.2 课程信息修改 ............................................................................. 42

\\

5.5.3 课程信息删除 ............................................................................. 42 5.5.4 学生信息审核 ............................................................................. 43 5.6系统后台模块......................................................................................... 44 5.7 系统测试 ............................................................................................. 46

5.7.1 登陆模块................................................................................... 46 5.7.2 排课模块................................................................................... 46 5.7.3 选课模块................................................................................... 47

第六章 总结与展望 ........................................................................................... 48

6.1 结论 ...................................................................................................... 48 6.2 展望 ...................................................................................................... 48 致 谢 ................................................................................................................ 49 参考文献: ............................................................................................................ 50 Abstract: ........................................................................................................... 51

\\

学生选课系统的设计与实现

第一章 绪论

1.1 选课背景和意义

Internet的发展给我们的教育更加现代化,现在网上信息管理是我们现在教育中的一个热点。现在,教师学生跟学校的之间的信息传播只在一指之间,时为我们创造方便快速的途径。在安全性和信息更新化方面存在有一定的不足,各现有系统资料单独建立,共享性差;在以管理者为主体的方式中,信息取舍依赖管理者对于信息的认知与喜好,较不容易掌握用户真正的需求,也因此无法完全满足用户的需求。目前国家的教育体制也正处在不断改革、创新的阶段,我国教育部门充分吸取国外优秀的教学模式,结合国内多年的办学经验,逐步探索出适合中国特色的教学形式,国家教育部面向各级各类学校开展了全面学分制改革。因此,教学管理软件应充分依托校园网,实现教学信息的集中管理、分散操作、信息共享,使传统的教学管理朝数字化、无纸化、智能化、综合化的方向发展,并为进一步实现完善的计算机教学文件管理系统和全校信息系统打下良好的基础。《学生网上选课系统》是高校教学管理系统的重要组成部分。熟悉教学管理工作的全部过程,从教务工作的实际出发,解决工作中关键性的难点问题,并充分利用计算机网络功能,实现教学工作全过程的计算机管理,帮助具体管理人员从复杂烦琐工作中解放出来。使得教学管理走向无纸化办公和规范化、现代化管理。

由于 Internet 具有影响范围广,能够方便快捷的传递信息,具有近乎实时的交互性,本身又是一个巨大无比的信息库等诸多优点。学生网上选课系统,可以提高教师,学生和学校的管理效率。我们的目标是用学生网上选课系统实现最快对全校选修课程发布以及新闻发布,使教师和学生最快知道,创造现代化的学习环境。学生选课是大学的主要管理工作之一,涉及到校、系、师、生的诸多方面,随着教学体制的不断改革,学生选课时的制约因素比较复杂,工作量也很大,而且往往需要在较短的时间内完成。在这里,运用计算机辅助选课,即能实时地对大量选课数据进行检验和统计,十分方便地输出选课结果,同时也避免了人工处理时容易产生的错误。

数据库是从60年代初发展起来的计算机技术。经过四十来年的发展,数据库技术己经趋于成熟。Web数据库在新的Internet环境中发生了很大的变化。就数据应用而言呈现出多样化的空间,如数字图书馆、电子出版物、电子商务、远程教育系统等的出现,给web数据库技术提出了更多、更高的要求。同时,随着国内高校校园网的建设,基于互联网的应用系统的开发正在蓬勃发展并发挥着较大的作用。例如,我国许多高校的网上招生系统,学校的各种管理信息系统,学校选课系统,还有一些医学院校开发出的网上诊所、远程诊断系统等等,都是基于校园网的应用系统。

国外的教学科研软件与国内相比开发的早而且比较成熟。早在七十年代末,美国就建成了NSFNET(国家科学基金网),其课题的申报及课题的进展情况汇报都在网上进行。其网上教学教务管理系统也十分完善,世界各地的学生可以坐在家里通过互联网完成入学报名、选课、考试、毕业论文、取得学位这一学习生活的全过程。目前,国际上已具规模的远程教育学校就有数百所之多,网上教育正在各地发挥着巨大的作用,为世界各国培养出大批人才。所有这些都表明,基于Internet的校园网的应用已深入到校园内的各个方面。

在高等学校的教务管理工作中,课程表的编排是一项十分复杂、棘手的工作。在排课过程中,除了满足大量的制约条件以外,还必须解决许多冲突与矛盾,例如:

1

两位教师不能同一时间在同一班级上课、一位教师不能在同一时间上两门课等等。利用计算机辅助进行课表编排工作,既提高了排课工作的科学性,又可大大减轻管理人员的工作强度,提高工作效率,从而使学校教务管理现代化迈上了一个新台阶。

我国不少高校都实行了学分制,它的核心是允许学生自由选课,即把学习的自主权交给学生。在这里,学生选课时的制约因素比较复杂,工作量也很大,而且往往需要在较短的时间内完成。运用计算机辅助选课,即能实时地对大量选课数据进行检验和统计,十分方便地输出选课结果,同时也避免了人工处理时容易产生的错误。

从系统开发的复杂程度来看,计算机辅助排课与选课是高校教务系统中的两个关键子系统,目前不少教务系统尚未很好地解决排课与选课问题。本文主要对高校教务管理系统中计算机课表编排与选课子系统的基本功能、设计思想、需求分析以及实现技术进行探讨。

学生选课系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对选课信息进行管理,有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

1.2 国内外的发展状况

所谓MIS(管理信息系统--Management Information System)系统,是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统,是一门新兴的科学,其主要任务是最大限度的利用现代计算机及网络通讯技术加强企业的信息管理,通过对企业拥有的人力、物力、财力、设备、技术等资源的调查了解,建立正确的数据,加工处理并编制成各种信息资料及时提供给管理人员,以便进行正确的决策,不断提高企业的管理水平和经济效益。目前,企业的计算机网络已成为企业进行技术改造及提高企业管理水平的重要手段。随着我国与世界信息高速公路的接轨,企业通过计算机网络获得信息必将为企业带来巨大的经济效益和社会效益,企业的办公及管理都将朝着高效、快速、无纸化的方向发展。MIS系统通常用于系统决策,例如,可以利用MIS系统找出目前迫切需要解决的问题,并将信息及时反馈给上层管理人员,使他们了解当前工作发展的进展或不足。换句话说,MIS系统的最终目的是使管理人员及时了解公司现状,把握将来的发展路径。与传统的管理系统相比,在MIS中,处理的对象是抽象成数据的信息,因此,MIS有着自己的巨大优势:

(1) 解决结构化问题。

(2) 以高速度低成本完成数据的处理业务,追求系统处理问题的效率。 (3) 实现一个相对稳定的、协调的工作环境。

(4) 应用科学的、客观的处理方法,符合实际情况。 MIS系统的核心是CS(Client/Server——客户端/服务器)架构,而基于Internet的MIS系统的核心是BS(Browser/Server——浏览器/服务器)架构。BS架构比起CS架构有着很大的优越性,传统的MIS系统依赖于专门的操作环境,这意味着操作者的活动空间受到极大限制;而BS架构则不需要专门的操作环境,在任何地方,只要能上网,就能够操作MIS系统。这也就给交互式信息的产生创造了先决条件。使

2

得通过互联网的信息传递更加的便捷。

MIS系统的飞速发展,技术的成熟以及应用领域的不断扩大,为网上信息的交互提供了一个良好的平台和方便的操作界面。由于MIS系统基于用户需求的设计方法,使得该系统的使用更加的人性化、个人化、更贴近用户。网上选课系统是针对在校学生和教师使用,从学生的角度来说,由于学校教学制度的改革,现在大部分高等院校开始实行的是学生的自主选课模式,传统的教学模式——学生按照学校安排好的课程上课——已经不能适应新型的教学手段,如果仍然通过纸上的方式选课,一方面浪费的大量的人力、物力资源,另一方面浪费时间以及在人为的统计过程中不可避免出现的差错等情况。随着高校人数的增多,这种弊端会越来越多的暴露出来。因此,利用网络,使学生只要在计算机前输入自己的个人选课信息即可完成原来几倍的作业量。从教师的角度来说,同样是节省了大量的工作量,由于教师提出代课申请完成课程发布的工作较学生选课而言更加的复杂,因此通过网上进行课程发布能大幅度的减少教师的工作量,减少错误的发生几率。作为教师,也只要通过自己的电脑来操作即可,不用再奔波于教务处和办公室之间。以MIS系统的构建思想来实现网上选课系统可以最大程度的做到实用性,可扩展性和可维护性相结合,安全性以及规范化原则。

1.3 论文的工作和内容介绍

在学生管理系统的的设计和实现过程中,本程序重点完成后台的数据处理设计与前台界面的实现工作。该系统基于当前高校课程管理与修改高校选课的弊端为基础,结合了目前高校的具体实际需要,利用软件工程的思想和方法,从项目的需求分析开始到设计网站实现。

第一章指明了本课题的研究背景和意义及论文结构。

第二章将对相关的实现技术做简单的介绍包括B/S,SQL Server 2005,以及Ajax等技术。

第三章对学生管理系统的需求进行了分析。

第四章详细论述了系统的各个部分的设计工作,包括整个系统结构的设计,数据库各表的设计。

第五章详细论述了系统的实现过程,各个页面的链接,数据输入的格式。

3

第二章 相关软件及技术介绍

2.1 B/S结构简介

B/S结构(Browser/Server结构)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、速度快、效果优。

随着Internet和WWW的流行,以往的主机/终端和C/S都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是就出现了B/S型模式,即浏览器/服务器结构。B/S模式最大特点是:用户可以通过WWW浏览器去访问Internet上的文本、数据、图像、动画、视频点播和声音信息,这些信息都是由许许多多的Web服务器产生的,而每一个Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中。客户端除了WWW浏览器,一般无须任何用户程序,只需从Web服务器上下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,由Web服务器交给数据库服务器来解释执行,并返回给Web服务器,Web服务器又返回给用户。在这种结构中,将许许多多的网连接到一块,形成一个巨大的网,即全球网。而各个企业可以在此结构的基础上建立自己的Internet。 B/S结构的优点

(1) 具有分布性特点,可以随时随地进行查询、浏览等业务处理。 (2) 业务扩展简单方便,通过增加网页即可增加服务器功能。

(3) 维护简单方便,只需要改变网页,即可实现所有用户的同步更新。 (4) 开发简单,共享性强。

2.2 Microsoft SQL Server 2005简介

SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能。我们可以构建和管理用于业务的高可用和高性能的数据应用程序。SQL Server 2005 数据引擎是本企业数据管理解决方案的核心。此外 SQL Server 2005 结合了分析、报表、集成和通知功能。与 Microsoft Visual Studio、Microsoft Office System 以及新的开发工具包(包括 Business Intelligence Development Studio)的紧密集成使 SQL Server 2005 与众不同。SQL Server 2005 Enterprise Edition(32 位和 64 位)Enterprise Edition 达到了支持超大型企业进行联机事务处理 (OLTP)、高度复杂的数据分析、数据仓库系统和网站所需的性能水平[6]。SQL Server 2005数据库管理9个重要的特点。

(1) 数据库镜像

通过新数据库镜像方法,将记录档案传送性能进行延伸。您将可以使用数据库镜像,通过将自动失效转移建立到一个待用服务器上,增强您SQL服务器系统的可用性。

4

(2) 在线恢复

使用SQL Server 2005版服务器,数据库管理人员将可以在SQL服务器运行的情况下,执行恢复操作。在线恢复改进了SQL服务器的可用性,因为只有正在被恢复的数据是无法使用的,而数据库的其他部分依然在线、可供使用。

(3) 在线检索操作

在线检索选项可以在指数数据定义语言(DDL)执行期间,允许对基底表格、或集簇索引数据和任何有关的检索,进行同步修正。例如,当一个集簇索引正在重建的时候,您可以对基底数据继续进行更新、并且对数据进行查询。

(4) 快速恢复

新的、速度更快的恢复选项可以改进SQL服务器数据库的可用性。管理人员将能够在事务日志向前滚动之后,重新连接到正在恢复的数据库。

(5) 安全性能的提高

SQL Server 2005包括了一些在安全性能上的改进,例如数据库加密、设置安全默认值、增强密码政策、缜密的许可控制、以及一个增强型的安全模式。

(6) 新的SQL Server Management Studio

SQL Server 2005引入了SQL Server Management Studio,这是一个新型的统一的管理工具组。这个工具组将包括一些新的功能,以开发、配置SQL Server数据库,发现并修理其中的故障,同时这个工具组还对从前的功能进行了一些改进。

(7) 专门的管理员连接

SQL Server 2005将引进一个专门的管理员连接,即使在一个服务器被锁住,或者因为其他原因不能使用的时候,管理员可以通过这个连接,接通这个正在运行的服务器。这一功能将能让管理员,通过操作诊断功能、或Transact—SQL指令,找到并解决发现的问题。

(8) 快照隔离

我们将在数据库层面上提供一个新的快照隔离(SI)标准。通过快照隔离,使用者将能够使用与传统一致的视野观看数据库,存取最后执行的一行数据。这一功能将为服务器提供更大的可升级性。

(9) 数据分割

数据分割 将加强本地表检索分割,这使得大型表和索引可以得到高效的管理。 增强复制功能

对于分布式数据库而言,SQL Server 2005提供了全面的方案修改(DDL)复制、下一代监控性能、从甲骨文(Oracle)到SQL Server的内置复制功能、对多个超文本传输协议(http)进行合并复制,以及就合并复制的可升级性和运行,进行了重大的改良。另外,新的对等交易式复制性能,通过使用复制,改进了其对数据向外扩展的支持。

2.3 IIS 6.0 和 Windows Server 2003相关简介

Internet Information Server的缩写为(IIS)是一个World Wide Web server。Gopher server和FTP server全部包容在里面。 IIS意味着你能发布网页,并且有ASP(Active Server Pages)、JAVA、VBScript产生页面,有着一些扩展功能。IIS支持一些有趣的东西,像有编辑环境的界面(FRONTPAGE)、有全文检索功能的(INDEX SERVER)、有多媒体功能的(NET SHOW)

另外,IIS是随Windows NT Server 4.0一起提供的文件和应用程序服务器,是在Windows NT Server上建立Internet服务器的基本组件。它与Windows NT Server完全集成,允许使用Windows NT Server内置的安全性以及NTFS文件系统建立强大灵活的Internet/Intranet站点。

IIS(Internet Information Server,互联网信息服务)是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于

5

网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。

IIS的作用:在同一时间内允许打开的网站页面数,打开一个页面占一个IIS,打开一个站内框架页面占2到3个IIS;若图片等被盗链,在其它网站打开本站图片同样占一个IIS。假若设置参数为50个IIS,则这个站允许同时有50个页面被打开。但要在同一时间(极短的时间)有50个页面被打开,需要50个人同时操作,这个概率还是比较低的。所以,100个IIS支持日ip1000(同时访问网站人数必定远低于1000人)以上都不是很大问题,除非网站被盗链或框架引发其它消耗。

IIS 6.0为网络应用服务器的管理提供了许多新的特性,包括实用性、可靠性、安全性与可扩展性。IIS 6.0也增强了开发和国际化支持,Windows Server 2003和IIS 6.0为您提供了一整套最可靠、高效、连接的一体化网络应用解决方案。 Internet 信息服务(IIS)6.0和微软Windows Server 2003 为网络应用程序服务器管理引入了许多新的特征;更强的性能和扩展性;高效性,高可靠性和安全性。进行了许多重大的结构改进以满足客户需求。

IIS 6.0 提供广泛的新特性和技术和使它更为可靠、可扩展和安全、可管理,加强了对开发提供的技术特性支持。

IIS 6.0增强了安全性,为了尽量减少系统被攻击的危险,在默认情况下IIS 6.0是不会被安装在Windows Server 2003中的,管理员需要手动进行安装,IIS 6.0在被锁定状态中只为静态内容(.html .jpg .bmp等等)提供服务,通过网络服务扩展节点,网站管理员可根据企业的需求起用或禁止IIS功能。

越来越多的客户在一个Web服务器上跑多个应用程序或者多个站点,这对如今的Web服务器无疑提出了特定的需求,如果一个ISP在同一服务器上有两个公司的站点甚至互相争夺资源,那么他必须保证隔离两个应用程序相互独立运行,更为重要的是——他必须确保一个有恶意的应用程序管理员无法访问其它应用程序的数据,完全隔离是绝对必要的。IIS6.0可以通过配置工作进程验证实现这个级别的隔离。此外,IIS6.0还可以通过一些如控制带宽、分配CPU线程或者基于内存的回复功能来制造环境,让同一服务器运行竞争激烈的多个应用程序。

2.4 ASP的特点与功能

几年以前,业界在动态主页发布方面唯一的渠道是CGI(Common Gateway Interface) 模式。随后出现的 ISAPI、NSAPI和JDBC等技术方案虽较CGI进步,但从企业网(Intranet )的技术现实来衡量,这些方案仍不适用于进行快速开发、及时维护和大面积的技术普及。ASP技术的出现,使动态交互式Web主页设计成为一件轻松愉快的工作。只要几行脚本语句,就能将后台的数据库信息发布到Internet/Intranet上, 在编程和网页脚本的可读性方面大大优于传统的技术方案。

ASP是 Active Server Pages(动态服务器主页)的缩写,它是一个服务器端的脚本环境,在站点的Web服务器上解释脚本,可产生并执行动态、交互式、高效率的站点服务器应用程序。ASP可以胜任基于微软Web服务器的各种动态数据发布。 2.4.1 ASP方法与传统静态主页的区别

把信息系统纳入Internet/Intranet 的框架之后,首先要解决的问题是通过网页访问后台数据库信息。所有应用程序都被分割为页面的形式,用户的交互操作是以提交表单等方式来实现的,这就要求Web 站点具有很强的动态数据发布能力。然而,目前Web的服务,仍以提供\静态\主页内容为主。所谓\静态\指的就是站点的主页内容是\固定不变\的,无法根据用户的需求和实际情况作出相应的变化。当浏览器通过Internet的HTTP协议向站点的Web服务器申请主页时,站点服务器就会将已设计好的静态的HTML文件传送给浏览器。若要更新主页的内容, 只能用非在线的手动方式更新HTML的文件数据。

ASP所设计出的是动态主页,可接收用户提交的信息并作出反应, 其中的数据可

6

随实际情况而改变,无须人工对网页文件进行更新即可满足应用需要。例如:当在浏览器上填好表单并提交HTTP请求时,可以要求在站点服务器上执行一个表单所设定的应用程序,而不只是一个简单的HTML文件。该应用程序分析表单的输入数据,根据不同的数据内容将相应的执行结果(通常是数据库查寻的结果集)以HTML的格式传送给浏览器。数据库的数据可以随时变化,而服务器上执行的应用程序却不必更改,客户端得到的网页信息会始终保持新鲜的魅力。

当用户申请一个*.asp主页时,Web服务器响应该HTTP请求,调用ASP引擎,解释被申请文件。当遇到任何与ActiveX Scripting 兼容的脚本(如VBScript和JavaScript)时,ASP引擎会调用相应的脚本引擎进行处理。若脚本指令中含有访问数据库的请求,就通过ODBC与后台数据库相连,由数据库访问组件执行访库操作。ASP 脚本是在服务器端解释执行的,它依据访库的结果集自动生成符合HTML语言的主页, 去响应用户的请求。所有相关的发布工作由Web服务器负责。 2.4.2 ASP的特点与功能

从软件的技术层面看,ASP有如下的特点:

(1)无需编译,ASP脚本集成于HTML当中,容易生成,无需编译或链接即可直接解释执行。

(2)易于生成使用常规文本编辑器(如WINDOWS下的记事本),即可进行*.asp页面的设计。若从工作效率来考虑,不妨选用具有可视化编辑能力的Visual InterDev。

(3)独立于浏览器 用户端只要使用可解释常规HTML码的浏览器, 即可浏览ASP所设计的主页。ASP脚本是在站点服务器端执行的,用户端的浏览器不需要支持它。因此,若不通过从服务器下载来观察*.asp 主页,在浏览器端见不到正确的页面内容。

(4)面向对象在ASP脚本中可以方便地引用系统组件和ASP的内置组件,还能通过定制 ActiveX Server Component(ActiveX服务器组件)来扩充功能。

(5) 与任何ActiveX scripting 语言兼容除了可使用VBScript 和JavaScript语言进行设计外,还可通过Plug-in的方式,使用由第三方所提供的其它scripting 语言。

(6) 源程序码不会外漏 ASP脚本在服务器上执行,传到用户浏览器的只是ASP执行结果所生成的常规HTML码,这样可保证辛辛苦苦编写出来的程序代码不会被他人盗取。

从应用的层面看,ASP有如下的功能:

(1)处理由浏览器传送到站点服务器的表单输入。

(2)访问和编辑服务器端的数据库表。使用浏览器即可输入、更新和删除站点服务器的数据库中的数据。

(3)读写站点服务器的文件,实现访客计数器、座右铭等功能。 (4)提供广告轮播器、取得浏览器信息、URL表管理等内置功能。 (5)由cookies读写用户端的硬盘文件,以记录用户的数据。

(6)可以实现在多个主页间共享信息,以开发复杂的商务站点应用程序。 (7)使用VBScript或JavaScript等简易的脚本语言,结合HTML码,快速完成站点的应用程序。通过站点服务器执行脚本语言,产生或更改在客户端执行的脚本语言。

(8)扩充功能的能力强,可通过使用Visual Basic、Java、Visual C++ 等多种程序语言制作ActiveX Server Component以满足自己的特殊需要[10] 。

2.5 JSP技术介绍

JSP是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。该技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。 JSP规范是Web服务器、应用服务器、交易系统、以及开发工具供应商间广泛合作的结果。

7

在传统的网页HTML文件(*html,*.html)中加入Java程序片段(ScriptServlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plug in,无ActiveX,无Java Applet,甚至无Frame。

JSP技术在多个方面加速了动态Web页面的开发: 一、将内容的生成和显示进行分离

使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。

二、强调可重用的组件

JSP 作为一个很好的动态网页开发语言得到了越来越广泛的使用,在各类JSP 应用程序当中,JSP+JavaBean 的组合成为了一种事实上最常见的JSP程序的标准。JavaBean 是描述Java 的软件组件模型,有点类似于 Microsoft的COM 组件概念。在Java 模型当中,通过JavaBean 可以无限扩充Java 程序的功能,通过JavaBean 的组件可以快速地生成新的应用程序。对于程序员来说,最好的一点就是 JavaBean可以实现代码的重复利用。

JavaBean 是一种基于 Java 的软件组件。 JSP 对于在 Web 应用中集成 JavaBean 组件提供了完善的支持。这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为 JSP 应用带来了更多的可伸缩性。 JavaBean 组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据提取等。如果我们有三个 JavaBean ,它们分别具有显示新闻、股票价格、天气情况的功能,则创建包含所有这三种功能的 Web 页面只需要实例化这三个 Bean ,使用 HTML 表格将它们依次定位就可以了。利用跨平台运行的 JavaBean 组件, JSP 为分离处理逻辑与显示样式提供了卓越的解决方案。

2.6 Ajax技术简介

AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。

许多重要的技术和AJAX开发模式可以从现有的知识中获取。例如,在一个发送请求到服务端的应用中,必须包含请求顺序、优先级、超时响应、错误处理及回调,其中许多元素已经在Web服务中包含了,就像现在的SOA。AJAX开发人员拥有一个完整的系统架构知识。同时,随着技术的成熟还会有许多地方需要改进,特别是UI部分的易用性。

AJAX开发与传统的C/S开发有很大的不同。这些不同引入了新的编程问题,最大的问题在于易用性。由于AJAX依赖浏览器的JavaScript和XML,浏览器的兼容性和支持的标准也变得和JavaScript的运行时性能一样重要了。这些问题中的大部分来源于浏览器、服务器和技术的组合,因此必须理解如何才能最好的使用这些技术。

综合各种变化的技术和强耦合的客户服务端环境,AJAX提出了一种新的开发方

8

式。AJAX开发人员必须理解传统的MVC架构,这限制了应用层次之间的边界。同时,开发人员还需要考虑C/S环境的外部和使用AJAX技术来重定型MVC边界。最重要的是,AJAX开发人员必须禁止以页面集合的方式来考虑Web应用而需要将其认为是单个页面。一旦UI设计与服务架构之间的范围被严格区分开来后,开发人员就需要更新和变化的技术集合了。

AJAX的最大机遇在于用户体验。在使应用更快响应和创新的过程中,定义Web应用的规则正在被重写;因此开发人员必须更注重用户。现在用户已经逐渐习惯如何使用Web应用了。例如用户通常希望每一次按钮点击会导致几秒的延迟和屏幕刷新,但AJAX正在打破这种长时间的状况。因此用户需要重新体验按钮点击的响应了。

可用性是AJAX另人激动的地方而且已经产生了几种新颖的技术。其中最引人注目的是一种称为“黄色隐出”的技术,他在数据更新之前时将用户界面变为黄色,更新完成后立刻恢复原来的颜色。AJAX开发人员将用户从Web应用的负载中解放出来;小心地利用AJAX提供的丰富接口,不久桌面开发人员会发现AJAX是他们的方向。

(1) JavaScript

如名字所示AJAX的概念中最重要而最被忽视的是他也是一种JavaScript编程语言。JavaScript是一种粘合剂使AJAX应用的各部分集成在一起。在大部分时间,JavaScript通常被服务端开发人员认为是一种企业级应用不需要使用的东西应该尽力避免。这种观点来来自以前编写JavaScript代码的经历:繁杂而又易出错的语言。类似的,他也被认为将应用逻辑任意地散布在服务端和客户端中,这使得问题很难被发现而且代码很难重用。在AJAX中JavaScript主要被用来传递用户界面上的数据到服务端并返回结果。XMLHttpRequest对象用来响应通过HTTP传递的数据,一旦数据返回到客户端就可以立刻使用DOM将数据放到网面上。

(2)XMLHttpRequest

XMLHttpRequest对象在大部分浏览器上已经实现而且拥有一个简单的接口允许数据从客户端传递到服务端,但并不会打断用户当前的操作。使用XMLHttpRequest传送的数据可以是任何格式,虽然从名字上建议是XML格式的数据。

XPath可以访问XML文档中的数据,但理解XML DOM是必须的。类似的,XSLT是最简单而快速的从XML数据生成HTML或XML的方式。许多开发人员已经熟悉Xpath和XSLT,因此AJAX选择XML作为数据交换格式有意义的。XSLT可以被用在客户端和服务端,他能够减少大量的用JavaScript编写的应用逻辑。

(3)CSS

为了正确的浏览AJAX应用,CSS是一种AJAX开发人员所需要的重要武器。CSS提供了从内容中分离应用样式和设计的机制。虽然CSS在AJAX应用中扮演至关重要的角色,但他也是构建创建跨浏览器应用的一大阻碍,因为不同的浏览器厂商支持各种不同的CSS级别[11] 。

传统的web应用允许用户填写表单(form),当提交表单时就向web服务器发送一个请求。服务器接收并处理传来的表单,然后返回一个新的网页。这个做法浪费了许多带宽,因为在前後两个页面中的大部分HTML代码往往是相同的。由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。

与此不同,AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的web service接口,并在客户端采用JavaScript处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。

使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。

Ajax不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。就像DHTML应用程序那样,Ajax应用程序必须在众多不同的浏览器和平台上经过严格

9

的测试。随着Ajax的成熟,一些简化Ajax使用方法的程序库也相继问世。同样,也出现了另一种辅助程序设计的技术,为那些不支持JavaScript的用户提供替代功能。

2.7 Dreamweaver 简介

Dreamweaver是美国MACROMEDIA公司开发的集网页制作和网站管理于一身的所见即所得网页编辑器, 是一种可视化网页制作工具,利用它可以轻松地制作出跨越平台限制和跨越浏览器限制的动态网页。

Dreamweaver 可以开发HTML、XHTML、ColdFusion、ASP、ASP.NET、JSP或PHP网站。通过平面设计工具以及代码提示、标签编辑器、可扩展色彩代码、标签选择器、片段和代码检验这类编码特性来实现对代码和设计的管理。新集成的工作空间可以与Macromedia Flash MX和Fireworks MX共享,其中包括了标示签的文档窗口、可放到dock中的画板组、可定制的工具条和集成的文件浏览。Dreamweaver 还包括有预建的布局和代码,其中有网站结构、表格、可访问的模板以及为客户端交互应用而提供的JavaScript。

为翻新现有网站以及创建下一代应用程序,Dreamweaver 还支持新标准和新的网页技术,带有对XML、网页服务和增强可访问性的支持。Dreamweaver MX为新的ColdFusion MX特性提供全套的支持,包括增强的代码编辑和开发功能、集成的调试功能、可视化布局功能和照片打印功能。

10

第三章 系统统计

3.1 选课系统的可行性分析

3.1.1 技术可行性

本系统仅需要一台装有windows操作系统的计算机即可,对机器本身没有太高的要求,一般当前学校或个人电脑完全可满足要求。对于软件技术要求,现在的程序设计语言已非常成熟,要运用HTML样式,图形图象制作工具来制作生动活泼的网页及美观的图形文件或动画文件,数据库使用对性能要求低廉的MySQL。 3.1.2 经济可行性

由于本系统是为学生选课管理使用的系统,装上该应用软件,即可使用系统,系统成本主要集中在系统软件的开发上,当系统投入运行后可以为学校节约大量的人力、物力。所带来的效益远远大于系统软件的开发成本,在经济上完全可行。 3.3.3 操作可行性

界面设计时充分考虑管理人员的习惯,使得操作简单;数据录入迅速、规范、可靠;统计准确;制表灵活;适应力强;容易扩充。第2章内容主要是:系统需求分析包括,现有系统介绍;系统的实体分析,实体关系图。

3.2 业务分析

3.2.1 系统需求分析

学生选课管理系统,主要是针对学生的选课进行需求分析的。首先,学生选课的前提是课程已经由教务,或者教师进行科学的,无冲突的排课后才可以进行的。因此,在选课功能之前,排课成为了选课功能的前提。而这两个功能所涉及的用户为:学生,教师,管理员。而他们的信息也应该被合理的管理,这也决定了本系统中必然的三个功能:登陆管理,即用户信息管理;排课控制;选课控制。

通过对各个高校现存选课需求,确定了本系统中用户应该含有的三类用户:管理员,教师,学生。各类用户描述如下:

(1) 管理员

描述:管理员主要是对整个系统进行维护,包括设置选课时段,选课规则,如选课前,学生不可登陆,而选课后,学生不可更改,只能查看。管理员可以对选课结果进行统计;查询选课情况,对学生的选课申请进行审查;进行用户管理;排课,发布选课信息等。

(2) 教师

描述:教师主要是查询课程基本情况,备选情况,以及选课学生的基本情况。 (3) 学生

描述:在选课系统中的主要功能是查询课程,教室信息,提交选课申请或删除选课申请,查询选课情况,登陆系统,进行个人信息修改等于选课有关的活动。

根据上面的叙述,对本系统进行了划分,主要分为三个功能模块:登陆控制,排课控制和选课控制,相应的对应三个之系统,登陆系统,排课系统与选课系统。其中,登陆系统是整个系统的前提,主要是区分登陆者(管理员,教师或是学生)不同身份,并给予不通的权限,在页面中根据部通身份判断其相应的权限,进行不同的操作。排课系统是本系统的基础,主要提供给管理员使用,主要功能是合理的对课程进行编排,在本系统中主要是:设定选课时间段,进行排课并检测排课冲突,发布选课信息。选课子系统是本系统最终要实现的功能,主要供学生使用,包括课程浏览,选课,退课等于选课有关的一切操作。

11

3.2.2 业务流程分析

由前面的分析,可知本系统分为三个子系统,即登陆子系统,选课子系统,排课子系统。下面将会逐个分析各个系统业务流程。

首先,经过上面的需求分析,管理员的主要操作是登陆,排课,发布排课信息;学生主要操作室登陆,选课;教师的主要操作室查看课程信息,返汇意见。由此得出网络系统选课总体业务流程图如图3-1。

开始管理员课程信息选课信息登陆排课选课结束选课公告排课信息意见返汇登陆学生教师登陆

图3-1 系统总体业务流程图

(1)登陆系统业务流程分析

登陆系统主要功能是验证用户身份,并取得相对应的用户权限,返回正确的页面,进行合法的系统操作。登陆类型主要为管理员,教师,学生。当用户输入用户信息后,系统会查询相应的用户信息数据来检测用户信息的合法性,并根据类型返回相应的页面,以及赋予相应的权限操作。其业务流程如图3-2。

12

开始管理员教师学生登录登录登录教师信息管理员信息学生信息验证是否通过返回对应页面进行操作登陆失败退出结束 图3-2 登录系统业务流程图

(2)排课系统业务流程分析

排课系统在本系统中主要是完成课程可选时间段,限制课程最大选择人数,排课并检测排课冲突(如时间冲突),发布选课信息等功能。其业务流程图如图3-3。

13

课程信息开始管理员教室信息登陆,进入排课系统教师信息院系信息对课程进行排列检测排课冲突设置选课课时间段选课时间信息排课信息排课信息备份排课信息结束发布 图3-3 排课系统业务流程图 (3)选课系统业务流程分析

选课功能是本系统的主要功能,包括查询课程与已选选课信息,提交选课信息,退课等功能。其业务流程图如图3-4。

14

开始学生进入选课排课信息选课公告开始选课检测选课冲突完成选课,提示成功退课学生选课信息结束图3-4 学生选课业务流程图

3.3 数据分析

学生成绩管理系统的数据流程:首先由教师或系统管理员等有录入权限的用户将各自权限范围内的信息进行录入处理,然后保存信息到数据库中。有权限的人可以对这些库信息进行修改和删除处理。所有用户均可以进行信息查询和统计,有权限用户还可以基于已有信息进行奖学金的评定处理过程,评定结果可以报表打印。 根据前面业务流程分析,可以得到系统的数据流图如图3-5。

选课结果管理员排课结果教师返汇选课管理系统选课信息选课结果学生选课结果排课结果教师返汇教师图3-5 系统顶层数据流图

用户数据流:由用户输入用户名,密码,与用户类型信息(管理员,教师,学

15

生),系统进行验证输入信息,查询用户信息表,如果正确,进入系统进行正常操作,进行排课,发布公告,修改信息(密码),最后退出;如果错误,则直接提示并退出系统。

以管理员为例,数据流图如图3-6。

验证失败系统管理员输入登录信息用户名,密码系统查询管验证通过理用户信息表进入系统退出用户名,密码管理用户信息表输入正确信息修改信息图3-6 管理员登陆数据流图

排课系统数据流分析:排课的数据以课程信息表,教室信息表,教师信息表,院系信息表的数据为基础,首先进行排课,将排课的结果进行冲突检测(主要检测:时间冲突,地点冲突等)。如果有冲突,则会重新进行排课,知道无冲突为止。若无冲突,则会更新排课表,并产生选课通知。排课数据流图如图3-7。

课程信息课程信息表排课结果对课程进行排课无冲突备份备份排课表备份检测排课冲突有冲突教室信息表教室占用信息院系名教师名院系信息表选课通知表排课表排课表教师信息表备份排课表图3-7 排课过程流程图

选课系统数据流分析:选课信息以排课表数据,选课通知表,教师返回表数据为基础进行查看,另外,当学生选择后,系统会对这门课程信息进行冲突检测,如果有冲突,则会选课失败,提示用户重新选课,如果没有则会更新学生选课表,提示成功。用户学生选课数据流图如图3-8。

16

新增选课信息退课排课表变化的选课信息学生选课表进行选课无冲突删除该选课信息选课通知表查询选课信息课程号教师返汇表冲突

图3-8 选课过程流程图

综上所述,得出学生选课管理系统的总体数据流图如图3-9。 选课结果选课排课结果与选课公告登陆信息学生学生选课表选课结果管理员返汇信息信息登陆课程表排课排课公告排课结果排课结果教师返汇表排课表返汇信息写返回排课结果与选课公告信息登陆信息教师排课结果选课公告图3-9 学生选课管理系统总体数据流图

3.4 功能模块分析

模块设计的主要方法是结构化方法,主导思想是以系统的逻辑功能设计和数据流关系为基础,采用“自顶向下,逐步求精”的设计方法,将本系统分解为功能明确,易于修改的模块结构。

模块划分如图3-10。

17

网上选课管理系统登录排课选课退出修改信息师根,据学身份生()管进理行员登,陆教对未排课课的课程进行排已排排课表备份排课表插入排课信息发布选课通知查看可选课程信息提交选课申请退课显示学生课程表图3-10 系统功能模块图 学生选课系统需要满足来自三方面的需求,学生、教师、管理员。

学生的需求是查询院系的课程、学生选课情况及学生信息的修改;教师对选课系统学生选课情况进行操作,同时形成学生选课查看确认;学生可以直接查看选课情况,学生可以根据本人学号和密码登录系统,还可以进行本人学科成绩情况的查询和维护部分个人信息。一般情况下,学生只应该查询和维护本人的选课情况和个人信息,若查询和维护其他学生的选课及成绩查询信息,就要知道其他学生的学号和密码。这些是很难得到的,特别是密码,所以不但满足了学生的要求,还保护了学生的个人隐私。

教师的需求是及时的获知排课信息,并且及时的将返汇信息交给管理员。 管理员的需求是可以正确的,合理的对现存课程进行排课,并且会备份产生的排课表,以备下次检测冲突时使用。排课后,会及时的将课程信息发布出去,通知同学对课程在规定的选课时段内进行选课。 教师与管理员的信息管理需求与学生类似,这里不再赘述。综上需求,可以将选课管理系统划分为三个模块,即登陆信息管理,排课信息管理,选课信息管理。

3.5 网络拓扑结构分析

网络拓扑结构图如图3-11。

18

应用服务器应用服务器数据库服务器数据库服务器图3-11 网络拓扑结构

具体分析:本系统是基于B/S模式的,严格上讲属于网站建设。所以本系统需

要有数据库服务器作为数据存储,应用服务器作为前台显示与数据中转。

3.6 安全性分析

随着Internet的发展,Web技术日新月异,人们已经不再满足于静态HTML技术,更多的是要求动态、交互的网络技术。继通用网关接口(CGI)之后,微软推出的IIS+ASP的解决方案作为一种典型的服务器端网页设计技术,被广泛应用在网上银行、电子商务、网上调查、网上查询、BBS、搜索引擎等各种互联网应用中。与此同时,SQL Server数据库作为微软推出的新一代大型数据库拥有数据遍历与查询速度较快,管理方便,具有较大的用户群体。本系统采用的是IIS + ASP + SQL Server,为当前主流模式。但是,该解决方案在为我们带来便捷的同时,也带来了严峻的安全问题。

在本系统中,主要是在登陆时用session验证,与数据库的安全访问来避免网络攻击。

程序设计中容易被忽视浏览器地址问题。ASP代码使用表单实现交互,而相应的内容会反映在浏览器的地址栏中,如果不采用适当的安全措施,只要记下这些内容,就可以绕过验证直接进入某一页面。例如在浏览器中敲入“...page.asp?x=1”,即可不经过表单页面直接进入满足“x=1”条件的页面。因此,在验证或注册页面中,我们采用了Session验证避免这种问题,如果当前用户的session不存在,程序会自动终止本次交互,防止了随意访问页面。 另外,SQL注入攻击也是网上极为常见的攻击方式,当用户输入信息后(主要是在登陆时),系统会根据已设定好的数据格式进行检测,如果不符合会提示用户重新输入。并且在利用合法数据进行查询或插入时,也会用参数格式转换(例如加单引号)防止输入数据包含关系表达式,以至于会造成数据泄漏。

19

第四章 系统统计

4.1 系统结构统计

根据上章的分析,可以知道本系统的数据流向为:用户界面输入数据,页面接收数据,页面处理数据,页面向后台发送数据,后台对数据进行处理,根据数据的格式区别生成SQL查询语句,对数据库进行操作,数据返回给用户。

由此可以得出,本系统的结构设计如图4-1。 用户浏览器视图(aspx)Action(JavaScript)Action(调用dll)业务逻辑接口数据操作图4-1 系统结构设计图 系统结构设计主要包括三层:表示层,业务逻辑层,持久层和数据库层。 表示层主要的任务是与用户接触,并可以对用户输入的数据进行一次初步的处理,使其格式适应业务逻辑层处理,包括前台JavaScript与后台页面dll;业务逻辑层主要的任务是对数据进行二次处理,并生成Sql操作语句,本系统主要的排课,选课算法也在其中;持久层的主要任务是根据业务逻辑层的数据对数据库进行操作,包括对数据库各个表的查询,修改,删除,添加操作。 数据库层的设计会在下面介绍。

4.2 数据库设计

学生选课管理系统的要求是要准确快捷地管理学生的信息。学生隶属班级,学院;学生需要有课程,学分,成绩,而这些又都要靠教师或者管理人员来添加。由此总结出如下需求信息:

20

? ? ? ?

用户分为管理员用户、教师用户和学生用户。 一个学生有多门课,一门课对应多个学生。

一个教师可以教授多门课程,一门课程可以有多个教授来教授。 管理员可以发布新闻

经过对上述系统功能的分析和需求总结,设计如下数据项: ? 管理员信息:用户名、密码。

? 学生信息: 学生ID、姓名、性别、班级、年龄、学院、所在系 ? 教师信息: 教师ID、姓名、性别、年龄

? 课程信息: 课程ID、名称、上课时间、上课地点、学分、上课教师 ? 班级信息: 班级ID、名称、班主任

? 新闻信息: 新闻ID、新闻标题、新闻内容 4.2.1 概念结构设计

由上章知,系统分为三个子模块:登陆模块,排课模块,选课模块。下面将介绍排课模块与选课模块的结构设计。

排课模块涉及实体及其属性: (1)管理员:用户名,密码;

(2)课程:编号,专业编号,学分,限选性质,教师编号,考察方式,最大选课人数,课程名称,开课院系编号,面向年级;

(3)选课通知:通知编号,通知标题,通知内容,通知时间,是否为必选; (4)选课时段:开始选课时间,终止选课时间。 ER图如图4-2。 时间用户名名称学分考察方式最大选课人数面向年纪 管理员N排课N课程密码地点开课院系图4-2 排课模块ER图 选课模块涉及实体及其属性:

(1)学生:用户名,密码,用户类型,用户编号;

(2)课程:编号,专业编号,学分,限选性质,教师编号,考察方式,最大选课人数,课程名称,开课院系编号,面向年级。

ER图如图4-3。

21

成绩学生M选课图 4-3 选课ER图

N课程 结合两个上述两个ER图,得出总体ER图如图4-4。

选课时段N设置时间N教师N发布1选课通知成绩选课NN排课N课程地点M学生图4-4 选课系统总体ER图 4.2.2 逻辑结构设计

根据以上实体关系分析,设计出本系统的数据库模型,为了满足登陆信息管理,排课信息管理与发布,学生选课信息的管理与操作的需要,设计出14个数据表格。介绍如下:

(1)排课表(Arrange):该表格需记录排课相关信息,包括排课编号,教室编号,上课时间,课程设置号等。

(2)院系信息表(DeptInfo):该表记录了开课院系的相关信息,包括院系编号,院系名称等。

(3)教学楼信息表(BuildingInfo):该表记录了所有教学楼的相关信息,包

22

括教学楼编号,教学楼名称。

(4)教室信息表(ClassRoomInfo):该表记录了所有可供上课教室的相关信息,包括教室编号,教室名称,教学楼编号,教室属性等。

(5)备份排课记录表(BackUpArrangeList):该表记录了所有备份表信息,包括表号,备份排课记录ID。

(6)选课时间段信息表(CourseSelectInterval):该表是控制学生选课的关键部分,包括开始选课时间与终止选课时间。

(7)选课通知表(CourseSelectNotice):该表的目的是为排课者及时发布选课信息而建的,包括通知编号,通知标题,内容,时间,还有是否为关键通知。

(8)选课信息表(CourseSelect):当学生成功选课后,会在该表存储相应的信息,包括排课标号,学生编号。

(9)开课信息表(CourseSettingInfo):该表列出了选课表的详细信息,包括课程编号,面向专业号,学分,限选性质,教师编号,考察方式,备注,最大限选人数,课程编号,开课院系号,面向年级。

(10)课程详细信息表(CourseInfo):该表记录课程的内容的详细介绍,包括课程编号,课程名称,课程介绍。

(11)教师返汇信息表(FeedBack):该表记录教师关于排课的返汇信息,包括返汇信息编号,返汇信息标题,返汇信息内容,教师ID,返汇时间等。

(12)学生信息表(StrudentInfo):该表存储所有在校地学生信息,包括学生学号,姓名,所属院系编号,专业号等。

(13)教师信息表(TeacherInfo):该表记录了所有在校教师的信息,包括教师编号,教师姓名,所属院校编号等。

(14)系统用户信息表(UserInfo):该表记录了所有登陆过本系统的用户信息(教师,学生,管理员),包括用户类型,用户编号,用户名,用户密码等信息。 4.2.3 数据表设计

根据上面的设计,表结构如下: (1)排课表(Arrange)

本表记录排课相关信息,包括排课编号,教室编号,上课时间,课程设置号等,结构如表4.1。

表4.1 Arrange

字段 Arrange_Id ClassRoom_Id Setting_Id Day_Time

说明 排课编号 教室编号 课程设置号 上课时间

类型 Int Int Int Nvarchar(300)

备注 主键,不为空 外键,不为空 外键,不为空

不为空

(2)课程详细信息表(CourseInfo)

该表记录课程的内容的详细介绍,包括课程编号,课程名称,课程介绍。结构如表4.2。

表4.2 CourseInfo

字段 Course_Id Course_Name Introduction

说明 课程设置编号 课程名称 课程介绍

类型 Int Nchar(120) Nvarchar(300)

备注 主键,不为空

不为空 不为空

(3)备份排课记录表(BackUpArrangeList)

该表记录了所有备份表信息,包括表号,备份排课记录ID。结构如表4.3。

23

表4.3 BackUpArrangeList

字段 List_Id Backup_Title

说明 表号 备份排课记录表

类型 Int Varchar(20)

备注 主键,不为空

不为空

(4)开课信息表(CourseSettingInfo)

该表列出了选课表的详细信息,包括课程编号,面向专业号,学分,限选性质,教师编号,考察方式,备注,最大限选人数,课程编号,开课院系号,面向年级。结构如表4.4。

表4.4 CourseSettingInfo

字段 Setting_Id Orient_Dept_Id

Score Select_Limit Teacher_Id Test_Method Comment Selector_No_Limit

Course_Id Dept_ID Grade_ID

说明 课程编号 面向专业编号

学分 限选性质 教师编号 考察方式 备注 最大选课人数 课程编号 开课院系编号 面向年纪

类型 Int Varchar(20)

TinyInt Nchar(4) Varchar(20) Nchar(4) Nvarchar(200) Smallint Char(20) Char(10) TinyInt

备注 主键,不为空 不为空 不为空 不为空 不为空 不为空

默认值为“无”,可为空

不为空 不为空 不为空 不为空

(5)返汇信息表(FeedBack)

该表记录教师关于排课的返汇信息,包括返汇信息编号,返汇信息标题,返汇信息内容,教师ID,返汇时间。结构如表4.5。

表4.5 FeedBack

字段 FeedBack_Id FeedBack_Title FeedBack_Content FeedBack_User_Id FeedBack_Time

说明 返汇信息编写 返汇信息标题 返汇信息内容 用户Id 返汇时间

类型 Smallint Nvarchar(20) Nvarchar(3000) Varchar(20) datetime

备注 主键,不为空

不为空 不为空 不为空 不为空

(6)选课信息表(CourseSelect) 当学生成功选课,会在该表存储相应的信息,包括排课标号,学生编号。结构如表4.6。

表4.6 CourseSelect

字段 Arrange_Id Student_Id

说明 排课编号 学生学号

类型 Int Varchar(20)

备注 不为空 不为空

24

(7)系统用户信息表(UserInfo) 该表记录了所有登陆过本系统的用户信息(教师,学生,管理员),包括用户类型,用户编号,用户名,用户密码。结构如表4.7。

表4.7 UserInfo

字段 UserInfo_Type UserInfo_Id UserInfo_Name Password

说明 用户类型 用户编号 用户名 用户密码

类型 Char(1)

Int Varchar(20) Varchar(20)

备注 不为空 不为空 不为空 不为空

根据以上对各表的分析,可以正确建立数据库,确定各表之间的关系。在建立各表过程中应尽量避免冗余,并且在各个关联表间建立约束,以从数据库本身避免数据冲突,保持数据的完整性与一致性。

4.3 功能设计

由前面的分析可知,系统分为三个子模块:登陆,排课,选课。下面,会根据不同模块,逐个进行功能讲解。

首先是登陆部分: (1)登陆身份验证 本系统中的用户有三类:管理员,教师,学生。当不同的用户登陆到本系统中选择不同的用户类型时,系统会为他们分配不同的权限。管理员的权限是最大的,主要拥有排课,设置选课时段,发布选课信息的权限。教师的主要权限是返汇排课信息。学生的主要权限是进行选课,退课。

(2)修改密码

(3)用户登陆系统后,可以修改原来的密码。 (4)退出

(5)每个用户如单击退出系统,则会退出本系统,用户Session中的信息也会随着删除。

排课部分:

(1)已排排课表

管理员在排课过程中,可以点击已排排课表,来显示已经排好的选课信息,并可对此信息进行增,删,改,查。在管理员提交排课表后,系统会进行检测,以确保排课方案中没有时间冲突,和教室冲突。如果有冲突,系统会提示排课者具体冲突产生的原因,并提示改正。

(2)备份排课表

管理员对排课信息进行修改后,可以点击备份排课表,对新的排课信息进行备份。 (3)导入排课表 管理员可以把以前的排课信息导入到排课表,这样可以增加排课灵活性,和方便性。此外,管理员还可以把以前的排课信息删除。

(4)对未排的课程进行排课 管理员可以对课程信息表,院系信息表,教师表中的信息进行联合查询后,在教学楼信息表中选择相应的教师,并选择相应的时间。在管理员提交排课表后,系统应当确保该排课方案中没有时间冲突和教室冲突。如果有冲突,系统应该提示管理员冲突产生的原因以及冲突的解决方法。

(5)设定选课时间段 管理员可以设定选课时间段。学生只能在此设定的时间段内进行选课。如果学生部在选课时间段内选课,系统会给出相应的提示。

25

图5-3学生用户界面

其中框架的代码为:

学生选课系统

5.3.1 个人信息模块功能模块设计

个人信息模块包括个人资料和修改密码两部分。个人资料显示学生的所有信息,包括学号、姓名、学院、系别、班级。密码修改部分:用户可以根据自己的需要修改密码,方便用户管理。

如图4-4个人资料显示页面,4-5 密码修改页面。

31

图5-4个人资料显示页面

图5-5 密码修改页面

5.3.2 网上平台模块功能设计

网上平台由两部分组成:选课信息和我的课表

? 选课信息:学生用户查看所有选课信息,并提供用户模糊查询,使用户可

以查询自己想找的课程,模糊查询通过课程名和上课时间两种方式查找。在课程列表中当用户点选课栏时,该课程就会添加到我的课表中,在数据库中选课表会添加一条记录。

? 我的课表:学生选课后可以通过查看我的课表清楚的看到自己的选课情况,

以及上课的时间、地点、学分等信息。当学生用户发现修要改动时可以选择退选项,取消选择。

选课信息:courseInfo.jsp 我的课表:noticeList.jsp 如图4-6 选课信息页面 4-7 我的课表页面

32

图5-6 选课信息页面

图5-7 我的课表显示页面

图5-6中显示的选课项中,单击选课可选择该门功课,在课程信息页面中实现分页显示和模糊查询功能。

图5-7中显示学生用户所选择的课程信息。在删除选项中,点击删除可以退选课程。

代码如下:

<%@ page import=\<%@ page import=\


我的课表

<%//防止某些用户不进行登陆,直接想进入此页面 if (session.getAttribute(\response.sendRedirect(\}%> <%

useBean2 enroll=new useBean2(); enroll.useBean();

String id=(String)session.getAttribute(\

String strSQL=\* from course,sc where sc.num='\sc.cno=course.cno\

ResultSet rs= enroll.executeQuery(strSQL);

if(rs.next()){%>

取消选择课程名上课时间上课地点上课教师学分 <%

while(rs.next()) {%>

<%=rs.getString(\<%=rs.getString(\<%=rs.getString(\<%=rs.getString(\<%=rs.getShort(\ <%} }

else out.print(\您还没有选择任何课程!\enroll.close();%>

5.3.3 选课信息查询

选课模块为本选课管理系统的核心,主要的使用用户为学生。当学生进入选课

34

主界面后,系统首先会检测本学生应选课程,并且在界面中显示出来。学生点击不同课程进行选课,并点击提交。这时系统会进行选课冲突检测。

选课冲突检测的主要因素是课程的最大访问人数,与同学重复选择相同课程。如果学生选课已经超过了选课的最大人数,则视为选课冲突,本次选课失败,并返回错误原因提示“您选的课程人数已满,请更换其他课程”。另外,学生会对同一门课程进行重复选课操作,这种情况也会视为选课冲突,并给出提示,提示语为“请不要重复选择同一门课程”。如果上述两种情况都没有出现,系统会保存选课信息到选课表中,并提示成功。选课(冲突检测)流程图如图5-8。

开始系统查询选课数据表学生选课检测选课信息,看是超过最大人数限制TF看是否属于重复选课T选课失败F选课成功图 5-8 选课流程图 结束

选课实现主要代码: <%

ArticleID=trim(request(\

set rs=server.createobject(\

sql=\rs.open sql,conn,3,3 %> <%

UserID=Session(\

if not(rs.bof or rs.eof) then

set rs_user=server.createobject(\

sql_user=\ rs_user.open sql_user,conn,3,3

if not(rs_user.bof or rs_user.eof) then if trim(rs_user(\ Head=\选课失败\

35

本文来源:https://www.bwwdw.com/article/luk6.html

Top