为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

课题项目进程管理系统—免费计算机毕业设计论文

2017-12-19 40页 doc 369KB 8阅读

用户头像

is_633808

暂无简介

举报
课题项目进程管理系统—免费计算机毕业设计论文课题项目进程管理系统—免费计算机毕业设计论文 课题项目进程管理系统 摘 要 课题项目进程管理系统,是典型的信息管理系统,其开发过程主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者使用MS Access建立起完整性强、安全性好的数据库。而对于后者选择了Visual Basic 6.0作为开发工具,利用其提供的各种面向对象的开发工具建立了这一系统。 该系统是针对各类学院或者研究院的项目管理而设计开发的。它实现了项目的各类信息的录入、修改、查询和报表打印等功能,这些信息主要包括项目的基本情况、项目进展程...
课题项目进程管理系统—免费计算机毕业设计论文
课题项目进程管理系统—免费计算机毕业设计 课题项目进程管理系统 摘 要 课题项目进程管理系统,是典型的信息管理系统,其开发过程主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者使用MS Access建立起完整性强、安全性好的数据库。而对于后者选择了Visual Basic 6.0作为开发工具,利用其提供的各种面向对象的开发工具建立了这一系统。 该系统是针对各类学院或者研究院的项目管理而设计开发的。它实现了项目的各类信息的录入、修改、查询和报表打印等功能,这些信息主要包括项目的基本情况、项目进展程度、项目经费开支、以及科研成果和项目获奖情况等。该系统界面友好清晰,使用方便快捷,它简化了项目的管理过程,提高了科研管理人员的工作效率,从而节省了人力资源与经费开支,有利于经济效益的提高和科研事业的发展。 关键词:数据库;Visual Basic 6.0;MS Access;课题项目 Abstract The management system of project process is a typical management information system, which mainly includes building up database of back-end and developing the application interface of front-end. To the former, the system can get integrality and security of data by MS Access. And to the later, Visual Basic 6.0 is selected to used because of its objective tools. The system is designed for some colleges or institutes to manage the project process, which realized many functions at large, such as input, modification, query and data reporter print of all kinds of information. It also included the project’s basic information, process degree, money expenditure and scientific research fruits and so on. It is very simple and convenient to make use of this management system. It can simplify the process of project management and improve the working efficiency of the scientific manager. It is helpful for improving the economic profits and developing the scientific enterprise. Keywords: Database; Visual Basic 6.0; MS Access; 目 录 1 绪论 ............................................................. 1 2 开发工具 ......................................................... 5 3 系统分析 ......................................................... 6 3.1 系统的需求分析 ................................................... 6 3.2 系统逻辑模型的建立 ............................................... 6 3.2.1 数据流图 ..................................................... 6 3.2.2 数据字典 .................................................... 10 4 系统总体设计 ..................................................... 14 4.1 系统功能分析 .................................................... 14 4.1.1 系统功能模块图 .............................................. 14 4.1.2 各功能模块简述 .............................................. 15 4.2 系统数据库的建立 ................................................ 16 5 系统各模块的设计和实现 ........................................... 22 5.1 用户登录模块的设计及实现 ........................................ 22 5.1.1 功能概述 .................................................... 22 窗体设计 .................................................... 23 5.1.2 5.1.3 流程说明 .................................................... 23 项目管理模块的设计及实现 ........................................ 24 5.2 5.2.1 窗体设计 .................................................... 25 5.2.2 流程说明 .................................................... 26 5.3 进程管理模块的设计与实现 ........................................ 27 5.3.1 功能实现 .................................................... 27 5.3.2 流程说明 .................................................... 28 5.4 经费管理模块的设计与实现 ........................................ 28 5.4.1 功能实现 .................................................... 28 5.4.2 流程说明 .................................................... 29 5.5 科研成果管理模块设计与实现 ...................................... 30 5.6 数据查询模块的设计与实现 ........................................ 31 5.7 数据报表模块的设计及实现 ........................................ 33 5.7.1 功能概述 .................................................... 33 5.7.2 报表设计 .................................................... 35 6 系统测试 ........................................................ 37 总结 ............................................................... 38 致谢 ............................................................... 39 主要参考文献........................................................ 40 附录1 部分源代码 ................................. 错误~未定义书签。35 附录2 英文文献及其 ........................... 错误~未定义书签。66 绪论 目前,各大院校以及各种研究院所需开发研制的项目已日趋增多,其申请、立项等手续也日渐繁琐,对其进行如阶段性检查、经费拨款等管理的流程也越来越复杂化。项目的管理进程是一个十分复杂且冗长的过程。在项目的申请阶段,需要录入项目概况及其负责人和参加者的基本情况。在实施阶段,要对其开发进度进行监督检查,以确保项目能够按计划完成。而申请经费的到款情况也将关系到项目的进度,从而决定了单位的经济效益和其科研事业的发展趋势。 针对这一情况,决定建立一个计算机管理系统。本着系统开发的高效实用性原则,经过指导老师吴曼的推荐,拜访了安工大和马鞍山矿山研究院的科研处,收集了关于项目管理的各种资料,包括安徽工业大学横向科技项目管理办法及其情况登记表,安徽省教育委员会自然科学研究项目申请书等等,并向科研处人员了解了这一具体管理过程的实现,努力使所开发的系统能够让项目管理过程变得直观而清晰,以适用于这些院校和集团。 课题项目进程管理系统,主要是对每年所申请项目的实施过程进行管理。不同的用户只能根据自己的权限访问数据和进行操作,一般的用户只有查询的权限,而只有系统管理员才能对项目信息进行具体的操作。 项目管理模块主要是对项目的基本信息的管理,可实现项目基本信息的增、删、改、查操作,方便、快速的对其基本情况进行管理,为后续工作打下良好的基础。为了促进项目的实施,保证它能够按期结题完成,还必须对项目进行阶段性检查,进度管理这一模块便是为了实现这项功能而设计的。另外,为了提高企业的经济效益,保证项目经费的合理分配与开支,设计经费管理模块以利于对经费这一块的管理。项目进度和经费管理同样能够实现增、删、改、查等操作。为了方便管理人员和用户的查询,根据不同的条件如:项目所属学院、研究类型,项目类别等,可以对项目信息进行统计查询,生成打印报表。 为使本系统能在实际的项目管理过程中发挥应有的作用,在老师的精心指导下,严格按照软件工程的方法设计,力求高效、有序,能使该信息管理系统有助于现代的科研管理。 2 开发工具 [1]Visual Basic是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。它简单易学、效率高,且功能强大。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,以及动态链接库(DDL),动态数据交换(DDE),对象的链接与嵌入(OLE),开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能强大、 图形界面丰富的应用软件系统。 [2]Visual Basic是事件驱动型语言,无论程序的结构还是工作方式,都与传统的程序设计语言不一样。Visual Basic应用程序通常由三类模块组成,即窗体模块、模块和类模块。Visual Basic的最大特点,就是在Visual Basic环境下,以最快的速度和效率开发具有良好用户界面的应用程序。Visual Basic的对象已被抽象为窗体和控件,因而大大简化了程序设计。一般来说,在用Visual Basic开发应用程序时,需要以下三步:(1)建立可视用户界面。(2)设置可视界面特 性。(3)编写事件驱动代码。 [2]Visual Basic 6.0提供了强大的数据库管理功能,在过去开发环境的基础上,它引入了功能强大的ADO(Active Data Object)作为存取数据的新标准,能灵活方便的完成数据库应用当中涉及到的诸如建库、查询及更新等各种常规操作。VB可以处理各种外部数据库,例如Access、FoxPro、Dbase、Excel、Paradox等格式的数据库,甚至其他非关系的数据库。VB不管各种数据库内部格式上的区别而自动将其转变为关系结构的数据库。VB本身使用的数据库是Access数据库, 可以在VB中直接创建,库文件的扩展名为.MDB。 3 系统分析 3.1 系统的需求分析 [3]需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。现对该课题项目进程管理系统总结出以下任务,必须能对项目概况、进程情况、经费分配、科研成果等进行管理。下面,将交出在这个阶段所做的文档,包括详细的数据流图,数据字典和一组简明的算法描述。需求分析是系统开发的基础,关系到工程的成败和软件产品的质量,是软件生命期中重要的一步,决定性的一步。 3.2 系统逻辑模型的建立 3.2.1 数据流图 [4]数据流图是用来描述系统数据流程及其处理过程的方法,对于规模较大、数据之间联系复杂的系统来讲,用一张数据流图将所有的外部项、处理过程、数据存储等表示出来,是不现实的。因此,在建立数据流图时,一般采用自顶向下的结构化分析方法,首先用少数几个高度概括、抽象的处理过程来描述整个系统的逻辑功能、数据流程及其与外界的数据交换,然后分别对其中的每个处理过程进行分解,建立下一层的数据流图,直到最低层为止。对于每一层,必须仔细确定该层的逻辑功能、外部项、数据流、数据存储,并用各自的符号将其表达出来, 再按照所处理的层次及前后顺序给以适当的编号。 该系统的数据流图如下: 信息输入 课题项 信息查询 目进程信息查询 管理员 普通用户 管理系 身份验证 统 身份验证 图3.1系统图 2 要求信 合法的用户信息 息处理 用户信息 1 不合法的 登录 用户信息 合法的用户信息 统计报表 3 要求信 息查询 图3.2 零层数据流图 2(2 项目基本 项目基本信息 信息处理 项目进程信息 2(3 项目进程课关于项目的 信息处理 题管理员 2(1 各种信息 数要求信息 据的类型处 项目经费信息 2(4 库 理 项目经费 信息处理 科研成果信息 2(5 科研成果 信息处理 一层数据流图(图号2) 图3.3 3(2 查询结果 统计报表 打印处 查询 3(1 理 要求信 进一步查询 息查询 3(3 进展经 项目进展情况 费查询 表 项目经费情况表 图3.4 一层数据流图(图号3) 项目基本信息 项目基本情况表 审查后的项目 2.2.1 2.2.2 不合法的 基本信息 项目申请人员表 审查合项目基 法性 本信息 参加人员表 处理 图3.5 二层数据流图(图号2.2) 项目进度信息 审查后的项目 2.3.2 2.3.1 不合法的 进度信息 项目进展情况表 项目进审查合 度信息法性 处理 图3.6 二层数据流图(图号2.3) 项目经费信息 审查后的项目 2.4.1 2.4.2 不合法的 经费信息 项目经费表 审查合项目经 法性 费信息 处理 图3.7 二层数据流图(图号2.4) 2.5.2 学术论 文信息 处理 学术论文表 审查后的学术 论文信息 项目经费信息 2.5.1 2.5.3 审查后的学术 学术著作表 审查合学术著 不合法的 著作信息 法性 作信息 处理 审查后的项目 获奖信息 项目获奖情况表 2.5.4 项目获 奖信息 处理 图3.8 二层数据流图(图号2.5) 3.2.2 数据字典 [5]数据流分析包括一套完整的分层数据流图和一本完整的数据字典,它们结合起来,才能较完整地描述一个系统。数据字典就是用来描述数据流和加工的,它分为三个部分:数据流条目,文件条目,加工条目。 数据流条目是定义数据流的,定义的方式一般是列出该数据流的各组成员数据项。文件条目是定义文件的,定义的方式一般是列出文件的组成数据项,以及文件的组织方式。加工条目是针对数据流图中的每个基本加工编写的详细小说明,即加工逻辑。目前对加工逻辑的描述一般还是用自然语言,结构化自然语言等。下面,将根据以上的数据流图列出它的数据字典。 (1)数据流条目 用户信息=用户名+密码 项目基本信息=项目编号+项目名称+课题来源+项目类别+研究类型+学科+ 开始时间+结束时间+申请经费+(研究内容及意义+立论依 据+违约责任+预期成果)+申请人信息+{参加者信息} 项目进度信息=项目编号+阶段号+研究进度+检查日期+(已做工作+阶段性 成果+存在问题及改进措施+重要事项变更) 项目经费信息=项目编号+经费笔数+申请总经费+实到经费+(科研业务费+ 实验材料费+设备费+差旅费+工资+其他) 科研成果信息=项目编号+[学术论文信息|学术著作信息|项目获奖情况信息] 申请人信息=姓名+性别+民族+出生日期+最后学历+最后学位+(行政职务+ 专业职务+电话+传真+通讯地址) 参加者信息=姓名+性别+出生日期+专业职务+研究专长+学历+学位 学术论文信息=论文编号+论文题目+论文作者+发表期刊+卷期号 学术著作信息=著作编号+著作名称+作者+出版社+出版年月 项目获奖信息=获奖编号+成果名称+获奖等级+颁奖部委+获奖日期 (2)文件条目 文件名:用户表 组 成:{用户名+密码+身份} 组 织:按用户名拼音字母顺序排列 文件名:项目基本情况表 组 成:{项目编号+项目名称+课题来源+项目类别+研究类型+学科+开始 时间+结束时间+申请经费} 组 织:按项目编号大小递增排序 文件名:项目进展情况表 组 成:{项目编号+阶段号+研究进度+检查日期+已做工作+阶段性成果+ 存在问题及改进措施+重要事项变更} 组 织:按项目编号和阶段号大小递增排序 文件名:项目经费表 组 成:{项目编号+经费笔数+申请总经费+实到经费+科研业务费+实验材 料费+设备费+差旅费+工资+其他+总计+结余} 组 织:按项目编号和经费笔数大小递增排序 文件名:项目人员表 组 成:{姓名+性别+民族+出生日期+最后学历+最后学位+行政职务+专业 职务+电话+传真+通讯地址+项目编号} 组 织:按姓名拼音字母顺序排列 文件名:参加人员表 组 成:{姓名+性别+出生日期+专业职务+研究专长+学历+学位+项目编 号} 组 织:按姓名拼音字母顺序排列 文件名:学术论文表 组 成:{论文编号+论文题目+论文作者+发表期刊+卷期号+项目编号} 组 织:按论文编号大小顺序排列 文件名:学术著作表 组 成:{著作编号+著作名称+作者+出版社+出版年月+项目编号} 组 织:按著作编号大小顺序排列 文件名:项目获奖情况表 组 成:{获奖编号+成果名称+获奖等级+颁奖部委+获奖日期+项目编号} 组 织:按获奖编号大小顺序排列 (3)加工条目 加工编号:1 加 工 名:登录 加工逻辑:检查输入的用户信息的合法性 有关信息:当用户要求登录时执行此加工 加工编号:2.1 加 工 名:要求信息的类型处理 加工逻辑:根据用户要求选择CASE CASE1:要求项目基本信息的录入或修改 CASE2:要求项目进展信息的录入或修改 CASE3:要求项目经费信息的录入或修改 CASE4:要求项目科研成果信息的录入或修改 有关信息:当有合法用户要求时执行此加工 加工编号:3.1 加 工 名:要求信息的查询 加工逻辑:根据要求选择查询 IF 要求查询项目基本信息 THEN 按各种分类方式查询信息 IF 进一步查询 THEN 查询项目进程和经费信息 END END 有关信息:当有查询要求时执行此加工 加工编号:3.2 加 工 名:打印处理 加工逻辑:将各类项目信息统计表打印输出 有关信息:当有打印要求时执行此加工 加工编号:3.3 加 工 名:进展经费查询 加工逻辑:根据要求查询上一步所选项目的进展经费情况 有关信息:当有进一步查询要求时执行此加工 加工编号:2.2.1 加 工 名:审查合法性 加工逻辑:审查所输入信息是否合法 有关信息:当有输入要求时执行此加工 加工编号:2.2.2 加 工 名:项目基本信息处理 加工逻辑:对项目基本信息进行录入或修改,并且添加到或更新项目基本 情况表、项目人员表、参加人员表 有关信息:当有要求时执行此加工 加工编号:2.3.2 加 工 号:项目进度信息处理 加工逻辑:对项目进度信息进行录入或修改,并且添加到或更新项目进展 情况表 有关信息:当有要求时执行此加工 加工编号:2.4.2 加 工 号:项目经费信息处理 加工逻辑:对项目经费信息进行录入或修改,并且添加到或更新项目经费 情况表 有关信息:当有要求时执行此加工 加工编号:2.5.2 加 工 号:学术论文信息处理 加工逻辑:对学术论文信息进行录入或修改,并且添加到或更新学术论文 情况表 有关信息:当有要求时执行此加工 加工编号:2.5.3 加 工 号:学术著作信息处理 加工逻辑:对学术著作信息进行录入或修改,并且添加到或更新学术论文 情况表 有关信息:当有要求时执行此加工 加工编号:2.5.4 加 工 号:项目获奖信息处理 加工逻辑:对项目获奖信息进行录入或修改,并且添加到或更新项目获奖 情况表 有关信息:当有要求时执行此加工 4 系统总体设计4.1 系统功能分析 4.1.1 系统功能模块图 [6]根据以上的需求分析,画出下面的功能模块图: 用户信息管理 系统用户管理 用户密码修改 项目概况录入 项目概况管理 项目概况修改 项目进度录入 项目进度管理 课项目进度修改 题 项经费情况录入 目课题经费管理 进经费情况修改 程 图4.1 系统功能模块图 4.1.2 各功能模块简述 系统管理:该模块首先具有验证登录者身份的功能,它可以保证只有经过系统管理员授权的用户才能够使用,从而保证系统数据的安全。另外,它还可以根据用户的使用权限来决定为用户启用的功能。该系统的用户权限分为:管理员、普通用户。具有管理员权限的用户负责对其它用户进行管理,包括添加新用户,修改已有用户信息(用户名、密码、权限)等。在本系统中,管理员还具有下列权限: 项目管理、进程管理、经费管理、科研成果管理、信息查询及报表打印。而普通用户只具有信息查询与报表打印权限。 项目管理:实现对项目基本情况的录入、修改、删除等操作。项目编号具有唯一性,即不同的项目就具有不同的项目编号,所以新添项目时,项目编号将自动产生。 进程管理:实现对项目进展程度的管理。某项目一旦立项,从立项时间起,必须对项目进行阶段性检查,直至项目结题。该模块即实现对各个阶段性检查情况的录入、修改、删除等操作。 经费管理:实现对项目经费开支的管理。项目经费并不是一次性到齐,而是分批发放给项目开发研制小组。该模块即实现对各笔经费情况的录入、修改、删除等操作,并能对项目的经费分配进行总计和结余计算。 科研成果管理:科研成果形式包括学术论文和学术著作。该模块实现了对这两种成果形式以及项目获奖情况的录入、修改、删除等操作。 数据查询:实现对项目信息的查询,包括对项目基本情况、进程情况、经费情况的查询。用户可以选择各种查询方式,本系统提供了下列方式:按照项目名称,按照申请者姓名,按照学科名称,以及所有项目查询(即:将所有项目显示于一张表中,当选中某个项目,便可显示该项目的详细情况)。 数据报表:根据用户的不同要求分类查询出用户所需要的项目信息,然后打印输出用户所需报表。报表中的项目按照下列条件分组:项目所属学院,项目类别,研究类型、完成情况(进展中或已结题)、结题年度。例如,用户可以得到某个学院的所有项目的报表,也可以得到所有已结题或者还在进展中的项目的报表,等等。 4.2 系统数据库的建立 [7]在数据库中要用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟。不同的数据模型实际上是提供给我们模型化数据和信息的不同工具。根据模型应用的不同目的,可以将这些模型划分为两类。第一类模型是概念模型,也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。另一类模型是数据模型,主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模,主要用于DBMS的实现。下面,将分别建立该系统的概念模型和数据模型。 [8]概念模型的方法很多,其中最著名最常见的是实体-联系方法,该方法用E-R图来描述现实世界的概念模型,E-R方法也称为E-R模型。该系统的E-R图如下: 获奖项目 n n n 登登登 学术论文 学术著作 记 记 记 1 n 1 1 n 参进课题组人员 项 目 阶段检查 加 行 1 1 n 花费 负责 n 经 费 图4.2 E-R图 课题组人员(人员编号,姓名,性别,民族,出生日期,最后学历,最后学位, 行政职务,专业职务,电话,传真,通讯地址) 项目(项目编号,项目名称,课题来源,项目类别,研究类型,学科,开始时间, 结束时间,申请经费) 阶段检查(项目编号,阶段号,研究进度,检查日期,已做工作,阶段性成果, 存在问题及改进措施,重要事项变更) 经费(项目编号,经费笔数,申请总经费,实到经费,科研业务费,实验材料费, 设备费,差旅费,工资,其他) 学术论文(项目编号,论文编号,论文题目,论文作者,发表期刊,卷期号) 学术著作(项目编号,著作编号,著作名称,作者,出版社,出版年月) 获奖项目(项目编号,获奖编号,成果名称,获奖等级,颁奖部委,获奖日期) 数据模型是数据库系统的核心和基础,其中最重要的一种是关系模型,以下即该系统关系模型的数据结构。 表4.1 用户表 字段名称 类型 大小 字段是否固定 允许零长度 必要字段 顺序位置 用户名 Text 15 可变 否 是 0 密码 Text 6 固定 否 是 1 身份 Text 10 可变 否 是 2 表4.2 项目人员表 字段名称 类型 大小 字段是否固定 允许零长度 必要字段 顺序位置 人员编号 Text 10 可变 否 是 , 姓名 Text 15 可变 否 是 1 性别 Text 6 可变 否 是 , 出生日期 Date/Time 8 可变 否 是 , 最后学历 Text 10 可变 是 否 , 最后学位 Text 15 可变 否 是 , 行政职务 Text 20 可变 是 否 6 专业职务 Text 20 可变 是 否 7 电话 Text 10 可变 是 否 8 传真 Text 20 可变 是 否 9 通讯住址 Text 30 可变 是 否 10 表4.3 项目基本信息表 字段名称 类型 大小 字段是否固定 允许零长度 必要字段 顺序位置 项目编号 Text 10 可变 否 是 0 项目名称 Text 20 可变 否 是 1 课题来源 Text 20 可变 否 是 2 项目类别 Text 20 可变 否 是 3 研究类型 Text 20 可变 否 是 4 研究内容及技术指标 Text 50 可变 是 否 5 申请经费 Currency 8 可变 否 是 6 开始时间 Date/Time 8 可变 否 是 7 结束时间 Date/Time 8 可变 是 否 8 学科 Text 15 可变 否 是 9 研究内容及意义 Text 50 可变 是 否 10 立论依据 Text 50 可变 是 否 11 违约责任 Text 50 可变 是 否 12 预期成果 Text 50 可变 是 否 13 表4.4 项目进展情况表 字段名称 类型 大小 字段是否固定 允许零长度 必要字段 顺序位置 项目编号 Text 10 可变 否 是 0 阶段号 Text 10 可变 否 是 1 研究进度 Text 10 可变 否 是 2 检查日期 Date/Time 8 可变 否 是 3 已做工作 Text 50 可变 是 否 4 阶段性成果 Text 50 可变 是 否 5 存在问题及改进措施 Text 50 可变 是 否 6 重要事项变更 Text 50 可变 是 否 7 下一步研究计划 Text 50 可变 是 是 8 表4.5 项目经费表 字段名称 类型 大小 字段是否固定 允许零长度 必要字段 顺序位置 项目编号 Text 10 可变 否 是 0 经费的笔数 Text 10 可变 否 是 1 申请总经费 Currency 8 可变 否 是 2 实到经费 Currency 8 可变 否 是 3 科研业务费 Currency 8 可变 否 否 4 实验材料费 Currency 8 可变 否 否 5 设备费 Currency 8 可变 否 否 6 差旅费 Currency 8 可变 否 否 7 工资 Currency 8 可变 否 否 8 其他 Currency 8 可变 否 否 9 总计 Currency 8 可变 否 否 10 结余 Currency 8 可变 否 否 11 表4.6 项目获奖情况表 字段名称 类型 大小 字段是否固定 允许零长度 必要字段 顺序位置 获奖编号 Text 10 可变 否 是 0 成果名称 Text 50 可变 否 是 1 获奖等级 Text 15 可变 是 否 2 颁奖部委 Text 15 可变 是 否 3 获奖日期 Date/time 8 可变 是 否 4 项目编号 Text 10 可变 否 是 5 表4.7 学术论文表 字段名称 类型 大小 字段是否固定 允许零长度 必要字段 顺序位置 论文编号 Text 10 可变 否 是 0 论文题目 Text 20 可变 否 是 1 论文作者 Text 15 可变 否 是 2 发表期刊 Text 10 可变 否 是 3 卷期号 Text 10 可变 否 是 4 项目编号 Text 10 可变 是 否 5 表4.8 学术著作表 字段名称 类型 大小 字段是否固定 允许零长度 必要字段 顺序位置 著作编号 Text 10 可变 否 是 0 著作名称 Text 20 可变 否 是 1 作者姓名 Text 15 可变 否 是 2 出版社 Text 20 可变 否 是 3 出版年月 Date/Time 8 可变 否 是 4 5 系统各模块的设计和实现 5.1 用户登录模块的设计及实现 在登录窗口中,需要用户输入用户名称和密码,然后通过命令按钮提交登录信息。 5.1.1 功能概述 验证登录信息的合法性,即检验用户名是否为系统用户,用户密码是否 正确。 登录后根据用户权限分别启动不同的系统功能,系统管理员登录后的 MDI窗体如图5.1所示,普通用户登录后的MDI窗体如图5.2所示。 在用户选择取消登录时结束应用程序。 所设计的登录窗体如图5.3所示。 图5.1 系统管理员登录后的MDI窗体 图5.2 普通用户登录后的MDI窗体 图5.3 登录窗体 5.1.2 窗体设计 (1)在窗体中添加两个TextBox控件,txtUserName和txtPassword,用以输入用户名和密码。 (2)在窗体中添加两个Label控件,分别显示用户名称和密码输入文本框的标题。 (3)在窗体中添加两个CommandButton控件,分别用于提交登录信息和关闭登录窗体。 (4)设置窗体和各个控件的属性。 5.1.3 流程说明 (1)首先,应该在模块中设置一个布尔型变量LogAdimsucceeded,用以设置用户权限。当LogAdimsucceeded的值为True,则说明是管理员登录,将所有管理员权限赋给该用户,否则,是普通用户登录,只能赋予普通用户权限。 (2)在确定按钮的单击事件中,要完成登录信息的合法性验证。本系统使用DAO 为数据存取接口,因此需要将DAO引入工程。即在工程的引用菜单选项中选中Microsoft DAO 3.6 Object Library。首先用下面的语句建立数据库连接: Set db = OpenDatabase(App.Path & "/课题数据库I.mdb"),db在模块中 定义为Database型。 然后用下列语句打开用户表,将rsuser指向所输入用户信息对应的记录 Set rsuser = db.OpenRecordset("select * from 用户表 where 用户名='" & txtUserName.Text & "' and 密码='" & txtPassword.Text & "'") 如果找到该条记录,则说明输入正确,系统将按照用户权限启动主窗体, 否则,弹出如图5.4的消息框,要求用户重新登录。 图5.4 密码错误消息框 5.2 项目管理模块的设计及实现 该模块主要包括两个窗体:项目基本情况录入窗体(如图5.5所示),项目基本情况修改窗体(如图5.6所示)。 图5.5 项目基本情况录入窗体 图5.6 项目基本情况修改窗体 5.2.1 窗体设计 这两个窗体的主要控件都是SSTab,分别设有6个Tab,其内容包含项目基本情况,申请人情况,主要参加者,研究内容及意义,立论依据,研究意义,违约责任。 该窗体还需要创建控件数组,因为在程序编写的过程中,会用到一些类型相同且功能相近的控件,在本窗体中,通过分别复制文本框TextBox和下拉列表框 [9]ComboBox,来创建控件数组。使用控件数组类似于使用数组变量,其特点如下: (1)有相同的名称(Name) (2)用索引值(下标)来区别控件数组中的元素。 使用控件数组可以节省系统内部资源,增加程序的可读性。当有多个控件数组成员执行大致相同的操作时,控件数组共享同样的事件过程。在程序运行过程中,可以利用控件数组返回的索引值来触发事件的成员。 另外,还有一个主要控件DataGrid,用以列入主要参加者的基本情况,因为参加者并不一定唯一,用DataGrid控件列表显示则显得清楚明了。同时需要使用ADO Data控件对DataGrid执行数据绑定。 因为在修改项目基本情况时,需要首先选择特定的项目,所以在项目修改窗体中,需要添加一个 按钮,当点击此按钮时,会弹出一个课题简况窗体,用以选择项目。 5.2.2 流程说明 首先同样使用OpenDatabase方法打开数据库,定义数据记录集RecordSet对象变量,如rs,它是作为存取表的最佳存取工具。当在各个信息输入控件中输入或修改数据后,使用类似rs.Fields(1) = Text1(0).Text的语句将录入或修改的项目基本信息添加到数据库表中。 需要注意的是,因为项目编号唯一,所以在编写程序时,使得单击“新添项目”按钮产生的事件中,项目编号自动产生。这段编码如下: Set rs1 = db.OpenRecordset("select * from 项目基本情况表", dbOpenDynaset) With rs1 If .RecordCount > 0 Then .MoveLast txtNum = .RecordCount + 1 .MoveFirst Else txtNum = 1 End If End With 怎样使用ADO Data控件对DataGrid执行数据绑定呢,在DataGrid的属性窗口中,将它的数据源DataSource属性设置为Adodc1这个ADO Data控件。而在程序代码中,使用以下语句: Adodc1.ConnectionString="Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "/课题数据库I.mdb" Adodc1.CommandType = adCmdUnknown sql3 = "SELECT 姓名,性别,出生日期,专业职务,研究专长,学位,学历 FROM 参 加人员表 WHERE 项目编号 LIKE '" & txtNum.Text & "%'" Set rs3 = db.OpenRecordset(sql3, dbOpenDynaset) Adodc1.RecordSource = sql3 Adodc1.Refresh 便可将Adodc1连接数据库,从而完成DataGrid的数据绑定,使它能够显示项目主要参加者的基本信息,而且在DataGrid中还可以直接修改、删除、更新信息,减少编程,方便用户。 5.3 进程管理模块的设计与实现 5.3.1 功能实现 该模块也包括两个窗体,项目进展情况录入及修改窗体。各控件分布如5.7所示。 图5.7 项目进展情况录入窗体 与项目基本信息的修改一样,进展情况的录入与修改,都需要首先选择某个项目。当项目被选中以后,项目名称将显示于录入或修改窗体的txtName文本框中。 对于“录入”窗体,用户就可以在各个信息输入控件中输入该项目的进展情况,保存以后,该项记录将自动添加到DataGrid 的列表中。而DataGrid通过ADO Data控件与数据库相连,该项记录也将添加到数据库中。 当用户需要了解该项目的具体信息时,点击 按钮,便可查看。 对于“修改”窗体,首先要在DataGrid列表中选择该项目的某一阶段,当这一阶段的各信息(包括阶段号,研究进度,检查日期,已做工作,阶段性成果, 存在问题,重要事项变更,下一步计划)全部显示于该窗体的各相应控件中,用户就可以在其中修改各信息。当然,项目阶段的各条信息都是根据实际情况添加或修改,并不是每个字段名称都有相应的信息输入。 5.3.2 流程说明 前面提到,当项目被选中以后,项目名称将显示于录入或修改窗体的txtName文本框中,那么,这一过程是怎样实现的呢,将选择项目的窗体命名为“课题简况”,窗体中的主要控件是DataGrid控件和ADO Data控件。通过Adodc1连接数据库,从而完成DataGrid的数据绑定,只需在这两个控件中设置属性即可。将DataGrid1的DataSource属性设为Adodc1,然后设置Adodc1的ConnectionString及RecordSource属性。Adodc1的RecordSource连接的是“项目基本情况表”。因为这是一个课题简况,无须将表中所有字段显示于DataGrid,所以,在Datagrid1的属性窗口中只设两列,项目编号和项目名称。 当在“课题简况”窗体中选择项目确定以后,通过语句frmProcEdit.txtName.Text = DataGrid1.Columns(1)便把项目名称显示于录入或修改窗体的txtName文本框中。 5.4 经费管理模块的设计与实现 5.4.1 功能实现 经费管理模块用于实现对每个项目每笔所到经费的操作,窗体设计类似于进程管理模块,也包括录入和修改窗体,如图5.8所示。所不同的是,经费需要分配开支与计算,所以窗体中需要添加一个计算按钮,用以计算经费开支的总数以及经费结余。 图5.8 项目经费情况修改窗体 5.4.2 流程说明 在编写“计算”按钮的代码时,需要注意以下问题。首先要用一个变量s来累计经费的开支。而s只能定义为Currency型,否则,如果定义为Integer型,只能计算整数的相加减,而不能计算小数的加减。 另外,怎样通过编码来实现经费的修改呢,这在进程模块的设计中已简要提到,在这里将详细地说明一下。将通过下面的事件过程 Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integ er) Set db = OpenDatabase(App.Path & "/课题数据库I.mdb") Set rsm = db.OpenRecordset("SELECT * FROM 项目经费表 WHERE 项目编号= '" & DataGrid1.Columns(0).CellText(DataGrid1.Bookmark) &"'and经费笔数 ='"& DataGrid1.Columns(1).CellText(DataGrid1.Bookmark) & "'") End sub 来实现这一功能:将DataGrid控件表格中的行列内容显示于窗体的文本框或列表框等需要在其中修改信息的控件中。所激发的事件是,单击某行以改变行列内容。在 DataGrid 被连接到一个数据库后,想要监视用户单击了哪一个单元,可 以使用 RowColChange 事件,而不是 Click 事件 。 5.5 科研成果管理模块设计与实现 该模块同样具有录入与修改功能,而且它的流程编码也与前面的进程管理和经费管理模块同理。只是窗体的设计与它们有所不同。科研成果的录入与修改窗体分别如图5.9和图5.10所示: 图5.9 科研成果录入窗体 图5.10 科研成果修改窗体 在科研成果录入窗体中,有三个CheckBox复选框按钮,其标题分别为:学术论文,学术著作,项目获奖情况。因为并不是每个课题项目都同时具有这三类成果,所以应该设置为复选框。 5.6 数据查询模块的设计与实现 该模块实现了项目查询功能,共提供了四种查询方式:按照项目名称查询,按照申请者姓名查询,按照学科名称查询,以及所有项目查询。查询窗体如图5.11: 图5.11 查询条件窗体 例如,当选择了按照项目名称查询,便弹出如图5.11窗体,当输入项目名称(如:新型洁净煤燃料转化机理研究)确定以后,得到以下查询结果。同样在如图5.12的窗体列表中单击某列以选中某个项目。 图5.12 查询结果窗体 然后通过[详细内容]按钮,便可得到该项目的具体内容,如图5.13: 图5.13 详细内容查询窗体 如果想进一步知道该项目的进程及经费情况,点击按钮[进程及经费情况],便可查看所需要的信息,如图5.14所示: 图5.14 项目进展及经费情况查询 5.7 数据报表模块的设计及实现 5.7.1 功能概述 该系统的数据报表有五种分类,共可产生六种报表样式。这五种分类分别为:按所属学院,按项目类别,按研究类型,按完成情况,按结题年度。其中,按照完成情况分类,包括进展中和已结题的项目报表,而这两种报表各有自己的样式,所以,才会产生六种报表。 打开数据报表窗体,如图5.15,在五个OptionButton单选按钮中任选一个,于是就选择了使用这种分类方法查询项目。然后在下拉列表框中选择具体内容, 确定以后即可在DataGrid控件中显示所有符合要求的项目。如果需要打印报表,点击按钮即可。 图5.15查询预览窗体 例如,选择了“按所属学院”这种分类方式的单选按钮,再在下拉列表框中选择“冶金与资源”类型的项目,就可以查看到所有冶金与资源学院的项目,打印预览将出现如图5.16结果。 图5.16.打印预览报表 5.7.2 报表设计 该系统使用的是Visual Basic 提供的数据报表设计器Data Report来设计数据报表的。Data Report功能强大,能够提供设计者预设的功能,避免像过去的方法慢慢修改程序来套印报表格式。如此一来,可大大提升程序开发的速度。 在创建数据报表时,需要向工程中添加一个数据环境设计器Data Environment,然后在其中创建命令对象获得数据报表使用的数据。打开Data Environment1下Connection1的数据链接属性窗口,选择一个OLE DB提供者,本系统选择的是Microsoft Jet 3.15 OLE DB Provider,然后选择或输入数据库名称:D:\课题\课题数据库I.mdb,这样就建立了报表的资料来源。 在Connection1中新添命令,该命令连接数据源有两种方式:一是直接选择数据库对象,二是编写SQL语句,可使用SQL生成器。在该连接所建立的六个命令里面,有三个命令Xueke(学科)、Leibie(项目类别)、Leixing(研究类型)通过直接选择数据库对象来连接数据源,另三个Niandu(年度)、Jinzhan(进展中)、Jieti(已结题)通过编写SQL语句连接。 打开命令对话框,在通用选项卡中选择数据源,在分组选项卡中定义分组字段。其中,Xueke(学科)、Leibie(项目类别)、Leixing(研究类型)、Niandu(年度)这四项命令需要使用分组,其他两项则不需要。 在Niandu(年度)分组命令中,需要使用一个结题年度字段,即项目结束时间的年份。而在项目基本情况表中,结束时间字段被定义为日期/时间型,所以,需要通过year( )函数将其转换为年份。 有时候,数据库不能直接提供报表所使用的数据源对象,这就需要编写SQL语句来建立视图,实现查询。例如,只有编写下列语句,才能查询出数据库表中正在进展中的项目。 SELECT DISTINCT 项目进展情况表.项目编号, 项目基本情况表.项目名称, 项 目基本情况表.课题来源, 项目基本情况表.申请者, 项目基 本情况表.开始时间, 项目基本情况表.结束时间 FROM 项目进展情况表, 项目基本情况表 WHERE 项目进展情况表.项目编号 = 项目基本情况表.项目编号 AND (项目进展情况表.项目编号 NOT IN (SELECT 项目编号 FROM 项目进展情况表 WHERE 研究进度 = '已结题')) 通过命令的分组定义,可以实现项目的分组,但是,却不能实现条件筛选。那么,就可以通过类似下面的编码语句来实现报表数据的条件筛选: DataEnvironment1.rsXueke_分组.Filter = " 学科 ='" & cmbXue & "'" 这条编码的意思即,在rsXueke_分组中找出所有学科为列表框cmbXue所选择的学科(如冶金与资源)。报表将只打印出冶金与资源学院所有的课题项目基本情 况,而不是总体分组打印出各个学院的课题项目。 6 系统测试 软件测试的目标是为了发现程序中的错误而执行程序的过程,测试目标决定了测试方案的设计。按照在设计测试用例时是否涉及到程序的内部结构,可以把动态测试区分为白盒测试和黑盒测试两类技术。 白盒测试时,测试者对被测试程序的内部结构是清楚的。从程序的逻辑结构入手,按照一定的原则(例如每条语句至少执行一次,或每条路径至少执行一次,等等)来设计测试用例,设定测试数据。 黑盒测试的情况正好相反。此时,测试者把被测程序看成一个黑盒,完全用不着关心程序的内部结构。设计测试用例时,仅以程序的外部功能为根据。一方面检查程序能否完成一切应做的事情,另一方面要考虑它能否拒绝一切不应该做的事情。 该系统的测试主要采用上述测试方法中的“白盒测试”,通过VB中的逐语句、逐过程、设置断点等方法进行。例如,采用程序中的设置断点法,进行断点测试,逐步缩小范围并最终找到问题的解。在编写的过程中一边编写一边进行测试,发现错误立刻更正尽量使模块功能更贴近用户。为了使系统能够稳定运行,又对系统进行了有针对性的全面测试,采取的方式是: 1.菜单项测试:为了保证每一项下拉菜单能够正确实现系统设计的功能,需要把有关课题项目的基础数据,包括项目的基本信息、进展情况、经费情况、学术论文、著作、获奖情况等所有信息都输入到系统中,并对每一个菜单反复进行增加、删除、修改、存盘等操作,从而保证了菜单级功能的正确实现。 2.数据跟踪:完成菜单项测试后,再对系统内的每一个数据进行跟踪。例如:针对项目经费管理这一项,首先将某项目的概况录入到系统中,然后跟踪这一录入的数据,打开经费管理的窗口,找到事先录入的某项目名称,再进行经费的分配与计算。经过系统测试并修改之后,课题项目进程管理系统基本上完成了在任务书中所要求的功能。 总结 在本系统的设计之初,我首先熟悉了一下数据库开发工具和我将要使用的开发语言,然后按照软件工程生存周期的瀑布模型,即通过软件需求分析,系统总体设计,系统详细设计,编码及测试等步骤,分阶段地完成了我的系统开发。 在需求分析阶段,我向学校及矿院的科研处了解到课题项目进程管理的步骤,并查看了学校科研处的网页,搜集了一些相关资料。接下来,使用结构化的分析方法(SA, Structured Analysis)画出系统的数据流图,编写相关数据字典,为下一步的软件设计奠定了良好基础。 在进行总体设计时,首先分析系统将要实现的功能,然后设计出系统的功能模块,画出功能模块图。且建立了系统的概念模型,使用E-R图表示,并列出系统关系模型的数据结构。而在系统的详细设计阶段,我进一步对各个模块功能的具体实现进行了分析,并设计出窗体界面。我选择Visual Basic 语言进行编码,使用VB本身自带的Access数据库,访问的是Jet数据库类型,即数据库由Jet引擎直接生成和操作。在编码和测试的过程中,遇到了很多问题和困难,但通过老师和同学的帮助,终于渡过了难关。 这次毕业设计使我深深体会到了软件工程方法的重要性,让我从以前对软件工程的理论认识,上升到了对它的具体实践。这也让我学会了一种解决问题的方法,从总体考虑,从基础着手,然后才能逐步展开,具体解决,否则自己的思维将凌乱无绪,而所设计的系统也将毫无实际意义。 再者,系统开发中要进行大量的编码,这毫无疑问也要从整体考虑,否则将前功尽弃。而且要尽量编写过程函数,以简化程序,提高编程效率。我在开始编码时,忽视了这一点,因而总是从头再来,浪费了很多时间,也因此得到教训而积累了经验。希望自己能够将所学的知识和总结的方法予以实践,为将来走上工作岗位打下坚实的基础。 致谢 短短几个月过去了,紧张的毕业设计即将结束,在大学里的最后一项学习任务也即将完成。当把学位论文成功完成,并装订后,顿时感到一种收获的喜悦。它不仅是我大学里最后一份答卷,而且是我三个多月的学习与实践相结合的成果。 四个月来,由开始拿到课题时的茫然,到现在毕业设计任务的圆满完成,其中有我的不懈努力,也包含着许多老师和同学的无私帮助。在此,特别向热心指导、关心我本次毕业设计及论文的吴曼老师表达我由衷的敬意,并致以最真挚的感谢。吴老师不遗余力的尽心指导,解决疑难,令我深感敬佩。 另外,要感谢在这次撰写中许多同学对我的帮助,让我能够及时地理解疑难问题。也真挚的感谢计算机学院的老师的帮助,感谢图书馆的老师和计算机中心的老师辛勤工作,使我有一个很好的环境完成毕业设计及论文。最后,还要深深感谢在即将进行的毕业答辩中各位评审老师的辛勤工作。 主要参考文献 1 刘瑞新,李树东,万朝阳. Visual Basic 程序设计教程. 北京:电子 工业出版社,2000年3月 2 卢毅. Visual Basic 6 数据库设计实例导航. 北京:科学出版社,2002年 3 伍俊良. 管理信息系统开发与应用. 北京:科学出版社,1999年 4 薛华成. 管理信息系统. 北京:清华大学出版社,2001年 5 Ian Sommerville.Software Engineering.Beijing:China Machine Press.2003 6 史济民. 软件工程原理、方法与应用. 北京:高等教育出版社,2001年1 月 7 协同教育微软ATC教材编译室. Access 2002 标准培训教程. 北京:电 子工业出版社,2001年1月 8 萨师煊,王珊. 数据库系统概论. 北京:高等教育出版社. 2003年5月 9 Michael Mckelvy. Visual Basic Study Guide. Beijing:Publishing House of Electronics Industry. 1999
/
本文档为【课题项目进程管理系统—免费计算机毕业设计论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索