vfp实验报告

时间:2024.3.31

实验报告

实验名称  房屋租赁管理系统开发

实验项目 使用Visual FoxPro数据库和程序设计知识设计应用系统

小组组长   刘立同 08级工程管理080122008017

同组组员   邢文秀 09海洋经济学 130132009022

赵丹   08工程管理   080122008036

赵红   08法学       110222008123

陈国富 08工程管理   080122008001

丁兆振 08工程管理   080122008004

指导老师   刘兰芳

报告日期  2010624日星期四

报告成绩                       

1、系统概述

1.1任务要求

 1.1.1设计题目               

房屋租售管理系统

  1.1.2设计目的

   通过使用visual foxpro 6.0进行程序的编制,实现对房屋租售的计算机管理

  1.1.3设计要求

   ①具有信息录入功能

·房屋信息录入的内容是:房屋编号、规格、地址、应收押金、月租金、过期扣款等内容

·客户信息录入的内容是:客户姓名、身份证号、联系方式、通讯地址、租房时间、交纳租金情况等

·注:为确保记录的完整性,其中关键字段内容必须全部入②具有信息存储功能

·能够存储房屋信息、客户信息、租赁与归还等重要信息

③具有浏览功能

·能够浏览房屋及客户的详细信息

·能够浏览每种档次房屋的收费情况

·能够浏览每位客户目前的租赁房屋情况

④具有查询功能

 ·能够按客户的编号或名称查询客户有关信息

·能够按房屋编号查询房屋有关信息

·能够按房屋规格查询房屋有关信息

⑤具有统计功能

·能够统计月/年收入情况

·能够统计并显示客户名单

·能够统计并显示租赁过期名单

⑥具有报表功能

·能够将各种统计结果通过打印机输出

·能够利用报表制作租赁证 并通过打印机输出

⑦具有数据维护功能

对已录入的各项数据可以由专门 人员进行删除和修改

1.2可行性分析

根据任务要求分析,此设计题目完全可以通过Vsual FoxPro6.0软件作为开发工具来制作完成,利用Visual FoxPro6.0软件制作一个数据库的应用管理系统,这个系统可以很好的实现任务要求中所提的各项功能指示。

该系统可以使目前的房屋租赁管理工作大为改观。目前,租赁管理工作人员在租赁房屋时,要经历登记、查找、统计等枯燥的手续,既繁琐又费时,许多记录不便长期保存。本设计将改变这种局面,利用计算机最为友好、最为方便的windows界面进入系统,并可以让管理员轻松自如的通过鼠标与键盘的简单敲击,来完成浏览、查询、租赁\停租、登记、信息的增删改及数据的统计等工作,真正实现管理自动化,大大提高工作效率。

2、系统设计

2.1设计思想

    模块化设计

    根据系统模块化设计方法,把整个系统划分为若干功能模块,某些模块有可以划分为多个子模块,某些子模块又可以划分为多个二级子模块,经过层层分解后,最后的子模块的功能便能十分明确和简单了。这样做,不仅展现了一个应用软件系统的整机性和层次性,而且通过屏幕对每个应用模块明确的提示,在这些提示下,用户可方便的进入系统的每一层进行操作,可以非常方便的使用这一数据库应用系统。

 2.2系统总框架

     本系统功能较强大,设计时采用了表单、程序、报表等多种visual foxpro 6.0所给的方法和手段,生成了数据库、库表、报表、程序及其他文件。同时,还使用了大量的图形和部分图标文件,使得该系统图文并茂,通俗易懂,便于操作。系统主要分为五大模块,这些模块又由若干子模块及二级子模块组成,最终形成一个结构紧凑、简洁,功能明确、完整的房屋租赁系统。

下图为系统结构总框架图。

文本框: 房屋租赁管理系统 


2.3  主要界面

  根据总框架图,本系统首先设计了开始界面(如图),在开始界面操作人员经过系统合法验证后,才能真正进入系统工作。系统的五大模块是通过主窗口 表单的分页选择来实现,操作人员通过选择不同的选项卡进入不同的模块,再通过你选项卡中的不同按钮进入到下一级子模块中,这些子模块又由不同的表单体现出来,这样经过一层或几层表单的调用,最终必然达到预期的目的。

1、开始界面

2、主窗口第一选项卡界面

3、主窗口第二选项卡界面

4、主窗口第三选项卡界面

5、主窗口第四选项卡界面

6、主窗口第五选项卡界面

3、数据库设计

3.1 数据库结构分析

3.1 .1:本系统设计一个数据库,名为:房屋租赁管理系统.dbc,在这个数据库中主要建立以下4个表:

①客户.dbf:存放客户有关信息

②房屋.dbf:存放房屋有关信息

③租赁.dbf:存放租赁与退租等有关信息

④密码.Dbf:存放密码等信息

在本数据库中,除以上4个主要表之外,还有一些临时表,它们的作用主要是存储一些临时使用的记录,这些记录是在程序运行过程中必不可少的内容,一旦程序运行完毕即可将其清除。

3.1.2 表的结构

客户.dbf

房屋.Dbf:

租赁.Dbf

密码.Dbf

4、界面设计

4.1

4.1.1设置表单过程代码

     表单启动初始化(Init)过程代码:

     set safe off          && 设置重复文件覆盖时不显示提示信息

     set  date  to  ansi    && 设置日期格式

     set  talk  off         && 关闭屏幕显示

     public  t             && 设置公共变量t,并设其初始值为0

     t=0                  && 设置初始值为0

表单激化触发(Activate)过程代码:

      if  t=1

      thisform.release       && 释放本表单

      do  form 主窗口.scx  &&打开“主窗口”表单

4.1.2 设置命令按钮组各按钮的过程代码:

      “进入系统”按钮单击触发(click)过程代码:           do form 密码.scx             && 打开“密码”表单

      “退出系统”按钮单击触发(click)过程代码:thisform.release               && 释放此表单

4.2 密码界面

4.2.1 设计思路

           系统在运行开始界面表单的时候,单击“进入系统”按钮后,系统首先提供的是输入密码界面。由操作人员输入密码后,系统进行判定。如果密码输入有误,系统将有“出错信息”提示,等待操作人员重新输入密码,直至输入正确为止。

           打开“密码”表单的同时打开数据库中事先已建好的“密码”表,通过代码的执行,将文本框中输入的密码与“密码”表中的密码进行对照。

     (1)表单启动调用(Load)过程代码:

          sele  1

          use 密码    &&在1号工作区打开数据库中的“密码表”

     (2)表单启动,初始化(Init)过程代码:

          thisform.text1.setfocus()   &&光标聚集在密码输入框中

          thisform.text1.passwordchar=”*” &&密码输入框中显示的字符用“*”加密

4.2.2 设置选项按钮组各按钮的过程代码:

     (1)“确认”按钮click过程代码:

       public m.密码     && 设置公共变量m.密码

       sele  1           && 进入1号工作区

       set  exac  on     && 设置精密查询

       loca for 密码=alltrim(thisform.text1.value)    

&& 在已打开的密码表中查找密码字段与文本框填写内容相符合的记录

       if  found ()

          m.密码=密码

          t=1          && 公共变量t=1(此变量将传回开始界面表单,完成关闭当前所有表单,打开下一个表单工作)

          thisform.release   && 释放表单

       else

          thisform.text1.passwordchar=” ”    && 将文本框passwordchar属性值改为“无”

          thisform.text1.value=”密码错误”

          a=inkey (1)                     && 显示1秒钟

          thisform.text1.value=” ”           &&将文本框清空

          thisform.optiongroup1.value=0      &&“确认”按钮弹出来

          thisform.text1.setfocus ( )

          thisform.text1.passwordchar=”*”

          t=1

       endif

     (2)“返回”按钮click过程代码:

         thisform.release

4.3 主窗口界面

4.3.1 设计思路

     通过使用一个分多个选项卡的页面,可以将系统的五大功模块非常清晰地展现出来,每个选项卡对应着一个功能模块,在每一个选项卡中添加多个命令按钮或命令/选项按钮组,以便进入功能模块的每个子模块。

4.3.2 准备工作

   (1)表单的过程代码:

       在表单中编写了启动调用和启动初始化两个过程代码,下面主要说明一下启动初始化过程代码:

        set safe off     &&设置重名文件覆盖不显示提示信息

        set talk off     &&关闭屏幕显示

   (2)制作结束操作按钮

          编写该命令按钮click过程代码

         clear memory                  &&清空内存

         thisform.release                &&释放本表单

         clear events                    &&清空所有事件

         close all                       &&关闭所有表

    通过点击这个命令按钮,将结束对系统的任何操作,完全退出该系统。

4.4数据的浏览

   以“浏览客户记录”表单为例,说明实现此设计的步骤和方法。

4.4.1 准备工作

     (1)表单的组成:“浏览客户记录”表单主要是由浏览区域构成

     (2)表单的数据环境:选中表单单击鼠标右键,在快捷菜单中选中“数据环境”项,在打开的数据环境设计器中,再单击鼠标右键,在快捷菜单中选中“添加”项,通过“添加表或视图”对话框将“客户”表添加到数据环境中。

   (3)表单过程代码:

      1、表单启动调用(Load)过程代码:

         sele 1

         use 客户

      2、表单启动初始化(Init)过程代码:

         public.m.no1   &&设置公共变量后续查询工作而设置

         m.no1=1

      3、表单激活触发(Activate)过程代码:

         go  k      &&指针指向k记录,k是查询后的返回值

         thisform.refresh

4.4.2 建造浏览区域

     (1)制作显示区域

          打开本表单的数据环境,在数据环境中“客户”表的字段处按住鼠标左键拖进表单   

     (2)命令按钮组

       1、“首行”按钮click过程代码:

           if  recount( ) >0     &&如果“客户”表记录大于0

           go  top

           thisform.refresh

           thisform.commandgroup1.command1.enabled=.f.

           thisform.commandgroup2.command1.enabled=.f.

           thisform.commandgroup3.command1.enabled=.t.

           thisform.commandgroup4.command1.enabled=.t

endif

2、“上行”按钮click过程代码:

if  recount ( )>0

skip  -1

if  bof ( )=.t.

go  top

endif

thisform.refresh

if  recount()=1

 thisform.commandgroup1.command1.enabled=.f.

thisform.commandgroup1.command2.enabled=.f. 

thisform.commandgroup1.command3.enabled=.t.

thisform.commandgroup1.command4.enabled=.t

else     

              thisform.commandgroup1.command1.enabled=.t

              thisform.commandgroup1.command2.enabled=.t

              thisform.commandgroup1.command3.enabled=.t

              thisform.commandgroup1.command4.enabled=.t

           endif

endif

3“下行”按钮click过程代码

t=1

if  recount()>0

       skip

       if  eof()

          go bottom

          t=recn() 

       endif

       thisform.refresh

if  recno()=t

thisform.commandgroup1.command1.enabled=.t

thisform.commandgroup1.command2.enabled=.t

thisform.commandgroup1.command3.enabled=.f

thisform.commandgroup1.command4.enabled=.f

else

thisform.commandgroup1.command1.enabled=.t

thisform.commandgroup1.command2.enabled=.t

thisform.commandgroup1.command3.enabled=.t

thisform.commandgroup1.command4.enabled=.t

endif

endif

4“末行”按钮click过程代码

If  recount()>0

   go bottom

   thisform.refresh

   thisform.commandgroup1.command1.enabled=.t

   thisform.commandgroup1.command2.enabled=.t

   thisform.commandgroup1.command3.enabled=.f

   thisform.commandgroup1.command4.enabled=.f

endif

4.5 数据的查询

   下面以客户信息查询为例

查询“确定”按钮click过程代码:

If  thisform.optiongroup1.value=1

   locate for alltrum(客户编号)=alltrim (thisform.text1.value)

   if  found()

      m.no1=recno 

       thisform.release

else k=messagebox(“无此客户,请重新输入客户编号!”,0+48,“提示信息”)

if  k=1

   thisform.text1.setfocus

   endif

endif

endif

4.6 房屋的租赁与退租

 (1)在表单的数据环境中添加一个表:“租赁”表

 (2)表单过程代码

     1表单启动调用Load过程代码

    close all

           sele 1

           use  租赁

           repl预租月数with,退租with.f.

           repl all 租赁with.t.for租赁日期<>{}

           repl all 退租with.t.for退租日期<>{}

           set clele on

           clele for租赁日期and退租日期<>{}

           thisform.refresh

           go top

2表单启动初始化(init)过程代码

  Publick gq  

  gq=0

  set talk off

  set date to ansi

  set clele on

  thisform.text1.value=k1

  thisform.text2.value=0

  thisform.text3.value=0

  thisform.text4.value=0

  set exac on

  sele 1

if  k1=space(6)or k1=””

   set filt to

   thisform.optiongroup1.value=1

   thisform.text.value=space(6)

 else

     set filt to

   gq=0

   loca for 租赁日期<>{}and退租日期={}and租赁日期<date()and客户编号=alltrim(thisform.text1.value)

   if found()

   gq=1

 endif

 set filt to客户编号=alltrim(thisform.text1.value)and租赁日期={}

 go top

thisform.grd租货.readonly=.t.

thisform.grd租货.column3.readonly=.f.

thisform.optiongroup1.value=4

thisform.optiongroup1.option5.enable=.t.

thisform.optiongroup1.option7.enable=.f.

endif

 thisform.refresh

 thisform.gra租赁.readonly=.t.

 thisform.gra租赁.column3.readonly=.f.

 thisform.label8.visible=.f.

 thisform.lable9.visible=.f.

4.7 数据添加

 以“给新客户注册”表单为例

①在表单制作前,利用UFP命令窗口输入命令,生成一个与客户表结构完全相同的临时表“khtemp”

②在表单的数据环境中加一个表“khtemp”

③表单启动调用load过程代码     表单初始化init过程代码

sele 1                                      thisform.command2.enable=.f.

set safe off                             thisform.command3.enable=.f.

use khtemp                             表单激活触发active过程代码

zap                                         if not empty (thisform.text客户姓名.Value)and not empty

sele 2                                     (thisform.text身份证号.value)and not empty (thisform.text

use 客户                                联系方式.value )

                                               thisform.command.enable=.t.

                                               endif

④建造添加数据区域

  此区域利用表单数据环境中的“khtemp”表生成。打开本表单的数据环境,在数据环境中“khtemp”表的字段外按住鼠标左键将其拖进表单,这就是需要建造的添加数据区域。

⑤写文本框的过程代码

·身份证号文本框有效值判断valid过程代码

 if len(alltrim(this.value))<>15and len(alltrim(this.value))<>18

   this.value=“身份证号错误“

   a=inkey(1)

   thisform.text身份证号.value=””

 endif

·客户姓名 身份证号和联系方式三个文本框的变值触发(interactivechange )过程代码

 if not empty (thisform.text客户姓名.Value)and not empty(thisform.text身份证号.value)and notempty (thisform.text联系方式.value )

thisform.command.enable=.t.

endif

·命令按钮代码

新用户注册click过程代码

 thisform.command3.enable=.t.

 thisform.command1.enable=.f.

 thisform.text客户姓名.setfocus()

 sele 2

 k=recc()

 sele 1

 append blank

 replace 客户编号 with right (“00000”+alltrim(str(k+1)),6)

 thisform.reflesh

·保存click 过程代码

use in 1

sele 2

appe form khtemp

k=recc()

sele 1

use khtemp

set safe off

zap

appe blank

repl 客户编号 with right(“00000”+alltrim(str(k+1)),6)

thisform.refresh

thisform.command2.enable=.f.              &&确定失效

thisform.command3.enable=.t.              &&取消失效

·取消click 过程代码

 k=thisform.text客户编号.value

 dele

 pack

 appe blank

 replace 客户编号 with k

 thisform.reflesh

 thisform.command2.enable=.f.

 thisform.command.enable=.t.

4.8 数据统计

本系统有两部分统计内容

 ①汇总统计:主要是按月提供收入情况统计 2情况统计:列出客户名单求租赁过期人员名单

4.8..1 准备工作

(1)表单组成  表单主要有统计显示表格和统计打印按钮两部分组成

 (2)在租赁表单数据环境中添加客户 表

 (3)表单过程代码:启动调用load 过程代码

close all

sele 1

use 客户

set filt to 租赁

go top

4.8.2 制作统计显示表格

 1利用数据环境中的客户表生成统计显示表格

 2利用生成器选择需要显示的表字段

4.8.3 制作统计打印按钮

1根据数据库中的客户表,通过报表向导来完成租赁人员“zl“报表的制作

2打印按钮click过程代码

 report form zl noconsole to printer

 thisform.release

4.9 管理维护

    本系统为管理人员设置了数据维护和系统维护两个部分。在数据维护中,主要设置了“修改客户数据库”和“修改房屋数据表”。在系统维护中主要设置了“修改个人密码”

  下以“修改房屋数据表“为例

①在“修改房屋数据表“表单的数据环境中添加房屋表

②表单的过程代码

 ·表单启动调用代码

close all

sele 1

use 房屋

③制作修改内容显示表格

       利用数据环境的“房屋”表生成修改内容显示表格。在数据环境中“房屋”的标题按住鼠标左键将其拖进表单,组成一个二维表方式多条显示表中记录内容的显示表格,如果要对“房屋”表中的内容进行修改,只需在此表格中操作即可。

设计经验及总结

首先,在设计之前一定要对所设计的系统有较为深刻的了解,对各种要求加以认真地分析,并给予分类,对分类进行功能模块化设计,画出系统流程图和结构图。这样在详细设计时可做到有条不紊地一步步地进行。

其次,要认真分析数据间的关系,想好要建多少表,表与表间的关系如何建立,画出实体间关系图。设计一开始就应建立自己的项目管理,在项目管理的基础上,在新建各种文件。如:数据库、数据库中的表、表单、报表及其他文件(包括图片及图标文件)。

第三,深入了解Visual FoxPro6.0中的命令、函数、属性、事件的特点。因为在程序设计过程中要大量地使用它们,如果使用得好,很复杂的功能将能很轻松地实现。

最后,在综合报告的实验与制作中,我组成员不仅对VFP有了更深层次的了解,还在合作过程中学会了相互学习、合作与信任。我们收获了成果也收获了朋友。这会对今后的学习与工作产生深远的影响。

更多相关推荐:
vfp实验报告范例

指导老师万润泽实验名称VISUALFOXPRO操作基础同组人日期日成绩一实验目的1理解各种不同的数据类型2常量的含义以及各种不同数据类型的常量3变量的含义以及字段变量内存变量系统变量和数组变量的使用二实验环境仪...

vfp课程设计实验报告

江苏师范大学数据库原理及应用实验报告实验名称班级情况数据库班级姓名学号实验日期20xx年1月9日指导教师吴庆忠江苏师范大学测绘学院1一实验目的及意义通过这次数据库应用系统开发实践我相信本人对数据库应用系统开发有...

vfp实验指导书的实验报告7

第四章查询与视图实验七查询与视图的创建和使用一用查询设计器设计查询1在项目管理器中设计一个基于单个表的查询2AS是代表所有二本地视图的创建可以使用CREATESQLVIEW命令创建本地视图1询设计器多了一个选项...

vfp实验指导书的实验报告11

实验十一标签文本框编辑框与微调框控件一标签Name和caption属性的用途是不同的设置了autosize之后就不能够通过鼠标调整标签控件的大小了许多控件的中英文对照很重要要区别相似的控件二文本框三文本框的输入...

vfp实验指导书的实验报告6

实验六据库表的拓展属性与参照完整性规则一掌握数据库表的扩展属性的设置方法12利用表设计器设置数据库表的长表名记录有效性规则触发器和表注释在表设计器3利用命令设置数据库表的扩展属性可以使用CREATETABLES...

vf课程设计实验报告模板

经济管理学院专业班级学生姓名学号指导教师课程设计题目会计0904李彦春丁胜峰年月日11一课程设计的目的和意义字体宋体字号小四目的根据数据库管理系统课程讲授内容自主完成一个管理系统的设计掌握课堂所讲的内容熟悉VF...

转盘塔萃取操作及体积传质系数测定实验报告

课程名称:过程工程原理实验指导老师:成绩:_________________实验名称:转盘塔萃取实验实验类型同组学生姓名:_一、实验目的和要求(必填)二、实验内容和原理(必填)三、主要仪器设备(必填)四、操作方…

vf实验报告1

VisualFoxpro实验上机报告

Vf实验报告

Vf实验报告实验1常量变量数组函数和表达式1VFP有哪三种工作方式菜单方式命令方式程序方式2顺序执行如下两条命令后显示的结果是mquotABCquotmmquotDEFquotm3在VisualFoxPro中要...

VF程序设计实验报告册(实践教程)

VisualFoxPro程序设计课程实验报告手册学院年级专业姓名学号任课教师上机地点以上由学生填写实验教师签字西南大学计算机与信息科学学院计算机基础教育系年月1日一实验说明本课程实验分为一般性实验验证和简单设计...

VF实验报告答案

实验报告程序设计答案求圆环面积分别用子程序过程函数实现用子程序实现主程序SettalkoffClearS0Input请输入大圆的半径tor1Input请输入小圆的半径tor2Doareawithr1r2圆环的面...

vf sql实验报告08

第5章VisualFoxPro中SQL语言的应用实验报告123二实验过程实验结果实验过程概述class中增加一个班级记录号班级号班级名称班级人数11ICSOA02信息管理0802班管理学院0student中增加...

vfp实验报告(6篇)