重庆计算机VF二级试题真题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重庆计算机VF二级试题真题
<>必选项;[]可选项;…前面内容重复;I任选项
1.*将任意一个三位数反向输出
x=123
x1=int(x/100)
x2=int(mod(x,100)/10)
x3=mod(x,10)
x1+x2*10+x3*100 ~~~~~321
2.x=123
y=str(x,3) &&将数值转化为字符串
right(y,1)+subs(y,2,1)+left(y,1) ~~~~~~321
3.xb="女"
iif(xb='男',1,iif(xb='女',2,3)) &&条件函数 ~~~~~~2
4.note () **或^ * / %(求余数) + -从高到低;
==(精确等于),<>、#、!(不等于);
Not and nor (依次降级)
5.*查找姓“张”的学生
at("张",姓名)=1;
substr(姓名,1,2)=”张”;
姓名=”张”&&非精确比较;
left(姓名,2)=”张”;
6.*20岁以下学生
Date()-出生日期<=20*365;
Year(date())-year(出生日期)<=20;
7.*少数民族学生
少数民族否;
少数民族否=.T.;
Iif(少数民族否,”少数民族”,”汉族”)=”少数民族”
*use 学生&&这是vf语言首先需要做的,以下操作省略此条
8~39 8.*显示第五条记录
go 5
display;
list record 5;
list for recn()=5;
display for recn()=5
9.*显示记录号为偶数的记录
list for mod(recno(),2)=0 &&recno()是记录号函数;
list for recno()%2=0;
list for int(recno()/2)=recno()/2;
list for int(recno()/2)<>recno()/2 &&显示记录号为奇数的记录10.*显示汉族女学生的记录
list for 少数民族否=.F. and 性别="女"
list for !少数民族否 and 性别="女"
11.*显示女学生的姓名、性别、年龄及简历
list 姓名,性别,year(date())-year(出生日期),简历 for;
性别="女"
Use &&关闭表
12.*表结构显示list/display structure;
表结构修改modify structure;
表记录显示list=display all;
表记录修改edit/change/browse/replace··with··for/while··13.*将汉族学生数学成绩减少10分,并将外语成绩增加20分replace 数学 with 数学-10,外语 with 外语+20 for 少数民族否
14.*将6号记录的出生日期修改为1983年9月7日
go 6
replace 出生日期 with {^1983/09/07};
replace 出生日期 with {^1981/09/07} for recno()=6
15.*将汉族学生的数学成绩减少20分,将少数民族学生的外语成绩增加20分Replace 数学 with 数学-20 for 少数民族否=.F.
Replace 外语 with 外语+20 for 少数民族否 &&必须用两条命令,因条件不同
16.绝对定位 go top/bottom;相对定位skip
17.* 插入记录
Insert/insert blank
18.*添加记录
append &&用全屏方式进行添加记录
append blank &&添加空白记录,在尾部
19.*删除记录
delete for recno()=3 or recno()=5 &&添加删除标志
brow
set delete on &&做了删除标志的不参与运算
recall &&取消删除标志
pack &&物理删除记录
zap=delete all 和 pack
20.*复制表结构
copy structure to 学生1 fields 学号,姓名,性别
21.*复制表
copy to new1 for 数学>=60
use new1 &&显示表的记录必须先打开新表
list
copy to new2 sdf
type new2.txt &&查看新文本文件
copy to new3 delimited
type new3.txt &&查看新文本文件,若为字符型,带有""
22.*从其他文件向表添加数据
use 学生表
copy stru to 学生2
use 学生2
list &&显示记录为空
list stru
append from 学生表 &&将学生表记录添加到学生2中
list &&显示学生2表记录
23.数据表文件的删除
delete file new1.dbf &&扩展名不能省略
erase 表1.dbf &&删除的文件必须关闭
24.*表的排序
* A(ascding 升序);D(descding 降序);C(加上忽略大小写),改变物理顺序USE 学生表
sort on 数学/DC to sx
use sx
list next 5
25.*索引文件
*种类:单索引文件:.idx;复合索引:.cdx;改变逻辑顺序
*用表单设计器建立的索引号都是结构复合索引
*To 单索引文件;tag 复合索引文件;compact 压缩的单索引文件
*复合索引系统默认升序,单索引只能升序索引,默认普通索引
*按年龄降序,年龄相同数学成绩升序(复合索引)
index on str(year(date())-year(出生日期),2)+str(100-数学) tag xx desc *按数学降序(单索引)
index on -数学 to su
*按学号升序,不允许有编号相同的记录
index on 学号 tag xh unique
*按出生日期升序(非结构复合索引)
index on 出生日期 tag cs of ss
26.*打开索引文件
*打开表后再打开索引文件
set index to su
set index to &&关闭当前单索引文件
*表和索引文件同时打开
Use 学生 index su
27.*确定主控索引
*go top/bottom指向逻辑顺序
use 学生
set index to su,name
set order to 2 &&设置name 为主索引
list next 3
set order to 1 &&设置su为主索引,或set order to su
list next 3
set order to &&取消主索引
28.*关闭索引文件,不能关闭结构索引;use 命令关闭当前表和相关索引close index
set index to
29.*删除索引
Delete file su &&删除单索引文件
Delete tag all;delete tag cs &&删除复合索引文件索引标志
30.*更新索引
Reindex[compact]
31.*顺序查询定位
locate for !少数民族否 and 性别='男'
disp 姓名,数学,year(date())-year(出生日期)
continue &&继续查找下一个
recno(),姓名,数学,year(date())-year(出生日期)
found()
32.*索引查询定位 &&继续查找下一个skip
index on 出生日期 tag sy4
d={^1983/09/07}
seek d &&内存变量,不加&
disp
index on 姓名 tag xm
find 王大为 &&查找字符型,不需要加定界符
disp
seek '张大力' &&查找任意数据,需要加定界符
disp
33.*统计记录个数
count for 性别='女' to x1
count for 性别='男' to x2
x1,x2
/doc/0b1008458.html,e 学生
aver year(date())-year(出生日期) to y
y &&求表达式平均值
sum 数学,外语 to a,b
a,b &&求数学,外语总分
calculate avg(数学),min(数学),max(数学) to x,y,z
x,y,z &&avg,数值表达式平均值;max,数值,日期或字符
35.*分类汇总
*按性别、数学和外语成绩进行汇总
index on 性别 tag xbhz
total on 性别 to hz
use hz &&先建立索引再分类汇总
list
在一个工作区只能打开一个表文件,且一个表文件也仅仅在一个工作区打开Select 0选择当前没有被使用的最小工作区为当前工作区
36.*在1号工作区打开学生表并取别名
use 学生 alias zg in 1;
use 学生 alias zg in A &&1~10号别名A~J
37.*表的逻辑关联
Set relation to…into<工作区号>;选择additive建立一对多关系Set relation to 取消所有关联,取消后仍是两个表
38.*表的物理联接
Join with …to…for/fields…
39.按性别对数学成绩和外语成绩汇总
Index on 性别 tag c
Total on 性别 fields 数学,外语 to xbcj
分别统计男女生平均年龄
Average(date()-出生日期)/365 for 性别=’男’
Average(date()-出生日期)/365 for 性别=’女’
显示性别为女的学生数学成绩的总分,平均分,最高分和最低分Cal sum(数学),avg(数学),max(数学),min(数学) for 性别=’女’to x1,x2,x3,x4
x1,x2,x3,x4
40.建立数据库文件:creat database 学生
打开数据库:use 学生.dbc &&.dbc不能省略;open database…关闭数据库:close all/database
修改数据库:modify database …
删除数据库:delete database …
41.建立数据库索引
父表建立主索引,子表建立普通索引;
清理数据库;
编辑参照完整性
42.数据库表设计器字段有效性
规则:性别=’男’ or 性别=‘女’
信息:’性别只能为男或者为女’
默认值:’女’
43.SQL命令动词
数据查询:select
数据操纵:insert update delete
数据定义:creat drop alter
44.*用SQL命令建立学生管理数据库,包括学生表、选课表、课
程表
*用creat建立数据库
creat database 学生管理
*建立学生表
creat table 学生表(学号 c(5) primary key,姓名 c(8),性别 c(2),年龄 i, 数学 n(5,1) check (数学>0) error "成绩应该大于0!" defa 0,外语n(5,1)) *建立课程表
creat table 课程表(课程号c(5) primary key,课程名c(10),学分n(1)) &&primary key 建立主索引
*建立选课表
creat table 选课(学号c(5),课程号c(5),成绩i check(成绩>=0 and 成绩<=100) error "成绩值范围0~100!" default 60,foreign key 学号tag 学号reference 学生,foreign key 课程号tag 课程号reference 课程号)
&&reference 与 foreign key 成对出现,建立普通索引
Creat table=creat dbf
45.*删除表
Open database 学生管理
Drop table 课程
46.*修改表结构
*为课程表增加一个整数型的学时字段
alter table 课程 add 学时 i check(学时>=16) error "学时应该大于16!" *讲课程表的课程字段名由10改为20
alter table 课程 alter 课程名 C(20)
*为学生表外语字段添加有效性规则
alter table 学生 alter 外语 set check(外语>=0 and 外语 <=100) error "外语成绩应在0~100之间!"
*删除学时字段的有效性规则
alter table 课程 alter 学时 drop check
*删除课程表中学时字段
alter table 课程 drop column 学时
*将学生表中数学字段改为数学成绩字段
alter table 学生 rename column 数学 to 数学成绩
*在学生表中定义学号和姓名为候选索引
alter table 学生表 add unique 学号+姓名 tag ran
*删除学生表候选索引ran
alter table 学生表 drop unique tag ran
47.*数据查询
Select …from…where…order by/group by…into/to…
Top与order by 连用,默认升序
Into array:数组;into cursor:临时表;
into dbf/table:数据表(先运行再加into)
48.*简单查询
*列出所有学生名单
select * from 学生 &&*表示输出所有字段,以浏览方式显示
*列出所有学生去掉重名
select distinct 姓名 as 学生名单 from 学生
select 姓名 from 学生 distinct
*查询数学成绩在80~95分之间的学生
select * from 学生 where 数学>=80 and 数学<=95
*统计男学生人数
select count(*) as 男生人数from 学生where 性别='男' &&count(*)求满足条件的数值
*将所有学生数学成绩四舍五入,只显示学号,姓名,数学cj
select 学号,姓名,round(数学成绩,0) as 数学cj from 学生
*求所有学生的数学平均成绩、最高分和最低分
select avg(数学成绩) as 数学平均分,max(数学成绩) as 数学最高分,min(数学成绩) as 数学最低分from 学生
49.*带有特殊运算符的条件查询
Where 子句中的特殊运算符
All:满足子查询中所有值的记录
Any:满足子查询中任意一个值的记录
Between:字段值在指定范围内
Exists:测试子查询中查询结果是否为空,若为空,则返回.f.
In:字段值是结果集合或子查询中的内容
Like :对字符型数据进行字符串比较,
通配符“-”代表一个字符;“%”代表0或多个字符
Some:满足集合中某个值
*查询数学成绩在80到95分之间的学生
select 数学成绩 from 学生 where 数学成绩 between 80 and 95 *列出学号第二个字符为7的所有学生,注意学号字段类型为字符型
select * from 学生 where 学号 like "-7%"
select * from 学生 where left(学号,2)="7"
*列出所有姓赵的学生名单
select 学号,姓名 from 学生 where 姓名 like"赵%"
select 学号,姓名 from 学生 where 姓名=’赵’
50.*简单连接查询
*等值连接与非等值连接
*查询所有学生的成绩单,要求给出学号、姓名、课程号、课程名和成绩
select a.学号,a.姓名,b.课程号,c.课程名,b.成绩from 学生表a,选课表 b,课程 c where a.学号=b.学号and b.课程号=c.课程号*查询男生的选课情况,要求列出学号,姓名,课程号,课程名和学分数
select a.学号,a.姓名,b.课程号,c.课程名,c.学分 from 学生表 a,选课表 b,课程 c where a.学号=b.学号 and b.课程号=c.课程号 and 性别="男"
*自连接查询
*列出选修01102课的学生中,成绩大于学号为070410的学生该
门课成绩的那些学号及成绩
select a.学号,a.成绩from 选课表a,选课表b where b.课程号="01102" and
b.学号="070410" and a.课程号=b.课程号 and a.成绩>b.成绩
51.*嵌套查询
*返回单值的子查询
*列出选修“数据库原理”的所有学生的学号
select 学号 from 选课表 where 课程号=(select 课程号 from 课程 where 课程名="数据库原理")
*返回一组值的子查询
*列出选修01101课的学生中期末成绩比选修01102课的最低成绩还要高的学生的学号和成绩
select 学号,成绩from 选课表where 课程号="01101" and 成绩>any(select 成绩 from 选课表 where 课程号="01102") &&any运算符的用法
*列出选修01101课的学生的成绩比选修01102课的最高还要高的学生的学号和成绩
select 学号,成绩from 选课表where 课程号="01101" and 成绩>all(select 成绩 from 选课表 where 课程号="01102") &&all运算符的用法
*列出选修“数据库原理”或“软件工程”课程的所有学生的学号select 学号 from 选课表 where 课程号 in(select 课程号 from 课程 where 课程名="数据库原理" or 课程名="软件工程") &&any运算符的用法
in等价于=any
52.*超连接查询
Select…from…inner/left/right/full join…
*内部链接
*列出男生的学号、课程号及成绩
select a.学号,b.课程号,b.成绩 from 学生表 a,选课表 b where
a.学号=
b.学号 and a.性别='男'
select a.学号,b.课程号,b.成绩 from 学生表 a inner join 选课表 b on
a.学号=
b.学号 where 性别="男"
53.*排序
*按性别顺序列出学生的学号、姓名、性别、课程名及成绩,性别相同的再按课程名排序,最后按成绩由高到低排序
select a.学号,a.姓名,a.性别,c.课程名,b.成绩 from 学生表 a,课程 c,选课表 b where a.学号=b.学号 and b.课程号=c.课程号
ord er by a.性别,c.课程名,b.成绩 desc
*输出学生表中数学成绩最高的前5名学生的信息
select * top 5 from 学生表 order by 数学 desc
54.*查询结果输出
Into array 数组;cursor 临时表;dbf/table 表
To file 文本文件
*输出学生表数学成绩最高的前五名保存到test
select a.学号,b.课程号,b.成绩 from 学生表 a,选课表 b;
where a.学号=b.学号 and a.性别='男' to file test
*输出合并
*列出选修01101或01102的所有学生和学号
select 学号 from 选课表 where 课程号="01101" union select 学号 from 选课表 where 课程号="01102"
*分组统计查询与筛选
*分别统计男女人数
select 性别,count(性别) from 学生 group by 性别
*分别统计男女学生中数学成绩大于85分的学生人数
select 性别,count(性别) from 学生 group by 性别where 数学成绩>85
&&where:分组前所有记录满足的条件
错误:select 性别,count(性别) from 学生 group by 性别 having 数学>85 &&having:查询后的结果是否满足条件
55.*插入记录
*向学生表中添加记录
insert into 学生表 values("231002","杨阳","男",87.0,88.0)
insert into 学生表(学号,姓名) values ("231109","李兵")
dimension a(5)
a(1)="221013"
a(2)="张阳"
a(3)="女"
a(4)=97.0
a(5)=88.0
insert into 学生表 from array a
56.*删除记录
*将学生表中所有男生的记录逻辑删
Delete from 学生 where 性别=’男’
*删除学生管理里学生表中所有少数民族的学生
Delete from 学生管理!学生 where 少数民族否
Delete from 无条件删除所有记录
57.*更新记录
*将学生表中姓名为杨阳的学生的外语成绩改为93分
update 学生 set 外语=93 where 姓名="杨阳"
*将所有男生的各科成绩加20分
update 选课表set 成绩=成绩+20 where 学号in (select 学号from 学生表where 性别="男")
update一次只能在单一表中更新记录
58.*查询哪些仓库有工资多于1210元的职工
Select distinet 仓库号 from 职工 where 工资>1210
*给出在仓库WH1或WH2工作,并且工资少于1250元的职工号
select 职工号 from 职工 where 工资<1250 and
(仓库号="WH1" or 仓库号="WH2")
*哪些城市至少有一个仓库的职工工资为1250元
select dist a.城市 from 仓库 a,职工 b where 工资=1250 and
a.仓库号=
b.仓库号
*找出和职工E4有相同工资的所有员工
select * from 职工 where 工资=(select 工资 from 职工 where 职工号="E4") and 职工号!="E4"
*找出供应商所在地数目
select count(dist 地址) from 供应商
*求所有职工的工资都多于1210元的仓库的平均面积
select avg(面积) as 平均面积。
from 仓库where 仓库号in(select 仓库号from 职工 having min(工资)>1210 group by 仓库号)
*求每个仓库的平均工资
select avg(工资) as "平均工资",仓库号 from 职工 group by 仓库号
*查询出向供应商S3发过订购单的职工的职工号和仓库号
select a.职工号,a.仓库号 from 职工 a,订购单 b where a.职工号=b.职工号and b.供应商号="S3"
*查询出和职工E1、E3都有联系的北京的供应商信息
select * from 供应商 where 供应商号 in(select 供应商号 from 订购单where 职工号="E1" or 职工号="E3") and 地址="北京"
*查询出向S4供应商发出订购单的仓库所在的城市
select a.城市 from 仓库 a, 职工 b,订购单 c where a.仓库号=b.仓库号 and b.职工号=c.职工号 and 供应商号="S4"
*查询出由工资多于1230元的职工向北京的供应商发出的订购单号
select dist a.订购单号 from 订购单 a,职工 b,供应商 c where a.
职工号
in(select b.职工号 from 职工 b where 工资>1230) and 地址="北京"
select a.订购单号 from 订购单 a,职工 b,供应商 c where a.职工号=b.职工号 and a.供应商号=c.供应商号 and 工资>1230 and 地址="北京"
*查询哪些仓库中至少已经有一个职工的仓库信息
select * from 仓库 where 仓库号 in(select 仓库号 from 职工)
59.*比较SQL和VF语句
1.creat table 学生(学号 c(6),姓名 c(8),性别 l,入学成绩 n(5,1))
creat 学生
2.alter table
Use 学生 modify structure
3.insetr into 学生(学号,姓名) values(“000006”,”李四”)
Ues 学生 insert
4.delete from 学生 where 姓名=”李四”
Use 学生 delete for 姓名=”李四” pack
5.update 学生 set 入学成绩=入学成绩+5 where 性别=”女”
Use 学生 replace 入学成绩 with 入学成绩+5 for 性别=”女”
6.drop table 学生
Delete file 学生.dbf
60.*建立查询 creat query
联接:join on;筛选:where;排序依据:order by;分组依据:group by
查看查询文件内容:查询;查看SQL
运行查询:do 学生.qpr
打开查询设计器:modify query 学生
定向输出查询文件:查询;查询去向
显示文件内容:显示;浏览
字段函数表达式:year(date())-year(出生日期) as 年龄
61.*查询只能查询,视图可以查阅数据还可以将数据更新并返回数据库;
视图不能单独存在
启动数据库设计器:creat view
钥匙符号:指定字段是否为关键字
铅笔符号:指定字段是否可以更新
62.*参数化视图
查询;视图参数。
输入:sex。
“筛选”选项卡:选择学生性别,实例栏输入:?sex。
运行,输入:”女”
63.*多表设计及更新
内部链接;视图参数:学号;实例:?学号;更新条件:选课,课程号为关键字;运行:”070401”
64.*项目文件创建
Creat project
65.*程序
逻辑结构:顺序结构、选择结构、循环结构
建立或修改程序文件:modify command &&类型确定,扩展名默认值:.prg
Modify file &&类型不确定
执行程序:do jj
Return:结束本程序的运行,返回调用它的上级程序,若无上机程序则返回命令窗口
Return master:从子程序返回到主控程序继续执行
66.*顺序结构程序设计
set talk off &&设置会话状态关闭
clear &&清除屏幕上所有内容
use 学生表
display 姓名,性别,数学,外语
use
set talk on &&恢复默认数字
return
67.*设置会话状态命令:set talk on/off
设置打印状态命令:set print on/off
设置屏幕状态命令:set console on/off
设置默认驱动器和目录命令:set default to
68.*字符串接受命令
在学生表中,从键盘任意输入一个学生的学号查询学生的姓名、性别、出生日期、数学和外语
set talk off
clear
use 学生
accept "请输入待查学生的学号:" to xh &&只接受字符串,不需要定界符locate for学号=xh
if found()
disp姓名,性别,出身日期,数学,外语
else
"没有该生"
endif
use
set talk on
return
69.*任意数据输入命令
输入圆半径计算面积
set talk off
clear
store 3.14 to p
input "请输入圆的半径:" to r &&接受多种类型数据,需要界定符s=p*r^2
"半径是"+ltrim(str(r))+"圆的面积是:" &&str()数值转换成字符
s
return
70.*单个字符接受命令
wait命令应用示例,wait接受单个字符
set talk off
use 学生
clear
list next 10
skip &&指针下移,否则第10号会显示两次
wait window &&在屏幕右上角的窗口内显示提示信息
list next 10
use
set talk on
71*格式输入输出命令
从键盘上任意输入两个数据,要求用格式化语句完成
set talk off
clear
a=0 &&表示变量A仅仅可以输入整数
b=0.00 &&表示变量B仅仅可以输入实数,小数位为两位
@4,10 say "请输入第一个整数:" get a &&4行10列,say显示提示信息
@6,10 say "请输入第二个实数:" get b &&get为变量输入新值read &&格式输入命令
c=a+b
@8,10 say str(a)+"+"+allt(str(b,10,2))+"="+allt(str(c,10,2)) &&格式输出命令
set talk on
return
72.单分支语句
*从键盘上任意输入两个数据,按照从大到小的顺序输出
clear
input "请输入第一个数据:" to a
input "请输入第二个数据:" to b
if a<b< bdsfid="538" p=""></b<>
c=a
a=b
b=c
endif &&保证a>=b
a,b
set talk on
return
73.*双分支语句
从键盘接收一个字符,如果是小写字母,将其改为大写字母后输出,其他字符直接输出
set talk off
clear
wait "请输入一个字符:" to l
if l>="a" and l<="z"
upper(l)
Else
l
endif
set talk on
return
用双分支语句编程计算电费:不超过50度,每度0.5元;超过50度时,超出部分每度0.8元
set talk off
clear
input "请输入所用电量:" to dl
if dl<=50
df=dl*0.5
else
df=dl*0.5+(dl-50)*0.8
endif
"应缴电费为:"+ltrim(str(df,10,2))+"元"
set talk on
return
用立即if函数改写电费计算程序
set talk off
clear
input "请输入所用电量:" to dl
df=iif(dl<=50,0.5*dl,0.5*dl+(dl-50)*0.8)
"应缴电费为:"+ltrim(str(df,10,2))+"元"
set talk on
return
74.多分支结构
输入任意一个百分制成绩,输出对应的5分制成绩,其对应关系如下:优(90<=百分成绩<=100)、良(80<=百分成绩<90)、中(70<=百分成绩<80)、及格(60<=百分成绩<70)或不及格(百分成绩<60)
set talk off
clear
input "请输入一个百分制成绩:" to cj
do case
case cj>100 or cj<0
dj="输入成绩不合法"
case cj>=90
dj="优"
case cj>=80
case cj>=70
dj="中"
case cj>=60
dj="差"
otherwise
dj="不及格"
endcase
"成绩等级为:"+dj
set talk on
return
*在学生表中,从键盘上输入任意一个学生的学号,查找该学生,如有则显示他的数学成绩所属的等级,否则显示没有该学生set talk off
clear
use 学生
accept "请输入需要查询学生的学号:" to a
locate for 学号=a
if found()
do case
case 数学>=90
学号,姓名,数学,"优秀"
case 数学>=80
学号,姓名,数学,"良好"
case 数学>=70
学号,姓名,数学,"中等"
case 数学>=60
学号,姓名,数学,"及格"
otherwise
学号,姓名,数学,"不及格"
else
"没有该学生"
endif
use
set talk on
return
从键盘上输入任意一个字符,判断索输入的字符类型set talk off
clear
wait "请输入任意一个字符:" to a
do case
case a>="0" and a<="9"
wait "数字字符"+a+"!"
case a>="A" and a<="Z"
wait "大写英文字符"+a+"!"
case a>="a" and a<="z"
wait "小写英文字符"+a+"!"
case a=" "
wait "空格字符"+a+"!"
otherwise
wait "其他字符"+a+"!"
endcase
set talk on
return
75.*do while循环
编程计算S=1+2+3+...+100
set talk off
clear
i=1 &&计数器:设置循环变量初值
s=0 &&累加器:设置累加变量初值
do while i<=100
s=s+i &&将i加到s中
i=i+1 &&修改循环控制变量
enddo
"S="+ltrim(str(s)) &&输出结果
set talk on
return
将1~n以内所有奇数的和,n从键盘随机输入set talk off clear
s=0
i=0
input "请输入一个自然数n:" to n
do while i<=n
i=i+1
if i%2=0
loop
endif
s=s+i
enddo
"1到n的奇数和s=",s
set talk on
return
76.*for循环
编程计算s=1+2+3+ (100)
set talk off
clear
s=0
for i=1 to 100
s=s+i
"s="+ltrim(str(s))
set talk on
return
水仙花数是指一个三位数,其各位数字的立方和等于该数本身,求所有的水仙花数。
set talk off
clear
for i=100 to 999
a=i%10 &&求i的个位数
b=int(i%100/10) &&求i的十位数
c=int(i/100) &&求i的百位数
if i==a^3+b^3+c^3
i
endif
endfor
set talk on
return
77.*scan循环
分别统计学生表中少数民族男、女学生的人数
set talk off
clear
store 0 to x,y
use 学生
scan for 少数民族否
if 性别="男"
x=x+1
else
y=y+1
endif
"少数民族男生有:"+str(x,2)+"人"
"少数民族女生有:"+str(x,2)+"人"
Use
Set talk on
Return
78.*建立表单:creat form
运行表单:do form 学生.scx
修改表单:modify form 学生.scx
79.*加法器
加法click代码:
thisform.text3.value=val(thisform.text1.value)+val(thisform.t ext2.val ue)
清除代码:thisform.text1.value=""
thisform.text2.value=""
thisform.text3.value=""
退出代码:thisform.release
80.*调用表单对象
thisform.refresh
message("现在开始演示方法hide")
thisform.hide
wait"按任意键可以显示表单" window
thisform.show
81.*按鼠标左键时,文本框显示当前日期;释放鼠标,显示当前时间鼠标mousedown:thisform.text1.value=date()
鼠标mouseup:thisform.text1.value=time()
82.*学生选课表单
列表框:父表学生
表格:子表选课
83.*学生数据库查询click
表首:go top
thisform.refresh
表尾:go bottom
thisform.refresh
向前:if not bof()
skip-1
endif
thisform.refresh
向后:if not bof()
Skip
endif
thisform.refresh
文本框:controlsource:相应字段
84.*标签caption:标题文本,标签的名字
形状curvature:曲率,0表示直角;99表示圆
图像picture:指定图像文件
封面文字置于椭圆前面:选定标签,选择格式;置前85.*命令按钮组click代码:
Do case
Case this.value=1
Go top
Thisform.refresh
Case this.value=2
If not found()
Skip
Endif
Thisform.refresh
Case this.value=3
Thisform.release
Endcase
86.*文本框passwordchar:口令字符,用于密码操作
编辑框复制到文本框代码:
This.parent.text1.value=this.parent.edit1.seltext
复选框value:0表示未被选中;1表示被选中;2表示不确定
87.*任意修改或查看”订货管理”的四个表,当选中复选框,则可修改
选项按钮组代码:
do case
Case this.value=1
Select 仓库
Case this.value=2
Select 职工
Endcase
确认代码:
If thisform.check1.value=1
Brow
Else
Brow nomody noappend nodelete
Endif
88.*在文本框中输入需要显示的内容后,单击任一字体则马上显示
单选按钮组代码:
Do case
Case this.value=1
thisform.text1.fontname=”宋体”
case this.value=2
thisform.text1.fontname=”楷体”
endcase
89.*组合框/列表框数据来源:rowsource
计时器enabled为.t.表示启动计时器
Interval事件间隔属性
电子计时器:标签name:ibitime
计数器控件:thisform.ibitime.caption=time()
:interval属性:300
90.*登录系统表单
文本框passwordchar:*
登录代码:select (thisform.dataenvironment.cursorl.alias)
locate for 姓名=thisform.text1.value and 学号=thisform.text2.value if found() then
=messagebox("欢迎你登录")
else
=messagebox("姓名或学号不正确,你可能还没有注册")
endif
return
91.*菜单文件扩展名.mnx,生成.mpr才能运行
新建菜单:modi menu cd
运行菜单:do cd.mpr
Set sysmenu to 屏蔽系统菜单
Set sysmenu to default 恢复默认
92.*快捷菜单:新建菜单;快速菜单;生成
热键命令:\<
插入水平线菜单项:\-
93.*菜单删除过程:brow;dele;pack
退出过程:set sysmenu nosave
set sysmenu to default
添加命令:appe
浏览命令:brow
94.*创建表单菜单
菜单显示;常规选项;顶层表单,生成程序文件
表单showwindow属性为2;init事件:do cd1.mpr with this,.t.
95.*创建快捷菜单
新建快捷菜单;插入栏;生成
程序:clear all
push key clear &&清除以前设置过的功能键
on key label rightmouse do lppcd.mpr &&设置右键为功能键use 学生
brow
use
push key clear
调用程序。