Windows CE 下的教学辅助软件编程.doc_第1页
Windows CE 下的教学辅助软件编程.doc_第2页
Windows CE 下的教学辅助软件编程.doc_第3页
Windows CE 下的教学辅助软件编程.doc_第4页
Windows CE 下的教学辅助软件编程.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息科学与工程学院毕业(设计)论文 第 39 页Windows CE 下的教学辅助软件编程摘要随着信息技术的发展,对于嵌入式操作系统的研究和开发已经成为了一个新的发展方向。使用基于Windows CE的程序开发工具eVB可以很好地快速实现嵌入式应用程序设计开发。本文主要阐述了基于Windows CE的程序开发工具的教学辅助软件的设计思路、实现方法以及在实际开发过程中遇到的问题和解决方法。本课题主要实现的功能包括:1、使用SQL语句实现实验教学计划、教学大纲、教学日历和教学档案等内容的数据库操作。2、根据数据表间的相同字段实现教学档案内容自动导入和教学日期自动计算功能。【关键词】 嵌入式操作系统、Windows CE程序开发工具eVB、教学辅助软件、SQL语句AbstractFollow the developing of Information Technology , the research and the design of the eMbedded Operating System has already become a new developing direction. It can be more successful using base on Windows CE Programing Design Tool eMbedded Visual Basic to fast programing eMbedded Applications. This paper mainly introduces the ideas of design, the ways of realization and the solutions to the problems encountered during the design of the Teaching Auxiliary Software which base on this Programing Design Tool. The functions of this system include: 1.The Database operations with Experiment Teaching Plan、Teaching Precis、Teaching calendar and Teaching archives through the SQL Language.2. According to the same sections of the Database Tables, actualize Auto Import the Content of the Teaching Precis and Auto Calculate the date of the Teaching plan.【Keyword】 eMbedded Operating System、Windows CE Programing Design Tool eMbedded Visual Basic、Teaching Auxiliary Software、SQL Language目 录第一章 绪论.第二章 嵌入式系统与Windows CE简介.2.1 嵌入式系统简介. 2.1.1 定义. 2.1.2 特点及发展趋势.2.2 Windows CE简介. 2.2.1 PalmOS和Windows CE. 2.2.2 Windows CE特点及应用趋势.第三章 课题具体实现方法.3.1 系统分析与设计. 3.1.1 项目规划. 3.1.2 项目需求分析. 3.1.3 项目概要分析. 3.1.4 项目详细分析.3.2 数据库设计.3.3 系统软件结构与模块描述.3.4 系统软件编码. 3.4.1 编码应注意的问题. 3.4.2 算法说明.3.5 用户界面和使用方法.3.6 系统软件测试. 3.6.1 软件测试的定义和目的. 3.6.2 系统单元测试. 3.6.3 系统集成测试. 3.6.4 系统确认测试. 3.6.5 系统综合测试.第四章 开发工具介绍.4.1 Windows CE体系结构.4.2 eVB开发工具. 4.2.1 初识eVB的特性. 4.2.2 eVB与eVC功能特性的比较. 4.2.3 eVB的数据库与ADOCE特性. 4.2.4 Pocket PC与PC的数据库转换.第五章 实现过程中遇到的问题及解决方法第六章 总结与展望参考文献.致谢.附录:程序原代码.第一章 绪论当我们满怀憧憬与希望跨入二十一世纪大门的时候,计算机技术也开始进入一个被称为后PC技术的时代。在现在日益信息化的社会中,计算机和网络已经全面渗透到日常生活的每一个角落。对于我们每个人,需要的已经不再仅仅是那种放在桌上处理文档,进行工作管理和生产控制的计算机“机器”;各种各样的新型嵌入式系统设备再应用数量上已经远远超过通用计算机,任何一个普通人可能拥有从大到小的各种使用嵌入式技术的电子产品,小到mp3,PDA等微型数字化产品,大到网络家电,智能家电,车载电子设备。而在工业和服务领域中,使用嵌入式技术的数字机床,智能工具,工业机器人,服务机器人也将逐渐改变传统的工业和服务方式。 嵌入式设备的操作系统主要有早期介入的Palm,以及后来居上的Windows CE,当然还有其它比如Linux等。嵌入式设备的发展空间是巨大的,巨大到何种程度,我们真的无法想象。如果说PC将人类推向了一个新的高度,那么已经到来的嵌入式设备将开辟人类计算机史的新纪元。关于嵌入式设备的软件开发有消息说2001年IT产业将生产20亿台微型计算机。其中95%将用于嵌入设备用途。因此,与其以每年上市的上亿台网络化计算机为研究对象,倒不如加大力度推进嵌入设备的网络化、将注意力放在与之相适应的软件开发上。构筑无论何时何地都可以与网络连接的环境以及开发适应型软件已经成为当务之急。我们对于国外嵌入式设备软件现状和国内的市场潜力应充分认识到嵌入式设备软件将在国内掀起一场软件革命。进入后计算机时代以来,越来越多的教育系统都开始使用多媒体教学方式,因此CAI辅助教学也被广泛应用。开发CAI教学辅助软件的环境主要由应用的操作系统而定,绝大多数为Windows操作系统兼容开发的。因此开发软件主要有Microsoft Visual Studio 6系列及Microsoft Visual Studio .Net系列和Borland Delphi系列等,多数是为桌面系统定制的。而本课题主要研究的是在掌上电脑和PDA上开发使用的教学辅助软件,相对来说国内开发Windows CE应用程序的还不多,用于教学辅助的就更少了。Pocket PC由于携带方便,易于使用等优势,对于嵌入式系统教学辅助软件开发将为教育工作者提供简洁的操作方式,给教学带来更多的方便。鉴于嵌入式操作系统Windows CE程序开发工具eVB的优缺点,与PC上的Windows操作系统相比,Windows CE可视为小、快、可靠、方便易用的Windows。它的模块化设计方式使得应用开发人员能够为多种多样的产品来定制。因此,在Pocket PC上开发教学辅助软件与为桌面操作系统开发软件一样,只是能够使用的资源相对减少,需要考虑的问题相对更多,但是由于语法方面的同意,其关键部分的算法具有良好的兼容性,完全可以从桌面系统移植到嵌入式系统中,所需要做的修改很少。可见,基于嵌入式系统的软件开发是一个非常有发展的趋势,本课题正是基于此所进行的作是用基于嵌入式系统Windows CE的程序开发工具eVB3.0对Pocket PC进行程序编制,在Pocket PC上实现教学辅助功能,既研究了当前软件设计的一个新发展方向,又具有一定的实用意义,因此本课题的开发和研究具有较大的意义。第二章 嵌入式系统与Windows CE简介2.1 嵌入式系统简介 目前嵌入式系统技术已经成为了最热门的技术之一,吸引了大批的优秀人才投入其中。但是对于何为嵌入式系统,什么样的技术又可以称之为嵌入式技术仍在讨论之中,有关嵌入式系统定义的问题,已经在很多论坛社区引发了多次争论。2.1.1 定义我们可以分别从广义上和狭义上对嵌入式系统进行定义:广而化之,可以认为凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。作为系统核心的微处理器又包括三类:微控制器(MCU)、数字信号处理器(DSP)、嵌入式微处理器。有人认为嵌入式系统就是“以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统”。这个观点从功能应用特征上较好的给出了嵌入式系统的定义,嵌入式的概念的分析根本上应该从应用上加以切入。从狭义上讲,我们更加强调那些使用嵌入式微处理器构成独立系统,具有自己的操作系统并且具有某些特定功能的系统,这里的微处理器专指32位以上的微处理器。按照这种定义,典型的嵌入式系统有使用x86的小型嵌入式工控主板,在各种自动化设备,数字机械产品中有非常广阔的应用空间;另外一大类是使用intel,Motorola等专用芯片构成的小系统,它不仅仅在新兴的消费电子和通讯仪表等方面获得了巨大的发展应用空间,而且甚至有趋势取代传统的工控机。现在大家更加清楚的看到:嵌入式技术的春天已经来了。所以也就难怪嵌入式系统成为当前最热门的技术之一。2.1.2 特点及发展趋势嵌入式系统可以称为后PC时代和后网络时代的新秀。与传统的通用计算机,数字产品相比,使用嵌入式技术的产品有其自己的特点:1由于嵌入式系统采用的是微处理器,实现相对单一的功能,采用独立的操作系统,所以往往不需要大量的外围器件。因而在体积上,功耗上有其自身的优势。相比之下,一个使用Windows CE的PDA,仅靠机内电源就可以使用几天,而任何一台笔记本电脑仅仅能够维持几个小时左右。2嵌入式系统是将计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物,是一门综合技术学科。由于空间和各种资源相对不足,嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。3嵌入式系统是一个软硬件高度结合的产物。为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等载体中。片上系统(SoC),板上系统的实现,使得以PDA等为代表的这类产品拥有更加熟悉的操作界面和操作方式,比传统的商务通等功能更加完善,更加实用。4为适应嵌入式分布处理结构和应用上网需求,面向21世纪的嵌入式系统要求配备标准的一种或多种网络通信接口。针对外部连网要求,嵌入式设备必需配有通信接口,相应需要TCP/IP协议等软件支持;由于家用电器相互关联及实验现场仪器的协调工作等需求,新一代嵌入式设备还需具备IEEE 1394、USB、CAN、Bluetooth或lrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持应用软件的特定编程模式,如Web或无线Web编程模式,还需要相应的浏览器,如HTML、WML等。5因为嵌入式系统往往和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。2.2 Windows CE简介在PDA上运行的Windows CE已经被推出两年了,而且与一些大的电子制造商,象Matsushita(Panasonic)和Hitachi等联合,它也已被选为一些机顶装置设计和其它消费电器的操作系统。嵌入式设计为CE赢得了工业控制、数据采集、销售点、坚固的手持式产品、以及网络装置等行业。Windows CE是为各种嵌入式系统和产品设计的一种压缩的、具有高效的、可升级的操作系统。其多线性、多任务、全优先的操作系统环境是专门针对资源有限而设计的。2.2.1 PalmOS和Windows CE认识了嵌入式设备以及在嵌入式设备上软件开发的重要性后,我们了解一下目前嵌入式设备的两大主流操作系统PalmOS和Windows CE。PalmOS是嵌入式操作系统领域的元老。Palm是个人数字助理(PDA)的先驱者,PalmOS更是全球最知名、使用者最多的PDA作业系统。PalmOS的一个最大特点就是省电及系统资源开销少。由于PalmOS采用的是开放式的架构,所以有很多的PalmOS的使用者都投入到软件开发工作中。目前,PalmOS已经有超过一万种的软件,而且每天都还在有新的Palm软件问世。没有人会疑问PalmOS在微软的CE到来前一直是嵌入式系统的绝对主流。微软公司的Windows CE是专门为该公司提出的“信息电器”设计的紧凑型操作系统。其版本有自1996年发布的Windows CE 1.0版及目前常见的2.11和3.0版本.与PalmOS相比,Windows CE是一个32位的、多线程、多任务的操作系统,这是它的主要特色。Windows CE的体系结构采用独立于通常的程序设计语言并且和Windows兼容的API的方式,这样就可以保障Windows CE的组件化和ROM化,充分适应有限的存储空间和各种不同芯片的要求。Windows CE是模块型的操作系统,这意味着可选择、组合和配置Windows CE的模块和组件来创建用户版的操作系统。和Windows95/NT的API相比,Windows CE中的API不提供冗余的API,更多关注的是内存的大小、电源的管理、驱动程序的模型及如何使线程调度表更简单。从市场的观点来看,现在还很难说Windows CE和PalmOS谁是最后的赢家。目前来说PalmOS的市场份额要大一些,但是因为Palm公司对中国市场的错误估计,Windows CE系统在国内的认知度要好一些。2.2.2 Windows CE特点及应用趋势 利用相应较高级别的集成、较低的成本来减少任务,以及增加的性能都使得全新的应用成为可能,也使现有的应用中增加的互连性和更丰富的功能特性更加灵活。嵌入式系统的复杂性和差异性正逐渐从硬件转移到软件上。如果基于合适的软件平台,嵌入式系统就会提供更大的灵活性来适应市场需求,使各种生产线趋于通用,并减少投放市场的时间。Windows CE比其竞争者在更大程度上着重于软件和软件开发者。 Windows CE为嵌入式系统开发者提供下列工具: 1Win32 API。Windows CE与WindowsNT和Windows9x使用相同的基本API。也就是说它同其桌面型Windows程序开发者使用相同的API。API的普遍传播使得开发队伍能够平衡开发者的技能,以减少重复训练的时间并增加对现有开发者的接近机会。对于嵌入式系统的软件部分增加需求分析意味者软件开发者是降低开发成本和加快投放市场时间的关键。 2开发工具。用于Windows CE的开发工具和技术与用于WindowsNT和Windows9x的相同。用于CE的现有工具包括VisualC+,VisualBasic和VisualJava;它们都可以运行于WindowsNT系统上,大多数软件开发者一般都可得到这些开发工具。事实证明,开发者的生产能力是直接由工具、技术和开发系统的通用性而增长的。 3.软件集成。Widnows CE是一种集成的操作系统,它包括图形、窗口管理和联网技术,以及基本的操作系统支持,例如定时器、中断处理和同步原语。微软已经将这些功能集成并形成Windows CE集成软件系统。利用Windows CE,嵌入式系统开发者不必从多家供应商处寻找适合于自己机型的操作系统。 4.处理器支持。尽管Windows CE是一个年轻的操作系统,但它已经支持广泛的微处理器体系结构,包括CISC和RISC。目前,Windows CE支持Hitachi的SH、MIPS、PowerPC、ARM和x86体系结构。通常每种结构系列都有多个变种。Windows CE嵌入式设计者拥有广泛的微处理器可供选择,可以从各种嵌入式设备的性能、电源消耗、组件大小、成本以及集成外设方面能够做出最佳选择。开发工具和操作系统部件在所有体系结构上表现一致。因此,Windows CE为各微处理器之间平衡软件提供了灵活性,即使在基础的微处理器不相同时也是如此。 5.第三方支持。将焦点放在软件上就鼓励了第三方独立软件供应商(ISV,Independent Software Vendor)去开发和销售能在各种设计之间平衡的软件。微软通过它的市场占有、现有的ISV关系和销售努力,已使得ISV在Windows CE平台方面产生了巨大的兴趣。ISV软件已日益增多,有开发工具、设备驱动程序、应用程序和组件。事实证明了嵌入式设计者拥有平衡现有工作、减少项目风险、开发成本和投放市场时间的机会。 Windows CE是以软件为中心的嵌入式开发者模型。这种以软件为首的模型产生了大量的部件和应用程序,开发者有时间来增加每种项目的作用。微软支持现有的开发者、工具和技术基础的能力意味着享有其竞争者没有的开发队伍。第三章 课题具体实现方法 本章研究如何开发基于Windows CE的程序开发工具eVB在PocketPC上的教学辅助软件系统。从软件工程的角度较具体地介绍了本课题的各部分功能的规划结构、主要算法流程开发和测试过程。3.1 系统分析与设计3.1.1 项目规划 由于PDA上操作系统的程序设计方法与桌面操作系统的程序设计方法不同,因此,对于本课题,根据其内容,大概分为人机操作界面开发、具体实现功能的程序编码开发、附加工具的开发、系统测试几个部分。其中除了系统测试穿插在整个开发过程中进行外,其余部分按照时间段进行逐步进行。3.1.2 项目需求分析 本课题需要提供友好的人机界面,让用户能够对相关内容进行录入、修改、删除和查找等数据库操作,其中相关内容包括实验教学计划、教学大纲、教学日历、教学档案、选择题题库。为了配合系统的安全性,还需提供辅助工具保证数据库文件正确。为了减少用户录入内容的麻烦,提供部分内容的自动导入,部分内容的自动生成等工具。另外,还需保证系统的使用功能没有很大的漏洞,需要进行必要的测试,比如确认测试和综合测试。3.1.3 项目概要分析按照规划内容,根据系统的要实现的功能,确定软件的结构及各部分功能的相关联系,提出概要的可行性解决方案。根据对教学管理方面内容的需求分析,确定软件主要功能划分如下图。TA教学辅助软件系统实验计划 教学大纲 教学日历 教学档案 选择题库 工具系统功能划分图下面根据本课题的任务,确定组成该系统的每个程序模块的结构,然后进行该系统的结构设计,从而确定模块组成以及这些模块之间的动态调用关系。整个教学辅助系统结构设计的过程,我都遵循系统模块之间独立的原理,也就是说该系统由一组完全相对独立的子功能模块组成,而且这些模块彼此之间的接口关系尽量简单。1) 处理流程。系统处理流程如图所示。入口配置文件初始化数据库初始化系统选择实验计划处理教学大纲处理教学档案处理教学日历处理选择题题库处理附加工具处理数据库关闭出口系统处理流程图2) 总体结构和模块外部设计。3) 功能分配与接口设计。主函数模块:声明使用的全局变量和API函数;进入系统模块;用户文件初始化模块;数据库初始化模块;连接数据库函数;关闭数据库函数;执行SQL语句命令函数。用户文件初始化模块:查找用户文件是否存在。若不存在,提示出错,并提供用户信息输入界面,再调用用户欢迎界面并执行数据库初始化模块;若存在,则读取用户信息并初始化用户欢迎界面。数据库初始化模块:查找数据库文件是否存在。若不存在,提示出错,并自动调用SQL语句执行函数创建新的数据库文件及系统需要的各数据表;若存在,则判断各数据表是否存在或正确,否则调用SQL语句执行函数创建数据表再建立对数据库的连接。其它模块功能在项目详细分析时再介绍。用户信息文件(User.ini)的格式: User 信息标题,读写文件要用到 UserName= 以下为用户信息内容 : : : UserXB=系统提供了两个函数对ini文件进行读写(位于主函数模块):Public Function GetValues(UserSetupFiles As String, Group As String, SubItem As String)Public Sub ModifyValues(UserSetupFiles As String, Group As String, SubItem As String, Values As String)参数说明:GetValues:返回用户文件项组内部子项设置值UserSetupFile:用户文件路径Group:用户文件组项SubItem:用户文件项组内部子项Values:用户文件项组内部子项设置值3.1.4 项目详细分析下面对系统各子功能模块进行分析。实验计划模块:提供对某门课程的实验教学计划内容的数据库操作。包括录入、修改、删除和查找功能。其中对各数据库的操作都使用了SQL语句,利用SQL语言的数据库操作强大功能来管理操作各数据表。教学大纲模块:提供对某门课程的教学大纲内容的数据库操作。包括录入、修改、删除和查找功能。通过其数据表与其它相关表的联系,可以通过SQL执行语句读取并导入其部分需要内容到其它的模块中。其功能与实验计划模块相似,没有什么重要功能变化,主要考虑其数据表到其余相关联的模块的衔接问题。教学档案模块:提供对某门课程的教学档案内容的数据库操作。包括录入、修改、删除和查找功能。另外,还提供部分内容自动导入功能,通过其数据表与教学大纲表的联系,可以通过SQL执行语句读取并导入大纲表的部分需要内容到其输入部分中,方便用户输入,减少了不必要的重复输入工作。教师在输入界面中输入的内容将保存到文件中。这将以一张张的教学报表的形式放入到文件中。这些教学报表事先已经连接到了教学日历上。教师只需在使用是将自己的教学内容输入,保存即可。然后在教学的过程调用就可以使用。在这里,这一张张的教学报表需要预留多少空间将是个值得考虑的问题。因为要使空间不至于浪费,又不至于不够用。创建一个可视化界面是比较容易的,关键就在于如何美观。教学日历模块:提供对某门课程的教学日历内容的数据库操作。包括录入、修改、删除和查找功能。同时,与教学档案模块一样也提供部分内容自动导入功能,读取并导入大纲表的部分需要内容到其输入部分中。另外,还提供教学日期的自动生成功能,通过输入相关条件,自动生成该课程的教学日期表,同样方便用户输入,不必查找日历表输入烦琐的内容。在这个过程中,首先要编写一用户友好见面,在这个界面上很清楚的显示出这个系统需要完成的功能以及当用户遇到困难时提供一些帮助功能。譬如整个界面的使用说明。在整个开课日期推算的界面中需要提供年份的输入,学年,学期等有关输入信息。而这些年份,学期,学年等的有关信息将都写在文件中,用户只需要根据需要调出自己所需要的那部分即可。在这个界面上,还要提供一个教师周课表的输入界面。这个界面需要连接到开课日期推算界面中,只有当教师输入了周课表,系统才能自动的推算出某年某学期的开课日期。而这些时间都将事先放入文件中。整个界面的设计将是一个较复杂的工作。在这项工作中最难的还是根据周课表自动推算教学日历的算法。需要考虑的问题是:在某年中,星期安排如何,以及星期顺序如何。还要考虑开学是哪天,这个学期一共有几周,以及对应是第几周。而后写出一个能算出日期的函数,这个函数应具有强大的功能,能根据你的输入条件判断是否为开课的星期号,然后得出是这年中的几月几日。最后将输出到界面,供教师参考。当然在这里我没有考虑遇到五一,十一长假所涉及到的问题。在原先考虑的算法上,除去长假日期,如果要考虑补课什么的话,那还要另外的根据学校的要求添加算法。这各模块是本课题要解决的重要功能模块。选择题题库模块:主要提供一个用户友好界面,供教师选择题库中不同难度的题目,具备题目内容输入,难度设置等功能,这些将保存在文件中。自动出卷具有难度选择,题目数量,内容随机生成等功能,主要解决的问题是保存题目内容和读取题目内容(包括难度内容),以及非循环随机函数的编写等问题。附加工具模块:集成了用户信息输入和修改工具;以及数据库文件的备份、还原和清空功能,如图所示。由于与其它模块联系不大,因此将此模块调用放在主窗体模块中。此外还提供故障处理功能:在用户文件或数据库文件丢失或损坏的情况下,出现错误提示框,并提供用户信息输入界面以添加信息,为用户欢迎界面提供必要的显示内容;在数据库文件丢失或损坏或者内部数据表损坏的情况下,出现错误提示框,并自动调用函数创建新的数据库文件或调用以前备份的数据库文件还原数据库文件。当然,还要求系统人机界面友好,窗体布局合理,输入输出界面操作简单方便,系统提示信息语言通俗易懂等。本软件以主窗体为主,连接形成多分支的子操作窗体,最终生成结果显示窗体。主要内容在于各分支的算法实现及内容间的衔接问题。3.2 数据库设计下面介绍本课题的数据库的结构和创建过程。本系统采用的是Pocket Access数据库(*.cdb),充分利用了ADOCE提供的数据库创建、读取、录入、修改、删除、查找的功能。根据对数据资料的整理分析,从编程的角度对数据进行了抽象,去除冗余的信息,保证数据库的一致性和参照完整性。关于ADOCE的相关内容在第四章中介绍。1. 数据库的表结构本系统共使用了8张表:实验计划表1、实验计划表2、教学大纲表1、教学大纲表2、教学日历表1、教学日历表2、教学档案表、选择题库表。下面将表结构列于下。 * 创建实验计划表1 * 实验计划表1 (学年 TEXT, 学期 TEXT, 学院 TEXT, 实验室 TEXT, 填表人 TEXT, 实验室主任 TEXT, 主管院长 TEXT, 填表时间 TEXT, 课号 TEXT, 实验课名 TEXT, 实验总学时 TEXT, 实验时间 TEXT) 实验计划表1 (课号) 创建主键 * 创建实验计划表2 * 实验计划表2 (课号 TEXT, 项号 INT, 实验项目名 TEXT, 实验类型 TEXT, 计划时数 TEXT, 每批组数 TEXT, 每组人数 TEXT, 专业 TEXT, 人数 TEXT, 指导教师 TEXT, 职称 TEXT, 备注 TEXT) 实验计划表2 (项号) 创建主键 * 创建教学大纲表1 * 教学大纲表1 (课名 TEXT, 适用专业 TEXT, 课程类别 TEXT, 学分 TEXT, 周学时 TEXT, 总学时 TEXT, 讲课 TEXT, 上机 TEXT, 开课学期 TEXT, 课号 TEXT, 先修课程 TEXT, 教学目的任务 TEXT, 推荐教材 TEXT, 参考教材 TEXT, 教学方法 TEXT, 课程简介 TEXT,编制人 TEXT, 审定者 TEXT, 系主任 TEXT) 教学大纲表1 (课号) 创建主键 * 创建教学大纲表2 * 教学大纲表2 (课号 TEXT, 项号 INT, 标题 TEXT, 学时 TEXT, 难重点 TEXT, 内容 TEXT) 教学大纲表2 (项号) 创建主键 * 创建教学日历表1 * 教学日历表1 (学年 TEXT, 学期 TEXT, 课名 TEXT, 课号 TEXT, 授课对象 TEXT, 学院 TEXT, 专业 TEXT, 年级 TEXT, 人数 TEXT, 主讲教师 TEXT, 主讲学院 TEXT, 主讲系 TEXT, 辅导教师 TEXT, 辅导学院 TEXT, 辅导系 TEXT, 教材 TEXT, 版本 TEXT, 出版社 TEXT, 参考书 TEXT, 系主任 TEXT, 制订日期 TEXT, 讲课学时 TEXT, 习题课学时 TEXT, 实验学时 TEXT, 设计学时 TEXT, 其它学时 TEXT, 总学时 TEXT, 周数 TEXT, 日历说明 TEXT) 教学日历表1 (课号) 创建主键 * 创建教学日历表2 * 教学日历表2 (课号 TEXT, 项号 INT, 周次 TEXT, 日期 TEXT, 时数 TEXT, 教学内容 TEXT, 授课方式 TEXT, 难点重点 TEXT, 作业 TEXT, 备注 TEXT) 教学日历表2 (项号) 创建主键 * 创建教学档案表 * 教学档案表 (课号 TEXT, 填写日期 TEXT, 课名 TEXT, 任课年月1 TEXT, 任课年月2 TEXT, 总学时 TEXT, 周学时 TEXT, 学分 TEXT, 主讲教师 TEXT, 主讲职称 TEXT, 辅导教师 TEXT, 辅导职称 TEXT, 班级 TEXT, 人数 TEXT, 教学大纲 TEXT, 教材 TEXT, 参考书 TEXT, 习题来源 TEXT, 作业题数 TEXT, 作业必做 TEXT, 作业选做 TEXT, 作业次数 TEXT, 批改次数 TEXT, 全部批改 TEXT, 部分批改 TEXT, 答疑次数 TEXT, 答疑人数 TEXT, 质疑 TEXT, 总人数 TEXT, 答疑情况 TEXT) 教学档案表 (课号) 创建主键 * 创建选择题库表 * 选择题库表 (课号 TEXT, 题目 TEXT, 选项1 TEXT, 选项2 TEXT, 选项3 TEXT, 选项4 TEXT, 难度 TEXT) 选择题库表 (课号) 创建主键2. 数据库表之间关系设计3.3 系统软件结构与模块描述 TA教学辅助软件系统的软件结构如下图。1. 主函数由于用的是eMbedded Visual Basic 开发,所以这部分分为一个Model,定义全局变量数据库文件TsysCDB,数据库连接Conn,系统默认路径sysPath。声明了PlaySound API函数用来播放系统开始和结束时的声音,以下是声明:Public Declare Function PlaySound Lib Coredll Alias PlaySoundW (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As LongConst SND_LOOP = &H8 重复播放直到下一声音播放Const SND_ASYNC = &H1 同步播放定义数据库的连接打开函数CONN_Open()和关闭函数CONN_Close(),以及SQL语句执行函数CONN_Execute(ByVal strSQL As String).定义判断文件是否存在的函数FileExists(strFileName As String)对于用户信息文件的操作,定义了函数:GetValues(UserSetupFiles As String, Group As String, SubItem As String)ModifyValues(UserSetupFiles As String, Group As String, SubItem As String, Values As String)Main函数为整个程序的入口,在此对系统默认路径sysPath和数据库文件SysCDB进行初始化;此外实现主窗体的显示。2. 用户信息文件初始化模块该模块实现用户信息文件的生成和系统的选择。如图所示。保证用户信息文件存在后,根据用户信息,配置用户欢迎界面。3. 数据库初始化模块该模块模拟系统进入的动态效果,并完成数据库的检查和建立连接数据库的操作。本模块用Timer控件来驱动。因为在eMbedded Visual Basic3.0下没有进度条控件,所以此处用两个Label控件来进行模拟。通过设置两个Label控件的颜色,并利用Timer控件驱动增加Label控件的长度来达到模拟系统进入的动态效果。当进度条达到1/4时,检查用户信息文件是否存在,如不存在则显示错误提示,并提供用户信息输入界面;如存在或已保存用户信息后则调用用户欢迎界面。当进度条达到1/2时,检查数据库文件是否存在,如不存在则显示错误提示,并自动生成系统数据库文件或备份数据库文件存在则提示是否还原数据库。当进度条达到3/4时,初始化主窗体界面,并建立到数据库的连接。当进度条完成时,显示系统选择界面,供用户选择相应的子功能模块。程序流程图如下。4. 其它模块具体实现的过程中,由于在eMbedded Visual Basic 3.0建立的Pocket PC程序中没有菜单编辑器,只能利用eVB提供的菜单控件,只能通过Private Sub XXXXX_MenuClick(Byval Item As MenuBarLib.Item)方法,判断Item.Key的值来判断选取值,然后处理对应的菜单选择事件。此外,因为程序中大量使用Frame,涉及到大量的初始化的问题,所以使用创建Initial_Posion()函数,专门处理初始化控件的任务;为了节省时间,程序中设置变量来判断用户的选择来取对应的处理部分。设置专门的操作按钮:查询、添加、修改、删除,第一条、前一条、后一条,最后一条。这样利用统一的接口,统一的处理按钮,既保证了程序的统一风格,而且降低了程序的复杂度,提高了程序的灵活性。工具模块实现了用户信息输入和数据库文件的备份、还原和清空功能,具体操作根据提供的文件读写函数及对文件的判断、复制、删除和重新生成操作,该模块简单。还有帮助模块显示系统的版本和版权信息,简单。最后,由于这个模块涉及的大部分操作都是eVB 3.0下实现对Pocket Access的操作,所以实现起来不会有太大的问题。应该注意的是,为了保证数据的实体完整性和参照性必须在程序中进行必要的检查。所以就有了系统测试一节。3.4 系统软件编码 在确定了系统各方面的分析之后,接下来的工作就是编码和测试了。由软件工程提出的测试方法模型,系统编码和测试尽量贯穿整个开发流程。下面介绍系统编码的问题和算法。3.4.1 编码应注意的问题 为了使本系统的程序代码简单明了且易于理解,在正式编程的过程中,应遵循下面的编程原则:1) 不要为了节省代码而把多个程序语句编写在同一行上。2) 在编写语言的过程中,切记尽量避免复杂的条件测试。3) 要尽量减少对“非”条件的测试。4) 避免大量使用循环嵌套和条件嵌套。5) 利用括号使逻辑表达式或算术表达式的运算次序清晰直观。6) 对一些理解起来比较难的语句作出注释,以方便别人或自己阅读理解。效率是性能要求,因此在需求分析阶段就确定效率方面的要求。效率是靠设计来提高的,还有就是程序语言的效率应该和程序语言简单程度是一致的,不能牺牲程序语言的清晰性和可读性来不必要地提高效率。3.4.2 算法说明 由于篇幅问题,在此只介绍相关的算法,具体程序见附录程序。(1) 程序代码模块说明:modFunction(modFunction.bas) 主函数模块frmMain(frmMain.ebf) 系统初始化和子功能选择模块frmSYJH(frmSYJH.ebf) 实验计划模块frmJXDG(frmJXDG.ebf) 教学大纲模块frmJXDA(frmJXDA.ebf) 教学档案模块frmJXRL(frmJXRL.ebf) 教学日历模块frmXZT(frmZXT.ebf) 选择题模块(2) 用户文件的操作算法1) 取得文件表项中子项的值:先找到组项,然后找到子项取值。算法中主要是比较字符串的操作。2) 修改文件表项中子项的值:先定义一个字符串,保存文件中不用修改的字符串的值,通过“;”分隔开每个项目,找到需要的项,然后修改对应的值,继续读取用户文件剩余的表项;读取完毕后,把每一项从该字符串中分离出来逐项写回文件。或者不用该函数,直接在程序中用代码把需要写入的信息写入用户文件中,节省调用函数的时间和提高效率。(3) 教学档案内容自动导入先查找与该课程对应的教学大纲表,如不存在则提示没有可导入的内容,否则根据两个数据表中对应关联的项的内容从教学大纲表中读取出来并放到档案表的显示文本框中。该算法主要需考虑到可能会发生的错误,其余操作只要对数据库操作方法正确则不会有太大的问题。(4) 教学日历内容导入和日期自动推算1) 内容导入与上小节相同。先查找与该课程对应的教学大纲表,如不存在则提示没有可导入的内容,否则根据两个数据表中对应关联的项的内容从教学大纲表中读取出来并放到日历表的显示文本框中。2) 日期自动推算首先要由用户输入该学期开始日期、该学期结束日期、中间节日的开始和结束日期及上课的星期几数值,然后利用eVB中提供的对日期数据操作的函数进行循环判断是否是对应的星期数值并且不在节日日期内,然后将得到的正确的日期和周次数添加到日历日期显示文本框中。该算法主要是该判断算法内容,只要判断条件正确应该没有大的问题,最后可以再对此算法进行优化,以提高算法效率。(5) 系统开始和结束声音播放在eVB中没有提供专门的音乐播放函数,所以必须声明API函数,通过调用API函数来实现。通过调用PlaySound可以播放声音:PlaySound Windowsinfbeg.wav, 0, SND_ASYNC 播放启动声音 其余算法由于篇幅问题不再介绍,具体可以见附录源程序。3.5 用户界面和使用方法1. 用户信息初始化界面 2. 初始化界面及数据库初始化界面系统初始化界面中显示程序标题和用户欢迎信息。 3. 主程序界面主程序界面提供各子功能选择。帮助模块显示版权信息等内容。 4. 教学日历模块界面下面以教学日历模块为例,介绍主要对数据库的操作功能。(1) 模块的内容显示界面,用户在此界面上进行相关的操作。 (2) 模块的相关操作命令菜单 (3) 查找界面和导入大纲内容的查找界面 (4)3.6 系统软件测试 软件工程的提出就是为了使软件开发过程更统一,具有严格的定义,其中软件测试就是其中重要的部分之一。它与软件编码具有相同甚至更高的要求。下面介绍本系统的各个不同的测试。3.6.1 软件测试的定义和目的软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终查看,是软件质量保证的关键步骤。1) 软件测试是为了发现错误而执行程序的过程。2) 软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据极其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。软件测试的目的有:1) 测试是程序的执行过程,目的在于发现错误。2) 一个好的测试用例在于发现至今未发现的错误。3) 一个成功的测试是发现了至今未发现的错误的测试。3.6.2 系统单元测试3.6.3 系统集成测试3.6.4 系统确认测试

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论