毕业设计-学籍管理系统的设计与实现论文.doc_第1页
毕业设计-学籍管理系统的设计与实现论文.doc_第2页
毕业设计-学籍管理系统的设计与实现论文.doc_第3页
毕业设计-学籍管理系统的设计与实现论文.doc_第4页
毕业设计-学籍管理系统的设计与实现论文.doc_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

学籍管理系统学籍管理系统 摘 要 学籍管理系统是典型的信息管理系统(mis),其开发主要包括后台数据库的 建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致 性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,方便 使用等特点。 本系统主要完成对学生情况和学生成绩的管理,包括数据库中表的添加、 修改、删除等。系统还可以完成对各类信息的浏览、查询、添加、删除、修改、 报表等功能。 系统的核心是数据库中各个表的联系,每一个表的修改都将连动的影响其 它的表,当完成对数据的操作时系统会自动地完成数据库的修改。查询功能也 是系统的核心之一,在系统中即有单条件查询和多条件查询,也有精确查询和 模糊查询,系统不仅有静态的条件查询,也有动态生成的条件查询,其目的都 是为了方便用户使用。系统有完整的用户添加、修改、删除和密码修改功能, 并具备报表打印功能。 经过分析,我们使用 microsoft 公司的 visual basic 开发工具,利用其提 供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的 智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需 求迭代,不断修正和改进,直到形成用户满意的可行系统。 关键字:控件、窗体、数据库、mis、vb6.0、sql server 2000。 abstract student status management system is development two aspects that typical information management system (mis), its development includes primarily the background database creates with support and the front end applies the procedure. creates to rise to the former request the consistency of data is strong with the integrity, the library that the safeness of data like. but request the latter very much to apply the procedure function complete, easy usage etc. characteristics. this system completes primarily to students circumstance with the management of students score, include the database the inside the watch increase, modify, delete etc the system can also complete to the browsing various information, search, increase, delete, modify, and table-report etc. function. system of nucleus is other table in an influence for of relation, each a modification of watch moving in a table in database that modification that operation hour system, be to complete the logarithms according to will complete the database of oneself. search the function is also one of the nucleus of the system, having namely in system the single condition search to search with many conditions, also having the accurate search to search with blur, system not only contain static condition search, also have the dynamic born condition search, its purpose is all for the sake of the convenient consumer to use. system contain complete consumer increase, delete to modify the function with the password, the union has the report prints the function. through analysis, we use the microsoft company visual basic development tool, making use of its every kind of the tool of development that provide that face to the object, particularly is intelligence that the window of data this on canning be convenient but manipulate the database in brief to turn the object, create in the in a short time first system application prototype, then, start to the beginning the prototype system proceeds to require with the iteration, revising continuously with improve, until forming the consumer is satisfied can row system. keywords: control piece, form, database, mis, vb6.0, sql server 2000. 目 录 abstractabstract 2 1.1 系统需求分析7 1.2 系统的初步调查7 1.2.1 开发学籍管理系统的目的.7 1.2.2 业务流程分析8 1.2.3 数据流程分析:10 数据流程图:.10 1.2.2 选题背景及意义.11 1.3 开发工具的选用.11 1.3.1 visual basic 的使用11 1.3.2 sql server 2000 的使用12 1.4 系统的可行性研究13 1.4.1 技术上的可行性.13 1.4.2 管理上的可行性.13 1.4.3 安全上的可行性.13 1.5 系统性能分析13 1.5.1 系统的安全性.13 1.5.2 系统的快捷性.14 1.5.3 系统的准确性.14 1.5.4 系统的严谨性.14 第第 2 章章 概要设计概要设计.14 2.1 系统设计思路分析15 2.1.1 界面.15 2.1.2 用户登录.15 2.1.3 学籍信息内容查询和录入.15 2.1.4 数据库分析.15 2.2 设计简述15 2.2.1 vb 设计的界面简述15 2.2.2 系统简图.16 第第 3 章章 系统的分析与设计系统的分析与设计.16 3.1 数据库的分析与设计17 3.1.1 关系型数据库简介.17 3.1.2 系统数据库的结构设计.18 3.2 应用程序的分析与设计20 3.2.1 应用程序的界面选择与设计.20 3.2.2 应用程序的功能模块.21 3.2.3 应用程序的结构.22 第第 4 章章 详细设计详细设计.23 4.1 系统登录23 4.1.1 数据库登录的设计.24 4.1.2 系统登录的设计.26 4.2 学籍管理系统主界面设计29 4.2.1 应用程序主界面的窗体设计.29 4.2.2. 应用程序界面的代码实现.31 4.3 数据录入窗体的设计37 4.3.1 学生信息的录入.38 4.3.2 学生成绩的录入.43 4.4 通用查询模块的设计46 4.4.1 利用 activex dll 设计一个通用查询模块46 4.4.2 通用查询模块在系统中的应用.50 4.5 报表打印模块的设计51 4.5.1 利用报表设计器制作报表.51 4.5.2 通用报表打印模块的制作.54 4.6 学生信息管理及系统用户管理58 4.6.1 学生信息管理.59 4.6.2 用户管理模块的设计与开发.61 4.7 学生成绩信息统计64 4.7.1学生成绩统计功能的实现65 第第 5 章章 心得体会心得体会.68 5.1 界面设计的一些原则68 5.2 代码编写的一些原则70 前 言 近年来随着高校体制的不断改革与发展,我国在校大中专学生的人数也在 不断扩大,给各大中专院校的学生管理工作带来了诸多不便。学籍管理系统是 一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关 重要,所以学籍管理系统应该能够为用户提供充足的信息和快捷的查询手段。但 一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺 点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、 更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成 熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越 来越重要的作用。作为计算机应用的一部分,使用计算机对学籍信息进行管理, 具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储 量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理 的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此,开发 这样一套学籍管理软件成为很有必要的事情。 学籍管理系统是典型的信息管理系统(mis),它是一个基于 c/s 模式下,以 面向对象为开发语言的学籍管理系统。其开发主要包括后台数据库的建立和维 护以及前端应用程序的开发两个方面。对于前者要求数据的一致性、完整性和 安全性。而对于后者则要求应用程序功能完备,方便使用等特点。 第 1 章 可行性研究及需求分析 1.1 系统需求分析 近年来随着高校体制的不断改革与发展,我国在校大中专学生的人数也在 不断扩大,给各大中专院校的学生管理工作带来了诸多不便。随着教育的普及, 各高等院校也在不断的提高教学质量和学校管理质量,而学校管理就是对学生 在校情况的管理,重要的是学生的学籍管理,因为学籍是学生在校学习的凭证, 而学籍又包括确定招生计划进行招生录取工作;学生的基本情况、各科的成绩、 总成绩(或总学分) 、奖惩;制定教学计划,最后在学生离校时做出学生在校学 习情况的总结。由于学校和在校学生是一对多的关系,因此,学籍的管理是一 个工作量大而又繁杂的工作。而由于信息管理是建立在庞大的数据库中的,如 何建立学生信息库是进行自动化学籍管理的一个重要问题。 高等院校学籍管理比较复杂,工作量很大,在过去,学校里面往往采用人 工方式进行,可以想象其工作难度之大,需要的操作人员之多,既费工又费时, 尤其是它的录入与统计工作,更是一项非常艰苦的工作。所以需要一种能够智 能管理的计算机系统。数据库能很方便的进行数据的统计和录入工作,这对有 大量数据的编辑有重要的作用。所以学校在学籍管理上很需要一个自动化,智 能化的计算机学籍管理系统。在此,以一个学校的小型学籍信息管理系统的开 发为试验,其作用主要是对学校学生信息档案、成绩进行录入、查询、维护、 统计、打印输出等操作。 1.2 系统的初步调查 1.2.1 开发学籍管理系统的目的 学校每年都有新生入学、老生毕业,还有其他各种人事变动。如何有效的 管理这些学生信息,帮助学校和老师掌握学生的情况,这就是学籍管理系统需 要完成的功能及开发目的;另外,为使本软件的功能完善、功能更强大,还包 括与学生信息有关的管理功能,例如成绩管理等功能。 经过大学四年学习,开发软件有了一定的基础,为使开发软件的经验进一 步提高和适应社会发展,与同组软件开发人员共同努力学习、提高软件开发的 经验。 1.2.21.2.2 业务流程分析业务流程分析 班级管理业务流程图: 教务处输入计算机 班主任教务处 学 生 班 级 班 级 输 出 学籍管理业务流程图: 课程管理业务流程图: 成绩管理业务流程图: 教务处输入计算机 班主任教务处 学 生 档 案 档案 输出 课程 教务处输入计算机 教师教务处 学 生 课 程 输出 教务处输入计算 机 班主任教务处 学 生 班 级 班 级 输 出 教务处输入计算机 教师教务处 学 生 成 绩 教 师 输 1.2.31.2.3 数据流程分析:数据流程分析: 数据流程图: 由于本系统的数据模块较多,下面仅以学生成绩管理模块为例来进行编制。 下图为学籍管理系统数据流程图:下图为学籍管理系统数据流程图: 。 学生注册 奖惩信息管理 学籍信息管理基本信息管理课程信息管理 成绩信息管理 基本信息输入 课程信息输入 成绩信息输入 入 奖惩信息输入 学籍信息输入 1.2.2 选题背景及意义 随着现代科学技术的飞速发展、计算机与全球互连网络 internet 相连接, 使今天的社会进入了以计算机为核心的社会。在信息社会中,信息的获取、处 理、交流和决策都需要大量高质量的处理工具。在这高科技时代,信息的处理 是十分重要,如果用原始的方式进行处理,我们就会跟不上时代的进展;我们 需用高科技时代的产品。学生信息的管理是每个学校工作中一项非常重要的工 作,要投入很大的人力进行管理。如果开发一套学籍管理系统软件将具有十分 重要的意义,可以减少人力资源在这方面的投入,而更多的投入教学或其它工 作中。 信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济 和社会生活的各个领域。计算机虽然与人类的关系愈来愈密切,还有人由于计 算机操作不方便继续用手工劳动。为了适应现代社会人们高度强烈的时间观念, 学籍管理系统为教学办公室带来了极大的方便。使用者可以了解本系统的基本 工作原理。操作人员只需输入一些简单的汉字、数字就可以实现工作要求的操 作。 所开发系统主要是对高等院校的学生学籍信息进行管理,而不对其他公司 或单位内容进行涉及。在对学籍信息的管理中,对管理员赋予所有的权限,即 既有具有查询的权限,又具有对数据库进行录入和修改的功能,以及对数据库 进行清空的功能。由于该系统主要应用在学院内部使用,而不在网络上公开, 因此在设计开发时可以做成单机版。 1.3 开发工具的选用 1.3.1 visual basic 的使用 visual basic 是 microsoft 公司推出的一个可视化的面向对象的应用程 序开发工具。由于 vb 继承了 basic 语言简单、易学的优点,又增强了可视化、 数据库及 internet 编程功能,因此很快便成为开发 windows 应用程序的有效工 具。在本次设计中只所以采用 vb 进行开发,主要是以为 vb 具有以下两大特点: 1.面向对象编程 传统的结构化语言(如 c,pascal 和 basic 等)都是采用面向过程的编程 方法来解决问题。在面向过程的编程方法中,代码和数据是分离的,由此带来 了很多缺陷,其中最重要的就是程序的可维护性差。面向对象编程 (oop:object oriented programming)则把数据和处理数据的代码封装到一 个类中,类的实例就是对象。与面向对象的编程方法相比,面向对象编程方法 有三个优点:1)程序易于阅读和理解;2)程序易于修改;3)对象能重复使用 多次,即程序员可以随时根据需要将对象插入到程序中去。 2.事件驱动的编程机制 在面向对象的编程方法中,每个程序通常包含一个主程序和若干个子程序, 由某个子程序来处理某个小问题,再由主程序自顶向下调用各个子程序来逐步 解决整个问题。vb 彻底解决了这种编程机制。在 vb 中,没有传统意义上的主 程序,程序执行通过事件来驱动,即只有在事件发生时,程序才会执行,若没 有发生任何事件,则处于停滞等待状态。 事件驱动使得用 vb 编程没有必要建 立明显的开始和结束程序,而只需编写若干微小的子程序,这些子程序分别由 各种事件来驱动执行。由于子程序规模不大、功能单一,因此编程难度得意大 大降低。 本次毕业设计需要用一种新软件来开发学习,但是接触一门新的软件往往 上手容易,使用起来很困难,而且这次毕业设计时间短,任务重。显然使用非 常复杂的软件进行开发是不太现实的。而 visual basic 简单易懂,控件的操作 简单方便,且集成了多种开发和应用软件,使用的人比较多,方便在一起讨论 学习,所以在这次设计中,我采用了 vb 作为主要的开发工具。 1.3.2 sql server 2000 的使用 microsoft sql server 2000 是为当前的分布式客户机/服务器环境特别设 计的,sql server 数据库能够轻而易举的通过 internet 和内部网络加以访问。 sql server 提供了一系列方法将数据库填充到 web 服务器,同时提供了对数据 的快捷访问。它是一个可伸缩、高效能的数据库管理系统,具备内置的复制能 力、internet 集成、开放系统体系结构以及其强大的基于 gui 的数据库管理工 具。它的一个独特功能是基于服务器的作业调度系统,允许直观的控制多个服 务器和远程操作。这极大地增强了数据库的性能和可靠性。 sql server 的主要功能: 支持客户机/服务器模型; 操作系统兼容性; 多平台支持; 多协议兼容性; 数据仓库; 数据复制。 1.4 系统的可行性研究 1.4.1 技术上的可行性 由于 vb 语言简单、易学的优点,又增强了可视化、数据库及 internet 编 程功能,很容易就可以进行系统开发。因此系统开发工具可以采用 visual basic 进行开发。而对数据库的建立,由于建立的数据库主要是对学籍的信息 进行管理,所以可以采用微软公司开发的 microsoft sql server 2000。该软 件简单易懂,应用广泛,比较适合开发数据库软件使用,而且建立的数据库较 为安全。 1.4.2 管理上的可行性 因为系统主要应用于学院内部,而不具备网络查找功能,因此在实现时可 以做成单机版,对管理员赋予数据录入、查询、修改以及对数据库的清零等功 能。 1.4.3 安全上的可行性 在建立数据库时可以通过对数据库的设计用户名和密码进行保密,以及在 建立数据库以后可以对数据进行压缩等技术,保证数据的安全,使数据库具有 安全保障。 1.5 系统性能分析 1.5.1 系统的安全性 所开发系统必须保证系统的安全,必须保证系统数据库不能被任意修改, 系统不容易被病毒侵蚀。对光纤信息数据库只有 管理员才能进行录入,修改和 删除。 1.5.2 系统的快捷性 系统必须快速准确的对所做的操作做出反映,不能出现长时间的延迟和错 误或者莫名其妙的死机。 1.5.3 系统的准确性 系统必须准确的对所做的操作做出反映,要保证所输出结果的准确无误。 1.5.4 系统的严谨性 所开发系统必须严谨,不能随意被修改,不能随意被人下载源代码。 第 2 章 概要设计 2.1 系统设计思路分析 2.1.1 界面 用 vb 设计基础界面,在初步设计时,可以只对窗体进行设计,而不涉及程 序的内容,待窗体设计完毕后,再进行程序编程,这也是 vb 的优点之一。 2.1.2 用户登录 用户登录时,用户信息进入存放用户名和密码的数据库,若表中已有此用 户名,则给出提示,进入系统,若没有此用户名,则给出提示,返回用户登录 界面。 2.1.3 学籍信息内容查询和录入 查询结果可以通过网格输出,输出时显示各个学籍信息的汉字意义。在管 理员进行录入工作时,对所输入信息插入数据库内,并保证其安全和主属性的 唯一。 2.1.4 数据库分析 在系统实现时,可以建立一个数据库,但是建立多个表。对用户名和密码, 设计一个用户密码表包括“用户名”和“密码”两个字段;建立学生情况、教 师情况、班级情况、教学计划等固定表;在建立成绩数据表时,考虑到各专业 和班级的课程不相同,建立统一的表比较困难。所以让系统管理员按照实际情 况动态的建立数据表,但要保证所查询出的结果完全满足用户的需求。 2.2 设计简述 2.2.1 vbvb设计的界面简述 漂亮界面,这个窗体要求漂亮,做成通用窗体的效果。登录界面,要求管 理员输入帐户密码,并根据密码是否正确决定进入主界面。主界面,用向导生 成,可以通过各个菜单调用各种功能,并可以通过树形结构浏览数据库中的表。 新建毕业生表,要求可以生成以毕业年份命名的毕业生信息表,具体表中的字 段由管理员决定。数据输入,可以在这个窗体中对数据库中的任意表进行添加、 修改、删除等操作。数据导入,管理员可以把 excel 表中的数据导入到数据库 中。查找向导,可以根据各种条件对学生进行查找,并显示。成绩查询,对成 绩进行单人或者课程查询。打印管理,管理员可以打印单人或者本课程的成绩, 并且对打印的字段进行设置。帮助信息,说明作者,版本信息。 2.2.2 系统简图 欢迎界面 学 籍 信 息 库 用户登录退出 打印报表 零 学生查询数据导入数据输入建立新 表 登录成功 主界面 成绩查询 版本信息 创建输入输入读出读出读出 退出 第 3 章 系统的分析与设计 在开发系统之前,需要先对系统进行分析与设计,进而确定系统的设计方 案并且实现之。 对于数据库应用系统而言,其具体的分析、规划与设计大体上可以分为数 据库的分析与设计、应用程序的分析与设计两大部分。其中,数据库的分析与 设计非常重要。合理的数据库设计和建设是数据库应用系统成功的关键。 3.1 数据库的分析与设计 系统中所用的 sql server 2000 数据库属于关系型数据库。有关它的一些方 法和原则说明如下。 3.1.1 关系型数据库简介 关系型数据库是以关系型数据库为基础的数据库,是根据表、记录和字段 之间的关系进行组织和访问的一种数据库,它通过若干个表(table)来存取 数据,并且通过关系(relation)将这些表联系在一起。关系数据库提供了结 构化查询语言(sql)的标准接口。目前,关系型数据库是应用最为广泛的数 据库。 关系型数据库中的基本概念如下: 表:由行和列组成的数据集合,用于存储数据。 字段:用于表示实体属性的符号集。数据库中的每一列称为一个字段。 表是由他所包含的各种字段定义的,每个字段描述了他所含有的数据。 关键字:一般的,需要在表中定义一个字段(或多个字段) ,用于快速 检索。一个表的主关键字用来唯一的标志表的每行。 索引:索引是根据数据库表中记录的关键字值对数据库表中的记录进 行分类。索引用来提高数据库记录的存取速度。 视图:与表相关,可以根据一定的条件选取或组织一个或多个表中的数 据,构成一个更易于操作的数据对象,其实质是虚拟表。 存储过程:是一组被编辑在一起,用以执行特定功能的 sql 语句;这 些语句通常是被编译过的,执行速度比较快。 触发器:类似于存储过程,但触发器的执行是自动的。 关系型数据库一般可以分为两大类:一类是桌面数据库,例如 access、foxpro 等;另一类是客户机/服务器数据库,例如 sql server、oracle 等。 一般而言,桌面数据库用于小型的、单机的数据库应用程序;客户机/服务 器数据库用于大型的、多用户的数据库管理系统。 3.1.2 系统数据库的结构设计 一个数据库应用程序的开发,其数据库的设计是至关重要的一个环节。好 的数据库设计能够大大简化开发的难度,提高开发工作的效率。 在设计关系型数据库时,一般需要遵循如下几条规则: (1) 表中的数据必须规则完整:一个数据库,为了数据本身的完整,需 要设置许多规则。例如,人的年龄不能为负数,如果年龄字段出现 了负数,数据库将发生错误,这就称为数据规则完整。 (2) 满足数据的完整性:数据完整性指的主要是限制数据库内可能出现 的值,以保证数据库的有效性。 为了保证数据完整性,需要注意: (1) 实体完整性:表的主关键字段的任何部分不能为 mull。 (2) 参考完整性:如果在一个表中含有与另外一个表的主关键字相对应 的字段,那么这个字段上的值必须取空值,或者是等于另外一个表 中的主关键字的值。 (3) 在设计数据库表时必须规范化。 为了确保数据库设计时做到规范化,定义了如下的一些基本规则,称为范 式。 第一范式。指定记录中的指定字段只能包含一个值。这就防止在单个 记录中的任何重复的组别。 第二范式。任何非关键字字段必须取决于主关键字中的所有字段。解 决的办法通常是将不规则的字段移到更合适的表。该范式还规定了两 个或更多的表不可以有相同的主关键字。 第三范式。非关键字的字段不能取决于另一个非关键字字段。 第四范式。这种范式禁止在主要关键字字段与非关键字字段之间的多 重的、独立的、一对多的关系。要完成第四范式,就必须为每一个一 对多的关系创建各自的表。 第五范式。这种范式经常被忽略。它主要将一个表分割成最小可能的 片断,以消除冗余。 上述 5 种范式是设计数据库时需要遵循的准则,一般而言,数据库设计应 该确保能够遵循第三范式,第四范式和第五范式相对而言用得比较少。 下面是本系统数据库的具体设计。 1. 数据库中表的结构 学籍管理系统中,建立的数据库名称为 students.其中关于学生的个人信 息主要存放在学生信息表(ustudbaseinfo)和学生附加信息表 (ustudinfoadd)两个表中,两个数据库表的主关键字都是“学号” 。 在学籍管理系统中,比较重要的数据表还包括课程信息表 (ucoursesinfo)和学生成绩表(uscoreinfo)。这两个表用来存放学校开设的 课程的一些基本信息以及学生考试的成绩信息,数据库的主关键字是“课程代 号” 。 另外,在系统中还将用到开除学生表(uexpelstudinfo)、毕业学生表 (ugradstudinfo_xxxx)等数据库表。这些表是在程序代码中自动创建生成的, 具有和学生基本信息表(ustudbaseinfo)相同的结构。 除了上述数据库表之外,在数据库设计中还用到了视图(view),该视图 是对学生成绩信息的一个综合描述,创建成绩视图(v_scoreinfo)所用到的 sql 语句如下所示: select top 100 percent dbo.uscoreinfo.课程代号,dbo.ucoursesinfo.课程名称, dbo.uscoreinfo.学号, dbo.ustudbaseinfo.姓名, dbo.ustudbaseinfo.所属班级,dbo.ucoursesinfo.学期, dbo.ucoursesinfo.学分, dbo.uscoreinfo.成绩 from dbo.uscoreinfo inner join dbo.ustudbaseinfo on dbo.uscoreinfo.学号 = dbo.ustudbaseinfo.学号 inner join dbo.ucoursesinfo on dbo.uscoreinfo.课程代号 = dbo.ucoursesinfo.课程代号 order by dbo.uscoreinfo.学号 该视图分别从 3 个表中获取所需要的数据,形成一个完整的学生成绩信息 表(视图) ,使得用户对学生成绩信息的浏览和操作更加方便。 2. 表之间的实体关系 学生基本信息表与学生附加信息表应该具有同步更新的功能,即这两个表 中的记录是一一对应的;另外,学生的成绩表与学生基本信息表以及课程信息 表也有着对应关系。 3.2 应用程序的分析与设计 数据库设计完成后,就开始进入具体的应用程序设计与分析设计阶段。应 用程序的分析与设计主要包括应用程序各个功能模块的总体规划与分析、应用 程序界面的选择与设计以及应用程序结构的选择等部分。 3.2.1 应用程序的界面选择与设计 目前常见的应用程序的界面方案有基于对话框的应用程序界面、单文档界 面和多文档界面。其中,如果应用程序的功能比较单一、操作比较少时,往往 选用基于对话框的应用程序界面。基于对话框的应用程序界面主要特点就是简 洁,具有一定的交互性。 单文档(sdi)与多文档(mdi)应用程序常常用于一些比较复杂的情况。 单文档与多文档最明显的区别就是单文档应用程序的各个界面窗体是相互独立 的,而多文档应用程序的各个窗体要由 mdi 父窗体控制,集中在 mdi 窗体的客 户区之内。 尽管 microsoft 公司在其 word 2000 的产品中开始从 mdi 环境转向 sdi 环境,在本系统中还是采用了 mdi 的界面风格。具体原因如下: 由于系统中涉及到的窗体比较多,如果采用 sdi 应用程序,那么这些 窗体将各自独立地出现屏幕上。很难用一种方便,容易的手段来对这 些窗体进行统一的管理。 采用多文档界面,应用程序的各个窗体都作为多文档界面的一个字窗 体,这样有便于统一控制这些窗体;同时,由于这些窗体将出现在 mdi 的客户区范围之内而不是在屏幕之上,因此对于整个操作系统而 言,界面将会显得更加整洁一些。 基于上述原因,本系统选用了多文档窗体的界面风格。 选择了窗体风格之后,就需要进行更细致的界面设计。对于标准的 windows mdi 应用程序而言,至少需要为应用程序提供菜单以执行相应的操 作。另外,在必要时,工具栏和状态栏也是需要的,它们能提供一些快捷的操 作方式并且能够显示出当前系统的状态与用户进行交互。 目前一种比较流行的应用程序界面设计是为应用程序提供一个目录树,利 用目录树来执行一些特定的应用程序功能。另外,目录树也具有导航功能。在 数据库应用程序中,利用目录树来执行对数据库数据的操作也是一种比较好的 方法。 基于以上分析,学籍管理应用程序的主界面将采用 mdi 应用程序,并且提 供了菜单,工具栏,状态栏以及一个用于操作的目录树。 3.2.2 应用程序的功能模块 图 3-1 应用程序的功能模块结构图 学籍管理应用系统主要包括学生管理、成绩管理和用户管理 3 个大模块, 各个模块的具体功能如图 3-1 所示。 上述功能模块包含于应用程序主界面的窗体菜单(或目录树)和相应的子 窗体中,具体的代码实现详见源代码。 3.2.3 应用程序的结构 当前应用得比较多的应用程序系统的结构与客户机/服务器(c/s)结构和 浏览器/服务器结构(b/s) 。其中,c/s 结构又分为两层结构和三层结构。 两层结构的 c/s 结构就是客户端应用程序通过 odbc、sql link、 tcp/ip 直接连接数据局服务器进行通信,并完成数据的添加、修改、删除和 检索等操作。 两层的 c/s 结构存在一定的缺点: 两层 c/s 结构中,客户端应用程序直接连接数据库服务器,这样数据 库服务器将消耗一定的资源以处理与客户端的连接工作。如果连接工 作比较频繁的话,数据库服务器的效率将会不断下降。 两层 c/s 结构中,只有惟一的一个在线的数据库服务器,这将使得系 统可靠性降低。 两层 c/s 结构的应用程序分布比较麻烦,需要一些 dll 的支持。另外, 每个客户端还需要进行相应的配置以连接数据库,例如 odbc 的配置。 三层的 c/s 结构在两层结构的基础上加入了新的业务逻辑层,业务逻辑层 负责数据库与客户端的连接工作,起到了一个中继的作用:一方面向数据库服 务器传递客户端的请求,一方面将数据库服务器的处理结果返回客户端。这是 得数据库服务旗只需要相应客户端的请求,减轻了服务器的工作服负担,提高 了其工作效率。 尽管两层的 c/s 结构存在一定的缺点,然而作为一种成熟的应用程序结构 模型,两层结构具有开发难度小,维护和使用比较方便的优点。而且,对于学 校内部的学籍管理系统而言,由于系统本身处于校园之内,数据安全性能够得 到一定的保障,而且对数据处理效率的要求并不太高,因此本系统仍然采用了 传统的两层 c/s 结构来进行开发。 另外,应用程序系统在访问数据库时,采用了 odbc 数据源+ado 的方式。 利用 odbc 设置,可以比较灵活的配置服务器数据库;而采用 ado 模型来进 行数据库编程将使得应用程序更加灵活,并能利用 ado 提供的强大而又完善 的数据库功能。 第 4 章 详细设计 4.1 系统登录 程序启动 读取注册表中信息 用注册表信息连接数据库 系统登录 成功 配置 odbc 重写注册表 用注册表信息 连接数据库 启动系统 成功 成功 成功 成功 失败 失败 失败 图 4-1 程序启动,用户登录数据库流程图 应用程序要求使用者进行登录,以便确认使用者的身份以及使用权限。在 数据库应用程序中,用户身份及其对系统的使用权限尤其显得重要。在本系统 中,用到的系统登录技术包括数据库登录和应用程序登录。其中数据库登录过 程如图 4-1 所示。 4.1.1 数据库登录的设计 在图 4-1 中显示的是本系统中登录数据库的过程。除了第一次运行系统时需 要配置连接数据库外没有必要每次运行应用程序时都去配置一次数据库登录信 息,因此程序作如下设计: (1) 通过对注册表的读写来决定是否要显示配置数据库的窗口。 (2) 如果应用程序是第一次运行,那么读取注册表的信息时就读取不到 信息,从而就直接在这次运行的开始阶段出现连接数据库的界面。在该窗体上 配置好数据库的连接信息后将改配置信息写入注册表,然后转入应用程序的登 陆窗口。 (3) 如果应用程序不是第一次运行,则通过读取注册表中的相关数据库 配置信息来登录数据库。连接数据库正确的话,应用程序将执行到系统的登录 窗口。 (4) 如果读取到的注册表信息不能正确的连接到数据库,说明数据库的 设置出现了变化,需要再次回到数据库配置窗口进行设置,然后重新连接数据 库。 了解了登录数据库的内部工作流程之后,下面就来实现该功能。 a. 启动应用程序的设计 在本系统中,应用程序是从 sub main()过程来启动的。sub main()过程位 于标准模块 starmoudule 代码之中。该标准模块中定义了要在整个系统中都要 用到的程序变量和一些供用函数代码。其中,用于检测注册表和查看数据库配 置信息的代码就位于 sub main()过程中。 为了实现对注册表的读写,需要对 windows api 函数进行封装。在该系 统中,操作注册表的 api 函数在标准模块 regmod 中已经声名并且进行了封装。 实现数据库登录的模块 starmoudle 代码除了实现登录系统前的检测外, 还定义了一些未来程序中常用的函数。 在项目开发中,需要将应用程序的必要信息永久的存储与磁盘。存放程序 信息的方式一般包括写入.ini 文件和写入注册表两种方式。visual basic 有几 个关于注册表的相关寒暑,然而不够灵活。因此,在本系统开发中,采用了一 些资料中关于注册表的函数,能够灵活的完成所需要的功能,包括打开注册表 键值、创建注册表键并设置键值、读取键值、列举注册表中键值等操作。 详细代码见程序清单。 b. 数据库设置窗体的设计 在有关程序启动的代码设计中,主要涉及到两个窗体,一个是数据库配置 窗体,一个就是系统登录窗体。数据库配置窗体的界面如图 4-2 所示。 图 4-2 用户登录数据库,注册数据库配置信息 数据库配置窗体上,除了 3 个标签控件之外,其他几个控件都是自己自定 义的控件。这些控件中加入自己所需要的常用特性,然后在后续的开发中可以 直接使用这个自定义控件。这将使得程序开发更加高效,也更加灵活。 创建控件的方法分为:手工创建控件和利用 activex control interface wizard 来创建控件。开发本系统采用的是利用 activex control interface wizard 来生成控件代码的,因为,手工书写代码的效率比较低。 在自定义的组合框中枚举出 odbc 别名,用户可以直接输入,也可以从列 表中直接选择。该自定义控件所具备的自动搜索功能将能够简化用户的输入。 “确定”按钮的主要功能是用来登录数据库,同时把登录数据库成功的数 据库配置信息写入到注册表,已备应用程序下次登录数据库用。 如果输入信息正确登录到数据库上,则可以直接退出该窗体。否则,提示 数据链接失败之后,将不能退出窗体。除非按“取消”按钮放弃登录数据库。 “系统数据源”按钮的主要功能是在应用程序的界面中直接调出配置 odbc 数据源的窗体,而免去用户回到 windows 的设置部分重新配置数据源 的麻烦。如果数据库连接不成功,一般需要重新检查数据库的设置情况,如果 设置有变动,则需要利用该按钮对 odbc 数据源进行重新配置,然后再利用“确 定”按钮将新的登录信息写回到注册表中。 “取消”按钮的功能比较简单,只是为了退出窗体用以放弃登录数据库。 完成数据库登录之后,数据库的配置信息将写入注册表。 4.1.2 系统登录的设计 完成数据库的登录以后,就需要面对应用程序的系统登录窗体。应用程序 的登录过程如图 4-3 所示。 系统登录 是否是正确的用户? 是否是系统级别用户? 系统用户界面 登录错误提示 普通用户界面 是 是 否 否 图 4-3 系统登录的数据流程图 从图 4-3 中可以看出,系统登录的窗口需要进行两重检测。 首先判断输入的用户名和密码是否合法,即判断用户的合法身份。如果用 户输入错误,程序将给出输入错误的提示。 在用户通过身份验证后,系统将在后台执行另外一个检测过程,判断该用 户的级别是否为“系统级” 。这个判断主要是为了给用户分配相应的对应用程序 的操作权限。如果该用户是系统级别的用户,用户将能够获得对该应用程序的 完整的操作权限,包括对学生信息的管理和查询以及对学生成绩的录入和查询; 如果该用户只是普通级别的用户,该用户将只能获得查询学生成绩的功能,而 不能对数据库系统有其他更多的操作权限范围。 在系统登录中,对用户级别的判断以及根据级别执行相对应的动作是和最 后用户的登录界面相关联的。因此,该部分的操作将在应用程序的主界面窗体 的 load 事件(或是 initialize 事件)中完成。 有了具体的思路,结合工作流程图即可进行实际的系统登录界面设计,并 编写相应的程序代码。 系统登录界面非常简单,包括两个 lable 控件、两个字定义的文本框控件 和两个字定义的位图按钮。系统登录的界面如图 4-4 所示。 图 4-4 系统登录窗体外观 系统登录窗体上的按钮的功能如下: “确定”按钮执行从数据库的用户表中返回一个记录集的功能,并且取得 该登录用户的用户权限。 在编写这段代码的过程中用到了 frmflash 窗体,这是一个快闪窗体。如 果一个窗体上面所放置的控件、位图等资源比较多时,该窗体在载入时就需要 较长的时间。如果一个应用程序在启动是消耗时间比较长,用户在等待时或许 就会有不耐烦的感觉。为了让用户能够在系统启动的这段时间里能够了解到应 用程序的一些信息,需要使用到快闪窗体。快闪窗体就是在该应用程序初始化 的过程中,在用户的系统平台上率先显示出来的一个窗体。该窗体有独特的窗 体风格,一般用来向用户显示一些有关程序的信息、公司的信息或是其他一些 提示性的文字和画面。 快闪窗体在许多应用程序中都有应用,例如 visual basic 在启动时就有一 个快闪窗体。快闪窗体一般要在应用程序加载完毕显示出来之后,在关闭掉。 有的快闪窗体上面放置了 timer 控件,用来控制快闪窗体的关闭。在本系统中, 则是显示完主窗体后,通过其他程序代码块中的相关代码来关闭快闪窗体。 在制作快闪窗体时,因为它的窗口风格与普通窗体的风格不同,所以需要 为其窗体外观进行一些特别的设置,具体做法如下:设置快闪窗体的 borderstyle 属性为 0-none,设置 maxbutton 和 minbutton 为 false。这 样就完成了快闪窗体的制作。 可以为窗体的 click 事件添加代码,用来关闭窗体。一般用不上,因为快 闪窗体的显示和关闭一般由其他程序代码控制。 在程序设计过程中,利用了两个集合对象来存放要显示于菜单上的标题文 本字符串。其中,一个集合 colscore 用来存放“成绩管理”菜单中的子菜单 项,另一个集合 colinfo 用来存放“学生信息管理”菜单中的子菜单项。 判断出登录用户的用户级别为“系统级别”之后,则所有菜单项设置为 visible=true,使其可见;然后对两个集合分别进行循环遍历,将从这两个集 合中搜索到的字符串添加到数形控件上去,从而形成系统级别的完整的操作界 面。 在普通级别的用户界面中,将只有“成绩查询”功能菜单是可以使用的, 其他的“成绩录入” 、 “学生信息管理”以及“学生信息查询”等菜单均为不可 见的。这样就限制了普通用户对数据库的操作。 对应地,此时的操作目录树也只有“成绩查询”一个子节点。具体的实现 方法依然是使用循环遍历集合,只是在该段代码中将只遍历 colscore 集合。 在 for 循环中设置好遍历的起点和终点,将使得只有特定的一条项目被添加到 树形控件中去。 这种方法只是取得了一定程度上的灵活性:通过将几个集合变量定义为模 块级变量,菜单标题字符串定义为常量字符串,从而使得该程序具备一定的灵 活性。如果想要取得更大的灵活性,可能需要借助菜单数组甚至是有关 ini 文 件的技巧。 具体的各部分的代码实现见程序清单。 4.2 学籍管理系统主界面设计 应用程序的主界面是整个应用程序中比较重要的一个组成部分。一般而言, 程序界面的设计应该简单、整洁。另外,对于 windows 应用程序的界面最好 符合 windows 标准应用程序的一般操作规则,而不应该追求一些外表的华丽 和与众不同,使得用户在操作时感到不适应。 一个标准的 windows 应用程序界面一般包括菜单、工具栏和状态栏等部 分。在学籍管理系统的界面设计中,也遵循这一风格。应用程序主界面如图 4-5 所示。 图 4-5 应用程序的主界面 4.2.1 应用程序主界面的窗体设计 在应用程序中主要应用了菜单、工具栏、目录树和状态栏来构成系统的主 界面。 1. 菜单的设计 菜单是 windows 应用程序中的重要组成部分,各个菜单项的设计功能都 按照标准界面菜单的功能进行设计。 mdi 应用程序中,父窗体可以有自己的菜单,子窗体也可以有属于自己的 菜单。这些菜单的创建都可以利用 menu editor 来进行创建。 然而,当一个 mdi 应用程序的父窗体和子窗体都拥有各自的菜单时,将会 出现菜单替代的问题,也就是说,当拥有自身菜单的子菜单为活动窗体时,该 子窗体的菜单将不显示在子窗体的本身,而是取代了父窗体原来的菜单,出现 在父窗体菜

温馨提示

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

评论

0/150

提交评论