版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、交通大学 CIM 所科研项目管理系统开发摘要本设计按照管理信息系统的开发方法,通过系统分析、系统设计、系统实施等一系列开发过程,以交通大学计算机集成制造为应用背景,开发一个有实用价值的科研项目管理系统,实现对科研项目和的科技的计算机管理,以提高项目及管理的水平,提供及时、准确的信息服务并减轻管理制作报表、统计分析的负担,从而摆脱该长期以来通过人工对科研项目及的面貌。该系统能对科研项目及科技实现较全面的管理,提供数据录入、多条件查询、统计、报表输出等日常管理所必需的功能,并在系统的易使用性上作了较大的努力。该系统是一个基于客户机/服务器的系统,可以在多个客户机上同时运行。采用 Visual Ba
2、sic 6.0 作为系统的开发语言,运行的环境为Windows NT 4.0 操作系统,的数据库管理系统选用Acs 2000。目录第一章 绪 论4第二章 系统分析2.1 概述62.2 现存及目标62.3 需求分析2.3.1 信息需求72.3.2 功能需求8第三章 系统设计3.1数据库设计3.1.1数据库概念设计103.1.2数据库逻辑设计103.1.3数据库物理设计3.1.3.1数据库选型.123.1.3.2数据库结构定义.133.1.3.3完整性规则.163.1.3.4索引.163.1.3.5安全性考虑.163.1.3.6磁盘空间分配.173.2选型3.2.1 选型的原则173.2.2 开发
3、选择173.3系统总体结构183.4数据库接口设计173.4.1数据接口选择213.4.2具体实现213.5初始化模块设计223.6主界面设计223.7录入模块设计233.8查询模块设计253.9设置模块设计303.10 帮助模块设计31第四章测试分析4.1测试的目的324.2功能的验证334.3结论33第五章项目开发总结34致谢36参考文献36第一章 绪论交通大学计算机集成制造(以下简称 CIM 所)每年都承接了大量的科研项目及为数众多的科技,对这些成果进行统计所得到的信息在该的管理中具有重要的意义;首先,它反映了 CIM 所的学术水平和成就,是对该所进行各种评估时的主要参考依据;第二,通过
4、这些统计结果,可以看出 CIM 所的发展趋势,从而为的发展决策提供重要的辅助信息;第三,它是某位研究的工作成就的主要途径之一;最后,这些统计信息也是主管部门经常要求上报的信息。显然,需要有一套行之有效段来对 CIM 所的科研项目及进行管理。到目前为止,CIM 所的科研项目管理一直采用人工管理的方式,并无一套的管理规范,也没有相应的专职管理,只有当上级部门要求统计项目或情况时才由有关查阅本所的各种相关文档,人工进行统计并制作报表。这种管理的弊端是显而易见的。在现在这个计算机得到普遍应用的时代,很多过去依靠人工进行的管理都由计算机所取代。尤其在信息的、加工和上计算机能取得人所不能比拟的作用。通过计
5、算机进行管理的主要方法是建立管理信息系统(Management Information System,MIS)。对管理信息系统有许多种解释,按照管理信息系统的创始人明尼苏达大学的 Gordon B.Davis 教授给出的定义,MIS 是一个利用计算机硬件和,手工作业,分析、计划、控制和决策模型,以及数据库的用户机器系统。它能提供信息,支持企业或组织的运行、管理和决策功能。我国学者薛则将其定义为:管理信息系统是一个以人为主导,利用计算机硬件、网络通信设备以及其他办公设备,进行信息的收集、传输、加工、更新和,以企业竞优、提高效率和效益为目的,支持企业决策、中层控制、基层的集成化的人机系统。尽管定义
6、不同,但总的说来,管理信息系统终究要起到一个提高管理效率、减轻管理负担的作用。无论对于企业或其他组织,建立一个管理信息系统都是实现其先进管理所必须的。有鉴于此,开发一个 CIM 所的科研项目和管理信息系统是很有必要的。它将有助于将管理从烦琐的管理工作中解脱出来,使管理系统化、条理化,能迅速获得感的信息。管理信息系统是一个的系统或集成系统,通常包括业务信息系统、知识工作系统、决策支持系统等。根据现有人力和时间限制条件以及项目和管理的特点,不可能也没有必要建立一个完整的、具有所有功能的管理信息系统。选择开发一个相对较小的实用的数据处理系统。数据处理系统(Data Prosing System,DP
7、S)又称为电子数据处理系统( Electronic Data Prosing System,EDPS ) 或业务处理系统( Tranion ProsingSystem,TPS),它属于管理信息系统的范畴,但不是管理信息系统的全部。其主要特点是简单、精确和标准化。业务范围主要是业务数据的登录,数据的编辑,将数据信息以文件形式存入软盘、磁带或硬盘,通过存取这些数据信息打印出报表,主要的操作是排序、列表、更新、查询等,主要使用的运算是简单的加减乘除,其输入一般是原始的单据或表单,输出一般是分类或汇总的报表,主要使用的是运行。这一类系统由于处理处于较低的管理层,因而问题比较结构化,即处理步骤较固定,系
8、统结构相对比较简单,无须很复杂的实现技术。去年交通大学计算机集成已经开发了一个基于 SQL server 的科研项目管理系统,今年所里想将该系统移植到 Acs 数据库上。本设计的主要任务就是为交通大学计算机集成移植并升级更有实用价值的科研项目及管理系统,以实现 CIM 所的科研项目及管理计算机化,摆脱人工进行管理的面貌。并作为一项毕业设计的成果。第二章 系统分析2.1概述管理信息系统通常是一个复杂的系统,它既受环境的互相影响,又受外部环境的制约,需要考虑很多。系统分析首先应对系统现状进行分析,提出新系统要达到的目标,然后确定用户对目标系统的要求,为设计提供基础。其主要任务是将在系统详细中所得的
9、文档资料集中在一起,对组织整体管理状况和信息处理过程进行分析;目的是将用户的需求确定下来。其中的需求分析是系统开发工作中最重要的环节之一,是系统设计的依据,需求分析已经成为一门独立的学科,称为需求工程(Requirement Engineering,RE),即应用已证实有效的技术、方法进行需求分析,确定用户需求,帮助开发理解问题并定义目标系统的所有外部特征。系统分析一般还应包括业务流程及数据流程分析等,但由于项目及管理来说,只是一个简单的归档及统计问题,故可以省去。重点放在用户的信息和功能需求上。由于目前对 CIM 所的项目和进行管理的主要是该所的,工作很繁忙,无法抽出过多时间进行交流,所以采
10、取的需求分析方法主要采用首先对 CIM 所过去产生的各种手工报表进行分析,从用户的角度提出需求的设想,然后再请所里修改。2.2现存及目标经过分析,得出目前采用人工管理存在如下主要问题:(1)项目信息查询、统计由于缺乏有效的规范,无法对本所的所有科研项目进行管理,当需要进行统计工作或需要查询某个项目的基本情况(如拨款情况或成果情况)时只能通过向该项目的询问,造成极大的不便。特别是当需要以某种条件进行统计或查询时(如统计本所所有 863 计划项目或统计本所所有获奖项目等)尤其。(2)统计由于具有周期长、分布广泛的特点,当通知或杂志、期刊抵达时,往往相关已经遗忘甚至已经离开,由于缺乏专职管理和一套行
11、之有效的管理规范,通知或杂志寄到时没有及时归档,以至于当需要进行统计工作时不得不找,效率非常低,并且极易统计不完全或由于遗忘而造成数据不属实的现象。(3)浪费的时间和精力当需要进行统计工作,尤其是用于送交部门的报表,一般往往不熟悉情况或要求而不得不由所里主要来完成,浪费了的大量时间和精力。根据上面的分析,提出以下开发目标:(1)提高项目及管理的水平,提供及时、准确的信息服务;(2)提高信息检索的效率,实现灵活的查询,包括多条件查询、模糊查询等;(3)减轻管理制作报表、统计分析的负担;实用。系统规模不宜太大,但又要能保证支持日常工作的要求;系统应易于修改和扩充。2.3需求分析2.3.1 信息需求
12、(1)关于项目基本情况的信息项目:格式为 年份+序号项目名称(中文、英文)12主要承担人 1主要承担人 2项目来源项目性质 分为国家自然科学基金、863、部省科委及企业文件柜号四种情况科研代号电子文档名开始日期:格式为 年份+月份+日期结束日期:格式为 年份+月份+日期注:项目是一个七位字符串,其格式为 YYYY-#,其中 YYYY 为立项年份,#是两位数,表示该项目在某年中的立项顺序。(2)关于项目财务情况的信息财务分类总经费(万元)第一(二六)次拨款数(万元)第一(二六)次拨款日期:格式为 年份+月份第一(二六)次免扣额(万元)拨款总额(计算项)累计支出(万元)(3)项目成果情况验收日期:
13、格式为年份+月份+日年份+月份+日年份+月份+日鉴定日期:格式为获奖日期:格式为鉴定获奖名称授奖号(4)关于情况的信息名称(中文、英文)日期:格式为 年份+月份期刊名称作者(1-6)范围 分为、国际、地方三种情况检分为 EI、SCI、和一般四种情况检索号学科门类来源(5)关于会议情况的信息2.3.2名称(中文、英文)会议时间:格式为 年份+月份会议名称入选集名称作者(1-6)*范围 分为、国际、地方三种情况学科门类来源会议地点功能需求(1)数据录入 分别以项目、会议为录入项目、及会议的全部数据,对项目也可以分别以基本情况、财务情况或成果情况为录入。录入时应包括对数据的正确性校验。数据查询支持平
14、时对数据的修改,包括、删除及更新。i 项目查询以项目名称、主要承担人、项目性质、开始日期、财务为条件查询项目的各种情况,对项目名称支持模糊查询。ii查询以日期、来源、检为条件查询。iii 会议查询以会议时间查询。iiii 设备查询以购置设备日期、设备经费、分类为条件查询。iiiii 支持自定义复杂条件查询。查询结果要求能以下列统计报表的形式打印输出:项目总览表项目经费情况表项目成果情况表统计表学术统计表(4)其他要求系统要有一定的安全保障,对于影响数据库内容的操作,例如录入、删除等,必须验证用户。系统必须具有一定的灵活性,对代号设置的字段(例如项目性质、检等)必须能够进行动态修改并自动显示在报
15、表中。应有良好的易使用性,操作应尽量简单,有联机帮助对用户进行使用指导及在用户输入错误、数据库未连接、未准备好等意外情况情况下提供详细的帮助信息。第三章系统设计3.1 数据库设计3.1.1 数据库概念设计本系统结构比较简单,只有三个相互独立的实体:项目、和会议。其中项目用项目、和会议用名称作为码。3.1.2 数据库逻辑设计该系统由三个基本关系组成,其模式结构如下:(1)项目(序号,项目,合同号,1,2,主要承担人 1,主要承担人 2,项目来源,项目性质,开始日期,结束日期,文件柜号,电子文档名,财务,总经费,货币类型,拨款数(1-4),拨款日期(1-4),免扣额(1-4),累计支出,验收日期,
16、鉴定日期,鉴定,获奖名称,获奖名称,授奖,号)各字段的定义如下所示:名 称类 型格 式其 他序号char(7)yyyy-#主键项目varchar(10)yy-mm项目名称varchar(120)合同号varchar(12)1varchar(20)2varchar(20)主要承担人 1varchar(20)主要承担人 2varchar(20)项目来源varchar(30)项目性质tiny缺省为 0开始日期datetime结束日期datetime文件柜号tiny电子文档名varchar(20)财务char(6)总经费smallmoney注:序号格式为 yyyy-#,其中 yyyy 为项目开始的年份
17、,#为该项目在该年份中的次序。(2)(名称,日期,期刊名称,作者 1,作者 2,作者 3,作者 4,作者 5,作者 6,范围,检,检索号,卷期号,学科门类,来源,)各字段的定义如下所示:(3)会议(名称,会议时间,会议地点,作者 1,作者 2,作者 3,作者 4,作者 5,作者 6,范围,学科门类,来源)各字段的定义如下所示:名 称类 型格 式其 他名称varchar(120)主键日期daimeyyyy-mm期刊名称varchar(100)作者(1-6)varchar(20)范围tiny缺省为 0检tiny缺省为 0检索号varchar(30)卷期号varchar(30)学科门类varchar
18、(20)来源varchar(20)varchar(50)货币类型varchar(10)拨款数(1-4)smallmoney拨款日期(1-4)datetime免扣额(1-4)smallmoney累计支出smallmoney验收日期datetime鉴定日期datetime鉴定varchar(50)获奖名称varchar(40)获奖日期datetime授奖varchar(50)号varchar(50)(4)设备查询(设备,设备名称,分类,型号,规格,分类号,国标代码,代码,购置日期,已使用年限,账面数量数,清查数量数,账面金额数,清查金额数,使用状况,备注)各字段的定义如下所示:3.1.3 数据库物
19、理设计3.1.3.1 数据库选型计算机集成制造科研项目管理系统是以计算机技术为,为用户、处理各种有名 称类 型格 式其 他设备varchar(8)主键设备名称varchar(30)分类varchar(1)型号varchar(30)规格varchar(20)分类号varchar(6)国标代码varchar(3)代码varchar(4)购置日期daimeyyyy-mm已使用年限varchar(3)账面数量数varchar(3)清查数量数varchar(3)账面金额数varchar(10)清查金额数varchar(10)使用状况varchar(10)备注varchar(20)名 称类 型格 式其 他
20、名称varchar(120)主键会议时间daimeyyyy-mm会议地点varchar(20)作者(1-6)varchar(20)范围tiny缺省为 0学科门类varchar(20)来源varchar(20)效信息,完成各项管理活动。根据应用程序的要求,选择本系统采用的数据库管理系统要考虑到如下:(1)符合关系型的标准: 网络上运行的数据库必须是基于 Acs 标准的分布式关系数据库。(2)数据库的体系结构 数据库系统应该是基于客户/服务器体系结构的分布式数据库,用户的应用程序运行在不同的工作站上。(3)事务的完整性和恢复: 数据库服务器应具有事务完整性机制,如日志文件、回退,并能从各种异常情况
21、下恢复数据。在日常工作中能够联机地被份数据库。(4)分布式处理: 数据库必须支持分布式环境点自治的原则,以保证数据的分布式管理和完整性,对用户提供分布式透明以便于应用系统的使用。(5)应用开发: 数据库所支持的宿主语言应包括 Visual Basic,还必须能提供足够的工具供开发者和用户选择,这些工具应涉及数据库分析设计、应用开发、调试和运行等各个不同的阶段。根据上述要求,结合 CIM的具体情况,选用Acs 2000 作为该系统的数据库管理系统,Acs 2000 是一个多用户的关系型数据库系统,它结合了Windows NT操作系统的能力,提供一个安全的、可扩展的、易管理、高性能的客户机/服务器
22、;提供了一套图形化的方便易用的工具如 Entrise Manager、Queryyzer 等;对多用户应用提供了充足的保护措施,能够和防止错误产生,并且能高效地给多用户分配可用的资源。3.1.3.2 数据库结构定义应用 Acs 语言中的数据定义语句,定义四个基本表如下:(1) 项目情况表CREATE TABLE dbo.科研项目表 (序号 char (5) NOT NULL PRIMARY KEY,项目 varchar (10) NULL ,项目名称 varchar (120) NOT NULL ,合同号 varchar (12) NULL ,1 varchar (20) NULL ,2 va
23、rchar (20) NULL ,主要承担人 1 varchar (20) NULL ,主要承担人 2 varchar (20) NULL ,项目来源varchar (30) NULL ,项目性质tiny NULL DEFAULT (0),开始日期smalldatetime NULL ,结束日期smalldatetime NULL ,文件柜号tiny NULL ,电子文档名 varchar (20) NULL ,财务 char (5) NULL ,总经费 smallmoney NULL DEFAULT (0),货币类型 varchar (10) NULL ,拨款数 1smallmoneyNUL
24、LDEFAULT(0),拨款数 2smallmoneyNULLDEFAULT(0),拨款数 3smallmoneyNULLDEFAULT(0),拨款数 4smallmoneyNULLDEFAULT(0),拨款日期 1datetimeNULL,拨款日期 2datetimeNULL,拨款日期 3datetimeNULL,拨款日期 4datetimeNULL,免扣额 1smallmoneyNULLDEFAULT(0),免扣额 2smallmoneyNULLDEFAULT(0),免扣额 3smallmoneyNULLDEFAULT(0),免扣额 4smallmoneyNULLDEFAULT(0),累计
25、支出smallmoney NULL DEFAULT (0),验收日期datetime NULL ,鉴定日期datetime NULL ,鉴定varchar (50) NULL,获奖名称varchar (40) NULL,获奖日期datetime NULL ,授奖varchar (50) NULL,号 varchar (50) NULL)(2)表CREATETABLE dbo.表 (名称varchar (120)NOTNULLPRIMARYKEY,日期datetime NULL,期刊名称varchar (100)NULL ,作者 1varchar(20)NULL,作者 2varchar(20)N
26、ULL,作者 3varchar(20)NULL,作者 4varchar(20)NULL,作者 5varchar(20)NULL,作者 6varchar(20)NULL,范围tiny NULL DEFAULT (0),检tinyNULLDEFAULT (0),检索号varchar(20)NULL ,卷期号varchar(30)NULL ,学科门类 varchar (20) NULL ,来源varchar (20) NULL , varchar(50) NULL)(3) 会议表CREATE TABLE dbo.会议表 (名称varchar(120)NOT NULLPRIMARYKEY,会议时间da
27、tetime NULL,会议名称varchar (100)NULL ,入选集 varchar (120) NULL ,作者 1varchar(20)NULL,作者 2varchar(20)NULL,作者 3varchar(20)NULL,作者 4varchar(20)NULL,作者 5varchar(20)NULL,作者 6varchar(20)NULL,会议地点 varchar (20) NULL,学科门类 varchar (20) NULL,来源 varchar (20) NULL ,范围 tiny NULL DEFAULT(0)(4)CREATE TABLE dbo.会议表 (设备var
28、char (8) NOT NULL PRIMARYKEY,设备名称varchar(30)NULL ,分类varchar (1) NULL,型号 varchar (30) NULL ,规格 varchar (20) NULL ,分类号 varchar (6) NULL ,国标代码varchar (3) NULL,代码varchar (4) NULL,购置日期datetime NULL ,已使用年限varchar(3)NULL,账面数量数varchar(3)NULL,清查数量数varchar(3)NULL,账面金额数varchar(10) NULL ,清查金额数varcharNULL DEFAUL
29、T (10)使用状况 varchar (10) NULL ,备注 varchar NULL DEFAULT (20)3.1.3.3 完整性规则所谓数据的完整性规则是指数据的正确性和相容性,完整性规则是保证数据库中数据正确的有力工具。本系统中数据完整性规则包括:主码完整性规则:每个基本关系中主码的值必须是唯一的,不允许重复;其他完整性规则:(1) 项目的格式要求为 yyyy-#。(2) 项目名称虽然不是主键,但不允许为空。上述完整性规则都应在系统中实现,以保证系统中的数据的正确,能真实反映客观世界的情况,这些完整性规则有的通过应用程序实现,有的通过规范的操作过程来控制。3.1.3.4 索引通常表
30、中的数据按照堆结构,间没有特定的顺序,当查找数据时,必须扫描表的所有数页。而在表中创建了索引后,索引顺序索引列值。这样,查找数据时,根据索引列的值就可以找到所在的数据页,无须扫描所有的数据页,从而提高了查询效率。在SQL Server 中,索引分为聚簇和非聚簇两类。聚簇索引采用 B-树结构,当按照索引键检索数据时,SQL Server 以遍历 B-树的方法遍历索引,直接找到所在的数据页,是查询速度最快的索引。有鉴于此,在数据库的三个基本关系上都定义了一个索引,其定义语句如下:(1)建立在项目情况表的项目名称字段上的索引CREATE CLUSTERED INDEX INDEX_项目名称ON项目情
31、况表(项目名称)CREATE CLUSTERED INDEX INDEX_开始日期ON项目情况表(开始日期)(2)建立在表上的索引CREATE CLUSTERED INDEX INDEX_名称ON表(名称)CREATE CLUSTERED INDEX INDEX_日期ON表(日期)(3)建立在会议表上的索引CREATE CLUSTERED INDEX INDEX_名称ON会议表(名称)CREATE CLUSTERED INDEX INDEX_会议日期ON会议表(会议日期)以上的语句在 Acs 2000 中仍然适用。3.1.3.5 安全性考虑数据库安全性是数据库系统的一个重要方面,它是指保护数据
32、库防止被不合法的使用,包括的破坏和的存取等。但由于本系统涉及到的数据都不是性数据,无须采取很复杂的安全措施,只须防止数据随意改动即可。原系统采取的安全措施是利用 SQL Server与 Windows NT 的安全性集成功能,由系统管理员或数据库管理员为用户分配数据库权限,当没利修改数据库的用户试图修改数据时给出相应的提示,数据库备份的工作也由数据库管理员来完成。而 Acs 2000 的安全系统是以SQL Server 的安全系统为模型的,所以原系统的安全措施也可以保留。3.1.3.6 磁盘空间分配由于项目管理数据量不大、每年的增长量也不大,所以不需要很大的磁盘空间,将初始大小定义为 10MB
33、,增量为 20%。3.2选型3.2.1选型的原则在选择开发主要考虑以下:(1)开发工具的性能稳定和可靠。这是最关心的性能,开发工具不能经常发生错误或在数据库时经常出现问题。可视化的开发。只须用鼠标即可完成界面的设计,并且界面应具有流行的风格,如带有简短提示的工具条,具有 Windows 95 风格的 Tab 文件夹等。提供可扩展的第四代编程语言。这样开发就无须关心复杂的底层工作,如Windows API 等。对 Windows 技术的广泛支持。包括对Windows 95/98 上 32 位计算的支持以及对 DDL、OLE、MDI 等的支持。可以生成真正的可执行文件。较之于伪代码真正的机器代码会
34、使应用的速度和效率得到大幅度提高。(2)数据库的能力必须能够支持 ODBC(开放式数据库互联)和数据库接口。提供多种数据表现形式。完成对数据库的查询和操作是前端开发工具的主要任务。因此开发工具不许提供简便而功能强大的数据;并提供多种数据表现形式;可以生成复杂的报表。3.2.2开发选择目前,很多数据库厂商和应用开发工具厂商纷纷推出了新一代的 32 位快速应用开发(RAD)工具,这些工具为应用开发开发客户机/服务器结构下客户机端的应用程序带来了极大的方便。在数据库应用程序开发方面,现在用的最多的有er Builder、Visual C+和 Visual Basic 等。其中Visual C+功能最
35、强大,但实现复杂,编程量大,对开发的要求太高。er Builder 的最大优点是容易使用,只须很少的代码,尤其是它的数据窗口(Data Window)技术提供了一个非常简便的数据库的方法。er Builder 还提供了对窗口的继承,对于类型相似的窗口只须设计一个,的工作量。但由于er Builder 是一个专门其余的通过继承来实现,这样就大大减轻了开发用于数据库应用程序开发的工具,所以在其他例如界面设计和错误处理之类的细节方面的功能就相对较弱。基于如下原因,最后选择 Visual Basic 6.0 作为本项目管理系统的开发工具。(1)自从 Visual Basic 5.0 开始提供了本机代码
36、(N-Code)码(P-Code)的局限,运行效率提高近二十倍。,摆脱了以往只能生成伪代(2)Visual Basic 提供了开发图形用户界面 (GUI) 的方法。不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象拖放到屏幕上的一点即可。(3)Visual Basic 提供了 ADO (ActiveX 数据对象) 这项新的数据技术。特点是:更简单的对象模型;与其它和非的技术更好的集成;为本地和数据数据提供了通用的接口。(4)提供了增强的数据绑定。在 Visual Basic 以前的版本中,只能在窗体上绑定控件。在Visual Basic 6.0 中,已经可以将任何 ADO/OL
37、E DB 数据源绑定到任何 ADO/OLE DB数据使用者上。(5)Visual Basic 是一个通用的开发工具,功能强大,并且由于同为公司的产品,Visual Basic 与 Windows 操作系统及Acs 2000 数据库管理系统结合得更好。VB 还有一个很大的优点是它是一个基于事件驱动的编程语言,而不象 C 或 C+是过程化的。这在开发 Windows 的应用程序时尤其有用。在传统的或“过程化”的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码。从第一行代码执行程序并按应用程序中预定的路径执行,必要时调用过程。在事件驱动的应用程序中,代码不是按照预定的路径执行而是在
38、响应不同的事件时执行不同的代码片段。事件可以由用户操作触发、也可以由来自操作系统或其它应用程序的消息触发、甚至由应用程序本身的消息触发。这些事件的顺序决定了代码执行的顺序,因此应用程序每次运行时所经过的代码的路径都是不同的。不过这样就造成无法为 Visual Basic 编制的程序画出流程图,或者说流程图太复杂而无法画出。当然 Visual Basic 也有之处。最大的缺点就是不支持继承,这样就容易造成代码重复率高,代码的可重用性和开发效率降低。3.3 系统总体结构根据系统的功能需求,确定以下模块结构图.它由数据录入、数据查询、系统设置和帮助模块组成。(见下图)科研项目管理系统数据录入数据查询
39、系统设置帮助查询会议查询图 3-1续图 3-1代号设置数据库连接设置系统设置打印报表项目情况查询数据查询会议录入录入项目数据录入数据录入其中每一个模块由一个窗体及其相应的代码。为了实现应用程序的灵活性,对于实际应用中需要动态修改的数据库连接设置与项目性质、检在表中。其结构为:代号等数据HKEY_CURRENT_USERVB and VBA Program Settings科研项目管理系统 1.0.ConnectionDatabaseNameServerName“科研项目管理系统”“IDEASSERVER”SymbolArticleRange012Count ArticleRetrieveSou
40、rce01234CountProjectQuality01234Count“国内”“国际”“地方”“2”“无”“EI”“SCI”“”“一般”“4”“无”“国家自然科学基金” “863”“部、省科委”“企业、“4”其中后面三个键名的意义为ArticleRange :范围ArticleRetrieveSource :检ProjectQuality :项目性质所有键值均为字符串,Count 是计数值。系统第一次运行时将创建上述据库名称和服务器名称为空字符串,Count 为0。表结构,初始数3.4数据库接口设计3.4.1数据接口选择对于一个数据库应用程序来说,选择一个合适的数据接口是很重要的,它与应用
41、程序的性能密切相关。在 Visual(ActiveX Data Object,ADO)Basic 中,可用的数据接口有三种:ActiveX 数据对象数据对象(Remote Data Object,RDO)接口是一个对象模型,它代表了和数据对象(DataAcs Object,)。数据数据的各个方面。使用 Visual Basic,可以在任何应用程序中通过编程控制连接、语句据。和供使用的返回数数据对象 () 既可以和Jet 数据库引擎一起使用,也可以通过设置Jet 数据库引擎是一个独立的数据库管理系ODBCDirect 选项而不和它一起使用。统,需要时它既可以对各种服务器进行处理查询,又可以进行路
42、由查询。通过访问 Jet 使开发工作更加简便,因为它提供了面象的开发方法和对数据识别绑定控件的访问能力。/Jet 的主要缺点是没有利用 SQL Server 的所有特性,这主要是由于试图使/Jet 成为通用接口的原因。并且 Jet 不适合多任务,在每个查询完成之前,它将锁定其他请求和用户。RDO数据对象是一个到 ODBC 的、面象的数据接口,它同易于使用的style 组合在一起,提供了一个接口,形式上展示出所有 ODBC 的底层功能和灵活性。RDO提供了用来过程和复杂结果集的和更复杂的对象、属性,以及方法。RDO 的Jet 或 ISAM数据库方面受到限制,而且它只能通过现存的 ODBC缺点是在
43、很好地驱动程序来ADO 是为关系数据库。范例 OLE DB 而设计的,是一个便于使用和最强大的数据的的应用程序层接口。OLE DB 为任何数据源提供了高性能的,这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义业务对象等等。ADO 在关键的ernet 方案中使用最少的网络流量,并且端和数据源之间使用最少的层数,总之,ADO 提供了一个轻量、高性能的接口。基于上面的分析,选用 ADO2.0 作为本系统的数据接口。除了上述原因外,选用ADO 还可以省去DSN 的麻烦,并且 ADO 是未来的发展趋势,将取代所有其他接口,所以选用ADO 能增强应用程序的可扩充性。具体实现3.4.
44、2通过 ADO数据库有两种方式:ADO Date 控件和代码。通过 ADO Date 控件数据库最大的优点是实现方法简单,编程量少。但由于本应用程序有多个涉及到数据库的窗口,每个窗口不同的表,所以必须为每个窗口都放置一个控件,这样就产生了代码重复,并且最主要的是会造成在应用程序的运行过程中不断连接和断开数据库,而连接数据库是很费时的操作,这是用户所的。选择采用纯代码的方式,根据面象的设计原则,将与数据库的连接代码封装成一个类,取名为 clsData。该类具有 vbDataSource 的属性。其中定义对应于三个基本关系表的集(RecordSet)对象和数据库对象为私有成员,对外不可见。在类的初
45、始化事件(Initialize)中进行数据库的连接并初始化集,如果连接失败则给出失败信息。在 GetDataMember事件中通过不同的数据成员名称(DataMember)来件(Terminate)代码中断开与数据库的连接。对数据库的操作通过对该类的方法调用实现。由于对三个基本表要进行的操作是一样的,三个不同的集。在类的终止事所以为保持代码的简洁,以数据成员名称为第一参数定义添加(AddNew)、删除(Delete)、排序(Sort)、筛选(DataFilter)、移动到首(MoveNext)、移动到上一(Move)、移动到末(MoveLast)、移动到下一数目 (CountRecord)、刷
46、新(MovePrevious)、统计(Requery)、保存(Save)共计十一个公有函数以实现对数据库的操作,在代码中通过Select 语句区分要对那一个3.5 初始化模块设计集进行操作。作为应用程序的,进入系统时首先必须进行的初始化工作有:检查应用程序表的完整性,初始化类,创建日期格式,然后将控制移交给主界面。用 PDL 语言描述如下:PROCEDUREIF 没有创建应用程序 THEN创建ENDIF初始化类;表表;IF 连接失败THENENDIF将与数据库操作有关的菜单项设为不可用;定义日期格式;显示主界面;IF 未设置代号THENENDIF显示信息并提醒用户进行设置;END PROCED
47、URE3.6 主界面设计主界面只作为其他所有窗口的父窗口,名称为 frmMain,类型为 MDIForm。其上放置的控件有:主菜单、用于调用 Html 帮助文件的一个 HHOpen 控件(不可见)、以及一个用于显示辅助信息的状态栏。界面设计如下:主菜单设计如下:数据录入查询设置帮助退出项目录入项目查询数据库连接设置内容录入查询代号设置录入查询会议录入会议查询各菜单的代码作用仅仅是打开相应的窗口。3.7录入模块设计项目录入与录入除操作的集不同外,其余基本是一样的。先前的设计是为项目录入、期刊录入、会议录入和设备录入各创建一个窗口,以实现对不同集的操作。但后来发现由于其多数操作都是一样的,这样就造
48、成了代码的重复率很大,并且不易。为了提高代码的重用性和可性,减少源程序数量,对项目和的录入采用同一个窗体,用窗体的 Tag 属性来区分当前打开的窗体是要对那一个集进行操作。录入窗体取名为 frmRecordInput。窗体界面设计如下:录入窗口的菜单设计如下:编辑刷新排序帮助关闭添加剪切升序排列内容保存降序排列粘贴删除录入窗口所用到的控件有:其中 ImageList 控件在运行时不可见。窗口上所有控件的布局在运行时由代码调整。打开录入窗口时根据要录入的是项目情况、或会议分和设备情况分别将其 Tag 属性设置为“Project”、“Periodical”、“Meeting”和“Machine”以
49、作区别,这些代号也与类 clsData 中数据成员的名称相同,在类的方法时就可以直接用“Me.Tag”作为参数,这样可以减少输入错误。对要用代码进行的录入(项目性质、的检等)采用下拉列表框作为输入方式,既方便用户操作又可避免出错。为方便用户快速找到感的,录入窗口提供了按照某一列(字段)进行升序或降序排列的功能,实现方法是当用户单击某一列的列头时触发 DataGrid 控件的 HeadClick 事件,在该事件的代码控件类型控件名称作用DataGriddbdRecord用于显示项目或数据并可在其上进行编辑ComboBoxcboRange显示并设置范围ComboBoxcboRetriSource显
50、示并设置检ComboBoxcboQuality显示并设置项目性质ToolBarToolBar1提供快捷ImageListImageList1为提供图象列表中得到当前列的名称,存于局部变量SortField 中,然后在升序或降序排列菜单项的代码中调用类clsData的排序(Sort)方法对排序。为防止用户无意中进行了关闭窗口的操作而丢失未保存的修改,在窗口的代码中定义一个名为 Dhanged 的型局部变量,用以用户的操作,当用户改变了数据时将其设为真,在窗体关闭前检查该变量,如果为真则提醒用户是否保存所做的修改。定义两个私有函数:DateFormat()用于为只精确到月的日期字段定义日期格式;d
51、bdRecordResize()用于设置 dbdRecord 控件各列的高度及宽度。录入窗口所需要处理的事件主要有:窗口 frmRecordInput 的Activate 事件:紧接着窗口的 Load 事件被触发,代码完成的主要工作是根据窗口的 Tag 属性为 dbdRecord 控件绑定数据源; 从表中代号设置并将其加入相应的ComboBox 控件中;根据窗口的 Tag 属性将dbdRecord控件中对应 代号设置的列的 Button 和Locked 属性设为 True。如果当前获得焦点的列是用代号设置的列则调用dbdRecord 控件的 RowColChange 事件:dbdRecord
52、控件的 ButtonClick 事件处理程序,否则将下拉列表框设为不可见;在状态条上显示当前正在编辑的。dbdRecord 控件的 ButtonClick 事件:将列表框移动到当前列并设为可见;将列表框中的值与该列的数据对应起来。dbdRecord 控件的 Error 事件:三个 ComboBox 控件的 LostFocus 事件:对录入过程中的错误进行提示。如果代号被改变则将列表框中的新值写入当前列以起到更改的作用。3.8 查询模块设计按照功能需求的规定,必须支持各种查询方式,并能将查询结果打印成报表。其中需要录入字符串的查询均采用模糊查询的方式,以减少用户输入,提供自定义查询以满足复杂条件
53、的查询要求。退出查询后应清除查询结果,能将代码意义自动放在报表末尾,如果以时间为查询条件,还应将时间范围自动放在报表开头。查询以对集进行筛选而不是以重新打开集的方式,这样就节约了数据传输的开销。查询项目情况、或会议、设备情况的界面和基本操作都相同,只有菜单不一样。原先的设想是象录入模块一样建立一个通用查询界面,但由于VB 不提供动态修改菜单项的方法,所以只能分别为项目、和会议、设备各创建一个查询窗口。查询界面设计如下所示(以查询为例):所用到的控件除没有用于输入代码的三个ComboBox 控件以及DataGrid 控件的AllowAddnew、AllowDelete、AllowUpdate 属
54、性设为 False(即不允许进行编辑)外,均与录入窗口相同,此处不再赘述。查询条件通过框输入,在查询菜单中选择查询目的后显示相应的框。对于项目情况、和会议中都有的以名称和时间为条件的查询、自定义查询、和会议中都框,显示时分别将框的Tag 属性设为“Project”、有的以作者为条件的查询建立四个通用查询“Periodical”和“Meeting”以作区别。查询模块所用到的框有:dlgNameQuery:实现对项目情况以项目名称为条件;对和会议以名称为条件的查询。dlgDateQuery:实现对项目情况以项目起止时间为条件;对和会议以发表日期为条件的查询。dlgGeneralQuery: dlg
55、AuthorQuery: dlgProjCDRQuery: dlgProjFZRQuery:dlgProjQualityQuery:实现复杂条件的自定义查询。实现对和会议以作者为条件的查询。实现对项目情况以承担人为条件的查询。实现对项目情况以为条件的查询。实现对项目情况以项目性质为条件的查询。dlgPeriodRetrieveQuery:实现对项目情况以dlgPeriodSourceQuery: 实现对项目情况以检为条件的查询。来源为条件的查询。其中 dlgDateQuery 采用 MaskEdBox 控件实现输入,将其输入格式设为数字以防止用户错误输入,并对诸如输入月份大于十二或小于一、开始
56、日期大于结束日期等错误情况进行判断,提醒用户改正。对于和会议以作者为条件、对项目情况以承担人为条件、对项目情况以为条件的查询,因为作者、承担人、均有多个,只要符合其中之一即可。对于以代号为条件的查询(例如对项目情况以检为条件的查询)通过下拉列表框进行输入以方便用户输入条件。科研项目查询该菜单下包括 3 种查询方式:按项目查询其期查询选项中的“综合”指的是“起始日期”大于前一个日期,同时“结束日期”又小于后一个日期的。2 按经费查询3 按财务查询3.8.2查询3.8.3会议查询3.8.4设备查询清除菜单通过调用类clsData 的 Requery 方法实现清除当前查询结果的功能。打印功能通过 D
57、ataReport 数据报表实现,DataReport 本身就提供了打印、视图放大及缩小功能,无须编程实现。所用到的 DataReport 数据报表有如下几个:drpMeetArticle:会议drpPeriodArticle:统计表统计表drpProjArchieve:科研项目成果表drpProjFinanl:科研项目财务表drpProjOverview:科研项目总览表这里要特别提一下的是,由于每张统计表的宽度都大于页面宽度,所以在打印之前必须先将设置成横向打印。3.9 设置模块设计考虑到应用程序可能连接到不同的终端上,并且系统在使用过程中用代号设置的字段可能需要修改其意义,通过让用户设置数
58、据库连接选项和代码意义以获得更大的灵活性,用户的输入保存在表中以便应用程序使用。数据库连接设置窗口设计如下:由于应用程序只有在启动时才从表中得到服务器和数据库名称并进行连接,所以数据库连接设置完成后不会马上生效。所以在用户完成数据库连接设置后,也就是“确定”按钮被按下后通过在“确定”按钮的 Click 事件处理代码中的 MsgBox 函数在显示一条信息提醒用户。代码设置窗口设计如下:可以编辑当前代号、添加新代号或删除当前代号。添加新代号时采取自动增量的方式,不允许用户设置代号数字以保证每一类代号都是顺序递增的。为了同样的原因,也不允许用户删除除了最后一个以外的代号。另外,应用程序要求每一类代号
59、至少必须有一个设置,所以第一个代号也不允许删除。发生上述的错误操作时将向用户显示错误信息。3.10 帮助模块设计用 HTML Help 的方式对应用程序中的各种功能对用户说明,提供上下文相关帮助,并对各种错误情况提供必要的提示信息。帮助文件用HHOpen 控件的 OpenHelp 函数打开。第四章测试分析4.1测试的目的测试在生存期中占有重要地位,这不仅因为测试阶段占用的时间、花费的人力和成本占软件开发的很大,而且它直接影响的质量。开发工作在测试以前已经历了制定计划、需求分析、设计和编码等许多阶段。由于人的思维不可能绝对周密而不发生任何错误。尤其在大中型开发项目中,系统内各部分之间、各种数据之
60、间、各种之间有着复杂的关系,因此目前所采用的开发方法都不能完全避免发生错误。按照工程的观点,测试阶段的主要任务是发现并排除在分析、设计、编程阶段中产生的各种类型的错误,以得到可运行的系统。测试工作最典型的做法是,选取一些测试数据,运行被测程序,检验运行结果,其中选取测试数据是整个测试工作的关键。一般有两种不同的方法考虑测试数据:黑盒方法和白盒方法。黑盒方法又称为功能测试或数据驱动测试方法,按这一方法进试时,程序被看作不能打开的黑盒,在完全不考虑程序结构的情况下,依靠程序的规格说明书,从可能的输入条件和输出条件中确定测试数据,也就是根据程序的功能或程序的外部特征设计测试数据。白盒测试又称为结构测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年标准化枸杞批发买卖合同版
- 元旦活动策划集锦15篇
- 水资源的调查报告
- 军训拓展心得体会15篇
- 技术员年度总结10篇
- 竖向荷载作用下群桩效应
- 关于七年级语文说课稿3篇
- 酒店的工作总结10篇
- 人教版历史与社会八年级上册第三单元第五节课《昌盛的秦汉文化》 教学实录2
- 广东省东莞市黄冈理想学校七年级信息技术下册 第1章 第5节 综合活动:创作校园报刊教学实录 粤教版
- 彩色简约鱼骨图PPT图表模板
- 道路旅客运输企业实现安全生产方针与目标的保障措施
- 招聘与录用选择题
- 营销中心物业服务标准讲解
- 周视瞄准镜的初步设计-北京理工大学-光电学院小学期作业
- Writing写作教学设计
- 中国农村信用社支票打印模板xls
- 压力管道安装工艺和检验规定
- 上海市宝山区2019届高三英语一模含答案
- 小学英语语音专项练习题(附答案)
- 《数与形》教学反思
评论
0/150
提交评论