毕业论文范文网-论文范文
电气工程 会计论文 金融论文 国际贸易 财务管理 人力资源 学前教育 德语论文 工程管理 文化产业 工商管理 会计专业 行政管理 广告学
机械设计 汉语文学 英语论文 物流论文 电子商务 法律论文 工商管理 旅游管理 市场营销 药学论文 播音主持 人力资源 金融论文 保险学
制药工程 生物工程 包装工程 模具设计 测控专业 工业工程 教育管理 行政管理 计算机论 电子信息 市场营销 法学论文 财务管理 投资学
体育教育 小学教育 印刷工程 土木工程 书法论文 护理论文 心理学论 信息管理 公共事业 给水排水 新闻专业 摄影专业 广电编导 经济学
  • 范文首页 |
  • 毕业论文 |
  • 论文范文 |
  • 计算机论文 |
  • 外文翻译 |
  • 工作总结 |
  • 工作计划 |
  • 现成论文 |
  • 论文下载 |
  • 教学设计 |
  • 免费论文 |
  • 原创论文 |
搜索 高级搜索

原创毕业论文

当前位置:毕业论文范文网-论文范文 -> 免费论文 -> 计算机论文

教务管理系统(文档 设计)

作者: 浏览:10次
免费专业论文范文
免费专业论文
政治工作论文
计算机论文
营销专业论文
工程管理论文范文
医药医学论文范文
法律论文范文
生物专业论文
物理教学论文范文
人力资源论文范文
化学教学论文范文
电子专业论文范文
历史专业论文
电气工程论文
社会学专业论文
英语专业论文
行政管理论文范文
语文专业论文
电子商务论文范文
焊工钳工技师论文
社科文学论文
教育论文范文
数学论文范文
物流论文范文
建筑专业论文
食品专业论文
财务管理论文范文
工商管理论文范文
会计专业论文范文
专业论文格式
化工材料专业论文
英语教学专业论文
电子通信论文范文
旅游管理论文范文
环境科学专业论文
经济论文
人力资源论文范文
营销专业论文范文
财务管理论文范文
物流论文范文
财务会计论文范文
数学教育论文范文
数学与应用数学论文
电子商务论文范文
法律专业论文范文
工商管理论文范文
汉语言文学论文
计算机专业论文
教育管理论文范文
现代教育技术论文
小学教育论文范文
机械模具专业论文
报告,总结,申请书
心理学论文范文
学前教育论文范文

收费计算机专业论文范文
收费计算机专业论文
Delphi
ASP
VB
JSP
ASP.NET
VB.NET
java
VC
pb
VS
dreamweaver
c#.net
vf
VC++
计算机论文
毕业论文范文题目:教务管理系统(文档 设计),论文范文关键词:教务管理系统(文档 设计)
教务管理系统(文档 设计)毕业论文范文介绍开始:

 摘 要
 随着教学体制的不断改革,尤其是学分制、选课制的展开和深入,教务日常管理工作日趋繁重、复杂。现有教务管理系统在安全性和信息规范化方面存在有一定的不足:资料单独建立,共享性差;以管理者为主体,主观取舍信息,不易掌握用户真正的需求。因此,迫切需要研制开发一种综合教务管理软件,使教务工作信息化、模块化、便捷化。
 作为一种典型的管理信息系统,主要包括后台数据库和前端应用程序。系统采用C/S体系结构,结合PowerBuilder9.0和SQL Server2000进行开发。本教务管理系统主要包括对基本信息进行管理、查询以及制定课表、安排考试等功能。用户通过身份验证后进入系统,可以对基本信息进行增加、修改、删除以及查询;结合各项基本信息可以进行班级选课、课表制定、考试安排。
 本系统从教务管理的实际流程出发,将所有数据处理集成在一起,实现真正数据共享,彻底解决数据安全性问题。将教务管理中诸多烦琐的工作分解到各个模块,从而最大限度地减轻教务管理人员的工作负担,使得教务管理走向无纸化办公和规范化、现代化管理。
关键字:教务管理;排课算法;管理信息系统

 ABSTRACT
 With the further innovation of teaching management system, especially the further use of credit hour and elective system, the daily management of teaching is becoming more and more complicated. the present daily management of teaching has some drawbacks in security and information standard: The material alone establishes, sharing difference; Take the superintendent as the main body, subjectively takes the shed information, is not easy to grasp the user true demand. Therefore, it is urgent to develop one kind of comprehensive teaching management software, which causes the educational administration work information, to be modulation, to be convenient.
   As one kind of typical information management system, it mainly includes the backstage database and front end the application procedure. The system uses the C/S system structure, combined PowerBuilder9.0 with SQL Server2000 in the development. This teaching management system mainly includes basic information management, inquiry as well as formulation class schedule, arrangement test. after the identification the user enters the system, carries on the increase, the revision, the deletion as well as the inquiry to the basic information; at the same time  we can make the class schedule formulation and the test arrangement using concerned information.
   This system embarks from the educational administration management actual flow, makes the data processing to integrate in together, realizes the true data sharing, thoroughly settle data secure question. Many troublesome work in the teaching management system decomposes into each module, alleviate the burden of administer, it result in  pushing  teaching management system into a new stage  no-paper work ,the standardization andthe modern management.
Key Words: Teaching management;Arrange a lesson of algorithms;Management information system

目 录
第一章 绪 论 1
§1.1 选题背景 1
§1.2 系统概况 1
§1.3 开发工具介绍 2
§1.3.1 PowerBuilder 9.0简介 2
§1.3.2 SQL Server 2000简介 3
第二章 教务管理系统需求分析 5
§2.1 项目概述 5
§2.1.1 系统目标 5
§2.1.2 开发概况 5
§2.1.3 信息描述 5
§2.2 方案论证 6
§2.2.1 基于B/S结构的方案设计 6
§2.2.2 基于C/S结构的方案设计 7
§2.2.3 方案比较论证 8
§2.3 系统流程设计 9
§2.4 功能模型设计 9
§2.5 数据结构设计 18
§2.6 功能描述 22
§2.7 行为描述 22
§2.8 性能需求 23
§2.9 运行环境 23
第三章 教务管理系统概要设计 24
§3.1 数据库设计 24
§3.1.1 数据库创建流程 24
§3.1.2 建表规则 24
§3.1.3 数据库表 24
§3.2 功能设计 28
§3.2.1 信息管理子模块 28
§3.2.2 信息查询子模块 28
§3.2.3 排课管理子模块 28
§3.2.4 考试管理子模块 29
§3.3 系统结构设计 29
§3.4 接口 30
§3.4.1 硬件接口 30
§3.4.2 软件接口 30
§3.5 性能 30
§3.6 故障处理 30
第四章 教务管理系统详细设计 31
§4.1 创建数据库 31

§4.2 连接数据库 31
§4.3 功能实现 31
§4.3.1 登录 31
§4.3.2 信息管理 32
§4.3.3 信息查询 33
§4.3.4 初始化教室资源 33
§4.3.5 考试安排 34
§4.3.6 成绩录入 34
§4.4 关键技术 35
§4.4.1 班级选课的解决方案 35
§4.4.2 排课问题的解决方案 37
第五章 教务管理系统运行调试 45
§5.1 运行 45
§5.2 测试 45
§5.2.1 测试的目的 45
§5.2.2 测试的准则 45
§5.2.3 测试的方法 45
§5.2.4 测试用例 46
§5.2.5 测试总结 49
结  论 50
参考文献 51
致  谢 52

第一章 绪 论
§1.1 选题背景
 教务管理是大学的主要日常管理工作之一,涉及到校、系、师、生的诸多方面,随着教学体制的不断改革,尤其是学分制、选课制的展开和深入,教务日常管理工作日趋繁重、复杂。如何把教务工作信息化,模块化,便捷化是现代高校发展的重点,所以迫切需要研制开发一种综合教务管理软件。在数字校园理论逐步应用的过程中,各高校一方面不断投资购建各种硬件、系统软件和网络,另一方面也不断开发实施了各类教学、科研、办公管理等应用系统,形成了一定规模的信息化建设体系。但是,由于整体信息化程度相对落后,经费短缺,理论体系不健全等原因,国内高校教务管理系统在机构设置、服务范围、服务质量及人员要求上与国外高校相比都有一定的差距[1]。
 纵观目前国内研究现状,在安全性和信息更新化方面存在有一定的不足,各现有系统资料单独建立,共享性差;在以管理者为主体的方式中,信息取舍依赖管理者对于信息的认知与喜好,较不容易掌握用户真正的需求,也因此无法完全满足用户的需求。目前国家的教育体制也正处在不断改革、创新的阶段,教育部门充分吸取国外优秀的教学模式,结合国内多年的办学经验,逐步探索出适合中国特色的教学形式,国家教育部面向各级各类学校开展了全面学分制改革。因此,教务管理软件应实现教务信息的集中管理,使传统的教务管理朝数字化、无纸化、智能化、综合化的方向发展,并为进一步实现完善的计算机教务管理系统和全校信息系统打下良好的基础[2]。
 故而,选择这个题目符合实际需求,同时通过对这个系统的设计与开发,达到综合训练、检验四年所学的目的。
§1.2 系统概况
 本系统面向学校教务管理人员,是高校教学、教务管理应用软件,是一个为学校教务管理人员提供服务的综合管理系统。教务管理人员通过本系统完成所有的日常教务工作。从学生入学开始到毕业离校,其在学校内的所有和教务相关的数据都通过教务系统进行管理。熟悉教务管理工作的全部过程,从教务工作的实际出发,解决工作中关键性的难点问题,并充分利用计算机网络功能,实现教务工作全过程的计算机管理,帮助具体管理人员从复杂烦琐工作中解放出来,使得教务管理走向无纸化办公和规范化、现代化管理[3]。
§1.3 开发工具介绍
§1.3.1 PowerBuilder 9.0简介
 本系统采用PowerBuilder9.0作为开发平台,SQL Server2000数据库管理系统,面向对象可视化编程,使系统的开发工作适应目前的流行趋势。设计时采用了常用的自顶向下的瀑布式结构化设计方法[4]。利用PB9.0能快速地构建各类对象,特别是数据窗口这一能方便而简洁操纵数据库的最具特色的智能化控件,在短时间内快速建立起系统的原型,然后再对原型不断地根据需要进行修正和改进,直到形成用户满意的可行系统为止。
 Sybase PowerBuilder作为一种“快速构建商业应用程序”的开发工具,1991年一经推出,就在业界引起轰动。IDC将之称为一种“黄金标准” —— 一个用于衡量所有应用开发工具的基准[5]。此前, PowerBuilder 8.0版本受到用户一致好评。现在,全球领先的数据管理及企业集成解决方案供应商Sybase公司精益求精,再一次为广大企业推出了全新的PowerBuilder 9.0,在原有PB 8.0的基础上,这一最新版本提供了更为开放的开发环境并扩展了很多新的功能,具体有以下几个方面:
RAD JavaSever Page Targets——开发者可利用wizards和其他的RAD工具,快速开发、部署一套JSP网络应用系统。
Web Services——开发者毋需具备深厚的SOAP协议或WSDL的背景,即可在Microsoft .NET或其它架构环境下,创建、发布、完成网络服务系统。
XML DataWindow——可直接从一个XML论文中输入数据,或把从任何数据来源中恢复的数据存储为完全的用户化XML论文,也可存储为PDF或XSL的格式化对象。
PoweBuilder Native Interface——通过捆绑了一个C++标准的补充部分,极大地扩展了PowerBuilder应用开发的功能,在系统中调用其方法,并且通过JNI,Java应用程序,也可与PBVM相互交流。
Third-Party Application Servers——除了对现有的Sybase EAServer的支持,PowerBuilder还可实现对BEA Weblogic Server TM,IBM WebSphere和其它的J2EE应用开发服务器的支持。
The PowerBuilder Document Object Model——Sybase产品执行可存贮或操作XML文件的论文对象模块(DOM)。这项功能(PBDOM)用于从PowerScript源码中读取、编写、并操作标准格式的XML。
PDF Report Generaton——提供2种保存DataWindow对象的方法,以使其能够直接生成PDF格式的报告。此类提取方法以默认的方式加以应用,并可保存所有类型的DataWindow对象。
Source Control Enhancements——帮助开发者更有效地管理大型的PowerBuilder项目,并实现与Rational ClearCase及Merant PVCS的更紧密结合。
OrcaScript Utility——可以用类似英文的自然语言调用Orca应用程序。新的源码控制集成能根据源控件直接生成目标对象[6]。
§1.3.2 SQL Server 2000简介
 数据库系统是由数据库和数据库管理系统加在一起构的。数据库是相互关联的数据集合。数据是描写现实世界中各种具体事物或抽象概念的可存储并具有明确意义的信息。而数据库管理系统是一个通用软件系统,由一组计算机程序构成。数据库管理系统能够对数据库进行有效的管理。数据库管理系统提供了一个软件环境,使用户能方便快速地建立、维护、检索、存取和处理数据库中的信息。
 数据库设计是把现实世界的实体模型与需求转换成数据库的模型的过程,它是建立数据库应用系统的核心问题。数据库及其应用的性能都建立在良好的数据库设计的基础之上,数据库的数据是一切操作的基础,如果数据库设计不好,那么其它一切用于提高数据库性能的方法收效都是有限的。数据库设计的关键是如何使设计的数据库能合理地存储用户的数据,方便用户进行数据处理。
 设计数据库必须遵循一定的规则,在关系型数据库中,这种规则就是范式,范式是符合某一种级别的关系模式的集合。一般设计数据库遵循第三范式。即:数据库表中不包含已在其他表中包含的非主关键字信息。采用范式减少了数据冗余,节约了存储空间,同时加快了增、删、改的速度。
 SQL Server数据库是目前最流行的关系数据库系统之一,它对服务器的要求比较低,并包含了视图的灵活运用、触发器与存储过程、用户自定义数据类型与自定义函数、维护数据的完整性等,有很强的实用性。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。SQL Server 2000版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点。可跨越从Windows 98到Windows 2000 的大型多处理器的服务器等多种平台使用。SQL Server 2000 全面扩展了SQL Server 7.0 的性能可靠性和易用性使它成为一个杰出的数据库平台。可用于大型联机事务处理以及电子商务等[7]。
 SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本,该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能。具有使用方便、可伸缩性好、与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。其最大特点是为用户提供了大规模联机事务处理(OLTP)、数据仓库和电子商务应用程序所需的最新的出色数据库平台。Microsoft SQL Server 2000提供的分析服务显著增强了SQL Server version 7.0引入的联机分析处理(OLAP)服务组件的功能。分析服务引入了数据挖掘功能,可以用来在OLAP多维数据集和关系数据库中发现信息[8]。
第二章 教务管理系统需求分析
§2.1 项目概述
§2.1.1 系统目标
 本系统是面向学校教务管理人员,为其提供服务的综合管理系统。教务人员通过本系统完成所有的日常教务工作。其主要功能在于完成:
信息管理:对教师信息,学生信息,教务员信息,课程信息,教室信息,院系信息,班级信息等进行管理。
信息查询:对考试安排、学生成绩、课表等进行查询。
排课管理:班级选课、教务员排课。
考试管理:教务员安排考试、录入成绩。
§2.1.2 开发概况
 目前社会上教务管理系统的发展经过多年的探索和实践,已初步形成了一定的特色的相对成熟的教务管理体系,这为系统的开发奠定了良好的基础,是本系统开发研究的先决条件。该系统使用SQL Server2000建立数据库并用Powerbuilder9.0进行界面设计和编程实现。
 在设计过程中,采用可视化设计工具,使得图形用户界面的编程变得异常的简单。利用可视化工具在界面上画出图形界面,以所见即所得,系统自动生成界面的程序代码,而不必为这些界面的生成编写程序代码。
§2.1.3 信息描述
 学校教务管理人员通过本教务管理系统完成所有的日常教务工作。学生在学校内的所有和教务相关的数据都通过教务管理系统进行管理,如学生的注册信息、课程设置、学生选课、学生成绩等的录入、查询、更新等;完成排课排考等教学计划;完成对教学人员的管理,如教师、教务人员等。
§2.2 方案论证
§2.2.1 基于B/S结构的方案设计
 本方案是为了开发一个基于现代网络技术的教务管理系统,即能够连接到网络,通过网络进行数据的传输管理等。用户可通过浏览器直接访问该系统。
 整个教务管理系统是一个规模比较大的数据库系统。尽管其在组织关系上存在着很大的复杂性,繁琐性,不确定性,但是就整个系统的技术构成上来看,它还是属于一个数据库应用类的系统,其基本操作还是对存在数据库进行添加、删除、查找、修改等。数据库选用SQL Server 2000。
 在开发工具上,本方案选用较为流行的网站开发工具Dreamweaver,这种开发工具的好处是,开发软件操作简单,系统界面美观,用户使用简单,不需要安装其他的特定的软件,用普通的浏览器便可运行。
 在结构上,采用B/S(Brower/Server,浏览器/服务器)的网络结构。其结构图为:

 图2.1  B/S结构
硬件环境:
a. 具有Pentium 133、32MB内存活以上配置的计算机;
b. 输入及输出设备:键盘,鼠标,VGA显示器或更高。
c. 最少15MB的硬盘空间,常规安装需要100MB硬盘空间,完全安装需要240MB硬盘空间。
d. 最少8MB的RAM存储器。
开发环境:
 本系统的开发是通过网络建立一个B/S平台,服务器使用Windows 2000 Advance Server为用户提供服务,通过网站实现教务管理。
a. 系统体系结构:浏览器/服务器(B/S)体系结构。
b. 系统环境配置:Windows 2000 Advance Server
c. Web服务器:Tomcat 5.0
d. 数据库的选取:SQL Server 2000
e. 开发工具:Dreamweaver,ASP
§2.2.2 基于C/S结构的方案设计
 本方案是为了开发一个基于局域网的教务管理系统。用户需要安装一个应用程序,并通过网络连接到服务器。
 本方案采用PowerBuilder9.0为开发工具,开发一个客户机上的应用程序,再通过该应用程序连接到服务器。该系统也是一个大型数据库,在其组织上也存在一定的复杂性和不确定性。其基本功能是对数据库中的数据进行添加、删除、查询和修改,采用的是SQL Server 2000数据库。
硬件环境:
a. 具有Pentium 133、32MB内存活以上配置的计算机;
b. 输入及输出设备:键盘,鼠标,VGA显示器或更高。
c. 最少15MB的硬盘空间,常规安装需要100MB硬盘空间,完全安装需要240MB硬盘空间。
d. 最少8MB的RAM存储器。
开发环境:
 本系统采用C/S体系即客户端/服务器模式。客户端采用 PowerBuilder9.0开发,运行于Windows系列的操作系统上; 服务器端软件运行于Windows2000 server上 ; 数据库采用SQL Server 2000 数据库。
a. 系统体系结构:客户端/服务器(C/S)体系结构。
b. 系统环境配置:Windows 2000 Advance Server
c. 数据库的选取:SQL Server 2000
d. 开发工具:PowerBuilder9.0
§2.2.3 方案比较论证
 B/S模式主要由浏览器、Web服务器、数据库服务器三个层次组成。在这种模式下,客户端使用一个通用的浏览器,用户的所有操作都是通过浏览器进行的。该结构的核心部分是Web服务器,它负责接受远程(或本地)的HTTP查询请求,然后根据查询的条件到数据库服务器获取相关数据,再将结果翻译成HTML和各种页面描述语言,传送提出查询请求的浏览器。同样,浏览器也会将更改,删除,新增数据记录描述语言的请求申请至Web服务器,由后者与数据库联系完成这些工作。
 B/S结构的缺点:第一,服务器负载大。由于服务器处理所有的查询请求,再将结果以页面语言的形式传给浏览器,服务器的负载非常大,要求有性能很好的服务器;第二,客户端显示速度较慢。由于所有页面都来自于Web服务器,服务器处理完后,还要经过网络传输,所以在客户端显示要慢。如果网络带宽不足,要等较长的时间[9]。
 C/S体系结构是一种将事物相处理分开进行的网络系统,服务器采用高性能的PC、工作站或小型机并采用大型数据库系统,客户端采用PC机并安装专用的客户端软件。客户方应用软件一般包括用户界面,本地数据库等.当用户调用服务器资源时,客户机将请求传送给服务器,并根据服务器回送的处理结果进行分析,然后显示给用户。
 在C/S结构中,需要涉及两个独立的实体。一个是客户机,另一个则是服务器。客户机向服务器发出请求,而服务器则服务于这种请求。例如,请求可采取SQL查询的形式,并提交给一个SQL数据库引擎。数据库引擎随后会对请求进行处理,并返回一个结果集。在此,两个独立的进程协同工作,完成了一个完整的任务。对于用户的请求,如果客户机能够满足就直接给出结果;反之则需要交给服务器来处理,例如调用存放在服务器上的公用数据等,服务器对这些数据进行一些客户看不见的处理后还给客户。因此该模式可以合理均衡事务的处理,充分保证数据的完整性和一致性[10]。
 C/S体系结构使得开发和管理工作向服务器端转移,使得管理和维护工作变得相对简单。同时,C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据[11]。
 综上所述,由于本系统是面向学校教务管理人员,主要应用于局域网,对于网络的依赖较少,而作为学校综合的大型管理软件,对系统安全要求较高。因此,经过对比论证,本系统采用第二种设计方案,即基于C/S结构的方案设计。
§2.3 系统流程设计
 图2.2是教务管理系统的系统流程图,教务员通过用户名和密码进行登录,通过身份验证后进入本系统的具体功能操作界面,否则不允许进入。本系统的具体功能包括信息管理、信息查询、排课管理、考试管理等,教务员登录成功后即可进行相应的操作。


 图2.2 教务管理系统系统流程图
§2.4 功能模型设计
 
图2.3 教务管理系统顶层DFD图

 教务管理系统顶层DFD图(图2.3)主要描述了整个教务管理系统的数据流,表明教务员通过身份验证直接进入教务管理系统。


 图2.4 教务管理系统一层DFD图——教务员操作系统

 教务员操作系统(图2.4)主要描述了教务员进入教务管理系统后的功能模块,由这三个模块接口分别进入相关的子系统。排课子系统可以实现班级选课、组班、制定课表等功能;信息查询子系统可以实现教师、学生、教务员等相关信息查询;考试子系统可以实现申请考试、排考、成绩录入等功能。
 
 图2.5 教务管理系统二层DFD图——教务员排课系统
 
 教务员排课系统(图2.5)主要描述了教务员由一层的排课模块进入该子系统后的功能模块,包括选课、组班、制定课表等操作,选课是以班级为单位,选择已有的课程,并保存为班机课表,制定课表通过对教室冲突的检查,来确定上课时间和地点。

图2.6 教务管理系统二层DFD图——信息查询系统

    信息查询系统(图2.6)主要描述了教务员由一层的信息查询模块进入该子系统,可以分别对教务员信息、教师信息、学生信息进行查询,同时,在系统的具体实现中,可以对这三类信息进行增加、修改、删除等操作,从而将具体功能实现集中在一个窗口中进行,简化了系统,使用户操作更加方便。
 
图2.7 教务管理系统二层DFD图——教务员考试系统

 教务员考试系统(图2.7)主要描述了教务员考试子系统的功能模块,教务员进入到该子系统可以进行排考,录入成绩等操作,排考由教务员对考试时间、地点统筹计划,制定出考试日程安排。


 
图2.8 教务管理系统三层DFD图——选课子系统

    选课子系统(图2.8)主要描述了教务员根据班级基本信息和课程基本信息为各个班级进行选课。

 
图2.9教务管理系统三层DFD图——组班子系统

 组班子系统(图2.9)主要描述了教务员对学生进行组班,安排相应的教师,并能实现由学生到班级的查询功能。

 

 
图2.10 教务管理系统三层DFD图——课表制定子系统
 
 课表制定子系统(图2.10)主要描述了教务员通过对教室资源和课程分配的结合,制定班级课程表,并可以由班级或者教室查询到相关的课程表信息。

图2.11 教务管理系统三层DFD图——教务员信息查询

 教务员信息查询(图2.11)主要描述了教务员对于总体信息的查询功能,包括学生信息、教师信息、班级信息、课程信息、教务员信息、院系信息、教室信息等,以便在制定教学计划的时候进行统筹安排。
 图2.12 教务管理系统三层DFD图——教师信息查询
 教师信息查询(图2.12)主要描述了教务员对于教师相关信息的查询功能,包括学生信息查询、教师信息查询、课程情况查询、成绩表统计查询等,以便在申请考试时进行参考。

图2.13 教务管理系统三层DFD图——学生信息查询

 学生信息查询(图2.13)主要描述了教务员对学生相关信息进行查询,包括基本信息以及选课信息、成绩信息等。
 
 
 
图2.14 教务管理系统三层DFD图——申请考试子系统

    申请考试子系统(图2.14)主要描述了教务员通过制定考试时间表,安排出各门课程的考试时间。
 
图2.15 教务管理系统三层DFD图——排考子系统

 排考子系统(图2.15)主要描述了教务员结合考试时间表、课程分配表、教室资源表进行排考,制定出考试信息表,并能够进行相应的查询。

 
图2.16 教务管理系统三层DFD图——成绩录入子系统

    成绩录入子系统(图2.16)主要描述了教务员成绩录入功能,由教务员将学生的考试成绩录入到相应的成绩表中。
§2.5 数据结构设计
 数据字典是关于数据的数据,用于描述系统中各个部分的清单,是对这些部分进行详尽说明、保存和维护。系统中所有数据内容都是由数据元素和数据结构组成,要求保持完整性、一致性、可用性。根据系统需求,建立以下数据字典:


文件名:学生信息
别名:
组成:学号+姓名+性别+班级+电子邮箱
备注:全校学生基本信息记录
 表2.1 数据文件”学生信息表”的字典条目
 
文件名: 教室信息
别名:
组成:编号+名称+类型+容量
备注:根据教室的容量大小进行排课
表2.2 数据文件”教室信息表”的字典条目

文件名:系部信息
别名:
组成:编号+系名称
备注:根据院系的不同有不同的课程
表2.3 数据文件”系部信息表”的字典条目

文件名:班级信息
别名:
组成:编号+名称+人数
备注:根据班级进行选课
表2.4 数据文件”班级信息表”的字典条目

 


文件名:成绩
别名:
组成:学号+课程+分数
备注:学生考试成绩
 表2.5 数据文件”成绩表”的字典条目

文件名:教师信息
别名:
组成:编号+姓名+性别+系编号+电话+Email
备注:教师信息记录
表2.6 数据文件”教师信息表”的字典条目

文件名: 教务员信息
别名:
组成:登录号+密码+姓名+登录次数
备注:教务员(系统管理员)信息
表2.7 数据文件”教务员信息表”的字典条目

文件名:排课记录
别名:
组成:编号+课程+班级+教室1+星期1+时间1+教室2+星期2+时间2+开始周+结束周
备注:记录排课信息
表2.8 数据文件”排课记录表”的字典条目

 

文件名: 教室临时表
别名:
组成: 课时+星期一+星期二+星期三+星期四+星期五
备注: 临时记录教室使用情况
表2.9 数据文件”教室临时表”的字典条目

文件名:教室资源
别名:
组成:编号+教室+周次+星期11+星期12+星期13+星期14+星期21+星期22+星期23+星期24+星期31+星期32+星期33+星期34+星期41+星期42+星期43+星期44+星期51+星期52+星期53+星期54
备注: 记录一周教室可用情况
表2.10 数据文件”教室资源表”的字典条目

文件名:考试信息
别名:
组成:编号+课程+班级+教室+时间
备注: 考试安排信息
表2.11 数据文件”考试信息表”的字典条目

文件名: 课程临时表
别名:
组成:课时+星期一+星期二+星期三+星期四+星期五
备注:临时记录课程安排信息
表2.12 数据文件”课程临时表”的字典条目


文件名:课程分配
别名:
组成:编号+班级+课程
备注: 以班级为单位选择课程
表2.13 数据文件”课程分配表”的字典条目

文件名: 课程信息
别名:
组成: 编号+名称+教师+学分+总学时
备注: 记录每门课程的详细信息
表2.14 数据文件”课程信息表”的字典条目
§2.6 功能描述
 本系统适合学分制、选课制的管理模式。本系统集信息管理、学籍管理、排课、选课、排考、成绩管理、学生信息管理等教务功能于一体,可以提供各类数据信息的查询。
整个系统分为以下模块:
信息管理:包括教师信息,学生信息,教务员信息,院系信息,班级信息,教室信息以及课程信息等的综合管理。
信息查询:包括考试安排查询,学生成绩查询以及分别按照班级、教室进行课表的精确和模糊查询。
选课管理:以班级为单位进行选课,然后由教务员进行课表制定。
排课管理:教务员进行教室资源的初始化,然后对自然班的课程进行智能排课。
考试管理:教务员根据班级、课程、教室、时间等信息安排考试。
成绩管理:考试成绩出来后,由教务员负责录入。
帐号管理:对教务员帐号进行管理。
§2.7 行为描述
 在整个系统中通过教学计划有效管理,方便准确下达教学任务,进行排课前数据准备、排课条件设定、自动排课和课表的日常管理;而通过对全院学生的学籍管理,掌握学生基本信息,而根据各班级课表情况或各专业教学计划,可以方便地进行成绩管理;教务员可以登入成绩和查询成绩情况,并且可以安排科目考试。排课系统是院系教务员根据教学任务安排各门课程的教师、教室等工作;各系统功能分开、但又相互关联,而数据完全共享,具体管理工作人员根据自己的职责范围,运用相应的系统完成各自的日常教务工作。
§2.8 性能需求
 (1)网络环境下的多用户系统。
 信息主要存储在服务器端的数据库中,由各教务员在各自的客户端上录入,修改,删除相关的内容,各用户还可进行查询,调用,达到信息共享。
 (2)数据的完整性,准确性。
 录入数据采用表格方式,限制录入数据类型及取值范围以保证数据的完整性及准确性。
 (3)数据安全性。
 本系统采用二级安全保障:
 第一级:依赖于系统本身对用户身份的规定。
 第二级:在程序模块中通过使用密码进行身份验证控制功能对用户加以限制。
§2.9 运行环境
 开发出的软件要适用于各种WINDOWS平台和SQL SERVER数据库下,支持局域网和INTERNET下的资源共享以及EXCEL的表格输出等,最低配置要求PIII 800,128M内存以及8M显存显卡。
      开发环境:Windows XP Professional SP2。
      开发工具:PowerBuilder 9.0。
 数据库管理系统:Microsoft SQL Server 2000。

 

第三章 教务管理系统概要设计
§3.1 数据库设计
§3.1.1 数据库创建流程
 创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。
标识需要的数据;
收集被标识的字段到表中;
标识主关键字字段;
绘制一个简单的数据图表;
规范数据;
标识指定字段的信息;
创建物理表。
§3.1.2 建表规则
 依据第三范式的原则,为减少冗余,便于数据查询,数据库内数据表的划分原则是:结构单一且不易造成冗余的属性值尽可能按其自然归属,归并成一个子类组成数据表;对属性相近但结构多样且易造成冗余的属性值,则应将其转化成统一结构归并成一个子类组成数据表;相关的数据表利用关键字在数据库中建立永久关系和参照完整性,这样可以保证用户修改,增加,删除记录时参照完整性产生作用,方便数据库的移植,简化程序设计。
§3.1.3 数据库表
根据数据库设计原则,为实现系统功能作者一共建立了14个表,如下:
列名 数据类型 数据长度 规则
登录号 varchar 10 主键
密码 varchar 10 不允许空
姓名 varchar 50 允许空
登录次数 int 4 允许空
表3.1 教务员信息表
列名 数据类型 数据长度 规则
学号 int 4 主键
姓名 varchar 10 不允许空
性别 char 2 不允许空
班级 int 4 不允许空
电子邮箱 char 50 不允许空
 表3. 2 学生信息表

列名 数据类型 数据长度 规则
学号 int 4 主键
课程 int 4 主键
分数 int 4 不允许空
 表3.3 成绩表

列名 数据类型 数据长度 规则
编号 int 4 主键
教室 int 4 不允许空
周次 varchar 10 不允许空
星期11 bit 1 不允许空
星期12 bit 1 不允许空
星期13 bit 1 不允许空
星期14 bit 1 不允许空
星期21 bit 1 不允许空
星期22 bit 1 不允许空
星期23 bit 1 不允许空
星期24 bit 1 不允许空
星期31 bit 1 不允许空
星期32 bit 1 不允许空
星期33 bit 1 不允许空
星期34 bit 1 不允许空
星期41 bit 1 不允许空
星期42 bit 1 不允许空
星期43 bit 1 不允许空
星期44 bit 1 不允许空
星期51 bit 1 不允许空
星期52 bit 1 不允许空
星期53 bit 1 不允许空
星期54 bit 1 不允许空
表3.4 教室资源表
列名 数据类型 数据长度 规则
编号 int 4 主键
课程 int 4 不允许空
班级 int 4 不允许空
教室 int 4 不允许空
时间 varchar 30 不允许空
表3.5 考试信息表

列名 数据类型 数据长度 规则
编号 int 4 主键
名称 varchar 50 不允许空
教师 int 4 不允许空
学分 char 1 不允许空
总学时 tinyint 1 不允许空
表3.6 课程信息表

列名 数据类型 数据长度 规则
编号 int 4 主键
班级 int 4 不允许空
课程 int 4 不允许空
表3.7 课程分配表

列名 数据类型 数据长度 描述
课时 varchar 5 主键
星期一 varchar 100 允许空
星期二 varchar 100 允许空
星期三 varchar 100 允许空
星期四 varchar 100 允许空
星期五 varchar 100 允许空
表3.8 课程临时表

列名 数据类型 数据长度 规则
编号 int 4 主键
姓名 varchar 10 不允许空
系编号 int 4 不允许空
电话 varchar 11 不允许空
Enail varchar 25 允许空
表3.9 教师信息表
列名 数据类型 数据长度 规则
编号 int 4 主键
课程 int 4 不允许空
班级 int 4 不允许空
教室1 int 4 不允许空
星期1 int 4 不允许空
时间1 tinyint 1 不允许空
教室2 int 4 不允许空
星期2 int 4 不允许空
时间2 tinyint 1 不允许空
开始周 tinyint 1 不允许空
结束周 tinyint 1 不允许空
表3.10 排课记录表

列名 数据类型 数据长度 规则
编号 int 4 主键
系名称 varchar 50 不允许空
表3.11 系部信息表

列名 数据类型 数据长度 规则
课时 varchar 10 主键
星期一 bit 1 不允许空
星期二 bit 1 不允许空
星期三 bit 1 不允许空
星期四 bit 1 不允许空
星期五 bit 1 不允许空
表3.12 教室临时表

列名 数据类型 数据长度 规则
编号 int 4 主键
名称 varchar 10 不允许空
类型 varchar 10 不允许空
容量 smallint 2 不允许空
表3.13 教室信息表

 


列名 数据类型 数据长度 规则
编号 int 4 主键
名称 varchar 50 不允许空
人数 tinyint 1 不允许空
表3.14 班级信息表
§3.2 功能设计
 教务员通过身份验证后进入主窗口。系统的主窗口为用户提供五项功能选择:信息管理,信息查询,排课管理,考试管理,窗口管理。具体功能描述如下:
信息管理:实现对教师信息,学生信息,教务员信息,课程信息,教室信息,院系信息,班级信息等进行管理的功能。
信息查询:实现对考试安排、学生成绩、课表等的查询功能。
排课管理:实现班级选课、教务员排课的功能。
考试管理:实现教务员安排考试、录入成绩的功能。
窗口管理:实现对系统中已打开窗口进行排列的功能。
§3.2.1 信息管理子模块
功能描述:教务员可对教师信息、学生信息、教务员信息、课程信息、教室信息、院系信息、班级信息等进行增加、删除、修改等操作。
§3.2.2 信息查询子模块
考试查询:查询考试安排详细信息,包括班级、课程、教室、教室类型、考试时间等相关信息。
成绩查询:通过学号查询相关课程的考试成绩。
课表查询:可以按照班级或教室进行课表的精确和模糊查询。按照班级查询,列出了班级名称列表、班级课程表;按照教室查询,列出了教室名称列表、教室课程安排表。
§3.2.3 排课管理子模块
初始化教室资源:按照教学计划设定本学期教学周数。
班级选课:以班级为单位进行选课。
制定课表:根据班级选定的课程综合各类资源信息进行智能排课。
§3.2.4 考试管理子模块
考试安排:教务员通过教学计划进行考试安排。
录入成绩:教务员进行成绩录入。
§3.3 系统结构设计
图3.1是教务管理系统的系统结构图,指出了教务管理系统的主要功能结构:

图3.1 系统结构图
§3.4 接口
§3.4.1 硬件接口
本软件不需要特定的硬件或硬件接口进行支撑。
486以上PC机均可运行此软件。
§3.4.2 软件接口
运行于Windows98更高版本具有WIN32 API的操作系统之上。
§3.5 性能
1.系统的输出数据是数据库的全部相关记录或者符合查询条件的记录数据,应符合用户的查询要求,保证查询的准确性。
2.本系统支持直接查询,部分窗口提供相应的模糊查询
(1)网络环境下的多用户系统。
信息主要存储在服务器端的数据库中,由用户在规定的权限下在客户端上录入,修改,删除相关的内容,用户还可进行查询,调用,达到信息共享。
(2)数据的完整性,准确性。
录入数据采用表格方式,限制录入数据类型及取值范围以保证数据的完整性及准确性。
(3)数据安全性。
本系统采用二级安全保障:
第一级:依赖于系统本身对用户身份的规定。
第二级:在程序模块中通过使用密码进行身份验证控制功能对用户加以限制。
§3.6 故障处理
 正常使用时不应出错,若运行时遇到不可恢复的系统错误,也必须保证数据库完好无损;调试中遇到的问题及解决的方案:由于数据库表采用中文建立,在某些系统可能出现兼容问题,可采取编码转换的方法来解决;数据库表在模块添加删除操作中对其他一些子模块产生非法的影响,可通过数据限定来解决。
第四章 教务管理系统详细设计
§4.1 创建数据库
1.在Windows XP Professional SP2 系统上安装Microsoft公司的SQL Server 2000企业版。
2.启动SQL Server 2000中的“企业管理器”,打开本地服务器建立一个名为“jiaowu”的数据库,并设置相关属性。
3.通过企业管理器建立系统所需的数据库表。
§4.2 连接数据库
 在PowerBuilder9.0中,单击DB Profiles画板时,打开参数配置窗口Database Profiles,右键单击MSS Microsoft SQL Server→NewProfile,在出现的窗口中填入要连接的数据库参数:
  Profile Name : jiaowu
  Connect Information
 Server:Local
 Login ID:Sa
 Database:jiaowu
 设置好连接参数后,单击OK,保存创建的Profile并关闭设置窗口。这个Profile就显示在Database Profiles窗口中了。
§4.3 功能实现
    由于本系统涉及到的功能模块较多,且部分模块具有相似性,故在此仅对具有代表性的模块进行阐述说明,并附上系统截图。
§4.3.1 登录
    登录窗口是教务员进入系统的唯一途径,只有通过身份验证的用户才能进入系统进行操作。该模块在用户连续三次输入错误的用户名或者密码时会强行关闭登录窗口,退出系统,从而使系统具有更高的安全性。示例如下:

图4.1 登录窗口
§4.3.2 信息管理
 信息管理模块对系统的基本信息进行管理,包括增加、删除、修改等。其中,修改信息可直接在窗口中实现,修改完毕点击保存即可。学生信息管理示例如下:

图4.2 学生信息管理窗口
§4.3.3 信息查询
 信息查询模块实现对部分信息的查询功能,包括模糊查询和精确查询。用户输入查询条件,点击查询即可获得相关信息。按班级查询课程表示例如下:

图4.3 按班级查询课表窗口
§4.3.4 初始化教室资源
 该模块用于初始化教室资源,设定所有教室资源皆为可用,以便进行新的排课计划。示例如下:

图4.4 初始化教室资源窗口
§4.3.5 考试安排
 教务员通过该模块安排考试,设定考试时间及考试地点,同时可对考试安排进行添加、删除、修改等操作。示例如下:

图4.5 考试安排窗口
§4.3.6 成绩录入
 教务员通过该模块录入学生考试成绩,同时可对成绩记录进行添加、修改、删除等操作。示例如下:

图4.6 成绩录入窗口
§4.4 关键技术
§4.4.1 班级选课的解决方案
班级选课的解决方案如下:
1.在班级下拉列表选择班级,点击确定后将在已选课程处显示班级已选课程。
2.选择课程列表中的课程,添加至预选课程中,点击保存即可成功选课。
3.选中已选课程,点击删除即可删掉已选课程。

图4.7 选课窗口
该窗口的open事件如下:
int i
//建立班级信息数据存储对象
ds_class=create datastore     //创建DataStore实例
ds_class.dataobject="dw_grade"  //关联数据窗口
ds_class.settransobject(sqlca)    //指定事务对象
ds_class.retrieve()       //检索数据
//建立班级名称列表
for i=1 to ds_class.rowcount()
 ddlb_class.additem(ds_class.getitemstring(i,2))
next
//检索课程信息数据
this.dw_course.settransobject(sqlca)   //指定事务对象
this.dw_course.retrieve()       //检索数据
//检索班级已选课记录数据
dw_selected.settransobject(sqlca)
dw_selected.retrieve()
//过滤,在窗口打开时不显示已选课记录
dw_selected.setfilter("课程分配_班级=-1")
dw_selected.filter()

选定班级的”确定” 按钮的clicked事件代码如下:
string name
int n
name=trim(w_courseopen.ddlb_class.text)  //获得班级名称
if name="" then return        //没有输入班级名称,返回
//检查输入的班级名称是否正确
n=ds_class.find("名称='"+name+"'",1,ds_class.rowcount())
if n<=0 then
 messagebox("课程分配","班级名称错误!",Exclamation!)
 w_courseopen.ddlb_class.setfocus()
 return            //返回
end if
//显示班级已选课程
dw_selected.setfilter("课程分配_班级
="+string(ds_class.GetItemNumber(n,1))+"")
dw_selected.filter()
//启用相关操作按钮
w_courseopen.cb_add.enabled=true
w_courseopen.cb_delete.enabled=true
w_courseopen.cb_save.enabled=true
w_courseopen.cb_sdelete.enabled=true
w_courseopen.cb_refresh.enabled=true
w_courseopen.cb_clear.enabled=true

保存选课的“保存“按钮的clicked事件代码如下:
//将当前预选课程添加到课程分配记录表中
int class_num,course_num ,n,i
string name
//获得当前班级编号
n=ds_class.rowcount()
n=ds_class.find("名称='"+w_courseopen.ddlb_class.text+"'",0,n)
class_num=ds_class.getitemnumber(n,1)
for i=1 to w_courseopen.lb_preselect.totalitems()
 //获得课程编号
 name=w_courseopen.lb_preselect.text(i)
 n=w_courseopen.dw_course.rowcount()
 n=w_courseopen.dw_course.find("名称='"+name+"'",0,n)
 course_num=w_courseopen.dw_course.getitemnumber(n,1)
 //添加选课记录
 insert into 课程分配(课程,班级)
  values (:course_num,:class_num);
 if sqlca.sqlnrows>0 then
  commit;    //提交
 else
  rollback;   //回滚
 end if
next
messagebox("课程分配","已成功保存课程分配记录!")
//清除预选课程列表
w_courseopen.lb_preselect.reset()
//刷新已选课程列表
w_courseopen.dw_selected.retrieve()
§4.4.2 排课问题的解决方案
 制定课表是该系统中比较难的一部分,数据窗口复杂,连接多,牵涉到的数据表多几个问题,在编码时主要采用了利用数据存储对象分别对每一个数据窗口进行操作的原理,简化了代码。其操作窗口如下:

图4.8 排课窗口
 该模块通过选择班级,来进一步的对班级的所有课程进行安排。其中调用了班级信息表,教室资源表,课程临时表以及课程分配表。
 对班级的选择只能选已经存在的班级,通过下拉菜单来实现对班级输入信息的限制,在选择了班级的同时,系统将首先清除它的原课程信息记录并通过调用班级人数获得适合该班级的教室信息链接到教室的下拉菜单中进行选择。
该窗口的open事件代码如下:
string name
int i,j,n,nrow
//建立教室资源数据存储对象
ds_rooms=create datastore     //创建DataStore实例
ds_rooms.dataobject="dw_roomresourse" //关联数据窗口
ds_rooms.settransobject(sqlca)   //指定事务对象
ds_rooms.retrieve()    //获得最新教室资源数据
//建立排课记录数据存储对象
ds_table=create datastore     //创建DataStore实例
ds_table.dataobject="dw_coursetable" //关联数据窗口
ds_table.settransobject(sqlca)   //指定事务对象
ds_table.retrieve()       //检索数据
//建立班级信息数据存储对象
ds_class=create datastore     //创建DataStore实例
ds_class.dataobject="dw_grade"   //关联数据窗口
ds_class.settransobject(sqlca)   //指定事务对象
ds_class.retrieve()       //检索数据
//检索班级课程信息数据
dw_course.settransobject(sqlca)   //指定事务对象
dw_course.retrieve()       //检索数据
//检索课程临时表数据
dw_ctabletemp.settransobject(sqlca)  //指定事务对象
dw_ctabletemp.retrieve()     //检索数据
//检索教室临时表数据
dw_roomtemp.settransobject(sqlca)  //指定事务对象
dw_roomtemp.retrieve()      //检索数据
//过滤,在窗口打开时不显示课程信息
dw_course.setfilter("课程分配_班级=-1")
dw_course.filter()
//建立班级名称列表
ddlb_class.additem("")
for i=1 to ds_class.rowcount()
 ddlb_class.additem(ds_class.getitemstring(i,2)+"("+string(ds_class.getitemnumber(i,3))+"人)")
next

选定班级的”确定” 按钮的clicked事件代码如下:
string name,msg,room1_name,room2_name,grade_num
int n,i,j,class_num,course_num,course_room1,course_week1,course_time1
int course_room2,course_week2,course_time2,week_start,week_end
if ddlb_class.text<>"" then
 i=pos(ddlb_class.text,"(")
 j=pos(ddlb_class.text,")")
 name=left(ddlb_class.text,i -1)  //获得班级名称
 grade_num=mid(ddlb_class.text,i+2,j - i -4 )  //获得班级人数 
 n=ds_class.find("名称='"+name+"'",1,ds_class.rowcount())
 //显示班级课程信息
 class_num=ds_class.GetItemNumber(n,1)
 dw_course.setfilter("课程分配_班级="+string(class_num)+"")
 dw_course.filter()
 //清除课程安排
 sle_n1.text=""
 sle_n2.text=""
 ddlb_week1.selectitem(1)
 ddlb_time1.selectitem(1)
 ddlb_week2.selectitem(1)
 ddlb_time2.selectitem(1)
 //清除原班级课程表
 for i=1 to dw_ctabletemp.rowcount()
  for j=2 to 6
   dw_ctabletemp.setitem(i,j,"")
  next
 next
 ds_rooms.retrieve()    //获得最新教室资源数据
 //筛选容量适合班级人数的教室
 ds_rooms.setfilter("")
 ds_rooms.filter()
 //筛选新班级的排课记录
 ds_table.setfilter("班级="+string(class_num)+"")
 ds_table.filter()
 //显示班级课程表
 for i=ds_table.rowcount() to 1 step -1
  //获得课程排课记录数据
  course_num=ds_table.getitemnumber(i,2)   //获得课程编号
  course_room1=ds_table.getitemnumber(i,4)  //获得教室1编号
  course_week1=ds_table.getitemnumber(i,5)  //获得星期几上课
  course_time1=ds_table.getitemnumber(i,6)  //获得第几节上课
  course_room2=ds_table.getitemnumber(i,7)  //获得教室2编号
  course_week2=ds_table.getitemnumber(i,8)  //获得星期几上课
  course_time2=ds_table.getitemnumber(i,9)  //获得第几节上课
  week_start=ds_table.getitemnumber(i,10)   //获得起始周
  week_end=ds_table.getitemnumber(i,11)   //获得结束周
  //获得课程名称
  n=dw_course.find("课程分配_课程
="+string(course_num),1,dw_course.rowcount())
  name=dw_course.getitemstring(n,2)
  //获得教室名称
  n=ds_rooms.find("教室资源_教室
="+string(course_room1),1,ds_rooms.rowcount())
  //messagebox("",string(course_room1)+"  "+string(n)+"
 "+string(ds_rooms.rowcount()))
  //return
  room1_name=ds_rooms.getitemstring(n,1)
  msg=name+"~r~n"+room1_name+","+string(week_start)+"-"+string(week_end)+"周"
  //将排课记录数据显示在课程表中
  dw_ctabletemp.setitem(course_time1,course_week1+1,msg)
  if course_room2>0 then
   //获得教室名称
   n=ds_rooms.find("教室资源_教室
="+string(course_room2),1,ds_rooms.rowcount())
   room2_name=ds_rooms.getitemstring(n,1)
   msg=name+"~r~n"+room2_name+","+string(week_start)+"-"+string(week_end)+"周"
   //将排课记录数据显示在课程表中
   dw_ctabletemp.setitem(course_time2,course_week2+1,msg)   
  end if  
 next
 n=1
 if ds_table.rowcount()>0 then
  //显示第一门课程的上课时间安排数据
  sle_n1.text=string(week_start)
  sle_n2.text=string(week_end)
  ddlb_week1.selectitem(course_week1+1)
  ddlb_time1.selectitem(course_time1+1)
  ddlb_room1.selectitem(room1_name,0)
  n=ddlb_room1.finditem(room1_name,0)
  if course_room2 > 0 then
   ddlb_week2.selectitem(course_week2+1)
   ddlb_time2.selectitem(course_time2+1)
   ddlb_room2.selectitem(room2_name,0)
   n=ddlb_room2.finditem(room2_name,0)
  end if  
 end if  
 //筛选容量适合班级人数的教室
 ds_rooms.setfilter("教室信息_容量>="+grade_num)
 ds_rooms.filter()
 //建立教室名称列表
 ddlb_room1.reset()
 ddlb_room2.reset()
 for i=1 to ds_rooms.rowcount()
  name=ds_rooms.getitemstring(i,1)
  ddlb_room1.additem(name) 
  ddlb_room2.additem(name) 
 next 
 ddlb_room1.selectitem(1)
 ddlb_room2.selectitem(1) 
 ddlb_room2.event selectionchanged(1)
 cb_save.enabled=true
else
 dw_course.setfilter("课程分配_班级=-1")
 dw_course.filter()
end if

完成教室安排的”确定” 按钮的clicked事件代码如下:
string week_start,week_end,course_name,name
int n,i,j,week1,time1,week2,time2
boolean canwritetotable
string weeks[6]={"","星期一","星期二","星期三","星期四","星期五"}
string class[5]={"","第1讲","第2讲","第3讲","第4讲"}
week_start=sle_n1.text
week_end=sle_n2.text
name=ddlb_week1.text
week1=ddlb_week1.finditem(name,0)
name=ddlb_time1.text
time1=ddlb_time1.finditem(name,0)
name=ddlb_week2.text
week2=ddlb_week2.finditem(name,0)
name=ddlb_time2.text
time2=ddlb_time2.finditem(name,0)
if week1=week2 and time1=time2 and ddlb_room1.text=ddlb_room2.text then
 messagebox("制定课程表","两次上课时间不能相同",Exclamation!)
 ddlb_week2.setfocus()
 return
end if
if not isnumber(week_start) then
 messagebox("制定课程表","请输入有效的课程开始周!",Exclamation!)
 sle_n1.setfocus()
 return
end if
if not isnumber(week_end) then
 messagebox("制定课程表","请输入有效的课程结束周!",Exclamation!)
 sle_n2.setfocus()
 return
end if
if week1<=1 then
 messagebox("制定课程表","请选择第一次课在哪一天上!",Exclamation!)
 ddlb_week1.setfocus()
 return
end if
if time1<=1 then
 messagebox("制定课程表","请选择第一次课在哪一节上!",Exclamation!)
 ddlb_time1.setfocus()
 return
end if
if week2>=1 then
 if time2<=1 then
  messagebox("制定课程表","请选择第二次课在哪一节上!",Exclamation!)
  ddlb_time2.setfocus()
  return
 end if
end if
//清除当前课程原安排
n=dw_course.getrow()
course_name=dw_course.getitemstring(n,2)
for i=1 to dw_ctabletemp.rowcount()
 for j=2 to 6
  name=dw_ctabletemp.getitemstring(i,j)
  if pos(name,course_name)>0 then
   dw_ctabletemp.setitem(i,j,"")
  end if  
 next
next
//检验当前课程表相同位置是否安排其他课程
name=dw_ctabletemp.getitemstring(time1 - 1,week1)
if pos(name,course_name)=0 and name<>"" then
 messagebox("制定课程表",weeks[week1]+class[time1]+"已安排其他课程")
 return
end if
if week2>1 then
 name=dw_ctabletemp.getitemstring(time2 - 1,week2)
 if pos(name,course_name)=0 and name<>"" then
  messagebox("制定课程表",weeks[week2]+class[time2]+"已安排其他课程")
  return
 end if 
end if
//检验教室相同位置是否安排其他课程
n=ddlb_room1.finditem(ddlb_room1.text,0)
ddlb_room1.event selectionchanged(n)
n=dw_roomtemp.getitemnumber(time1 - 1,week1)
if n=1 then
 messagebox("制定课程表",ddlb_room1.text+weeks[week1]+class[time1]+"已安排其他课程")
 return
end if
n=ddlb_room2.finditem(ddlb_room2.text,0)
ddlb_room2.event selectionchanged(n)
n=dw_roomtemp.getitemnumber(time2 - 1,week2)
if n=1 then
 messagebox("制定课程表",ddlb_room2.text+weeks[week2]+class[time2]+"已安排其他课程")
 return
end if
//将当前课程安排写入课程表 
name=course_name+"~r~n"+ddlb_room1.text
name=name+","+week_start+"-"+week_end+"周"
dw_ctabletemp.setitem(time1 - 1,week1,name)
if week2>=1 then
 name=course_name+"~r~n"+ddlb_room2.text
 name=name+","+week_start+"-"+week_end+"周"
 dw_ctabletemp.setitem(time2 - 1,week2,name)
end if
第五章 教务管理系统运行调试
§5.1 运行
 将系统与数据库连接后,修改连接参数,就可以直接运行了。在连接数据库上提供了两种连接方法:通过ODBC接口或者SQL专用接口均可以连接。
§5.2 测试
§5.2.1 测试的目的
 软件测试的目标和定义:
    (1)测试是为了发现程序中的错误而执行程序的过程
    (2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案
    (3)成功的测试是发现了至今为止尚未发现的错误的测试
     在对本教务管理系统测试时,也正是基于上述观点来进行的,测试的目的不是证明系统是完美的,而是发现问题,更好的解决问题,使系统不断完善,满足客户的需求。
§5.2.2 测试的准则
 为了能设计出行之有效的测试方案,必须深入理解并正确运用指导软件测试的基本准则。下面列举主要的测试准则:
 (1)所有的测试都应该追溯到用户需求。
 (2)应该在开始测试之前就制定出测试计划。
 (3)把Pareto原理应用到软件测试中。Pareto原理说明,测试发现的错误中80%很可能是由程序中的20%模块造成的。
 (4)应该从“小模块”测试开始,并逐步进行“大模块”测试。
 (5)穷举测试是不可能的。
 (6)为了达到最佳的测试效果,应该由独立的第三方从事测试工作。
§5.2.3 测试的方法
 测试任何产品都有两种方法:如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能正常使用;如果知道了产品的内部工作过程,可以通过测试来检测产品内部动作是否按照说明书的规定正常工作。前一种称为黒盒测试又称功能测试,后一种方法称为白盒测试又称结构测试。
    在测试本系统时,采用的是白盒测试来设计测试用例,而且在测试过程中,由于条件原因,不能完全按照测试规则由第三方来测试,测试过程和方案设计由作者完成。
§5.2.4 测试用例

测试用例 1
描述 登录测试
测试方法 1. 输入正确的用户名和密码
例:用户名 adm  密码 123
2. 输入正确的用户名和错误的密码
例:用户名 adm  密码 456
3. 输入错误的用户名和正确的密码
例:用户名 sk    密码 123
期望结果 在输入正确的用户名和密码时,可以正确登录,输入错误的用户名或密码,提示错误
操作结果:1、进入系统
 2、系统提示 密码错误
 3、系统提示 用户名错误
测试结果(正确或错误) 正确
测试人  蔡磊 日期 : 2006/05/27
表5.1 登录测试

 

 


测试用例 2
描述 信息管理测试
测试方法 以教务员信息管理为例:
1. 增加信息
登录号:cai 密码:789 姓名:蔡磊 登录次数:0
2. 修改信息
登录号:cailei 密码 456
3. 删除信息
选中并删除该条记录
期望结果 通过增加、修改、删除等操作实现数据库相关信息的更新。操作结果:1、数据库成功增加该条记录
 2、成功修改登录号和密码
 3、成功删除该条记录
测试结果(正确或错误) 正确
测试人  蔡磊 日期 : 2006/05/27
表5.2 信息管理测试
测试用例 3
描述 信息查询测试
测试方法 以成绩查询为例:
在文本框输入查询条件 蔡磊 进行查询
期望结果 系统列出与查询条件匹配的相关信息
操作结果:窗口列出 蔡磊 的成绩信息,如下:
学号 姓名 课程名称 学分 分数
20023851 蔡磊 计算机导论 85 3
20023851 蔡磊 高等数学 75 2

测试结果(正确或错误) 正确
测试人  蔡磊 日期 : 2006/05/27
表5.3 信息查询测试
测试用例 4
描述 班级选课测试
测试方法 以信息0205班为例添加删除班级课程:
增加班级课程 计算机导论
2、删除班级课程 计算机导论
期望结果 成功更新班级已选课程,并在选课过程中正确处理选课重复等冲突
数据库成功添加信息0205班课程 计算机导论
数据库成功删除信息0205班课程 计算机导论
测试结果(正确或错误) 正确
测试人  蔡磊 日期 : 2006/05/27
表5.4 班级选课测试

测试用例 5
描述 排课测试
测试方法 以信息0205班为例进行排课,具体步骤如下:
在班级下拉列表中选择信息0205并确定
在班级课程信息中选择 计算机导论
在上课时间安排中设置 始末周 1-15 ,星期二1-2节6A319,星期五3-4节6A319 并确定
期望结果 能正确显示排课结果并在冲突时引导用户重新选择
操作结果:班级课程表中显示出所设置的课程安排
测试结果(正确或错误) 正确
测试人  蔡磊 日期 : 2006/05/27
表5.5 排课测试


测试用例 6
描述 课表查询测试
测试方法 通过班级查询课表
在班级名称中输入“信息”二字,进行课表模糊查询;在班级名称中输入“信息0205” ,进行课表精确查询。
2、通过教室查询课表
在教室名称中输入“1” ,进行课表模糊查询;
在教室名称中输入“6A319” ,进行课表精确查询。
期望结果 在左边窗口中列出所有符合查询条件的班级或者教室,在右边窗口中显示被选中班级或者教室的课程安排情况
测试结果(正确或错误) 正确
测试人  蔡磊 日期 : 2006/05/27
表5.6 排课测试
§5.2.5 测试总结
 经过上述测试,本系统在用户登录,信息管理,信息查询,班级选课,排课等各项操作中均可按照预期的设计运行,实现了教务管理系统的开发目标。

 

 

 

 


结  论
 经过三个多月的设计和开发,教务管理系统基本开发完毕。其功能基本符合需求,对于数据的一致性的问题也通过程序进行了有效的解决。
 在系统的开发过程中,主要作了以下工作:
比较了传统的教务管理模式与当代教务管理模式的优点和缺点。传统的教学管理模式适合于规模较小、现代化设施建设不够完备的院校,由于硬件条件方面的限制,只有依靠人力进行管理,但是对于论文资料的管理相对安全,不易遗失;当代教务管理模式更加智能化,减少了教务管理人员的工作量,在硬件设施方面的投入相对较高,并且要求加强安全方面的工作,防止来自网络的侵害。
深入学习了SQL Server 2000和PowerBuilder 9.0等开发工具,掌握了许多实用的开发技巧。以PowerBuilder为例,在以往学习PowerBuilder8.0的基础上加强了对新版本的学习和使用,巩固了对基本函数的掌握和运用,在具体应用中能够更加灵活多变。
分析了C/S和B/S模式下的管理信息系统的优点和缺点,采用C/S模式设计开发了此教务管理系统,并对B/S模式有了一定的了解。
从撰写需求分析报告到毕业论文说明书,对软件开发流程有了更加深刻的认识。在以往的课程设计中,对系统的开发停留在单纯的代码设计上,而通过这次毕业设计,对于整个系统开发流程有了全面深入的实践,完全按照软件开发规范进行,这对以后的工作都是大有裨益的。
比较研究了各种选课系统和排课系统的模型以及解决方案。本系统的重点及难点在于选课系统和排课系统的实现,特别是排课系统,涉及到的方面较多,因此在设计过程中,作者借鉴了一些具体问题的解决方案,最终采用了检验冲突智能排课的方法。对于其他的解决方案如回溯法、贪心法、遗传算法等,虽未采用,但在比较研究的过程中都令作者受益匪浅。
 由于缺乏经验以及时间仓促,所以该系统还有许多不尽如人意的地方,比如用户界面不够美观,出错处理不够,无帮助论文等多方面问题,这些都有待进一步改善。另外,本系统用于测试的时间较短,存在未知的错误也在所难免。
参考文献
 [1]万迪华.学分制教务管理系统的设计与实现[J].电脑知识与技术.2005.(35):19-21.
 [2]刘添华.基于PowerBuilder的教学管理系统[J].黑龙江工程学院学报.2005.(2):17-19.
 [3]刘振宇.PowerBuilder作为数据库应用开发工具的优势[J].计算机系统应用.1999.(2):45-47.
 [4]Daniel Wybrow,Pete Cameron-MacDonald. Management Information Systems:Do the give manufacturing organisations what they want? [J]. Journal of Materials Processing Technology.1996.(21):41-42.
 [5]吴锋.PowerBuilder在企业MIS开发中的应用和思考[J].计算机工程与应用. 1999.(1):93-95.
 [6]张新华,朱跃龙. 基于PowerBuilder的MIS系统中通用查询系统设计与实现[J].微型电脑应用.2005.(9): 31-33.
 [7]曹效阳. 浅谈SQL Server中的安全策略[J].现代计算机.2006.(01):17-21.
 [8]QI Guo-you, ZENG Sai-xing. Integration of Management systems: A Process Based
   Model[J].Journal of Northeast Agricultural University.2005.Vol.12(2):8-11.
 [9]张传红,葛华. 基于C/S和B/S模式的教务管理系统研究[J].信息技术.2005.(11):35-38.
 [10]石绥祥,夏登文,于戈.多层Client/Server结构软件性能评价[J].小型微型计算机系统.2006.(03):41-43.
 [11]Douglas M.Kline ,  Charlene Riggle.A Macro Approach to Relational Database Modeling[J]. Information Systems Education Journal.2005.Vol.3(35):29-30.
 [12]吴志斌,陈淑珍.回溯算法与计算机智能排课[J].计算机工程.1999.(03):17-18.
 [13]陆峰,李新.自动排课系统算法的设计与实现[J].微机发展.2005.(11):24-27.
 [14]Chiueh,T. Design,implementation,and eva luation of a repairable database management system[J]. Los Alamitos.CA.Comput.2005.Vol.11(7):39-41.
 [15]Roy Rada.Levels of reuse in educational information systems[J]. Campus-Wide Information Systems. 2001. Vol.18(3): 21-22.
致  谢
 本次毕业设计在指导老师的悉心指导下终于顺利完成了,在这里特别表示感谢。无论在理论上还是在实践中,都给予本文作者很大的帮助,从中得到不少的提高,这对于以后的工作和学习都是巨大的帮助,感谢老师耐心的辅导。
 另外,在系统开发过程中同组的同学也给予了很大的帮助,帮助解决了不少的难点,使得系统能及时开发完成,这里一并表示感谢。


以上为本篇毕业论文范文教务管理系统(文档 设计)的介绍部分。
本论文在计算机论文栏目,由论文网(www.zjwd.net)整理,更多论文,请点论文范文查找

毕业论文降重 相关论文

收费专业论文范文
收费专业论文
汉语言文学论文
物理学论文
自动化专业论文
测控技术专业论文
历史学专业论文
机械模具专业论文
金融专业论文
电子通信专业论文
材料科学专业论文
英语专业论文
会计专业论文
行政管理专业论文
财务管理专业论文
电子商务国贸专业
法律专业论文
教育技术学专业论文
物流专业论文
人力资源专业论文
生物工程专业论文
市场营销专业论文
土木工程专业论文
化学工程专业论文
文化产业管理论文
工商管理专业论文
护理专业论文
数学教育专业论文
数学与应用数学专业
心理学专业论文
信息管理专业论文
工程管理专业论文
工业工程专业论文
制药工程专业论文
电子机电信息论文
现代教育技术专业
新闻专业论文
艺术设计专业论文
采矿专业论文
环境工程专业论文
西班牙语专业论文
热能与动力设计论文
工程力学专业论文
酒店管理专业论文
安全管理专业论文
交通工程专业论文
体育教育专业论文
教育管理专业论文
日语专业论文
德语专业论文
理工科专业论文
轻化工程专业论文
社会工作专业论文
乡镇企业管理
给水排水专业
服装设计专业论文
电视制片管理专业
旅游管理专业论文
物业管理专业论文
信息管理专业论文
包装工程专业论文
印刷工程专业论文
动画专业论文
环境艺术专业论文
信息计算科学专业
物流专业论文范文
人力资源论文范文
营销专业论文范文
工商管理论文范文
汉语言文学论文范文
法律专业论文范文
教育管理论文范文
小学教育论文范文
学前教育论文范文
财务会计论文范文

电子商务论文范文

上一篇:宾馆客房管理系统(文档 设计) 下一篇:学生信息管理系统(文档 源码)

最新论文

精品推荐

毕业论文排版

热门论文


本站简介 | 联系方式 | 论文改重 | 免费获取 | 论文交换

本站部分论文来自网络,如发现侵犯了您的权益,请联系指出,本站及时确认删除 E-mail:229120615@qq.com

毕业论文范文-论文范文-论文同学网(www.zjwd.net)提供计算机论文毕业论文,毕业论文范文,毕业设计,论文范文,毕业设计格式范文,论文格式范文

Copyright@ 2010-2024 zjwd.net 毕业论文范文-论文范文-论文同学网 版权所有