21世纪,这个科学技术突飞猛进的时代。人与人之间的信息交流量急剧增加,传统的信息处理与决策手段已经不能适应社会的需要,信息的重要性和信息处理问题的紧迫性空前提高。21世纪也是一个房产发展迅速,房产信息繁杂的时代。对于房屋出租者来说,大量繁杂的房产,合同,租金信息难以通过传统方式来管理;对于租房者来说,大量的房产信息也使他们不知所措。房屋租赁管理系统正是针对此类问题开发的管理系统。
房屋租赁管理系统通过计算机系统来管理房屋租赁情况,可以解决大量的房产信息的查询和管理,便于出租者更好的进行物业管理,同时也为租房者提供方便。使原本复杂的房产、租金、合同信息简单化。
房屋租赁管理系统是管理房屋出租、出售信息资料而设计的信息管理系统,包含有后台数据库和前台应用系统两部分。后台数据库要求数据的一致性和完整性、安全性、用以储存单位工程文档资料一级相关信息,前台应用程序要求应用程序功能完备、易于使用和界面友好等。
此次房屋租赁管理系统使用Microsoft Visual FoxPro 6.0进行编写。数据库系统的特点:数据的独立性、最小的数据冗余度、最多的共享性、数据的统一管理与集中管理。
在本设计中,通过对房屋租赁信息的管理和数据流程分析,设计的数据项和数据结构如下:
房屋租赁基本信息的录入,包括房屋编号,价格、房屋面积、户型、地址、联系方式等信息。
(1) 房源基本信息的修改。
(2) 房源基本信息的删除。
(3) 房源基本信息的查询。
房屋租赁管理系统用户的基本信息的录入,包括用户编号、用户名、用户密码、用户类型。
(1) 用户基本信息的修改。
(2) 用户基本信息的删除。
(3) 用户基本信息的查询。
房屋租赁会员基本信息的录入,包括会员编号、会员姓名、会员卡号、会员电话、注册日期、会员积分、会员地址。
(1) 会员基本信息的修改。
(2) 会员基本信息的删除。
(3)会员基本信息的查询。
在本设计中,通过对房屋租赁信息的管理和数据流程分析,设计的数据项和数据结构如下:
在数据库中建立4张表:
房源信息表:房屋编号,价格、房屋面积、户型、地址、联系方式
用户表:用户编号、用户名、用户密码、用户类型。
会员表:会员编号、会员姓名、会员卡号、会员电话、注册日期、会员积分、会员地址。
房屋租赁:房源编号、会员编号、会员姓名、租贷日期、截止日期。
包括数据的录入、数据的修改、数据删除、数据检索。
将四张自由表加入到wyglxt数据库中。
在上面的实体以及实体之间的关系的基础上,形成数据库的表格以及各个表格之间的关系。房屋租赁管理系统的设计与实践的各个表格的设计结果如下的几个表格所示。每个表格表示在数据库中的一个表。
1)“房源信息表”表的结构
2)“用户表”表的结构
3)“会员表”表的结构
4)“房屋租贷”表的结构
在需求分析、概念结构设计的基础上得到数据库的逻辑结构设计之后,我们就可以在Visual FoxPro60数据库系统中实现该逻辑。
首先打开Visual FoxPro60,建立项目wyglxt,在项目中新建数据库(如图2.1所示)
图2.1 建立数据库
表建立好后向表中输入信息(如图2.2所示)
图2.2 填写表中信息
建立相应约束和联系。
房源信息表:房屋编号(主索引)
用户表:用户编号(主索引)
会员表:会员编号(主索引)房屋租贷表:
房源代码(普通索引)、会员编号(普通索引)
我们先建立房源信息表和用户表之间的一对一联系,具体方法是在数据库设计器中用鼠标单击选中房源信息表中的主索引房源编号,然后按住鼠标左键,并拖动鼠标到用户表的用户编号索引上(鼠标箭头会变成小矩形形状),最后释放鼠标联系就建好了。用同样的方法可以建立用户表和房屋租赁之间的联系以及房屋租赁和会员表之间的联系。(如图2.3所示)
图2.3建立相应约束和联系
如果在建立联系时操作有误,随时可以通过编辑修改联系。方法是用鼠标右击要修改的联系,然后从弹出的菜单中选择“编辑关系”打开“编辑关系”对话框进行修改。
3.1登录模块
输入用户名称和密码,如果用户名、密码正确,则允许进入主控制平台,如果输入错误则给出信息提示,重新输入。
图3.1 登陆模块代码设计
图3.2 登陆模块示意图
3.2会员管理模块
用户管理模块:系统管理员进行用户权限设置和用户的浏览,包括添加新会员以及对会员姓名和用户权限的更改,一般会员不能使用该项功能。
修改密码模块:任何会员都可以在登录系统后修改自己的的密码。(如图3.3所示)
图3.3 会员管理模块示意图
当会员用户输入用户id、旧密码、新密码和确认密码并按修改密码键后,检验其输入是否正确,若正确,就会显示“修改密码成功”字样并关闭表单;若用户id或旧密码不正确,则会显示“用户id或密码不对,请重新输入!”字样;若新密码和确认密码不一致,则会显示“新密码不一致,请重新输入!”字样。
要求将“修改密码”按钮设置为Default按钮。另外,密码限制为6位数,输入时显示星号(*)。
3.3合同管理模块
控件属性设计:
插入5个标签设置分别其caption属性为:房源编号、会员编号、会员姓名、租赁日期、截止日期
插入5个空白文本框设置分别其caption属性为:text1、text2、text3、text4、text5
插入2个命令按钮设置分别其caption属性为:保存、退出
代码设计:
保存的click语句:USE 住户表
a=alltrim(thisform.text1.value)
b=alltrim(thisform.text2.value)
c=alltrim(thisform.text3.value)
d=alltrim(thisform.text4.value)
e=alltrim(thisform.text5.value)
insert into房屋租贷表(房源编号、会员编号、会员姓名、租赁日期、截止日期) values (a,b,c,d,e)
USE
退出的click语句:thisform.release
3.4 退出系统模块
退出系统
设置”退出”按钮的click代码, Thisform.release
为期三天的VFP课程设计很快就结束了,我们小组设计的“房屋租赁管理系统”也圆满完成。看着自己和小组组员们一起做好的系统能够良好运行,心里美滋滋的,整个过程中有很多苦与乐,我体验了,也真正享受到了这过程中给我带来的乐趣。
这里首先感谢老师这一个学期来的辛勤教导,让我了解并掌握了VFP这门编程语言,虽然我们的课程结束了,但是作为一名走向世界的大学生,我知道我们还需要继续更深入的学习。同是也很感谢我的小组组员们,我们会一起团结合作才能有这样的成果。
通过这次的课程设计,让我们队VFP课程掌握得更加熟练了,理解更加透彻了,我们的团结合作能力和责任心也得到了培养。总体来说,此次课程设计收获颇丰。谢谢老师,谢谢队友们!
[1]《数据库技术及应用》
作者:李雁翎 出版社:高等教育出版社 2006.
[2]《Visual FoxPro及其应用系统开发》
作者:史济民 汤观全 出版社:清华大学出版社 2003.
[3]《Visual FoxPro 课程设计(第二版)》
作者:张跃平 出版社:清华大学出版社 2008.
[4]《数据库系统概论》
作者:萨师煊 出版社:高等教育出版社 2000.
第三章 程序设计基础
一、知识点:
1、VFP命令的两种执行方式:交互方式和程序方式。
2、程序与程序文件
1)程序:完成某项指定的任务而须执行的命令序列。
2)程序文件:以文件的形式存储在磁盘上的命令序列。
3、结构化程序设计的三种基本结构.
1) 顺序结构:
简单的输入语句(如INPUT、ACCEPT、WAIT)。
赋值语句(=、STORE、REPLACE、SCATER、GATHER)。 简单的输出语句(?、??)。
辅助语句(CLEAR、SUSPEND、CONTINUE、CANCEL、NOTE | *、&&)。
环境设置语句(如:、SET TALK ON/OFF 等)
2) 选择结构(IF~ENDIF、IF~ELSE~ENDIF、DO CASE~ENDCASE)
3) 循环结构(DO WHILE~[loop]~[exit]~ENDDO、SCAN~ENDSCAN、FOR~ENDFOR)
4、多种结构嵌套的原则:只能包含,不能交叉。
5、子程序:相对与主程序而言的一个独立的程序文件,其建立方法与建立程序文件的法相同。子程序的调用与返回:
调用:DO<文件名>[WITH<参数列表>]
返回:RETURN[TO MASTER][<表达式>]
6、过程与过程文件
1) 过程:以PROCEDURE<过程名>开头,以ENDPROC结尾的子程序段。
2) 过程文件:由若干个过程或自定义函数组成,以文件形式保存在外存的.prg文件;使用时要打开该文件,然后选择其中的过程或函数调用,不用时要关闭。
3) 过程文件的打开:SET PROCEDURE TO <过程文件名>
4) 过程文件的关闭:SET PROCEDURE TO 或 CLOSE PROCEDURE
7、参数的传递及作用域
1)利用内存变量的属性传递参数
1
内存变量的属性小结
2)利用DO <文件名> WITH <参数表达式列表>传递参数
传递参数命令格式:DO <文件名> WITH <参数表达式列表> 接收参数命令格式:PARAMETER<变量列表> 参数传递与接收的规则:
(1) 接收参数的命令必须出现在被调用程序(子程序)中的第一行; (2) 当WITH <参数表达式列表>中是简单内存变量列表时,称为传址或
引用。这时,主调程序中的内存变量被隐含起来,其值随PARAMETER中对应变量的值的变化而变化;
(3) 当WITH <参数表达式列表>中是内存变量表达式列表或当个内存
变量用圆括号括起来(即为明表达式)时,称为传值。这时,主调程序中的内存变量不被隐含,其值也不随PARAMETER中对应变量的值的变化而变化;
(4) 对过程而言,传址或传值不受 SET UDFPARAMS TO
VALUE/CONFERENCE 的影响。因为它是针对自定义函数的。
8、自定义函数 1)定义
自定义函数可以是一个独立的命令文件(.PRG),也可以放在一个过程文件中。 2)建立
FUNCTION <自定义函数名>
[PARAMETER<形式参数列表>
2
[语句序列]
ENDFUNC
与过程不同的是必须用RETURN <表达式>返回一个值。
3)自定义函数的调用与参数传递
调用形式:自定义函数名([〈参数表达式列表〉])
参数传送:既可以用传值方式,也可以用引用方式。具体规则如下:
(1)如果变量在〈参数表达式列表〉中是以表达式的形式出现,那么是传值方式;
(2)如果变量在〈参数表达式列表〉中是以单变量的形式出现,那么取决于
SET UDFPARAMS TO VALUE/CONFERENCE 的设置(缺省为传值方式);
(3)无论SET UDFPARAMS TO 可以在单变量前冠以@,以强制传址。如:S(@A,B,C)
二、要点与难点
1、 INPUT、ACCEPT与WAIT这三个与输入有关的命令有何不同?
INPUT命令可接受数值型、字符型、日期型等数据类型的输入,在输入时应根据数据类型加相应的定界符。
ACCEPT命令只能接受字符串的输入,在输入时不必加定界符。
WAIT命令只能接受单字符的输入,常用于表示程序是否继续、是否中断或是否结束的语句。
2、 RETURN、RETRY、CANCEL和QUIT这四个命令有何不同?
RETURN命令:指的是返回到调用行的下一行。
RETRY命令:返回到调用行本身,可实现程序的重复调用。
CANCEL命令:中断、异常结束。并返回到系统命令窗口。
QUIT命令:返回到操作系统。
3、 SCATTER [FIELDS<字段名列表>] TO <数组名>
4、 GATHER FROM <数组名>
5、 常见的环境设置语句:
SET DEFAULT TO <文件路径>:将<文件路径>设置为系统缺省的路径。 SET CONSOLE ON/OFF:激活或废止从程序中向VFP主窗口或活动的用户自定义窗口的输出。
SET DELETE ON/OFF:决定是否忽略表中已做过删除标记的记录。 SET EXACT ON/OFF:决定字符串比较运算符“=”两边内容是否必须完全匹配,缺省是不必完全匹配。
3
SET TALK OFF/ON:关闭或打开系统交互对话显示方式。缺省为打开显示。
SET FILTER TO <条件>:指定访问当前表中记录时必须满足的条件。
6、 FOR I=X TO Y SCAN
语句系列 与 语句系列 有何不同?
ENDFOR ENDSCAN
前者主要处理普通内存变量循环有关的程序;后者主要处理表中满足条件的记录循环有关的程序。
7、 内存变量的属性有那几种?它们间有何不同?
参见上表。
8、 利用DO <文件名> WITH <参数表达式列表>传递参数与自定义函数中
的参数传送有何不同。
前者传递参数是在主程序与子程序之间进行调用和传递,可分为传值和引用两种方式:
引用:WITH后的<参数表达式列表>是内存变量列表时,每个内存变量的值传给PARAMETERS中对应变量,调用程序中的变量被隐藏。当被调用的程序中形参的值发生改变时,调用程序中的变量也跟着发生相应的变化。
传值:WITH后的<参数表达式列表>是内存变量表达式或用括号将单个变量括起来时,每个内存变量表达式的值传给PARAMETERS中对应变量,调用程序中的变量不被隐藏。当被调用的程序中形参的值发生改变时,调用程序中的变量不会跟着发生相应的变化。
后者是在函数内部实行变量间的参数传送,也有传值和引用两种方式。它调用方式为:自定义函数名 ([<参数表达式列表>])
若<参数表达式列表>中以表达式出现,则是以传值方式传送;若<参数表达式列表>中以内存变量的形式出现,则缺省采用传值方式,若要采用引用方式,需在参数变量前加@。
9、 程序设计中常用的函数有:
(1)数值函数
INT(X/Y)、MOD(X,Y)、X%Y、X-INT(X/Y)*Y
(2)字符串函数
SUBSTR(S,N1,N2)、LEN(S)
(3)日期与时间函数:
DATE()、DTOC(D)、YEAR(D)、MONTH(D)、DAY(D)、
DOW(D)、CDOW(D)。
(4)转换函数
UPPER(C)、LOWER(C)、CTOD(S)、DTOC(D)、ASC(C)、
CHR(N)、STR(N,N1,N2)、VAL(S)
4
(5)数据库函数:
FCOUNT()字段个数函数、FIELD()字段名函数、BOF()、
EOF()、DELETED()、RECCOUNT()、RECSIZE()、RECNO()、
(6)IIF(条件表达式,满足条件时所取的值、不满足条件时所取的值)
(7)测试函数:FOUND()测试是否找到相应的记录。
10、程序设计的常用算法:
总原则:变量必须采用“先定义后使用”的原则,程序语句必须有输入和输出语句;函数采用有“先入口后出口”的原则。条件或循环语句必须配套使用,即IF?ENDIF、FOR?ENDFOR。
1、 累加:通常采用下列步骤
(1) S=<初值>
(2) <循环开始>:此时需定义一个循环变量,一般采用I或J,
同时大多采用FOR??ENDFOR语句来完成。
(3) S=S+A
(4) <循环结束>
(5) <输出累加合计值>
2、累乘:通常采用下列步骤
(1)T=<初值>
(2)<循环开始>:此时需定义一个循环变量,一般采用I或J,同时大多采用FOR??ENDFOR语句来完成。
(3)T=T*A
(4)<循环结束>
(5)<输出累乘积值>
3、字符串的粘合:通常采用下列步骤
(1)S=””或S=SPACE(0)
(2)<循环开始>:此时需定义一个循环变量,一般采用I或J,同时大多采用FOR??ENDFOR语句来完成。
(3)S=S+A 或S=A+S
前者采用字符串的顺序粘合,后者采用字符串的倒序粘合。
(4)<循环结束>
(5)<输出字符串S>
4、自定义函数:通常采用下列步骤
(1)PARAMETER <形参数列表>
(2)程序语句
(3)RETURN <参数>:<参数>省略表示不带参数返回。
5
三、程序阅读题。阅读下列程序,写出运行结果。
1、 SET TALK OFF
M=3
DO WHILE M<10
N=2
DO WHILE N<M
IF INT(M/N)=M/N
EXIT
ENDIF
N=N+1
ENDDO
IF N=M
?M
ENDIF
M=M+1
ENDDO
SET TALK ON
2、 设N、P的输入值分别为6,3。注:字符”A”的ASCII码为65。SET TALK OFF
CLEAR
INPUT "N=" TO N
INPUT "P=" TO P
FOR I=1 TO N
?SPACE(N?I+1)
IF I<=P
FOR J=1 TO 2*I?1
??CHR(ASC("A")+J?1)
ENDFOR
ELSE
FOR J=1 TO (2*I?1)?(I?P)
??CHR(ASC("A")+J?1)
ENDFOR
ENDIF
ENDFOR
SET TALK ON
6
3、 注:字符”A”的ASCII码为65。
SET TALK OFF
CLEAR
C="一二三四五六七八九十"
B="ABCD"
R=0
L=LEN(B)
FOR I=1 TO L
W=SUBSTR(B,I,1)
D=ASC(W)+R-65
S=""
IF D<10
S=SUBSTR(C,2*D+1,2)
ELSE
S=SUBSTR(C,2*MOD(D,10)+1,2)
ENDIF
?W+"----->"+S
R=R+11
ENDFOR
SET TALK ON
4、 设M的值分别为:12345,205354,105075,123450
SET TALK OFF
S=0
DO WHILE .T.
CLEAR
INPUT "M=" TO M
N=M
DO WHILE .T.
R=N-INT(N/10)*10
IF R=0
S=S+1
ENDIF
N=INT(N/10)
IF N=0
EXIT
ENDIF
7
ENDDO
IF S>1
EXIT
ENDIF
ENDDO
?S
SET TALK ON
5、 SET TALK OFF
A="ABCDEFGHIJKLMNOPQRSTUVWXYZ" B=LEN(A)
X="X-"
Y="Y-"
I=1
DO WHILE I<=B
J=I
X=X+SUBSTR(A,I,1)
IF I/2=INT(I/2)
Y=Y+SUBSTR(A,I,1) I=I+1
LOOP
ENDIF
I=I+J
ENDDO
?X
?Y
6、 设M的值为:10
SET TALK ON
CLEAR
INPUT "M=" TO M
I=1
S=0
?
DO WHILE I<=M
IF ZS(I)
IF I*2<=M
?? STR(I*2,5)
8
S=S+1 ELSE EXIT ENDIF ENDIF I=I+1
ENDDO
?"S="+STR(S,3)
SET TALK ON
****ZS.PRG****
PARA X
J=2
DO WHILE J<X
IF INT(X/J)=X/J
EXIT
ENDIF
J=J+1
ENDDO
IF J=X
RETURN .T.
ELSE
RETURN .F.
ENDIF
7、 设N,M的值分别为6,8。
SET TALK OFF
CLEAR
INPUT "N=" TO N
INPUT "M=" TO M
X=MAX(N,M)
FOR I=X TO M*N
IF MOD(I,M)=0 AND MOD(I,N)=0
Y1=I
EXIT
ENDIF
ENDFOR
?"Y1="+ALLTRIM(STR(Y1,19))+",Y2="+ALLTRIM(STR(M*N/Y1,19)) 9
SET TALK ON
8、N值为4,字符”A”的ASCII码为65。
SET TALK OFF
CLEAR
INPUT "N=" TO N
FOR I=1 TO N
?SPACE(N?I+1)
FOR J=1 TO 2*I?1
??CHR(ASC("A")+J?1) ENDFOR
ENDFOR
FOR P=N-1 TO 1 STEP ?1
?SPACE(N-P+1)
FOR K=1 TO 2*P?1
??CHR(ASC("A")+K?1) ENDFOR
ENDFOR
SET TALK ON
9、 设A的值为:ABCDEF
SET TALK OFF
CLEAR
ACCEPT "A=" TO A
L=LEN(A)
P=SPACE(0)
I=1
DO WHILE I<L
P=P+SUBSTR(A,L?I,2) I=I+2
ENDDO
?A+"------>"+P
SET TALK ON
10
四、程序填空:
四、程序填空
说明:阅读下列程序说明和程序,将程序代码缺少的内容填入 中。
1、 已知某系统的口令PASSWORD(存在内存变量文件PASS.MEM中)含多个非空格字符,判断口令是否正确只需比较其长度及第3个到第6个字符是否完全相等,允许操作者录入三次(口令录入时要求关屏),如果口令正确正常返回,否则给出提示信息。
SET TALK OFF
CLEAR
TIME=1
DO WHILE TIME<=3
MPASS=SPACE(L)
ACCEPT “请输入口令:”
ACCEPT TO MPASS
SET CONSOLE ON
IF
EXIT
ENDIF
TIME=TIME+1
ENDDO
IF ?”口令错误!你无权使用本系统!”
ELSE
?”欢迎进入本系统!”
ENDIF
SET TALK ON
2、 完成下列删除表文件的程序:
SET TALK OFF
CLEAR
11
DO WHILE .T.
ACCEPT ”请输入要删除的表文件名(扩展名略):” TO FILENAME
FILENAME=TRIM(LTRIM(FILENAME))+”.DBF”
ACCEPT “该文件不存在!继续吗?(Y/N)” TO YN
IF =”N”
EXIT
ENDIF
ELSE
(3)
LIST
WAIT “是这个文件吗?(Y/N)” TO YN
IF LOWER(YN)=”y”
USE
(4)
EXIT
ELSE
WAIT ”继续吗?(Y/N)” TO YN
IF LOWER(Y/N)=”n”
USE
EXIT
ENDIF
ENDIF
ENDDO
SET TALK ON
3、 给定程序的功能是:根据输入的数据,判断给定的数是否偶数,可以循
环输入。
SET TALK OFF
CLEAR
YN="Y"
DO WHILE UPPER(YN)="Y"
请输入自然数:" TO N
IF
? "不是偶数!"
ELSE
12
? "是偶数!"
ENDIF
WAIT “是否还要输入其他自然数” TO YN
ENDDO
? "再见!"
SET TALK ON
RETURN
4、 给定程序的功能是:根据输入的数据,计算不大于该数的奇数累加和。
SET TALK OFF
CLEAR
YN="Y"
DO WHILE UPPER(YN)="Y"
INPUT "请输入两位以内的正整数:" TO N
STORE 0 TO X,Y
Z="0"
DO WHILE
X=X+1
IF
LOOP
ELSE
Z=Z+"+"+STR(X,2)
Y=Y+X
ENDIF
ENDDO
? "&Z="+STR(Y,4)
WAIT "继续计算?(Y/N)" TO
ENDDO
? "再见!"
SET TALK ON
5、 求表达式(M!+N!)/(M?N)!的值(注:M>N,计算结果输出宽度
10位,小数2位)。
*****MN.PRG*****
SET TALK OFF
CLEAR
SET
INPUT “M=” TO M
13
INPUT “N=” TO N
STORE 0 TO SM,SN
DO JC2 WITH M,SM &&计算M!
DO JC2 WITH N,SN &&计算N!
DO MC2 WITH
? “表达式结果为S=”SET PROC TO
SET TALK ON
PROC JC2
PARA X,Y
I=1
T=1
DO WHILE I<=X
T=T*I
I=I+1
ENDDO
RETURN
PROC MC2
I=1
T=1
DO WHILE I<=X
T=T*Y
I=I+1
ENDDO
X=T
RETURN
6、 下面程序可以形成一个主对角线上元素为?1,其它元素为0的6*6方
阵。
SET TLAK OFF
CLEAR
FOR I=1 TO 6
FOR J=1 TO 6
IF
A(I,J)=0
14
ELSE
ENDIF
ENDFOR
ENDFOR
SET TALK ON
7、 下列程序完成一个自定义函数,其功能为:对任意一个正数值型数据(该
数可有小数若干位,整数部分不超过12位)自动进行小数部分四舍五入取2位,并将其转换为中文大写金额,如10230.4567转换后为壹万零千贰佰叁拾零元肆角陆分。
*****ZH.PRG*****
PARA X
SET SET TALK OFF
Y= (2)
Y=Y?100
I=1
DO WHILE Y>0
P=MOD(Y,10)
D=S1(P)+S2(I)+D
I=I+1
ENDDO
RETURN D
PROC S1
PARA A
C1=”零壹贰叁肆伍陆柒捌玖”
RETURN SUBSTR(C1,2?A+1,2)
PROC S2
PARA B
C2=”分角元拾佰仟亿拾佰仟”
RETURN
8、 给定程序的功能是:在表STD.DBF中,按姓名查询记录。
SET TALK OFF
15
USE STD
CLEAR
DO WHILE ANS
CLEAR
ACCEPT "请输入姓名:" TO XM
IF .NOT.FOUND()
? "查无此人!"
ELSE
CLEAR
? "学号:",学号
? "姓名:",姓名
? "数学成绩:",数学
? "英语成绩:",英语
? "政治成绩:",政治
? "总分:",总分
ENDIF
WAIT "是否继续查询 (Y/N)" TO JX IF ANS=.F.
ENDIF
ENDDO
USE
SET TALK ON
9、 下面程序完成输出下列图形: 1
222
33333
4444444
555555555
4444444
33333
222
1 SET TALK OFF
CLEAR
N=5
16
P=2*N?1
FOR I=1 TO P
IF
?SPAC(N?I+1) FOR J=1 TO ??STR(I,1) ENDFOR ELSE
FOR K=1 TO 2*(2*N?I) ?1
??STR (4)
ENDFOR
ENDIF
ENDFOR
SET TALK ON
10、 下面程序完成从键盘输入20个数,去掉20个数中的最大值和最小值,
然后求平均值。
SET TALK OFF
CLEAR
S=0
N=1
DO WHILE N<=20
INPUT "B=" TO B
IF MAX<B
MAX=B
ENDIF
IF MIN>B
ENDIF
N=N+1
ENDDO
?"A
SET TALK ON
17
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过…
课程设计总结经过一个学期对《C++程序设计》的学习,我学习到了基本的理论知识,了解到了C++语言程序设计的思想,这些知识都为我的课…
《化工原理课程设计》总结本学期顺利完成了化学工程与工艺专业共100名同学的化工原理课程设计,总体来看学生的工艺计算、过程设计及绘图…
PLC自动门课程设计心得体会:通过此次C语言程序设计实践本人实在是获益不浅!C语言是上个学期开的课程所以这个学期并没怎么看过当要开…
课程设计心得体会在初学C语言的一个学期后,学校组织我们进行了C语言实训,尝试编写一些有难度的程序。在为期两周的时间中,同组同学共同…
VFP程序设计课程心得(第10小组)牟超20xx4940139为期一周的VFP很快就结束了,我们的设计项目“医院管系统”也完成了。…
VFP课程设计总结专业:物流管理指导老师:学号:姓名:目录1.绪论1.1系统设计目标1.2系统开发关键技术2.系统分析3.VFP课…
VFP课程上机操作报告一目的关系数据库管理系统课程的学习不仅需要理论上的深入探讨而且需要通过实践上机自己开发一个数据库管理信息系统…
计算机等级考试成绩查询系统目录内容摘要2第1章概述311系统实现的目标312系统实现的方案313系统实现的环境314具体的开发方法…
VFP课程设计总结专业旅游管理班级09428183学号0942818311姓名宋苗一目录1建立数据库项目以及表2添加类3做表单把类…