资源描述
学生排课管理系统【摘要】选排课系统功能的设计上,学生选排课系统可以分为登录、排课和选课3个子系统。登录子系统区分排课者(也即系统的管理者)、教师和学生这三者的不同身份,给出不同的权限,在页面中根据身份判断其相应具有的功能来使用这套系统。排课子系统主要供排课者使用,排课者可以在这里进行一切与排课有关的活动。选课系统主要供学生选课使用,在这里可以进行与选课有关的活动;教师可在教师反馈系统中对排课者提出反馈意见,供排课者在排课时可参考使用。 学生选排课系统使用Rational Rose进行UMI。建模;过程选择使用ASP编写脚本,在数据库上考虑到快捷、有效,同时考虑到多台服务器共同使用同一个数据库的情况,这里选择SQL Server 2000作为数据库服务器;对于网页的服务器平台,这里选择使用Information Server5.O作为Internet服务器。在Windows 2000 Server上,这是一种很好的组合,也正是Microsoft微软公司网站一直以来所使用的。【关键词】学生排课管理系统 UML ASP 【 Summary 】 Chooses the design that line up the lesson system function last, the student chooses to line up the lesson system cans is divided into the logging, row lesson with select elective courses 3 statures system.Register the sub- system distinction row lesson( too namely the governor of the system), different from student these third of body in teacher a function for, giving a different legal power, in page according to body judging its cowgirl having to use this set of systems.The row lesson sub- system provides to line up the lesson primarily usage, row lesson can be the whole in here proceeding and line up the activity of relevant lesson.Select elective courses the system to provide primarily the student select elective courses the usage, can proceed the activity that have something to do with selecting elective courses here;Teacher can in teacher feedback system to row lesson put forward the feedback opinion, provide to line up the lesson while lining up lesson can consult usage. The student chooses to line up the lesson system usage Rational Rose proceeds the UMI.Set up the mold;The process choice uses the ASP the plait writes the script, on the database in consideration of fast, valid, at the same time in consideration of many set server common the circumstance of the same of database in usage, choose the SQL Server here 2000 conduct and actions database server;Choose the server terrace of the web page, very much to use the Information Server5.O conduct and actions Internet server.On the 2000 Servers of Windows, this is a kind of good combination, and also exactly Microsoft Microsoft company website always since then uses of.【 Key phrase 】 Student Row Lesson Management System UML ASP第一章 系统概述网上选排课系统(WebCtour。seSettlement)系统是依据大学的网上选排课需求进行设计的。由于在算法上存在难题,且排课问题本身就是组合优化问题里面的一个NP难的问题,所以这个系统并不试图做一个自动排课系统这真的太难了,以至于没有一个比较理想的近似算法(网上有很多的自动排课软件,效果都不理想)。这个网上选排课系统所做的是让排课者手工排课,然后检测、避免这种排课的冲突(其核心是一个存储过程DetectArrangeCollision),在进行选课时,这里也要检测和避免这种实际中可以遇见的冲突(其核心也是用一个存储过程DetectSelectCollision来实现的)。在这套选排课系统功能的设计上,StudentCourseSettlement系统可以分为登录、排课和选课3个子系统。登录子系统区分排课者(也即系统的管理者)、教师和学生这三者的不同身份,给出不同的权限,在页面中根据身份判断其相应具有的功能来使用这套系统。排课子系统主要供排课者使用,排课者可以在这里进行一切与排课有关的活动。选课系统主要供学生选课使用,在这里可以进行与选课有关的活动;教师可在教师反馈系统中对排课者提出反馈意见,供排课者在排课时可参考使用。 StudentCourseSettlement使用Rational Rose进行UMI。建模;过程选择使用ASP编写脚本,在数据库上考虑到快捷、有效,同时考虑到多台服务器共同使用同一个数据库的情况,这里选择SQL Server 2000作为数据库服务器;对于网页的服务器平台,这里选择使用Information Server5.O作为Internet服务器。在Windows 2000 Server上,这是一种很好的组合,也正是Microsoft微软公司网站一直以来所使用的。本章主要介绍如何使用SQL Server2000来编写存储过程,以优化整个系统数据库管理的速度、安全性和灵活性,同时大大提高系统代码的模块化和封装性。与上一章相比较,StudentCourseSettlement在“深度”上比WebOffice更进一步,它涉及到一些比较复杂的判断处理逻辑,对数据库的设计要求也提高了很多;而Web()ffice系统中则有很多功能相近的子系统,但各子系统所对应的数据表之问相对独立。 第二章 开发工具简介ASP简介 ASP是Active Server:Pages的缩写,是Microsoft:公司开发的Web服务器端脚本开发环境,利用它可以生成动态、高效的Web应用程序。 虽然人们习惯于将ASP称为ASP语言,但从严格意义上讲,ASP只是为VB Script和JaVaScript等脚本语言提供了一个运行的环境,使开发人员可以在HTML代码中使用脚本语言编写程序。当然,AsP自身也提供了一些非常好用的命令和内置对象。 ASP程序保存为后缀名为asp的文件,一个ASP文件相当于一个可执行文件,因此必须放在Web服务器上有可执行权限的目录下。当浏览器向Web服务器请求调用ASP文件时,就启动了ASP。Web服务器开始调用ASP,将被请求的asp文件从头读到底,执行每一个命令,然后动态生成一个HTML页面并送到浏览器。由于ASP在服务器端解释执行,开发者可以不必考虑浏览器是否支持ASP,也不必担心程序会被从客户端下载。执行ASP文件的过程如图21所示。图21 ASP访问Web数据库的过程Sql Server 2000简介Microsoft SQL Server是一个Windows服务器上使用的、支持客户/服务器结构的数据库管理系统。SQL Server是Microsoft公司从Sybase公司购买技术而开发的产品,它与Sybase的数据库完全兼容。SQL Server与Windows的有机结合,可以充分利用Windows NT的优势,性能价格比高。Microsoft SQL Server不提供直接的客户开发平台和工具,只提供了两个接口,即Microsoft开放式数据库连接(ODBC)和DBLibrary。关于UML和Rational Rose UML(Unified Modeling Language)即统一建模语言。根据UML的发明者,“三个好朋友”Crandv Booch、James Rumbaugh以及Ivar Jacobson所著的The Unified Modelign Language UsersGuide一书,其概念为: (1)UML是编写软件蓝图的标准语言; (2)UML以可视化方式指定、建构以及记录软件为主系统的产出。 3位大师是3位面向对象系统分析方法的学者,先后被Rational公司(现己被IBM公司并购)招揽,集3家之大成,创立UML,同时也构建了Rational Rose这套优秀的建模系统。 UML是完全面向对象的,是图形化的,它为系统开发的不同参与者(包括客户)提供不同层次和角度的图;它鼓励任何层次上的交流(这与传统的瀑布式开发流程是相悖的),鼓励客户参与,所以开发出来的软件是一个能符合设计之初的设想的软件;它从用户的角度使用“用例图,(Use Case Diagram)出发(这与传统的开发模式又是相悖的,传统的模式是从系统的角度进行功能分析出发)来设计软件系统,所以不会开发出具有很多开发者自以为很优秀的功能但是确不能符合客户真正需求的系统。 UML所提供的主要图有:类图、对象图、用例图、状态图、时序图、活动图、协作图、构件图和部署图。要全部地掌握和使用这些图无疑是一件很困难的事情。但是,可以“用大约20的UML来完成大多数问题的80的建模工作”(The Unified Modeling Language UsersGuide)。在上述这些图中,最重要和使用最多的3种图是:用例(User CaseDiagram)、时序图(Secquence Diagram)和类图(Class Diagram)。用例图是从用户的角度来描述系统的外部功能的图。对不同的用户,系统应该有不同的功能,所以一个系统的用例图通常会有多个。图21是一个简单的用例图的例子。图2-1 简单的用例图 图中的人形代表活动参与者,椭圆代表用例,箭头代表关系,即操作。用例图是UML建模中最重要的一种图,它体现了实实在在展现在用户面前的系统的各项功能,而与实施没有关系这正是用户所需要的系统。用例图的设计好坏直接影响这个系统的设计和实施。有很多人并不完全认可UML的一套做法,但基本都认为用例图是很有用处的。 时序图是从系统实现的角度来描述每一个用例。(可见一个用例一般应有一个对应的时序图。)它描述的是一个用例中用户与系统进行消息传递,系统各部件(类)之间进行消息传递的关系和顺序。 时序图表现的是系统具体实施的静态逻辑,从它可以直接联系到代码中一个模块的具体实现逻辑,所以它对于系统逻辑的具体实施是最重要的类图直接对应到源代码。在面向对象的程序设计中,整个系统都是由类及其实例(对象)通过相互之问发送消息以及各自的消息处理函数来实现的。时序图描述了各个类之间要发送的消息,类图则表明该如何来发送、接收和处理这些消息,这包括各种属性和方法。在开始的时候要找到一个待开发的系统中的所有的类是一件很不容易的事情,要找出它们之间的关系及其各自处理消息的方法则更加困难。因为类图实际已经对应到代码,或者说是代码的图形化的表现。所以,在一开始的时候完全分析所有的要素是不太实际的。在进行具体的设计时要反复审查和修改用例图和时序图,来建立类图。UML是一种图形化的统一建模语言,它在系统的分析和设计之时对交流思想起到非常重要的作用。它用图形来表示完整的系统,在运用中要反复审查和修改多次,所以在系统分析和设计的时候所花的时间是很多的。但是如果分析得越仔细,则在编码的时候越容易。理论上,只要将代码填充到完整的UML模型中去就可以了,并且已经有这样的工具,Rational Rose本身就有这样的功能。在分析和设计的阶段多花些时间,可以避免编码到一定阶段却发现整个模型有问题而无法修改。现在开发的都是大型的复杂的系统,没有良好的模型是完全不可能进行的。当然,在实际的应用中往往不可能对系统分析和设计过细。UML只是一种设计方法,在设计的时候不应强求完美。 Rational Rose是面向对象建模使用最广的工具之一。第三章 系统需求分析3.1初步调查要对学生进行素质教育,首先要改变陈旧的教育教学方式。很多大学生都有这样的体验:同样专业的学生在4年中,教学计划一样,课程设置一样,所完成的课时数也一样。在这样的环境中谈什么素质,谈什么创新?因此,大学探索完全学分制的改革,目的就是为学生提供一个更加自由广阔的学习空间。大学的学习时间可以变长也可以缩短,学生可以根据学校提供的课程服务来规划未来的人生。但是,要实现这个宏伟的目标首先要解决的就是学生选课问题,本课程设计的开发就是解决教学管理系统中存在的这个问题,它为大学实现完全学分制的改革提供了一个基本的平台。3.2 新系统描述教师任课管理信息系统和计算机排课子系统的关键技术是形成采用框架式可维护的排课策略库。这个策略库要具有学生、教师、教室、课程等多因素自动综合的求优排课算法,课程时间分布的自动平衡和时间段限定,由计算机生成课程安排表。在教室管理子系统中则要求该系统与自动排课系统联动,可以对排课后的教室用计算机进行借用管理、查询、分析统计,可生成全校教室使用情况汇总表。网上选课及包含自动排课、学籍管理、教室资源管理、任课教师管理等系统融为一体。3.3可行性分析可行性分析就对项目开发的可能性和必要性进行分析.避免盲目投资.主要是必要性分析和效益分析,以决定是否建立学生选课系统。同时还要进一步进行技术可行性分析、投资/效益分析、组织管理可行性分析,确定是否存在否定项目的可能性。下面就从经济可行性和技术可行性进行简要分析。1、 经济可行性分析学生选课系统开发需要投资费用和未来的运行维护费用,其中投资费用主要包括设备费用、人员费用及其他费用,如由于工作方式改变需要增加的其他开支通常为了保证新系统运行的可靠性,要求手工和计算机处理在长时间并存。系统的收益主要通过新系统提高工作效率,指导经营策略来实现,还有其他难以计算的指标,比如: 降低的成本及其他费用。 改进薄弱环节,提高的工作效率。 提高数据处理的及时性和准确性。2、 技术可行性分析学生档案管理修订系统的硬软件要求都是能够容易达到的,配置要求下表3-1所示。硬、软件配 置CPUPIII 800RAM64MB硬盘3G监视器Windows系统支持的监视器,可显示16位打印机Windows98,Windows 2000,Windows NT Sever/WORKSTATION支持的各类打印机操作系统中文Windows98,windows2000,Windows NT Server/Workstation网络协议TCP/IP网络系统Windows 2000 Server3.4 运营可行性目前学生所有人员都有操作电脑的能力,通过提供一定的培训,都能够熟练操作。第四章 对系统进行UML建模学校是一个庞大的、层次关系复杂的组织机构,这里仅将排课子系统放在教务处这个管理层中,而选课子系统则是面向全校师生的。选排课系统要与一些其他的系统(如学校院系管理系统、各院系的办公系统、学籍管理系统和学校资产管理系统等)打交道,这使得在实际当中选排课系统需要有复杂的接口,主要是要与各个系统进行数据的交换,保持数据的一致性.在本示例中,假设这些数据已经全部取得,而并不关心是它们如何导入进来的,所以不可能在这里仔细地探讨其他系统的接口。总体上,这里将这个系统定位为一个小的系统,只用到UML中的一些关键要素。4.1 进行用例建模整个系统分为登录子系统、排课子系统和选课子系统。下面罗列出本系统的用例图,如图4-4、图4-2和图4-3所示。图4-1 排课子系统用例图图4-2 选课子系统用例图图4-3 登录子系统用例图图4-4 用例“登录”的序列图图4-5 用例“排课”的序列图可以看到这两个用例都使用了存储过程。事实上验证身份和检查冲突是wrebCourseSettiement系统用到的两个最重要的存储过程。这两个过程的逻辑都比较复杂,因此下面罗列出这两个过程的活动图,如图4-6和图4-7所示。另外,由于表之间的关系比较复杂,用例“导入备份排课记录”所用到的存储过程的逻辑比原来设想的要复杂,其活动图如图4-8所示。这里的类图只建立了各个数据表的情况和它们之间的约束关系,如图4-9所示,注意,有一些表是从其他系统(如学生管理、教学楼管理和教师管理等系统)导入的。图4-7 验证登录身份存储过程的活动图图4-7 检查排课冲突存储过程的活动图图4-8 导入备份排课记录存储过程的活动图4.2 其他文档如前所述,光有用例图是不够的,应该有一个用标准的语言描述用例的文档。现在把这个文档罗列出来,以加以说明。(以下文档是在例图之前就应分析出来的)#1查询教室使用情况用例名称:查询教室使用情况参与者: 排课者描述: 在排课过程当中,排课者可以查询教室的使用情况。系统显示教学楼列表,排课者可以展开查看具体教室的使用情况。具体教室的使用情况为:每间教室的属性(如多媒体教室、计算机房、大、中和小班教室等);教室的使用情况,即从星期一到星期日的已占用情况(以一节课为单位)。#2查询院系课程设置用例名称:查询院系课程设置参与者: 排课者描述: 在排课过程当中,排课者可以查询院系课程设置。系统显示院系列表。排课者可以展开查看具体院系的课程开设情况。具体院系的课程开设情况为:课程代号,课程名称,任课教师代号,教师名称和总课时等。#3排课用例名称:排课参与者: 排课者描述: 排课者按年级排课。排课表内容包括课程代号,课程名称,授课院系,专业代号,专业名称,教师代号,考察方式,学分,开课时间,上课时间,地点,开课院系,最多上课人数,课程选择限制(必修、限选或任选)等。在排课过程当中,排课者可以查询教室使用情况和查询院系课程设置。通过查询院系课程设置栏,排课者可以拖曳课程到正在排的排课表。通过查询教室使用情况栏排课者可以拖曳教室到正在排的课表。在排课者提交排课表以后系统应当确保该排课方案中没有教师时间冲突和教室冲突。如果有冲突,系统应该提示排课者具体冲突的产生原因。#4发布排课结果用例名称:发布排课结果参与者: 排课者描述: 系统保存通过发布的排课表。排课完成以后,通过发布的排课结果对所有教师可见,可以接受查询;同时通过发布的排课结果对选课系统可见。#5修改排课结果用例名称:修改排课结果参与者: 排课者描述: 排课者可以修改发布或者没有发布的排课结果。其方式和排课用例是一样的。#6查询排课结果用例名称:查询排课信息参与者: 排课者,教师,学生描述: 排课者、教师和学生可以查询发布的排课信息。#7备份排课结果用例名称:备份排课结果参与者: 排课者描述: 排课者可以备份(中间)排课结果。#8查询历史排课结果用例名称:查询历史排课结果参与者: 排课者描述: 排课者可以查询历史(往年)排课结果。#9导入排课结果用例名称:导入排课结果参与者: 排课者描述: 排课者可以导入备份的排课结果和历史排课结果(,再在其上作修改,以减少工作量)。在导入历史排课结果的时候因为可能的教师、教室、课程的变动导致冲突,系统应该能够查出所有的变动并提示排课者:共XX处冲突,每一处冲突都用不同的颜色标出并标明产生的原因。#10发布有关排课消息用例名称:发布有关排课消息参与者: 排课者描述: 排课者可以发布关于排课的消息以提示教师关于排课的各种信息。#11查看教师反馈用例名称:查看反馈参与者: 排课者、教师描述: 排课者可以查看教师的反馈,以调整排课;教师可以查看反馈作为对排课提出意见的参考。排课者或教师首先浏览反馈意见的列表,然后查看具体的某条反馈意见。这和留言板的功能是一样的。#12查询教师课表用例名称:查询教师课表参与者: 排课者、教师描述: 排课者、教师可以查询教师课表。#13提出反馈意见用例名称:查询教师课表参与者: 教师描述: 教师可以对排课结果提出反馈意见。#14发布关于选课消息用例名称:发布关于选课消息参与者: 排课者描述: 排课完成以后排课者可以在选课系统发布关于选课的各种消息。#15设定选课时间段用例名称:选课参与者: 学生描述: 排课者应设定选课时间段。学生只能在此设定的时间段内才能选课。#16选课用例名称:选课参与者: 学生描述: 学生可以在规定的时间段内选课。该规定时间段由排课者通过发布消息通知教师和学生。选课过程如下:学生在选课表上单击“选课”,则该信息被提交到服务器,服务器返回该学生选课列表为弹出式窗口,该窗口显示该学生的学生课表。选课表的内容包括排课表的全部内容,另外每一位老师所教的每一门课程还包括已选人数,还能选的人数。如果已经选满则不能再选择这门课程。如果有学生退课,则该门课程的已选人数减1,还能选的人数加1。#17退课用例名称:退课参与者: 学生描述: 即学生可以在规定的时间段内删除某门已选的课程。该信息被提交到服务器,服务器返回该删除该选课后学生选课列表为弹出式窗口,该窗口显示该学生退课后的学生课表。#18查询课程详细情况用例名称:查询课程详细情况参与者: 学生描述: 学生可以查询某门课程的详细情况如课程简介,教材,课时,学分,考察方式,相关课程等内容。#19查询学生课表用例名称:查询学生课表参与者: 学生,排课者描述: 学生随时能查看自己的选课表;排课者可以用学号查询任何学生的课表。查询可以以模糊查询的方式进行,即不必输入完全的学生学号。多于1个的结果以列表的方式列出,点击其中一个查看详细内容。学生课表内容包括学生学号,学生姓名,学生性别,学生年级,学生班级;课程代号,课程名称,授课院系,专业代号,专业名称,教师代号,考察方式,学分,开课时间,上课时间,地点,开课院系等。#20按课程代号查询选课名单用例名称:按课程代号查询选课名单参与者: 学生,教师,排课者描述: 学生、教师和排课者可以按课程代号查询选课名单。由于有多位教师教同一门课程的情况,查询结果用列表的形式给出,点击可以查看某一位老师所教课程的具体选课名单。#21按教师代号查询选课名单用例名称:按教师代号查询选课名单参与者: 学生,教师,排课者描述: 学生、教师和排课者可以按教师代号查询选课名单。由于有一位教师教多门课程的情况,查询结果用列表的形式给出,点击可以查看这位老师所教某一门课程的具体选课名单。第五章 数据库设计以下罗列出学生选课系统所需的数据表。表5-1 排课表(Arrange)字段说明类型(长度)备注ARRANGE_ID排课编号int主键,标识CLASSROOM_ID上课教室号int外键DAY_TIME上课时间varchar(20)SETTING_ID课程设置号datetime外键表5-2 院系信息表(DeptInfo)字段说明类型(长度)备注DEPT_ID院系编号char(10)主键DEPT_NAME院系名称nchar(10)表5-3 学生信息表(StudentInfo) 字段说明类型(长度)备注STUDENT_ID学生学号varchar(20)主键STUDENT_NAME学生姓名nvarchar(10)DEPT_ID所属院系编号char(10)外键MAJOR_ID专业号varchar(20)表5-4 教师信息表(TeacherInfo) 字段说明类型(长度)备注TEACHER_ID教师编号varchar(20)主键TEACHERNAME教师姓名nvarchar(1O)DEPTID所属院系编号char(10)外键表5-5 教学楼信息表(Buildinglnfo) 字段说明类型(长度)备注BUILDING_ID教学楼编号int主键,标识BUILDINGNAME教学楼名称nchar(10) 表5-6 教室信息表(elassroonlInf0)字段说明类型(长度)备注CLASSROOM_ID教室编号int主键,标识CLASSROOM_NAME教室名称nchar(10、BULDINal_ID教学楼编号Int外键PROPERTY教室属性nchar(10)表5-7 课程详细信息表(courseInfo) 字段说明类型(长度)备注COURSE_ID课程设置编号char(20)主键COURSE_NAME课程名称nchar(20)NTTRODUCTION课程介绍nvarchar(300)表5-8 开课信息表(coursesettingInfO) 字段说明类型(长度)备注SETTING_ID课程编号INT主键,标识ORIENT_DE面向专业编号varchar(20)SCORE学分tinvintSELECT_LIMIT限选性质nchar(4)TEACHER_ID教师编号varchar(20)TEST_METHOD考察方式nchar(4)COMMENT备注nvarchar(200)默认值“无”SELECTPR_NO_LIMIT最大选课人数smallintCOURSE_ID课程编号char(20)DEPT_ID开课院系编号char(10)GRADE_ID面向的年级tinyint 表5-9 反馈信息表(FeedBack)字段说明类型(长度)备注FEEDBACK1D反馈信息编号smallint主键FEEDBACKTITLE反馈信息标题nvarchar(20)默认值“无FEEDBACK_CONTENT反馈信息内容nvarchar(3000)USERID用户IDvarchar(20)FEEDBACKTIME反馈时间datetime 表5-10 备份排课记录表(BackUpArrangeList) 字段说明类型(长度)备注LISTID列表号int主键BACKUPID备份排课记录表1Dvarchar(20)表5-11 选课信息表(CourseSelect) 字段说明类型(长度)备注ARRANGE_ID排课编号intSTUDENT_ID学生学号varchar(20) 表5-12 选课时间段信息表(courseSelectInterval)字段说明类型(长度)备注BEGIN_TIME开始选课时间datetimeEND_TIME终止选课时间datetime表5-13 选课通知表(CourseSelectNotice) 字段说明类型(长度)备注NOTICE_ID通知编号smallintt键,标识NOTICE_TITLE通知标题nvarchar(20)NOTICE_CONTENT通知内容nvarchar(3000)NOTICE_TIME通知时间datetimeNOTICE_HOT是否为“热点”bit(2)默认值“0”表5-14 系统用户信息表(UserInfo) 字段说明类型(长度)备注USER_TYPE用户类型(排课者、教师或学生)char(1)USER_ID用户编号,标识intUSER_NAME用户名varchar(20)PASSWORD用户密码varchar(20)以上是在数据库“物理设计”中设计的表(被称为数据库的“内模式”)。在设计过程中应尽量避免冗余,并且在各相关的表之间建立约束,以从数据库本身来避免数据冲突,保持数据的完整性和合理性。注意其中有一部分表是从其他系统Import进来的。具体地,DeptInfo来:自院系管理系统;studentInfo来自学籍管理系统;TeacherInfo来自各院系办公系统的教师管理子系统;BuildingInfo来自学校资产管理系统;CourseSettingInfo来自各院系办公系统的课程设置子系统。这些表在这里只是其原所在系统的一部分。在具体查询过程中,如果全部直接从物理表查询,则要建立多重的联合(内联)查询,这样用起来很不方便,也容易出错;同时要从IIS发送更多的查询语句到SQL服务器,影响效率。因此建立以下的关键视图(被称为数据库的“外模式”),方便查询。 完整排课信息的视图(VIEW_Arrange)如表5-15所示。表5-15 完整排课信息的视图VIEW_Arrange 字段源表说明COURSE_IDCourseSettingInfo课程编号COURSE_NAMECourseInfo课程名称TEACHER_IDCourseSettinglnfo教师编号TEACHER_NAMETeacherlnf0教师姓名SELECT_LIMITCourseSettinglnfo限选性质SCORECourseSettinglnfo学分TEST_METHODCourseSettinglnfo考察方式0RIENT_DEPT_IDCourseSettinglnfo面向专业编号SELECTOR_N0_LIMITCourseSettinglnfo最大选课人数CLASSROOM_NAMEClassroomInfo教室名称CLASSR00M_PROPERTYClassroomlnf0教室属性DEPT_NAMECourseSettinglnfo开课院系名称BUILDINGNAMEBuildingInfo教学楼名称BULDINGIDArrange教学楼编号DAYJIMEArrange上课时问SETTINGIDArrange课程设置编号ARRANGE_1DArrange排课号CLASSROOMIDArrange教室编号完整选课信息的视图(VIEW_Select)如表5-16所示。表5-16 完整选课信息的视图VIEW_Select 字段源表说明ARRANGE_IDArrange排课号COURSE_IDCourseSettinglnfo课程编号COURSEJNAMECourseInfo课程名称TEACHER_IDCourseSettingInfo教师编号TEACHERJNAMETeacherlnfo教师名称ORIENT_DEPT_IDCourseSettingInfo面向专业编号STUDENY_IDSelect学生学号STUDENT_NAMEStudentInfo学生姓名视图从表中将用到的一组记录提取出来组成一个虚拟表,而不管数据源中的其他信息,它可以改变这些记录的值,并把更新结果送回到源表中。从用户的观点来看,视图和基本表是一样的。作为数据库的一个重要概念,视图有以下许多优点。 (1)提供了一定程度的逻辑独立性。当数据库重新构造时,数据库整体的逻辑结构将发生变化。如果用户程序是通过视图来访问数据的,视图相当于用户的外模式,只需要修改视图定义来保证用户的外模式不变,因此用户的程序也不必改变。 (2)有利于数据保密。对不同的用户定义不同的视图,而且只授予用户访问自己的视图的权限,使其无法看到其他用户的数据。 (3)简化了用户的操作。视图机制使用户把注意力集中在自己关心的数据上。这种视图所表达的数据的逻辑结构与基本表相比,更易于被用户理解。而对视图的操作实际上是把对基本表(尤其是多个基本表)的操作隐藏了起来,大大简化了用户的操作,同时提高了执行效率,减小了网络流量。 在数据库管理系统中,保证数据库中的数据完整性是非常重要的。所谓数据完整性,就是指存储在数据库中数据的一致性和正确性。约束定义关于列中允许值的规则,是强制完整性的标准机制。使用约束优先于使用触发器、规则和默认值。查询优化器也使用约束定义生成高性能的查询执行计划。 最后依旧给出各表之间的约束关系图(图5-1)。在SQL server联机帮助中,将数据完整性解释如下:“存储在数据库中的所有数据值均正确的状态。如果数据库中存储有不正确的数据值,则该数据库称为已丧失数据完整性。”强制数据完整性可确保数据库中的数据质量。同时该图也暗示了各表时间的层次关系。图5-1 数据库各表之间的关系图第六章 系统的实现在这一章里主要是对学生选课系统的编码实现。系统建模是非常重要的,它对整个系统的实现不单单起了提纲契领的作用,而且对于某些复杂功能模块的代码规定了具体的实现逻辑(这里只对一些复杂的核心模块进行了这样的建模活动图就是起这个作用的。但是最终系统依然要依靠编码来实现。而且一般并不对系统进行完全细致的建模,所以编写代码时仍然有很大的空间。由于同样的原因,甚至在编写代码的时候才向上回溯,修改原来建立的模型。总有一些问题是要等到具体实现的时候才能清楚展现出来的,而不是说这里的模型没有起作用。StudentCourseSettlement系统只有三个子系统,即登录控制、排课和选课。有的子系统实现的功能块比较多,这些功能块之间具有层次关系。这里首先罗列本系统用到的所有页面、它们在系统中所起的作用以及它们之间的层次关系。表6-1示出了用到的所有页面它们的作用以及所在的相对存储位置。由于是按结构来组织文件,所以存储位置本身就反映了其各自所属的功能模块。表6-1 StudentCourseSettlement用到的页面表编号文件名相对存储位置说明1default.asp/首页2ADOVBS.asp/include/ADOVBS包含文件3KeepHouse.asp/include/一些通用功能函数4header.asp/include/头包含文件5footer.asp/include/脚包含文件6StudentCourseSettlementStyle.Css/include/样式表包含文件7logln.asp/Logln/登录功能模块8verifyID.asp/Logln/身份验证功能模块9changePassword.asp/Logln/修改密码功能模块10QueryCourseSetting.asp/ArrangeCourse/查询课程设置页面1lListDeptCourseSetting.asp/ArrangeCourse/罗列院系课程设置页面12queryBuildingInfo.asp/ArrangeCourse/查询教学楼信息功能模块13QueryClassroomlnfo.asp/ArrangeCourse/查询教室排课信息页面14ArrangeCourse.asp/ArrangeCourse/排课主页而15detectArrangeCollision.asp/ArrangeCourse/检查排课冲突功能模块16cLIDuringA.asp/ArrangeCourse/在排课过程中查询教室信息17AddArrangeCourse.asp/ArrangeCOurse/为某课程增加排课18deleteArrange.asp/ArrangeCourse/删除排课功能模块19BackUpArrange.asp/ArrangeCourse/备份排课结果20ImportBackUpArrange.asp/ArrangeCourse/导入备份的排课记录21DelBackUpArrange.asp/ArrangeCourse/删除备份的排课记录22ArrangedC0urse.asp/ArrangeCourse/罗列已排课表23QueryCourseArrange.asp/ArrangeCourse/查询排课结果24formQueryCourseArrange.htm/ArrangeCourse/输入查询信息窗口,功能模块25showInterval.asp/ArrangeCourse/SetTimeInterval/显示选课时间段26changSelectInterVaI.asp/ArrangeCourse/SetTimeInterval/设定和修改选课时间段27saveC.asp/ArrangeCourse/SetTimeInterval/保存选课时间段信息28Compose.asp/ArrangeCourse/CourseSelectNotice/撰写选课通知29Read.asp/ArrangeCourse/CourseSelectNotice/阅读一条具体选课通知30save.asp/ArrangeCourse/CourseSelectNotice/保存撰写的选课通知31List.asp/ArrangeCourse/Feedback/罗列反馈信息32Compose.asp/ArrangeCourse/Feedback/撰写反馈信息33Read.asp/ArrangeCourse/Feedback/阅读一条具体的反馈信息34save.asp/ArrangeCourse/Feedback/保存撰写的反馈信息35SelectCourse.asp/SelectCourse/选课主页面36detectSelectCollision.asp/SelectCourse/榆查选课冲突的功能模块37SelectCourseTop.asp/SelectCourse/选课页面的顶端窗口38SelectCourseLeft.asp/SelectCourse/选课页面的左边窗口39SelectCourseMain.asp/SelectCourse/选课页面的主窗口40QuerySelectedCourse.asp/SelectCourse/查询已选课程4lAnswerQuerySelectedC.asp/SelectCourse/显示查询结果42saveCancle.asp/SelectCourse/保存退课信息43QuerySelectT.asp/SelectCourse/按教师查询选课信息44AnswerQuerySelectT.asp/SelectCourse/显示按教师查咖的结果下面按照它们所属的子系统的顺序选一些加以剖析这些页面,同时在存储过程的时候介绍相应的存储过程。6.1 系统首页default.asp首先介绍StudentCourseSettlement系统的首页。界面如图6-1所示。图6-1 系统的首页从图6-1中可以看到,除了一般的头(包括链接)和脚以及“友情链接”(为了美化页面),主页上还提供了查看通知和登录这两个模块。可参见如下代码。欢迎来到 链接 这里使用了模块化的设计,用服务器对象(serv
展开阅读全文