vf系统交易平台

大家好,今天来为大家解答vf系统交易平台这个问题的一些问题点,包括急求VF程序设计!管理系统!也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

本文目录

  1. vf做的系统怎么连编,求详解,谢谢
  2. VB/VF图书管理系统(程序+论文)
  3. 急求VF程序设计!管理系统!

一、vf做的系统怎么连编,求详解,谢谢

1、连编就是将你用vfp开发的项目中的所有文件,如表单、程序文件、图标等编译成一个可执行文件(.EXE)的过程。步骤一般如下:

2、⑴在项目中选中一个表单或prg文件,目的是作为主文件(启动文件);

3、⑵点击菜单"项目",选"设置主文件",选中的文件就为主文件;

4、⑶在项目窗口中选"连编",连编窗口选"连编可执行文件",选择路径和输入你要生成的exe文件的名字,连编就生成了可执行文件。

5、编译后就运行时就会一闪而过。加 read events,程序退出的位置要加上clear events或在表单上加一个有Tab属性的控件

6、二、你自己用vfp作一个发布安装盘,刻成光盘,送给用户:。

7、1将要发布的文件(.exe,...)复制到一个文件夹中(假设为d:\xxx)

8、2运行 vfp6,工具-〉向导-〉安装,在发布树在哪个目录对话框中,选择d:\xxx,下一步

9、3在步骤2,中如果你在程序中,没有用到控件,单击下一步即可,否则选定您用到的第三方控件

10、4在步骤3磁盘映像中选择网络安装,并选个一个要生成的目录(如d:\MySetup)下一步

11、5在步骤4安装选项的安装对话标题中输入标题如:建筑设备管理系统版权信息下一步

12、6安装目录、程序组(最好也写:如:建筑设备管理系统)下一步

13、10到 D:\mysetup\netsetup下,将文件刻录到光盘(或拷贝U盘)到客户机上,setup即可。

二、VB/VF图书管理系统(程序+论文)

图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。

因此本人结合开入式图书馆的要求,对MS SQL Server2000数据库管理系统、SQL语言原理、Delphi应用程序设计,Delphi数据库技术进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的图书管理系统可以满足借阅者、图书馆工作人员和高级管理员三方面的需要。

第一章对数据库应用系统开发和图书管理系统进行了简明的介绍,并分析了开发图书管理系统所应进行的工作。

第二章对数据库的设计和SQL语言的使用进行了系统分析,为深入理解数据库应用打下了基础。

第三章学习了具体的开发工具Delphi 6.0,对其数据库组件,SQL语言在Delphi中的应用等数据库编程关键技术进行了系统的介绍。

第四章分析了图书管理信息系统的应用需求,按照数据库设计理论一步一步地给出了系统需求说明书、局部ER图、全局ER图、系统关系模式,子模式,利用MS SQL Server2000建立了数据库

第五章进行了具体的程序设计,具体划分了三类用户的操作权限,设计了了三个操作界面。实现了数据库表的浏览,记录的添加、删除和修改,报表的生成,实现了多数据库表的连接操作,实现了多条件查询和模糊查询,并灵活实现了对不可更新查询结果集的更新操作,实现了主从表操作,实现了密码维护功能,最后,系统还可以导入数据库以对任意同结构的数据库进行操作。

设计充分利用Delphi 6、MS SQL Server2000数据库技术的强大力量,提高了编程效率和可靠性。

关键词:数据库,SQL语言,MS SQL Server,Delphi6,

数据库组件,图书管理,窗体,listview组件

摘要……………………………………………………………………………… I

第一章绪论…………………………………………………………………… 1

§1.1数据库应用系统开发简介……………………………………………… 1

§1.2图书管理系统……………………………………………………… 4

§1.3本文所做的主要工作…………………………………………………… 6

第二章数据库理论基础………………………………………………………… 7

§2.1数据库系统设计及范式分析…………………………………………… 7

§2.2 SQL语言介绍………………………………………………………………… 11

2.2.1 SQL基础………………………………………………………………… 11

2.2.2 SQL语句………………………………………………………………… 12

第三章应用系统开发工具………………………………………………… 16

§3.1 Delphi6.0 VCL组件的体系结构……………………………………… 16

§3.2数据库组件介绍…………………………………………………………… 17

§3.3 SQL语言在Delphi中的应用…………………………………………… 18

§3.4 MS SQL Server简述…………………………………………………… 22

第四章图书管理系统设计分析………………………………………… 24

§4.1应用需求分析…………………………………………………………… 24

§4.2系统功能模块划分……………………………………………………… 29

§4.3系统数据库设计………………………………………………………… 29

第五章图书管理系统应用程序设计…………………………………… 37

§5.1系统窗体模块组成………………………………………………………… 37

§5.2数据模块窗体的设置……………………………………………………… 37

§5.3启动画面的实现…………………………………………………………… 38

§5.4用户登录窗体的的实现……………………………………………………… 39

§5.5用户密码认证窗体的的实现………………………………………………… 39

§5.6借阅者服务模块的实现…………………………………………………… 40

5.6.1图书查询功能的实现………………………………………………… 41

5.6.2借阅者登录功能的实现………………………………………………… 42

5.6.3借阅者借阅情况功能的实现…………………………………………… 43

5.6.4借阅者个人资料维护功能的实现……………………………………… 47

§5.7工作人员-图书借阅/归还模块的实现……………………………………… 49

5.7.1工作人员进行图书借阅功能实现……………………………………… 50

5.7.2工作人员进行图书归还功能实现……………………………………… 53

§5.8图书馆管理员模块的实现…………………………………………… 54

5.8.1图书馆管理员图书管理功能的实现…………………………………… 55

5.8.2图书馆管理员工作人员和管理员管理功能的实现…………………… 58

5.8.3图书馆管理员修改图书类别及统记功能的实现……………………… 60

5.8.4图书馆管理员借阅者管理功能的实现………………………………… 62

5.8.5图书馆维护借阅者管理功能的实现………………………………… 62

5.8.6图书馆身份维护功能的实现……………………………………… 64

5.8.7图书馆借阅者统计功能的实现………………………………… 65

5.8.8图书馆统计借阅过期记录功能的实现………………………… 67

§5.9系统信息显示的实现………………………………………………… 68

第六章结束语……………………………………………………………… 69

致谢………………………………………………………………………………70

参考书目…………………………………………………………………………… 70

在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。

数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设计。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。

数据库技术在计算机软件邻域研究中一直是非常重要的主题,产生于60年代,30多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统。并且,近年来,随着World Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。

如图1.1显示了数据库系统的主要组件。数据库由DBMS(数据库管理系统)处理,DBMS则由开发人员和用户通过应用程序直接或间接地使用。它主要包括四个要素:用户数据、元数据、索引和应用元数据。

目前,大多数主流数据库管理系统把用户数据表示为关系。现在把关系看作数据表。表的列包含域或属性,表的行包含对应业务环境中的实体的记录。并非所有的关系都同样符合要求,有些关系比其它关系更结构化一些。第二章描述了一个用以产生良好结构关系的过程,称作规范化。

为了对比结构差的关系和结构好的关系之间的差别,以本文所设计的图书管理系统中的图书和图书借阅者关系为例来说明,假若设计关系R1(借书证号,姓名,性别,身份编号,身份证,联系电话,图书编号,图书名称,图书类别,作者,出版社,出版日期,备注,价格,数量);这个关系的问题出在它有关于两个不同主题的数据,就是图书借阅者和图书。用这种方式构成的关系在进行修改时,会出现问题。因为一个图书借阅者可能借阅多本书,如果某个图书借阅者的某个字段(如联系电话)出现变更,它所借阅的图书记录(可能多个)也就必须变化,这是不好的。因此数据用两个关系表示更好。现在如果某图书借阅者改变了它的联系电话,只有关系(表)user的对应行需要改变。当然,要想产生一个,显示图书名称及其借阅者联系电话的报表,就需要将这两个表的行结合起来。结果表明,将关系分别存储,在生成报表的时候将它们结合起来,比把它们存储在一个合成的表中更好。

user(借书证号,姓名,性别,身份编号,身份证,联系电话,)

book(图书编号,图书名称,图书类别,作者,出版社,出版日期,备注,价格,数量)

数据库是自描述的,这就意味着它自身包含了它的结构的描述,这种结构的描述称作元数据。因为DBMS产品是用来存储和操纵表的,所以大多数产品把元数据以表的形式存储,有时称作系统表。这些系统表存储了数据库中表的情况,指出每一个表中有多少列,那一列是主关键字,每一列的数据类型的描述,它也存储索引、关键字、规则和数据库结构的其他部分。

在表中存储元数据不仅对DBMS是有效的,对用户也是方便的,因为他们可以使用与查询用户数据同样的查询工具来查询元数据。本文第二章所介绍的SQL语言可以同时用于元数据和用户数据。

第三种类型的数据改进了数据库的性能和可访问性,这种数据经常称作开销数据,尽管有时也采用其他类型的数据结构,如链表,但它主要还是索引。索引可以用来排序和快速访问数据。下面以本人的图书管理信息系统中的book表为例来说明。

假定数据在磁盘上是按’图书编号’的递增顺序排列的,用户想打印一个按’图书名称’排序的图书数据报表。为此,所有的数据都需要从源表中提取出来并排序,除非表很小,否则这是一个很费时的过程。或者,可以在‘图书名称’字段上创建一个索引,该索引的条目按照‘图书名称’排序,这样,该索引的条目可以读出来,并用来按顺序访问book数据。

索引用于快速访问数据。例如,一个用户只想访问book表中‘图书类别’值为‘01’的那些学生。如果没有索引,则必须搜索整个源表;但有了索引之后,可以找到索引条目,并使用它来挑选所有合适的行。

索引对排序和查找是有帮助的,但要付出代价。book表中的行每次改变时,索引也必须改变,这意味着索引并非随意的,应该在真正需要时保存。

存储在数据库中的第四种数据是应用元数据,它用来存储用户窗体、报表、查询和其他形式的查询组件。并非所有的DBMS都支持应用组件,支持组件的DBMS也不一定把全部组件的结构作为应用元数据存储在数据库中。然而,大多数现代的DBMS产品存储这种数据作为数据库的一部分。一般来说,数据库开发人员和用户都不直接访问应用元数据,想反,他们通过DBMS中的工具来处理这些数据。

MS SQL Server2000中就支持窗体、存储过程等应用元数据。

数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、更新及各种控制,都是通过DBMS进行的。DBMS总是基于某种数据模型,可以把DBMS看成是某种数据模型在计算机系统上的具体实现。根据数据模型的不同,DBMS可以分成层次型、网状型、关系型、面向对象型等。MS SQL Server2000就是一种关系型数据库管理系统。

关系模型。关系模型主要是用二维表格结构表达实体集,用外键表示实体间联系。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。

关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易懂,编程时并不涉及存储结构,访问技术等细节。关系模型是数学化模型。SQL语言是关系数据库的标准化语言,已得到了广泛的应用。

如图1.1所示,DBMS的特点和功能可以分为三个子系统:设计工具子系统、运行子系统和DBMS引擎。

设计子系统有一个方便数据库及其应用创建的工具集。它典型地包含产生表、窗体、查询和报表的工具。DBMS产品还提供编程语言和对编程语言的接口。

运行子系统处理用设计子系统开发的应用组件。它所包含的运行处理器用来处理窗体和数据库的数据交互,以及回答查询和打印报表等。

DBMS引擎从其他两个组件接受请求,并把它们翻译成对操作系统的命令,以便读写物理介质上的数据。DBMS引擎还涉及事务管理、锁、备份和恢复。

数据库模式定义了数据库的结构、表、关系、域和业务规则。数据库模式是一种设计,数据库和应用正是建立在此基础上的。

域是一列可能拥有的值的集合。必须为每一个表的每一列确定域。除了数据的物理格式外,还需要确定是否有些域对表来说是唯一的。

数据库模式的最后一个要素是业务规则,它是对需要反映在数据库和数据库应用程序中的业务活动的约束。业务规则是模式的一个重要部分,因为他们指定了无论什么数据变化到达DBMS引擎,允许的数据值必须满足的约束。不管无效的数据变化请求是来自窗体的用户、查询/修改请求还是应用程序,DBMS都应该拒绝。

遗憾的是,不同的DBMS产品用不同的方法实施业务规则。在某些情况下,DBMS产品不具备实施必要业务规则的能力,必须以代码形式把它们编入应用程序。

数据库应用包括窗体、查询、报表、菜单和应用程序。

当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。

尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书馆信息而设计的。

图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。

数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。

基于这此问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。

5)开发数据库。数据库实现的一些功能有

l多条件的查询、多条记录的检索、模糊查询;

l数据文件某种存储格式导入数据窗体,经过数据完整性校验存入数据库;

l数据库的设计、数据接口、界面的设计。

绪论部分对数据库应用系统的结构、开发进行了简要介绍,分析了图书管理信息系统设计的特点和任务。

第二章介绍了数据库的设计和范式分析,并系统介绍了SQL语言,为设计和理解应用程序做了铺垫。

第三章对系统介绍了Delphi 6.0的数据库编程技术、SQL语言在Delphi 6.0中的应用、MS SQL Server基础。

第四章分析了图书管理系统的应用需求,设计了系统的数据库结构,并根据需求对系统功能进行了划分和细化。

第五章根据第四章的设计结果利用MSSQL Server2000和Delphi 6.0进行了具体的应用程序设计。

总结部分介绍了设计体会和编程体会,并指出了系统设计中的不足和改进的方向。

一个成功的信息管理系统,是建立在许多条件之上的,而数据库是其中一个非常重要的条件和关键技术。

信息管理系统所涉及的数据库设计分五个步骤:数据库需求分析、概念设计、逻辑设计、物理设计与加载测试。

(1)数据库需求分析的任务是将业务管理单证流化为数据流,划分主题之间的边界,绘制出DFD图,并完成相应的数据字典。

(2)概念设计的任务是从DFD出发,绘制出本主题的实体-关系图,并列出各个实体与关系的纲要表。

(3)逻辑设计的任务是从E-R图与对应的纲要表出发,确定各个实体及关系的表名属性。

(4)物理设计的任务是确定所有属性的类型、宽度与取值范围,设计出基本表的主键,将所有的表名与字段名英文化(现在很多软件能支持中文字段,如MS SQL Server,我就是用的中文字段名),实现物理建库,完成数据库物理设计字典。

(5)加载测试工作贯穿于程序测试工作的全过程,整个录入、修改、查询、处理工作均可视为对数据库的加载测试工作。

要设计出一个好的信息管理系统数据库,除满足系统所要求的功能外,还必须遵守下列原则:

²主键的个数越少越好。键是表间连接的工具,主键越少,表间的连接就越简单。

²所有基本表的设计均应尽量符合第三范式。

数据库的设计中,如何处理多对多的关系和如何设计主键,是两个有着较大难度、需要重点考虑的问题。下面我们着重从SQL应用、数据库设计范式和查询优化等方面来分析本课题的系统关键技术和实现难点并加以解决。

信息系统的主要任务是通过大量的数据获得管理所需要的信息,这就必须存储和管理大量的数据。因此建立一个良好的数据组织结构和数据库,使整个系统都可以迅速、方便、准确地调用和管理所需的数据,是衡量信息系统开发工作好坏的主要指标之一。

数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照DBMS提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。

(1)数据库结构定义:目前的数据库管理系统(DBMS)有的是支持联机事务处理CLTP(负责对事务数据进行采集、处理、存储)的操作型DBMS,有的可支持数据仓库、有联机分析处理CLAP(指为支持决策的制定对数据的一种加工操作)功能的大型DBMS,有的数据库是关系型的、有的可支持面向对象数据库。针对选择的DBMS,进行数据库结构定义。

(2)数据表定义:数据表定义指定义数据库中数据表的结构,数据表的逻辑结构包括:属性名称、类型、表示形式、缺省值、校验规则、是否关键字、可否为空等。关系型数据库要尽量按关系规范化要求进行数据库设计,但为使效率高,规范化程度应根据应用环境和条件来决定。数据表设计不仅要满足数据存储的要求,还要增加一些如反映有关信息、操作责任、中间数据的字段或临时数据表。

(3)存储设备和存储空间组织:确定数据的存放地点、存储路径、存储设备等,备份方案,对多版本如何保证一致性和数据的完整性。

(4)数据使用权限设置:针对用户的不同使用要求,确定数据的用户使用权限,确保数据安全。

(5)数据字典设计:用数据字典描述数据库的设计,便于维护和修改。

为了更好地组织数据和设计出实际应用数据库,应该注意如下问题:

规范化地重组数据结构:对数据进行规范化表达,这在后面将会具体讨论。

关系数据结构的建立:在进行了数据基本结构的规范化重组后,还必须建立整体数据的关系结构。这一步设计完成后数据库和数据结构设计工作基本完成,只待系统实现时将数据分析和数据字典的内容代入到所设计的数据整体关系结构中,一个规范化数据库系统结构就建立起来了。

建立关系数据结构涉及三方面内容:确定关联的关键指标项并建立关联表;确定单一的父系记录结构;建立整个数据库的关系结构。

在进行了上述数据规范化重组后,已经可以确保每一个基本数据表(我们简称为表)是规范的,但是这些单独的表并不能完整地反映事物,通常需要通过指标体系整体指标数据才能完整全面地反映问题。也就是说在这些基本表的各宇段中,所存储的是同一事物不同侧面的属性。那么计算机系统如何能知道哪些表中的哪些记录应与其它表中的哪些记录相对应,它们表示的是同一个事物呢?这就需要在设计数据结构时将这种各表之间的数据记录关系确定下来。这种表与表之间的数据关系一般都是通过主或辅关键词之间的连接来实现的。因为在每个表中只有主关键词才能唯一地标识表中的这一个记录值(因为根据第三范式的要求,表中其它数据字段函数都依赖于主关键词),所以将表通过关键词连接就能够唯一地标识出某一事物不同属性在不同表中的存放位置。

所谓确定单一的父系关系结构就是要在所建立的各种表中消除多对多(以下用M:N来表示)的现象,即设法使得所有表中记录之间的关系呈树状结构(只能由一个主干发出若干条分支,而不能有若干条主干交错发出若干条分支状况)。所谓的“父系”就是指表的上一级关系表。消除多对多关系可以借助于E-R图的方法来解决,也可以在系统分析时予以注意,避免这种情况的发生。

消除这种M:N情况的办法也很简单,只需在二表之间增加一个表,则原来M:N的关系就改成了M:1,1:N的关系了。

一般DBMS都提供给我们自己定义数据安全保密性的功能。系统所提供的安全保密功能一般有8个等级(0-7级),4种不同方式(只读、只写、删除、修改),而且允许用户利用这8个等级的4种方式对每一个表自由地进行定义。

定义安全保密性的方法一般有如下几种:

a.原则上所有文件都定义为4级,个别优先级特别高的办公室(终端或微机的入网账号)可定义高于4级的级别,反之则定义为低于4的级别。

b.统计文件(表)和数据录入文件一般只对本工作站定义为只写方式,对其它工作站则定义为只读方式。

c.财务等保密文件一般只对中工作站(如财务科等)定义为可写、可改、可删除方式,对其它工作站则定义为只读方式,而且不是每个人都能读,只有级别相同和高级别者才能读。

建立起一个良好的数据指标体系,是建立数据结构和数据库的最重要的一环。一个良好的数据指标体系是建立DB的必要条件,但不是充分条件。我们完全可以认为所建指标体系中的一个指标类就是关系数据库中的一个基本表,而这个指标类下面的一个个具体指标就是这个基本表中的一个字段。但如果直接按照这种方式建库显然还不能算最佳。对于指标体系中数据的结构在建库前还必须进行规范化的重新组织。

在数据的规范化表达中,一般将一组相互关联的数据称为一个关系(relation),而在这个关系下的每个数据指标项则被称为数据元素(data element),这种关系落实到具体数据库上就是基本表,而数据元素就是基本表中的一个字段(field)。规范化表达还规定在每一个基本表中必须定义一个数据元素为关键字(key),它可以唯一地标识出该表中其它相关的数据元素。在规范化理论中表是二维的,它有如下四个性质:

l在表中的任意一列上,数据项应属于同一个属性(如图中每一列都存放着不同合同记录的同一属性数据)。

l表中所有行都是不相同的,不允许有重复组项出现(如图中每一行都是一个不同的合同记录)。

l在表中,行的顺序无关紧要(如图中每行存的都是合同记录,至于先放哪一个合同都没关系)。

l在表中,列的顺序无关紧要,但不能重复(如图中合同号和合同名谁先谁后都没关系,但二者不可重复或同名)。

在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。在这五种范式中,一般只用前三种,对于常用系统就足够了。而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,……,依此类推。

第一范式(first normal form,简称1st NF)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。这个去掉重复项的过程就称之为规范化处理。在本文所讨论的开发方法里,1st NF实际上是没有什么意义的。因为我们按规范化建立的指标体系和表的过程都自动保证了所有

三、急求VF程序设计!管理系统!

设计从分析输入数据着手,输入数据中的某类相关数据可以归纳为一个表,对需要同时调用的若干表,应使它们符合关联要求。数据库设计好后,可以通过分析输出数据来验证其可用性,若发现有的输出数据不能从输入数据导出,须继续向用户征集数据。

本例根据学生信息表和课程基本信息表、教师信息表等输入单据中归纳出包括2个表的数据库,现将这些列出如下:

(1)学生单:xs(学号,姓名,性别,出生日期,是否团员,电话,通信地址,邮编,总成绩,备注)

(2)课程单:kc(课程号,课程名,学期,学分,教师,所在系)

(3)教师单:js(编号,姓名,性别,学历,职称,所授课程,联系方式,备注)

以上括号外的符号串是表名,括号外为字段名表,有下划线的字段为关联关键字,根据系统数据处理的需要,这些表的关联情况如图1.1所示。

图中用矩形框表示表,需要关联的两个表用线段连接,在线的一端标出了关联关键字,表明必须在这一端的表中建立索引。

①同时调用不同表中的数据,须将它们关联,故而有时要在表中补充字段。

②数据库设计须注意合理性。若将不同类的数据放进同一个表中,可能会产生数据余。表的分拆往往能减少数据余,但表的个数增多又会增加程序的复杂性,因为须在不同的工作区打开这些表,而且为了实现数据联用定要对表进行关联。

下面列出学生学籍管理系统所有表的结构与必须的索引,以便于读者理解本例系统,顺便也列出表的部分记录,详细见xs, kc,js。

学生学籍管理系统的运行环境是Windows 9x/Me/2000/XP+Microsoft Visual FoxPro 6.0。

学生学籍管理系统的具体设计如下:

1、学生学籍管理系统主程序(A:\main.prg)

功能:提供程序的主界面和进入系统各功能模块的接口,包括一个自右向左滚动的飞字程序。

set escape off&&设置ESC脱离键不起作用,即误按该键不会终止程序的执行

set colo to 0/7,7/0&&设置VFP系统的默认颜色

set colo to 7+/0+&&从第4行第42列到第30行第92列产生白字黑底的色块

@4,42 clear to 30,92&&显示色块

set colo to 7+/4&&从第3行第40列到第29行第90列产生白字黑底的色块

@3,40 clear to 29,90&&显示色块

@4,42,28,88 box space(9)&&从左上角第4行第42列到右下角第28行88列产生线框

@7,52 say'==学生学籍管理系统=='&&在第7行第52列显示学生学籍管理系统的字样

@8,50 say'-------------------------------'&&在第8行第50列显示分隔线条

@9,57 say'==1.录入数据=='&&在第9行第57列显示1.录入数据字样

@11,57 say'==2.修改数据=='&&在第11行第57列显示2.修改数据字样

@13,57 say'==3.查询数据=='&&在第13行第57列显示3.查询数据字样

@15,57 say'==4.统计数据=='&&在第15行第57列显示4.统计数据字样

@17,57 say'==5.显示数据=='&&在第17行第57列显示5.打印数据字样

@19,57 say'==6.删除数据=='&&在第19行第57列显示6.退出数据字样

@21,57 say'==7.退出=='&&在第21行第57列显示7.退出字样

b1="◆欢迎您使用学生学籍管理系统,请按任意键继续◆重庆工学院吴天美、谭茂燕、袁瑶、王洪梅、曾玲研制。&&将字符串赋给变量b1

do while.t.&&当条件成立时计算机做下面的语句

hz1=substr(b1,x,29)&&取字符串b1从第1个字符到第29个字符赋给变量hz1

@25,51 say hz1&&在第25行第51列显示字符串hz1

bb=inkey(0.6)&&将等待0.6秒击键的inkey函数赋给bb

if bb<>0&&变量bb不等于0,即有击键动作发生

if x>83&&如果变量x大于83个字符

x=1&&那么,将1赋给变量x,即从头开始显示字符串

endd&&与do while循环语句相配对

@27,51 say'请选择1--7:'&&在第27行51列显示请选择1-7:的字样

wait'' to k&&计算机等待用户从键盘输入一个字符给变量k

case k='1'&&当变量k的值等于1时

do a:\input&&计算机跳转到a:\input子程序

case k='2'&&当变量k的值等于2时

do a:\modify&&计算机跳转到a:\modify子程序

case k='3'&&当变量k的值等于3时

do a:\search&&计算机跳转到a:\search子程序

case k='4'&&当变量k的值等于4时

do a:\total&&计算机跳转到a:\total子程序

case k='5'&&当变量k的值等于5时

do a:\dp&&计算机跳转到a:\dp子程序

case k='6'&&当变量k的值等于6时

do a:\del&&计算机跳转到a:\del子程序

case k='7'&&当变量k的值等于7时

set colo to 0/7,7/0&&设置VFP系统的默认颜色

endcase&&与do case选择语句相配对

set default to sys(5)+curdir()

密码功能包括输入密码、修改密码、添加用户、删除用户。只有当用户正确输入本人的密码后才能进入系统,更改密码也只允许更改自己的密码。只有单位的主管人员才有权添加用户和删除用户。为此设置了用户等级,这也是由主管人员设定的。用户等级不同,权限就不同。如用户等级为4,仅能进行档案输出的操作。

(3)其中字段公别为Cpassword(密码)、Name(合法用户名)、Rank(权限等级)。

<1>通过组合框(combo box)选择合法用户,并在其Interactivechange事件中编写代码令输入密码的文本框得到焦点(允许输入值了),该事件发生在当控件的value值改变时。

<2>在“确定”按钮的click事件中编程,先在表中寻找用户名(用locate for语句),再通过判断输入密码与数据库中相应值是否相等来判断密码是否正确。若错误可重新输入,但设置局部变量I来累计输入次数,可设定只能输入三次,当I大于3就释放该表单。并弹出消息框说明不能进入本系统。在主程序中设有全局变量yhdj,若输入密码正确则给yhdj赋值为用户等级字段。

<3>添加“说明”标签,说明密码输入的规定。为增加美观性,可使用Active X控件Three Frame Control。

<4>Active X控件的添加方法与添加自定义类的方法相同。

<5>将标签添加其中,构成说明框。

<6>若希望当鼠标在按钮上停留一秒后有提示框,则可设置表单的Show Tips属性为.T.,按钮的Tooltip Text属性为希望显示在提示框中的内容。

<7>若希望鼠标在按钮上时改变形状,则可设置按钮的Mouse Pointer属性为:99-自定义,Mouse Icon属性为希望出现的图标文件。

<1>修改密码部分与上一表单相同,当输入密码正确后方可输入新的密码或进入系统:若用户等级较高则还可进入增删用户表单。这些均在输入密码文本框的Lostfocus事件中编程。该事件在该文本框失去焦点时发生。

<2>输入新密码后检验密码不能为空,这在该文本框的Lostfocus事件中编程实现。

<3>还设置了确认密码框,防止偶然输入错误。当输入密码与确认密码不同时让用户重新输入。这些是按钮“确定”的Click事件中编程解决的。若无错误,单击“确定”钮后,用replace……with语句代替原来密码。设置缓冲区环境,可以通过前述的tableupdate()和tablerevert()函数真正修改或放弃修改密码。

密码设置表单的设计,包括增加用户和删除用户。

<1>用页框分别完成这两项工作。一页增加用户,另一页删除用户。

<2>增加用户时未使用缓冲区,而用skip-1、ship代替,这样做同样可以把结果直接存入相应的表中。

关于用户的权限问题,因在主程序中设置了全局变量,又在输入密码和修改密码表单中为其赋了值,故在表单操作中只需判断其值就可以完成权限的配置。而在菜单中也需要限制,它也是通过这个全局变量的值,使用菜单的跳过(skip)项实现的,具体将在菜单的设计中介绍。

5、录入模块子程序(A:\input.prg)

功能:提供卡片式的录入数据界面。

use a:\xj&&打开a:\xj.dbf数据库文件

go bott&&将记录指针移到数据库的末尾

hk=recn()&&将当前记录号赋给变量hk

hk1=str(hk,3)&&将变量hk值的前三位,由数值转换为字符串赋给hk1

c1=.t.&&将逻辑型变量“真”赋给变量c1

do while c1&&当条件成立时计算机做下面的语句

a1=spac(2)&&将2个空格赋给变量a1

a2=spac(6)&&将6个空格赋给变量a2

a3=spac(2)&&将2个空格赋给变量a3

a4=spac(8)&&将8个空格赋给变量a4

a10=spac(50)&&将50个空格赋给a10

kk=.t.&&将逻辑型变量“真”赋给变量kk

do while kk&&当条件成立时计算机做下面的语句

@1,5 say"输入第"+hk1+"张卡片"&&在第1行第5列显示输入第"+hk1+"张卡片的字样,其中,hk1为宏替换

hk1=str(hk,3)&&将变量hk的值取3位赋给hk1

@row()+1,5 say"学号:"get a1&&在当前行的下一行第5列显示学号字样

@row(),40 say"姓名:"get a2&&在当前行第40列显示姓名字样

@row()+1,5 say"性别:"get a3&&在当前行的下一行第5列显示性别字样

@row()+1,5 say"出生年月(MM/DD/YY):"get a4&&在当前行的下一行第5列显示出生年月字样

@row()+1,40 say"是否团员:"get a5&&在当前行的下一行第5列显示是否团员字样

@row()+1,5 say"电话:"get a6&&在当前行的下一行第5列显示电话字样

@row()+1,40 say"通信地址:"get a7&&在当前行的下一行第5列显示通信地址字样

@row()+1,5 say"邮编:"get a8&&在当前行的下一行第5列显示邮编字样

@row()+1,5 say"总成绩:"get a9&&在当前行第40列显示是否总成绩字样

@row()+1,5 say"备注:"get a10&&在当前行的下一行第5列显示备注字样

@12,5 say"输入正确吗?(Y/N)"get y&&在第12行第5列显示输入正确吗字样

if y="Y".or.y="y"&&如果变量y值为大写的Y或小写的y

kk=.f.&&那么,将逻辑否赋给变量kk

appe blan&&添加新记录到空白记录

replace学号 with a1,姓名 with a2,性别 with a3,出生年月 with ctod(a4),是否团员 with a5

replace电话 with val(a6),通信地址 with val(a7),邮编 with val(a8),总成绩 with a9,备注with a10&&替换键盘输入的内容到相应的字段中

@14,5 say"继续输入吗?(y/n)"get y&&在第14行第5列显示继续输入吗字样

if y="N".or.y="n"&&如果变量y值为大写的N或小写的n

kk=.f.&&那么,将逻辑否赋给变量kk

do a:\main&&运行A:\main.prg主程序

6、修改模块子程序(A:\modify.prg)

功能:提供卡片式的修改数据的功能。

use a:\xj&&打开数据库文件A:\xj.dbf

wait"该记录不存在!请按任意键返回!"

@6,5 say"继续修改吗?(Y/N)" get y

@row()+1,1 say"学号:" get学号

@row()+1,1 say"性别:" get性别

@row()+1,1 say"出生年月:" get出生年月

@row(),60 say"是否团员:" get是否团员

@row()+1,1 say"电话:" get电话

@row()+1,25 say"通信地址:" get通信地址

@row(),25 say""邮编:" get邮编

@row()+1,1 say"总成绩:" get总成绩

@row(),60 say"备注(双击文本框输入内容):" get备注

@9,15 say"修改正确吗?(Y/N)" get y

@5,15 say"继续修改吗?(Y/N)" get y

7、查询模块子程序(A:\search.prg)

功能:提供按学号检索、按姓名检索、按学号和姓名检索和按学号、姓名、性别检索三个子模块的查询数据功能。

表单上的按钮功能包括:输入查询条件、查询、显示查询条件、清除查询条件、打印预览、打印和放弃。起初,除输入查询条件、显示查询条件和放弃外按钮均是不能选择的。当单击“输入查询条件”按钮时,表单元上的字段均为空,用户可以输入任意知道的条件做为查询条件,这些条件均是“与”的关系。这时,按钮也可以被选择了,若单击查询,查询结果就显示在表单的逐条浏览页上,同时,在该页上还显示了共查询到几条记录及可用移动记录按钮逐条查看记录。

显示查询条件按钮可以查看本次查询输入的条件;清除查询条件按钮可以清除本次查询的条件以备下一次查询;打印按钮将本次查询结果输出到打印机;放弃按钮则放弃本次查询并释放本表单元。

为了方便查看,还可以在表单的浏览佤页中一次查看到全部查询到的记录;并能在浏览字段设定页中设定佤浏览时该字段的显示与否。

(3)通过BEGIN TRANSACTION命令开始一次事务处理,

(4)通过ROLLBACK命令结束这一事务处理,

(5)并且将对表所作的各种更改存储下来。

(6)新增一条记录用于存储查询条件,

(7)并新建一个过程parsecondition,它返回一个表达式,形如“字段名所输入的值”。而后在查询按钮的Click事件中运用循环语句判断在哪个字段中输入了值,并将所有输入的备件用AND连接,作为用SET FILTER TO命令过滤记录的表达式和计算记录数的FOR语句的内容。

(8)在SET FILTER TO语句和计算记录数的COUNT语句中都用到了宏代换符“&“,宏代换在编写代码时很有用,它返回一个变量的内容。在实时处理时都要用到。

(9)为了将自己挑选的字段显示在佤浏览表格(Grid)中,首先建立一个页框(Pageframe),将上面利用拖放操作形成的标签和文本框放在第一页“逐条浏览”上,而后为每个字段名建立一个复选框,放置在页框的“浏览字段设定”页上,有对钩表示选中,无对钩,表示不选。默认状态下是全选(全部打对钩),单击后去掉对钩,表示不选。为动态反映,

(10)建立一个全局变量数组存储。并在“全局浏览”页面被激活时给表格的每个column的header1.Caption和Controlsouce赋值为数组中的值即可。

set safety off&&重建索引时不提示覆盖

inde on学号 to a:\xh&&按学号建立索引文件xh.idx

inde on学号+姓名 to a:\xhxm&&按学号和姓名建立索引文件xhxm.idx

inde on姓名 to a:\xm&&按姓名建立索引文件xm.idx

@row()+1,17 say"请输入功能号" get dd pict"9" rang 0,4

use a:\xj inde a:\xh&&打开数据库文件xj.dbf并打开按学号建立的索引文件xh.idx

find&n1&&查找字符串n1,&为宏替换

use a:\xj inde a:\xhxm

@3,10 say"请输入学号:" get n1

loca for学号=n1.and.姓名=n2.and.性别=n3&&查找条件是学号为n1并且姓名为n2并且性别为n3的记录

wait'对不起!没找到。请按任意键返回!'

set devi to scre&&设置屏幕显示字符

@row()+1,5 say"出生年月:"+dtoc(出生年月)

@row()+1,40 say"是否团员:"+是否团员

@row(),40 say"通信地址:"+通信地址

@row()+1,5 say"总成绩:"+总成绩

@20,20 say"不继续查找打N,否则打任一键" get y

8、统计模块子程序(A:\total.prg)

功能:提供统计人数、平均成绩和党员人数的功能。

@row()+1,17 say"请输入功能号" get dd pict"9" rang 0,3

coun to aa&&计算记录数并把值赋给aa

aver总成绩 to aa&&对总成绩求平均并把平均值分别赋给变量aa

@4,20 say"求总成绩平均成绩为:"

coun for是否团员="是" to aa&&统计党员数,并把值赋给aa

9、显示模块子程序(A:\dp.prg)

功能:提供卡片式的显示记录的功能。

@row(),5 say"您现在浏览的是第"+hk1+"张卡片"

@row()+1,5 say"出生年月:"+dtoc(出生年月)

@row(),40 say"是否团员:"+是否团员

@row()+1,40 say"通信地址:"+通信地址

@row()+1,5 say"总成绩:"+总成绩

wait'请按n键浏览下一条记录,按l键浏览上一条记录,按y键返回主程序!' to k

go top&&将文件记录指针移到文件记录的首记录

go bott&&将文件记录指针移到文件记录的最后一条记录

10、删除模块子程序(A:\del.prg)

功能:提供逻辑与物理删除的功能。

@4,20 say"请输入要删除记录的学号" get de

wait"查无此卡片!击回车键退出!"

@row(),5 say"您现在浏览的是第"+hk1+"张卡片"

@row()+1,5 say"出生年月:"+dtoc(出生年月)

@row(),40 say"是否团员:"+是否团员

@row(),40 say"通信地址:"+通信地址

@row()+1,5 say"总成绩:"+总成绩

@13,20 say"是这个记录吗?(Y/N)" get yn

@14,20 say"真要删除吗?(Y/N)" get yy

delete&&删除当前记录(逻辑删除,但不是真正将当前文件记录从VFP中删除)

@15,15 say"删除的记录从盘中彻底清除吗?(Y/N)" get y

pack&&真正删除当前记录(物理删除)

文章分享结束,vf系统交易平台和急求VF程序设计!管理系统!的答案你都知道了吗?欢迎再次光临本站哦!

声明:本文内容来自互联网不代表本站观点,转载请注明出处:https://www.41639.com/15_313949.html

相关推荐