论文管理系统论文-无忧无虑毕设网_第1页
论文管理系统论文-无忧无虑毕设网_第2页
论文管理系统论文-无忧无虑毕设网_第3页
论文管理系统论文-无忧无虑毕设网_第4页
论文管理系统论文-无忧无虑毕设网_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: 本文配套程序下载地址 : 无忧无虑毕设网 () -大 学生毕业设计站 ,免费毕业设计论文 ,无忧无虑毕设网 大学生毕业设计 ,出售各类毕业设计源码 ,论文 ,程序源码 ,网站源码 ,免费视频教程 ,我们将竭诚为您服务! 目录 摘要 . III 第一章 绪论 . 1.1 课题研究的目的 . 1.2 本系统预期的效果与意义 . 第二章 系统综合分析 . 2.1 问题定义 . 2.2 可行性研究 . 2.3 开发环境的选择 . 2.4 DELPHI 在 WINDOWS 环境下开发数据库 的应用 . 2.5DELPHI 数据库应用程序的开发步骤 . 2.6 使用 SQL 编程 . 2.7 关系型数据库的实现 . 2.8 两者的结合( ODBC) . 第三章 系统的总体规划 . 3.1 总体功能的需求 . 3.2 算法设计 . 3.3 系统数据流图 . 3.4 数据字典 . 第四章 系统的具体实现 . 4.1 数据库的建立 . 4.2 各模块的功能实现 . 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: 4.2.1 主窗体的建立 . 4.2.2 用户登录模块 . 4.2.3 用户注册模块 . 4.2.4 修改密码模块 . 4.2.5 可选课题模块 . 4.2.6 课题统计模块 . 4.2.7 历年课题模块 . 4.2.8 院系管理模块 . 4.2.9 教研室管理 . 第五章 系统完善 . 5.1 数据集的打开、关闭 . 5.2 窗体中用户权限的实限 . 5.3 添加帮助模块 . 结束语 . 主要参考文献 . 外文资料 . 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: 摘要 论文管理系统是针对学院的大量繁杂的论文和课题而开发的管理软件。根据用户的要求,实现完成对学术论文及专业课题的录入、修改、查询、浏览、统计、导出数据库记录并打印、报表输出等几个方面的主要功能。另外,还能通过该系统查阅一些和毕业设计有关的一些电子资料。该系统用 Access 作为数据库的开发工具,库中包含有十个数据表。该系统具有智能化、自动化的特点 ,界面友好、功能齐全、实用性和可操作性极强。使用该系统后,既能够极大地 提高 论文 管理的效率 ,又能加强学生与学生、学生与教师、学生与学校之间的交流,是 科学化、正规化管理的重要条件。 关键字 : 论文 课题 ODBC 权限 II ABSTRACT The thesis management system is a management to aim at the complicated thesis and task in academic.According to the request of the custmer,it can record into to thesis and task, modification, search, view, covariance, lead a database record and print. Moreover, we can pass the system to check some electronics data of graduatal design.The system uses the Access to conduct the database , In the database there are eight table.The system is automation, the interface is amity, function is well-found, the function is very strong with the maneuverability. If use this system, since can increases the biggest efficiency of the thesis management, enhance the student again and student, student and teacher, student and school an important term for of exchanges, is scientific and regularly turning management. Key word: thesis task ODBC purview 工学学士学位论文 第一章 绪论 计算机的价格已经十分低廉,性能却有了长足的进步。 它已经被应用 于许多领域, 它的应用正风行整个世界。在今天, 计算机已经成为我们学习和工作的得力助手,原因主要有以下几个方面:计算机可以代替人工进行许多繁杂的劳动;计算机可以节省许多资源;计算机可以大大的提高人们的工作效率;计算机可以使敏感文档更加安全,等等。 1.1 课题研究的目的 随着科学技术的不断提高 ,计算机科学日渐成熟 ,其强大的功能已为人们深刻认识 ,它已进入人类社会的各个领域并发挥着越来越重要的作用。一直以来人们使用传统人工的方式管理 各种论文 档案,这种管理方式存在着许多缺点 ,如 :效率低、保密性差 ,易于丢 失;随着时间的推移 ,将产生大量的文件和数据 ,这对于查找、更新和维护都带来了不少的困难。 论文 管理系统是一个单位 要管理好论文所 不可缺少的部分 ,论文 管理系统能够为用户提供 充 足的信息和快捷的查询手段。但现在 , 我 院 中 论文课题 的管理还停留在纸介质的基础上,这样的机制已经不能适应时 代 的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。我作为一个计算机专业 的本科生,希望可以在这方面有所贡献。改革的总设计师邓小平同志说过 “ 科学技术是第一生产力 ” ,我希望能用我四年的所学编制出一 个实用的程序来帮助 我院 进行更有效的 论文课题 管理。 归纳起来,好处大约有以下几点: 1可以存储 任一 届 老师 学生 的课题和毕业论文 , 并且具有 安全、高效 的特点; 2只需 很少量的人员便可以完成对我院所有论文课题的管理 , 这样可以 节省大 量的人力和物力; 3 只需输入少量简单的条件即可 以迅速查到所需 要的 信息。 工学学士学位论文 1.2 本系统预期的效果与意义 作为计算机应用的一部分 ,使用计算机 论文管理系统 对 学校的论文 信息进行管理 ,具有手工管理所无法比拟的优点 .例如 :检索迅速、查找方便、可靠性高、存储量大、保密性好 、寿命长、成本低等。这些优点能够极大地提高 论文 管理的效率 ,也是 提供需学生与学生、学生与老师、老师与老师、学校与学校、学校与社会互相交流的一座桥梁,是 科学化、正规化管理 ,与世界接轨的重要条件。 工学学士学位论文 第二章 系统综合分析 考虑到该论文管理系统的实际规模与工作量的大小,本人承担了该系 统自前至后的整个系统用户部分的分析与设计工作,我的任务便是完成整个数据库的创建、用户管理和公共数据的管理等几部分,并在设计开发过程中对整个系统的界面统一规划,力求使论文管理系统界面美观,可操作性强。 2.1 问题定义 所谓论文管理系统就是利用计算机来管理学院的大量繁杂的论文和课题而开发的管理软件。它能实现完成对学术论文及专业课题的录入、修改、查询、浏览、统计、导出数据库记录并打印、报表输出。该系统具有智能化、自动化的特点,界面友好、功能齐全、实用性和可操作性极强。使用该系统后,能够极大地 提高 论文 管理的效率。 2.2 可行性研究 论文管理系统的研究开发有着十分重要的实际意义,主要可从以下几个方面加以分析: (1)当前,计算机网络正以飞快的速度向前发展,尤其是越 来越多的学校、机构在自己的组织内部建立起了计算机局域网,同时也将整个局域网连到了可以搜寻到任和信息的internet网,我校现在也正在积极的向着计算机化管理的方向发展,这样就从设备专业方面保证了选课系统的可行性。 (2) 由于当前的时代是一给信息的时代,信息的准确快速的收集对于工作效率的提高有着十分重要的作用,随着专业论文和课题的快速增加,论文管理系统的研究开发可以说是势在必行。 (3) 本系统的运行环境要求是: 系统软件 : 在 Windows95/98/2000、 Windows NT 环境下 ,或在其兼容下运行 。 支持软件:客户端数据库接口 ,它可以理解 SQL(结构化查询语言)命令或提供创建和使用 数 据 库 的 子 程 序 ; 此 外 必 须 配 有 数 据 库 引 擎 管 理 工 具 (BDE Administrator), 它是数据库应用程序的支持环境,保证数据库应用程序的 工学学士学位论文 运行。 硬件方面:奔腾 200以上机型, 64M以上内存, 1G以上硬盘, 8M以上显卡。 所以,低要求的运行环境从而保证了本系统正常运行的可行性。 基于以上几点可以说明该选课系统的开发与研究是完全可行的 2.3 开发环境的选择 这是我选择了 Delphi 语言, DELPHI 是 Borland 公司推出的 快速、可视化程序开发工具。它拥有一个可视化的集成开发环境( IDE),采用面向对象的编程语言 Object Pascal 和基于控件的开发框图架结构。 DELPHI 提供了多个可供使用的控件,利用这些控件,开发人员可以快速构造出各式各样的应用系统。其功能强大、使用方面、性能超群。 1. 简单易用、快速入门: 可视化的面向对象特性使得复杂、枯燥的编程工作变得直观、有趣、大大缩短了开发周期。提供了许多快速方便的开发方法,使开发人员能用尽可能少的重复性工作完成各种不同的就用。利用项 目模板和向导生成器可以很快建立项目的框架,然后根据用户的实际需要完善其功能 2.功能全面、强大 : Delphi包罗万象,可以开发任何规模、任何类型的软件,包括大、中、小型的系统软件。它自带了丰富的控件,无论是多媒体、数据库、还是 Internet 编程,从前枯燥、繁杂的编程工作都会变得轻而易举。 Delphi 还有很强的控件开发能力,是一个自我增强型的工具。可以说 Delphi 是具有底层开发能力的快速开发工具,既可以用于开系统软件,也适合于应有软件的开发。 3语法严谨,适合复杂应用的需要: Delphi 基于 Object Pascal 语言,只要你会 Pascal,就能在极短的时间内掌握Delphi, 正是因为基于 Pascal语言,所以 Delphi 解决问题的方式比较严谨,源程序类似于自然语言,易读易懂,适合复杂应用的需要。 4代码简洁、高效: 用 Delphi 写一行代码便可生成或关闭一个 Windows 窗口,而使用标准的语言编程,则可能需要几十行代码。更为重要的是 Delphi 拥有世界上最快的编译器,编译后 工学学士学位论文 的可执行程序是真正的二进制机器代码,是完全独立的可执行文件,其执行速度是语言的。可以说是以极小的执行效率牺 牲为代价,实现了编程效率的极大提高。 5 卓越超群的数据库开发能力: Delphi 以传统的编程语言为 Object Pascal 基础,完美的结合了数据库语言,即可以用于传统的算术编程又可以用于数据库编程。它的数据处理接口工具是一个标准的软件中介层,可以用来处理当前流行的数据格式,如 xBase、 Paradox 等,也可以通过的 SQLLink 直接与 Sybase、 SQL Server、 Informix、 Oracle 等大型数据库连接。可以说不论是小型数据库应用系统,还是关键性、大型数据库应用系统, Delphi都能满足系统开发的需求,具有强大的扩展能力和数据库平台升级迁移的适应能力,能适应多种数据库结构,从桌面数据库到客户机服务器模式再到多层数据结构模式,Delphi都能胜任。 2.4 Delphi 在 Windows 环境下开发数据库的应用 数据库系统主要由三大部分组成:数据库管理系统 (DBMS)、数据库应用程序 (它使能够获取和显示和更新由 DBMS存储的数据 )、数据库 (按一定结构组织在一起的相关的集合 )。 Delphi拥有强大的内部数据库支持,其中所存在的可视组件可以对 操纵记录的表和方法进行访问。 在 Delphi中,有三个数据集组件: TTable、 Tquery、 TstoredProc。 Delphi可以访问多种数据库管理系统的数据库。依靠窗体和报表, BDE 可以访问Paradox、 dBASE、本地 InterBase服务器的数据库,也可以访问远程数据库服务器上的数据库(如 ORACLE、 Sybase、 Informix等客户 /服务器数据库),或者任何经 ODBC可访问的数据库。跟其它的应用程序一样, DELPHI 提供了许多组件以方便创建数据库应用程序。下面列出这些工具和部件以及它们的主要用途: * Data Access Components 用来访问数据库、数据库表、存储过程等。 * Data Control Components 用来与用户交互、提供显示、修改数据库中数据的界面。 * Midas 工学学士学位论文 用来创建多多级数据库应用程序。 * Database Desktop(OBD) 简单实用的数据库桌面工具,可以创建、查看、修改和查询 Paradox、 dBASE和 SQL表。 * Report Smith 建立、浏览和打印数据库表中的数据。 * Borland Database Engine(BDE) 意为数据库引擎。用户可以借助它 快速简便地建立大型的、性能优异的数据Client/Server应用程序。 Form 单层数据库应用程序 单层数据库应用程序 BorlandDatabase Engine User Interface elements Data source BDE-enabled dataset component Local Data base User Interface elements Data source Data source BDE-enabled dataset component Flat-filedata OLEDB Data source BDE-enabled dataset component User Interface elements Remote database 工学学士学位论文 两层数据库应用程序 Client Application Application Server 两层数据库应用程序 Client Application Application Server Client Application Application Server Remote database User Interface elements Bland databasecomponent Data source BDE-enabled dataset component Borland database engine User Interface element Data source compoment Client dataset provider BDE-enabled dataset component Remote database OLEDB User Interface element Data source compoment Client dataset provider BDE-enabled dataset component Remote database 工学学士学位论文 Client Application Application Server 多层数据库应用程序 2.5Delphi 数据库应用程序的开发步骤 当我们确定了要开发一个数据项目后,我们都要一个规划。一般来说, 数据库应用程序的开发有三个步骤: 1.系统设计 在这个阶段,我们要根据用户需求确定数据库模型、系统要实现的功能,以及决定什么功能由服务器端实现,什么功能由客户端实现。 2.系统实现 主要任务是使用 DELPHI提供的工具和部件以及 PASCAL语言实现系统,并进行调试。 3.系统运行和维护 我们不可能一下子就拿出一个十全十美的系统来,只有在系统交会运行后, 根据用户需求,做相应的修改,使用权其进一步完善和提高。 我们在使用 DELPHI 开发一个数据库应用程序时应该注意下列四种 情况: * 数据库不存在或者需要重新定义。使用 DBD为本地数据库定义; 使用服务器开发工具如 Windows ISQL 或者 DBD定义本地或者远程 SQL服务器的数据库。 * 数据库在桌面数据库系统中或局域网上,而 BDE、数据库和应用程序在同一台机器上,这是典型的单机应用。 * 数据库在桌面数据系统中,但用户要把它改变到 SQL数据库服务器上,这需要用到 InterBase。 User Interface element Data source Client dataset compoment BDE-enabled dataset component provider 工学学士学位论文 * 数据库在 SQL服务 器中,而应用程序要支访问 SQL服务器的数据库。 2.6 使用 SQL 编程 SQL语言是关系数据库管理系统中的一种通用结构查询语言, Delphi 与使用 SQL语言的数据库管理系统兼容,我们可以在我们的数据库应用系统使用 SQL语句编程。 SQL有许多优点,它使全部用户,包括应用程序员, DB管理员和终端用户受益非浅。 1.非过程化语言 是一个非过程化的语言,因为它是一次处理一个记录,对数据提供自动导航。 SQL允许用户在高层的数据结构上工作,可以操作记录集。 2.统一的语言 SQL可以用于所有用户的 DB活动模型,包括 系统管理员、数据库管理员、应用程序员、决策支持系统人员以及许多其它类型的终端用户。 基本的 SQL命令只需很少时间就能学会,最高级的命令在几天内便可以掌握。 SQL提供了许多对数据库操纵的命令,包括: * 查询数据; * 在表中插入、修改和删除记录; * 建立、修改和删除数据对象; * 控制对数据和数据对象的存取; * 保证数据库一致性和完整性。 3统一的关系数据库语言 所有主要的关系数据库管理系统都支持 SQL 语言,用户可以将使用 SQL 的功能从一个 RDBMS转移到另一个 RDBMS。所有用 SQL编写的程序都是 可 以移植的。 2.7 关系型数据库的实现 在这里,我们选择了 Access2000 作为数据库的开发工具,而 Access2000 正 是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。 Access 2000 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外, Access 2000 允许创建自定义报表 工学学士学位论文 用于打印或输出数据库中的信息。 Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络 用户共享数据库。 Access 2000 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述, Access 2000作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。 2.8 两者的结合( ODBC) ODBC 是一种用于访问数据库的统一界面标准,是基于 SQL 语言的,是一种在 SQL和应用界面之间的标准接口,它解决了嵌入式 SQL接口非规范化的矛盾,提供了 SQLAPI的规范核心,免除了应用软件随数据库的改变而改变的痛苦。 ODBC的 API一致性级别分 为三级:核心级、扩展一级和扩展二级。 ODBC结构的示意图如图: 应用程序 驱动程序管理器 驱动程序 驱动程序 驱动程序 数据源 数据源 数据源 工学学士学位论文 第三章 系统的总体规划 3.1 总体功能的需求 论文课题管理系统是针对学院的大量繁杂的论文和课题而开发的管理软件。它包括用户管理、课题论文管理、课题论文检索、报表输出打印、院系管理、共用数据的管理、电子资料等若干个模块。根据用户的要求,实现完成对学术论文及专业课题的查询、导出数据库记录并打印、报表输出等主要几个方面的功能。 其总体结构如 3-1图所示: 用户通过输入姓名、学号、课题论文类型、课题论文名等基本信息 ,由系统自行生用户管理模块 数据管理模块 数据查询模块 数据统计模块 数据打印模块 论文课题管理系统 录入 修改 删除 录入 修改 删 除 其余 模块 用户登录 增加用户 更改密码 课题管理 论文管理 查询条件 查询结果 统计条件 统计结果 打印课题 打印论文 工学学士学位论文 成相应统计数据及各类统计报表以供用户查询、打印 ,另外用户还可以对这些基本信息进行定期的更新和删除 , 论文课题管理系统力求给用户方便快捷的途径去管理这些繁琐的数据。 系统要求能体现自动化、智能化的特点,界面友好、可操作性强;整个程序功能包括三大部分:数据库的设计与管理、数据的录入修改删除、用户管理。该应用系统 提供有用户登录、身份验证模块,每类用户都只能根据系统分配的权限进行操作。 3.2 算法设计 数据库设计是一项涉及多学科的综合性技术,是硬件和软件的结合,这是数据库的特点之一,在此本人将着重讨论软件设计的技术。 对于实现一个实际的数据库应用系统,一般可以支持三种数据模型,即层次模型( Hierarchical Model)、网状模型( Network Model)和关系模型( Relational Model),其中层次模型与网状模型统称为非关系模型,它们的数据结构可以和图相对。本次设计采用面向对象 的语言 Pascal 开发基于关系数据库 Microsoft Access的管理信息系统,即采用关系数据模型,它是目前三种模型中最重要的模型。自 80 年代以来,计算机厂商们推出的数据库管理系统几乎都是支持关系模型的,许多的非关系系统的产品也都加上了关系接口。 关系模型是建立在数学概念基础上的,数据在用户观点下的逻辑结果是一张二维表,相对于层次模型(树型结构)和网状模型(除树型结构之外的网状结构)采用关系模型主要有以下优点:关系模型的概念简单、清晰,用户易懂易用,有严格的数学基础即在此基础上发展起来的关系数据库理论, 简化的程序员的工作和数据库开发建立的工作,因而关系模型诞生以后发展迅速,成为深受用户欢迎的数据模型。 3.3 系统数据流图 管理员 论文理 系统 普通用户 不同操作 发现 错 误 不同 操作 返回信息 工学学士学位论文 第一层数据流图 2.1 2 合理要求 2.2 1 管理员查询要求 以及统计处理 合法的查询 3 操作完成信息 统计信息表 不合法的输入 结果 第二层数据流图 3.4 数据字典 用户信息 =用户名 +个人密码 +用户权限 课题信息 =课题编号 +课题名称 +执行者 +指导老师 +所属院系 +教研室 论文信息 =论文编号 +论文名称 +作者 +所属院系 +教研室 管理员 普通用户 普通用户 管理员 合法性检 查 要求处理 查询处理 管理员要 求 普通用户要求 工学学士学位论文 统计 =统计条件 +运算符 +统计值 +统计结果 用户权限 =可读不可写 +可读可写 工学学士学位论文 第四章 系统的具体实现 4.1 数据库的建立 本系统要求用 ACCESS 2000 设计数据库,数据库包含有十个数据表:论文表、毕业课题表、历年课题表、院系表、教研室表、所有课题表、课题类别表、用户表、教师资料表、学生资料表。具体情况如下: 论文表( lunwen) : 字段名称 数据类型 长度 说明 编 号 长整型 5 论文名称 文本 30 作 者 文本 10 发表时间 日期 /时间 短日期 发表 地点 文本 10 所在院系 文本 10 教研室 文本 10 备 注 文本 30 课题表( keti) : 字段名称 数据类型 长度 说明 课题编号 长整型 5 课题名称 文本 30 负责人 文本 10 组员 文本 30 开始时间 日期 /时间 短日期 结束时间 日期 /时间 短日期 所属院系 文本 10 所属教研室 文本 10 工学学士学位论文 关键字 文本 10 用户表( user) : 字段名称 数据类型 长度 说明 编号 长整型 5 用户名 文本 10 密 码 文本 10 权限 文本 10 备注 文本 30 历年课题表( past) : 字段名称 数据类型 长度 说明 编号 长整型 5 课题名称 文本 30 课题类别号 长整型 5 指导老师 文本 10 所属院系代码 长整型 5 所属教研室代码 长整型 5 关键字 文本 10 备注 文本 40 所有课题表( all_keti) : 字段名称 数据类型 长度 说明 课题编号 长整型 5 课题名称 文本 30 课题类别号 长整型 5 指导老师 文本 10 院系代码 长整型 5 教研室代码 长整型 5 关键字 文本 10 工学学士学位论文 说明 文本 30 学校院系情况表( xueyuan): 字段名称 数据类型 长度 说明 院系代码 长整型 5 院系名称 文本 10 备注 文本 30 教研室( tea_room) : 字段名称 数据类型 长度 说明 教研室代码 长整型 5 教研室名称 文本 10 所属院系代码 整型 5 备注 文本 30 课题类别表( ruibie) : 字段名称 数据类型 长度 说明 类别号 长整型 5 类别名称 文本 10 备注 文本 30 教师电子资料表( ziliao1) : 字段名称 数据类型 长度 说明 资料编号 长整型 5 资料名称 文本 30 作者 文本 10 资料路径 文本 20 工学学士学位论文 学生电子资料( ziliao2) : 字段名称 数据类型 长度 说明 编号 长整型 5 名称 文本 30 作者 文本 10 保存路径 文本 20 4.2 各模块的功能实现 4.2.1 主窗体的建立 选择系统菜单“ File”中的“ New” 菜单项,打开“ New Items” 对话框,选定“ Projects”页面,鼠标双击“ MDI Application”图标启动应用向导。这样我们就创建了一个应用程序框架,这个框架只包含有一个主窗口和系统菜单、工具栏,并且只是一个空的框架,不能完成任何功能。接下来应该为这个框架再添加上我们所需的菜单和子窗体。首先应该把向导自动生成的但不需要的菜单删除,然后再插入我们所需的菜单。在菜单设计中我们最关心下列几个属性: (1)“ Caption” 属性:定义菜单项的标题。 “ Caption” 属性设置中有两点需要说明,一是只要将单项的“ Caption” 属性设置为单字节连字符“ -”,就可以生成一个菜单项之间的横隔线;二是在菜单项的“ Caption”属性中填写的内容,如果字符前有“ &”, 那么菜单中该字符下将出现下划线,如:“ &C”,在程序运行时按下“ Alt” 键和“ C”键就可以选中该菜单项。 ( 2)“ Name” 属性:定义菜单项的名称。 最好指定有具体含义的名称。 ( 3)“ ShortCut” 属性:定义菜单项的快捷键。 使用菜单设计器为菜单项设计一个快捷键也很容易,单击对象浏览器窗口中“ ShortCut” 属性右半部,从弹出的快捷键列表中选择一个合适 的快捷键即可。 ( 4)“ Enabled” 属性:定义菜单项是否可用。 True表示可用, False表示不可用;在编程中可利用这一属性实现特定情况下不 工学学士学位论文 允许用户使用某菜单的功能。 ( 5)“ Hint” 属性:为菜单项添加文字。 在菜单项中加提示是很好的习惯,它使得用户在运行菜单功能前,可以对菜单的任务有一个简略的了解。 ( 6)“ Checked” 属性:定义菜单项的开关情况。 当 Checked为 True时,菜单项前面会出现选中标志。 ( 7)“ Visible” 属性:定义菜单项隐藏与否。 利用这一属性可 以实现多版本的菜单,被隐藏的菜单项以及它的子菜单都是不可见的,或是不可访问的。 根据系统的总体规划,修改的主窗体菜单包含“用户管理”、“数据管理”、“信息检索”、“毕业设计”、“打印库文件”、“公用数据管理”、“窗口”、“帮助”八个菜单,其中“用户管理”中包含“用户登录”、“增加用户”、“修改密码”、“退出”四个菜单项,“数据管理”包含“课题管理”、“论文管理”两个菜单项,“信息检索”包含“专业课题”、“学术论文”两个菜单项,“毕业设计”包含“可选课题”、“课题统计”、“历年课题”三个菜单项,“打印库文件” 包含“课题打印”、“论文打印”两个菜单项,“公用数据管理”包含“院系管理”、“教研室管理”、“电子资料”三个菜单项,“窗口”包含“层叠”、“垂直排列”、“平行排列”、“所有项最小化”四个菜单项,“帮助”包含“操作指南”、“关于 ” 两个菜单项。具体情况详见系统,菜单的各个属性详见系统的源代码,界面如 (4.2.1)图所示。 主窗体界面图( 4.2.1) 工学学士学位论文 4.2.2 用户登录模块 为了保证系统的安全,在操作者进入系统之前都要进行用户登录,以验证用户身份。用户登录验证模块的功能是仅允许合法用户进入系统,而且让不同 的用户拥有不同的操作权限。只有授权用户使用正确的口令时才能进入系统,连续三次输入均不正确的用户名和口令时,程序将自动退出登录模块。其功能代码如下: procedure TForm1.Button1Click(Sender: TObject); begin TimeID:=TimeID+1; TableYongHu.SetKey; TableYongHu.FieldByName(YongHu).AsString:=EditUser.Text; TableYongHu.GotoKey; if (EditUser.Text=TableYongHu.FieldByName(YongHu).AsString) and (EditPassWord.Text=TableYongHu.FieldByName(KouLing).AsString) then begin MainForm.N4.Enabled:=true; MainForm.N5.Enabled:=true; MainForm.N8.Enabled:=true; MainForm.N17.Enabled:=true; MainForm.N11.Enabled:=true; MainForm.N20.Enabled:=true; MainForm.N21.Enabled:=true; mainform.Window1.Enabled:=true; mainform.Help1.Enabled:=true; MainForm.N23.Enabled:=true; ModalResult:=mrOK; QuanXian:=TableYongHu.FieldByName(QuanXian).AsString; 工学学士学位论文 end else begin if TimeID3 then begin Application.Terminate; end else if EditUser.Text TableYongHu.FieldByName(YongHu).AsString then begin Application.MessageBox(非法用户 ,请输入正确的用户名 !,用户名 , MB_OK+MB_ICONEXCLAMATION); EditUser.SetFocus; end else begin Application.MessageBox(输入密码错误 ,请再输入一次 ,密码 , MB_OK+MB_ICONEXCLAMATION); EditPassWord.SetFocus; end; end; end; 界面如图所示: 工学学士学位论文 4.2.3 用户注册模块 登录系统后,用户可以重新注册,只需在注册窗口中输入用户名和密码即可,在这里,输入的两次密码必须一致,否则会出现“两次输入的密码不一致的情况”,结果是注册不能成功。 其功能代码如下: procedure Tuseradd.BitBtn1Click(Sender: TObject); begin DBNavigator1.BtnClick(nbinsert); submit.Enabled:=true; bcancel.Enabled:=true; end; procedure Tuseradd.BitBtn2Click(Sender: TObject); begin DBNavigator1.BtnClick(nbedit); submit.Enabled:=true; bcancel.Enabled:=true; end; procedure Tuseradd.BitBtn3Click(Sender: TObject); begin 工学学士学位论文 dbnavigator1.BtnClick(nbdelete) ; end; procedure Tuseradd.submitClick(Sender: TObject); begin submit.Enabled:=false; bcancel.Enabled:=false; dbnavigator1.BtnClick(nbpost) ; dbnavigator1.BtnClick(nbrefresh); query1.Close; query1.Open; showmessage(您已经提交成功 ); submit.Enabled:=false; end; procedure Tuseradd.bcancelClick(Sender: TObject); begin dbnavigator1.BtnClick(nbcancel) ; dbnavigator1.BtnClick(nbrefresh); bcancel.Enabled:=false; submit.Enabled:=false; end; 4.2.4 修改密码模块 用户登录后,如果有需要修改密码,就可 以这个窗口内完成,你只需输入你的原密码和新密码即可,修改成功后,新的密码会保存到表中,下次登录你就必须使用新修改的密码,否则不能登录。其功能代码如下 : 工学学士学位论文 procedure TForm2.Button1Click(Sender: TObject); begin if (Edit1.Text=) or (Edit2.Text=) then begin showmessage(用户名和原密码不能为空! ); Edit1.SetFocus; end else if Edit3.text= then begin showmessage(请输入新的密码 !); end else if Edit3.TextEdit4.Text then begin showmessage(两次输入的密码不一致 ,请重新输入 !); Edit3.SetFocus; end else begin showmessage(密码修改成功 !); Table1.Edit; Table1.FieldByName(KouLing).AsString:=Edit3.Text; Table1.Post; Close; end; end; 工学学士学位论文 4.2.5 可选课题模块 在该模块加入两个 Table组件、两个 DataSource 组件、两个 DBGrid 组件。 Table1连接的表为 ruibie,Table2连接的表为 all_keti,利用两 表中相同的字段 ketiruibie_no 把两个 DBGrid 连系起来,做到当选取 DBGrid1中的任一字段时,在 DBGrid2中便能显示出属于它的所有课题的 信息。 4.2.6 课题统计模块 在这个窗口中,共分为“统计条件”、“统计结果”两部分的内容,在统计条件中,你只需选择和输入你需要的统计条件,即可得出统计结果,结果中你可知道符合条件的课题的数量和总课题的数量以及符合条件的课题占总课题数的比例。其功能代码如 工学学士学位论文 下: procedure Ttasksel.Button1Click(Sender: TObject); var s,s1,s2,s3,s4:string; i,i1:integer; r:real; begin query1.Close; query1.SQL.Clear; query1.SQL.Add(select * from all_keti); query1.Open; i:=query1.RecordCount; edit1.Text:=inttostr(query1.RecordCount); s1:=combobox1.Text; s2:=combobox2.Text; s3:=edit4.Text; if s1=then begin showmessage(请选择统计方式 !); end else begin if s2=then begin showmessage(请选择运算符 !); end else begin if s3=then begin showmessage(请输入统计值 !); 工学学士学位论文 end else begin case combobox1.ItemIndex of begin s1:=tearoom_no; if s2=like then begin s:=select * from all_keti where +s1+ in (select staffroom_no from staffroom where staffroom_name like % +s3+%); end else begin s:=select * from all_keti where +s1+ in (select staffroom_no from staffroom where staffroom_name= +s3+); end; end; begin s1:=department_no ; if s2=like then begin s:=select * from all_keti where +s1+ in (select department_no from department where department_name like % +s3+%); end else begin s:=select * from all_keti where +s1+ in (select department_no from department where department_name= +s3+); end; end; 工学学士学位论文 begin s1:=teacher; if s2=like then begin s:=select* from all_keti where +s1+ +s2+%+s3+%; end else begin s:=select * from all_keti where +s1+ +s2+s3+; end; end; begin s1:=ketiluibie_no; if s2=like then begin s:=select * from all_keti where +s1+ in (select ketiluibie_no from leibie where ketiluibie like % +s3+%); end else begin s:=select * from all_keti where +s1+ in (select ketiluibie_no from leibie where ketiluibie = +s3+); end; end; end; query1.Close; query1.SQL.Clear; query1.SQL.Add(s); /showmessage(query1.sql.Text); query1.Open; 工学学士学位论文 i1:=query1.RecordCount; r:=100*i1/i; edit2.Text:=inttostr(i1); str(r:8:2,s4); edit3.Text:=s4+%; if i1=0 then showmessage(没有符合条件的记录 !); end; end; end; end; procedure Ttasksel.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure Ttasksel.FormCreate(Sender: TObject); begin ComboBox1.ItemIndex:=0; ComboBox2.ItemIndex:=0; end; 工学学士学位论文 4.2.7 历年课题模块 在该模块中加入一个 Query组件、六个 Button 组件、一个 DBGrid组件,另外还有若干的编辑组件。在这里你可看到的是历年来所有的课题。六个按钮分别为增加、删除、修改、提交、取消、退出。单击增加按钮后,编辑框中变为空,这时可输入数据,单击提交按钮,输入的内容便保存到表格中,在表中可以显示出来。单击修改按钮,可以对已存在的数据进行修改,单击退出按钮,即可退出该模块。其功能代码如下: procedure TForm10.Button1Click(Sender: TObject); begin DBNavigator1.BtnClick(nbinsert); end; procedure TForm10.Button2Click(Sender: TObject); begin DBNavigator1.BtnClick(nbedit); end; procedure TForm10.Button3Click(Sender: TObject); begin dbnavigator1.BtnClick(nbdelete) ; end; procedure TForm10.Button4Click(Sender: TObject); begin if (DBEdit4.text=) or (DBEdit2.text=) or (dbedit1.text=) or (DBEdit3.text=)or (DBEdit5.text=) or (DBEdit6.text=) then showmessage(错误,必填字段不能为空 !) else begin dbnavigator1.BtnClick(nbpost) ; dbnavigator1.BtnClick(nbrefresh); end; end; 工学学士学位论文 procedure TForm10.Button5Click(Sender: TObject); begin dbnavigator1.BtnClick(nbcancel); dbnavigator1.BtnClick(nbrefresh); end; procedure TForm10.Button6Click(Sender: TObject); begin Close; end; 4.2.8 院系管理模块 该模块中包含一个 DBGrid、两个 DBEdit、一个 DBNavigator、一个 Table、一个DataSource组件,另外还有六个按钮。在该模块中同样可以实现数据的录入、查询、修改等功能。其代码如下: procedure TForm8.Button1Click(Sender: TObject); begin DBNavigator1.BtnClick(nbinsert); end; procedure TForm8.Button3Click(Sender: TObject); begin dbnavigator1.BtnClick(nbdelete) ; end; 工学学士学位论文 procedure TForm8.Button2Click(Sender: TObject); begin DBNavigator1.BtnClick(nbedit); end; procedure TForm8.Button4Click(Sender: TObject); begin if (DBEdit2.text=) or (dbedit1.text=) then showmessage(错误,必填字段不能为空 !) else begin dbnavigator1.BtnClick(nbpost) ; dbnavigator1.BtnClick(nbrefresh); end; end; procedure TForm8.Button5Click(Sender: TObject); begin dbnavigator1.BtnClick(nbcancel); dbnavigator1.BtnClick(nbrefresh); end; procedure TForm8.Button6Click(Sender: TObject); begin Close; end; 工学学士学位论文 4.2.9 教研室管理 该模块中包含一个 DBGrid、两个 DBEdit、一个 DBNavigator、一个 Table、一个 DataSource组件,另外还有六个按钮。在该模块中同样可以实现数据的录入、查询、修改等功能。其代码如下: procedure TForm8.Button1Click(Sender: TObject); begin DBNavigator1.BtnClick(nbinsert); end; procedure TForm8.Button3Click(Sender: TObject); begin dbnavigator1.BtnClick(nbdelete) ; end; procedure TForm8.Button2Click(Sender: TObject); begin DBNavigator1.BtnClick(nbedit); end; procedure TForm8.Button4Click(Sender: TObject); begin if (DBEdit2.text=) or (dbedit1.text=) then showmessage(错误,必填字段不能为空 !) else begin dbnavigator1.BtnClick(nbpost) ; dbnavigator1.BtnClick(nbrefresh); end; end; 工学学士学位论文 procedure TForm8.Button5Click(Sender: TObject); begin dbnavigator1.BtnClick(nbcancel); dbnavigator1.BtnClick(nbrefresh); end; procedure TForm8.Button6Click(Sender: TObject); begin close; end; 工学学士学位论文 第五章 系统完善 前面我们已生成了数据模块和多个数据窗体,构建了论文管理系统的整体框架,接下来的工作就应该是对各个窗体的功能进行完善。 5.1 数据集的打开、关闭 应用程序通过数据集控件访问数据库中的数据时,必须把将要访问的数据库表调入内存,这一操作对数据集控件而言就是打开,反之则称为关闭。 Delphi 为我们提供了两种方法打开数据集控件: 1. 通过设置数据集控件的 Active属性为“ true”来打开与数据集控件相连的数据库表。如: TableYongHu.Active:=true; 这 种方法可以在设计阶段进行也可以在应用程序运行过程中通过程序进行。 2. 调用数据集控件的 Open方法,打开与数据集控件相连的数据库表。如: TableYongHu.Open; 这一种方法只能在程序运行过程中通过程序进行。 同理, Delphi同样提供了两种方法关闭数据集控件: 1. 设置数据集控件的 Active属性为“ FALSE”,以关闭与数据集控件相连的数据库表。 TableYongHu.Active:=false; 2. 调用 Close方法以关闭与数据集控件相连的表。 TableYongHu.Close; 5.2 窗体中用户权限的实限 本节中主要介绍主控窗体和几个用户窗体中用户权限的实现,主要讲解如加入代码,使各个窗体能够识别登录用户,并分配不同的操作权限。 1. 主窗体中用户权限的实现 工学学士学位论文 我们在主控窗体的 OnActive事件中加入下列代码,使主控窗体在显示之后,激活之前,根据登录用户的权限,先行判断用户可使用那些按钮: procedure TMainForm.FormOnCreate(Sender: TObject); begin N4.Enabled:=False; N5.Enabled:=False; N8.Enabled:=False; N17.Enabled:=False; N11.Enabled:=false; N20.Enabled:=false; N21.Enabled:=false; window1.Enabled:=false; help1.Enabled:=false; N23.Enabled:=false; end; 2. 论文课题管理窗体中用户权限的实现 在该窗体中,有普通用户和管理员 两类用户可以对数据进行操作。其中,普通用户打开窗体后,我们需要做的操作主要有两件事情:一是设置用户基本信息数据表的 Filter属性,对数据表中的数据进行过滤,使数据控件只显示登录用户的基本信息;二是设置数据表的 ReadOnly 属性,使数据表只读,防止该类用户修改数据。当管理人员打开数据窗体时,需要做的事情正好和普通用户相反,需要撤消对数据表的筛选和只读限制。以上操作都在窗体的 OnActivate 事件中实现,具体代码如下: procedure Tform4.FormActivvate(Sender:Tobject); begin if Login.QuanXian=false then begin Table1.Close; Table1.Filtered:=True; Table1.Filter:=Gongxuhao=+Form4.EditUser.Text; Table1.ReadOnly:=true; 工学学士学位论文 Table1.Open; End Else if QuanXian=true then Begin Table1.Close; Table1.Filtered:=false; Table1.ReadOnly:=False; Table1.Open; End; end; 5.3 添加帮助模块 该模块包括操作指南和关于 两个部分。在操作指南部分,其中的主要内容是对用户的操作提示;在关于 部分,主要介绍了本系统的制作日期、作者、作者的联系方式、系统正常运行的环境要求等等。详细内容请参考系统。 工学学士学位论文 结束语 经过三个多月的设计和开发, 论文课题 管理系统基本开发完毕。其功能基本符合用户需求,能够完成 论文 的存储和查询以及各类相关报表的打印。并提供部分 系统维护功能 ,使用户方便进行数 据 备份和恢复、删除。对于数据的一致性的问题也通过程序进行了有效的解决。但是由于毕业设计时间较短, 加上又是边学边做, 所以该系统还有许多不尽如人意的地方, 比 如联机文档比较少,用户界面不够美观,出错处理不够等多方面问题,这些都有待进一步改善。 在本次毕业设计中,我从指导老师 王素丽 老师身上学到了很多东西。 王素丽 老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。 她 无论在理论上还是在实践中,都给与我很大的帮助,使我得到 了很大 的提高 , 这对于我以后的工作和学习都有一种巨大 的帮助,感谢 她 耐心的辅导。 另外,在系统开发过程中,同组的同学同样给与我不少帮助,帮助解决了不少的难点,使得系统能及时开发完成,这里一并表示感谢。 工学学士学位论文 主要参考文献 1 Delphi 6.0 使用指南 作 者: Bob Reselman , Richard Peasley , Wayne Pruchniak. 出版社:电子工业出版社 2 中文版 Microsoft Office 2000 自学通 作 者: Ned Snell 出版社:机械工业出版社 3 Delphi 6.0 中文版控件大全 作 者: Microsoft 出版社:电子工业出版社 4 中文 Access 2000 24 学时教程 作 者: Craig Eddy , Timothy Buchanan 出版社:机械工业出版社 5 Delphi 6.0实用编程指南 作 者:李力,李薇,董恒 出版社:四川大学出版社 6 Delphi 6.0精彩编程百例 作 者:张龙卿,尹健民 出版社:中国水利水电版社 7 SQL Server实用简明教程 作 者:黄维通,汤荷美 出版社:清华大学出版社 8 软件工程 作 者:傅宏主 出版社:吉林大学出版社出版 1998年 9月第 1 版 9 数据库系统原理教程 作 者:王珊、陈红 编著 工学学士学位论文 出版社:清华大学出版社出版 1998年 7月第 1版 10 编陈语言中的基本设计思想 作 者:陈东 主编 出版社:青年出版社 2001年 2月第一版 11 程序设计思想 作 者:宋谦 张之岚 编著 出版社:青年出版社 2000四月第一 版 工学学士学位论文 外文资料 The technology of refashionment Automate the refactorings In the world of code we are seeing tools for some languages to automate many of the identified refactorings. Such automation is essential for databases; at least in the areas of schema changes and data migration. As a result every database refashion is automated by writing it in the form of SQL DDL (for the schema change) and DML (for the data migration). These changes are never applied manually, instead they are applied to the master by running a small SQL script to perform the changes. Once done, we keep hold of these script files to produce a complete change log of all the alterations done to the database as a result of database refashionment. We can then update any database instance to the latest master by running the change log of all the changes since we copied the master to produce the older database instance. This ability to sequence automated changes is an essential tool both for the continuous integration process in development, and for migrating production databases to a new release. For production databases we dont make changes during the usual iteration cycles. Once we do a release, which may occur at the end of any iteration, we apply the full change log of database refactorings since the previous release. This is a big change, and one that so far weve only done by taking the application offline. (We have some ideas for doing this in a 24/7 environment, but we havent actually had to do it yet.) Its also wise to test this migration schema before applying it to the live database. So far, weve found that this technique has worked remarkably well. By breaking down all the database changes into a sequence of small, simple changes; weve been able to make quite large changes to production data without getting ourselves in trouble. 工学学士学位论文 As well as automating the forward changes, you can consider automating reverse changes for each refactoring. If you do this youll be able to back out changes to a database in the same automated way. We havent done this yet, as weve not had a much demand for it, but its the same basic principle.(A similar thing that we have done is to support an old version of an application with an updated version of the database. This involved writing a compatibility layer that allowed the application to think it was talking to the older version of the database even though it was actually talking to the newer one.) Automatically Update all Database Developers Its all very well for people to make changes and update the master, but how do they find out the master has changed? In a traditional continuous integration environment with source code, developers update to the master before doing a commit. That way they can resolve any build issues on their own machine before committing their changes to the shared master. Theres no reason you cant do that with the database, but we found a better way. We automatically update everyone on the project whenever a change is made to the database master. The same refactoring script that updates the master automatically updates everyones databases. When weve described this, people are usually concerned that automatically updating developers databases underneath them will cause a problem, but we found it worked just fine. This only worked when people were connected to the network. If they worked offline, such as on an airplane, then they had to resync with the master manually once they got back to the office. Clearly separate all database access code To understand the consequences of database refactorings, its important to be able to see how the database is used by the application. If SQL is scattered willy-nilly around the code base, this is very hard to do. As a result its important to have a clear database access layer to 工学学士学位论文 show where the database is being used and how. To do this we suggest following one of the data source architectural patterns from P of EAA. Having a clear database layer has a number of valuable side benefits. It minimizes the areas of the system where developers need SQL knowledge to manipulate the database, which makes life easier to developers who often are not particularly skilled with SQL. For the DBA it provides a clear section of the code that he can look at to see how the database is being used. This helps in preparing indexes, database optimization, and also looking at the SQL to see how it could be reformulated to perform better. This allows the DBA to get a better understanding of how the database is used. Variations Like any set of practices, these should be varied depending on your specific circumstances. These practices are still pretty new, so we havent come across that many variations, but here are some we have. Keeping multiple database lineages A simple project can survive with just a single database master in the repository. With more complex projects theres a need to support multiple varieties of the project database, which we refer to as database linages. We may create a new lineage if we have to branch an application thats put into production. In essence creating a new database lineage is much the same as branching the source code on the application, with the added twist that you also make a lineage when you need a different set of sample data, such as if you need a lot of data for performance testing. When a developer takes a copy of a master they need to register which lineage they are modifying. As the DBA applies updates to a master for a particular lineage the updates propagate to all the developers who are registered for that lineage. You dont need a DBA 工学学士学位论文 All of this sounds like it would be a lot of work, but in fact it doesnt require a huge amount of manpower. On the Atlas project we had thirty-odd developers and a team size (including, QA, analysts and management) of close to a hundred. On any given day we would have a hundred or so copies of various lineages out on peoples workstations. Yet all this activity needed only one full time DBA (Pramod) with a couple of developers doing some part-time assistance and cover. On smaller projects even that isnt needed. Weve been using these techniques on a number of smaller projects (about a dozen people) and we find these projects dont need a full time DBA. Instead we rely on a couple of developers with an interest in DB issues who handle the DBA tasks part-time. The reason for this is automation. If you are determined to automate every task, you can handle a lot work with much less people. Tools to Help Doing this kind of thing requires a lot of repetitive tasks. The good news is that whenever you run into run into repetitive tasks in soft

温馨提示

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

评论

0/150

提交评论