综合应用题.docx
《综合应用题.docx》由会员分享,可在线阅读,更多相关《综合应用题.docx(39页珍藏版)》请在冰豆网上搜索。
综合应用题
第:
0001号题考生文件夹下有职员管理数据库STAFF,数据库中有YUANGONG表和ZHIBAN表。
表结构如下:
YUANGONG(职工编码C(4),姓名C(10),夜值班天数I,昼值班天数I,加班费N(10,2))
ZHIBAN(值班时间C
(2),每天加班费N(7,2))
ZHIBAN表中只有两条记录,分别记载了白天和夜里的加班费标准。
请首先在考生文件夹下编写符合下列要求的程序PROG1.PRG:
1)计算YUANGONG表的加班费字段值,计算方法是:
加班费=夜值班天数*夜每天加班费+昼值班天数*昼每天加班费
2)根据上面的结果,将员工的职工编码、姓名、加班费存储到JIEGUO(职工编码(C,4)姓名(C,10)加班费(N10,2))表中,并按加班费降序排列,如果加班费相等,则按职工编码升序排列。
然后在考生文件夹下设计一个名为MENU1的菜单,并生成名为MENU1.mpr的菜单程序,菜单格式如下:
计算退出
程序运行时,单击“计算”菜单运行PROG1.PRG,单击“退出”菜单项,程序终止运行。
试完成上述要求,并调试运行菜单与程序。
参考答案:
SETTALKOFF
SETSAFETYOFF
CLEAR
useZHIBAN
scan
if值班时间="夜"
a=每天加班费
else
b=每天加班费
endif
ends
useYUANGONG
replall加班费with夜值班天数*a+昼值班天数*b
copytojieguo1field职工编码,姓名,加班费
usejieguo1
sorttojieguoon加班费/d,职工编码
usejieguo
list
SETTALKON
SETSAFETYON
RETURN
第:
0003号题在考生文件夹下有如下所示两个表文件:
仓库(仓库号(C10),城市(C10),面积(N8))
职工(仓库号(C10),职工号(C10),工资(N8))
请在考生文件夹下编写满足如下要求的程序PROG1:
检索出所有职工的工资都大于等于1220元的职工所管理的仓库信息,将结果保存在wh1(仓库号(C10),城市(C10),面积(N8))数据表文件中,并按面积降序排序。
设计一个名为MENU1的菜单,并生成名为MENU1.mpr的菜单程序,菜单格式如下:
计算退出
程序运行时,单击“计算”菜单项应执行PROG1,单击“退出”菜单项,程序终止运行。
试完成上述要求,并调试运行菜单与程序。
sele0
use职工
sele0
use仓库
copystrutowh
sele2
usewh
sele0
use仓库
scan
ckh=仓库号
sele1
locafor仓库号=ckh
ifnoteof()
locafor仓库号=ckhand工资<1220
ifeof()
sele2
appendfrom仓库for仓库号=ckh
endif
endif
sele0
ends
sele2
sorttowh1on面积/d
usewh1
list第:
0004号题在考生文件夹下有如下所示两个表文件:
仓库(仓库号(C10),城市(C10),面积(N8))
职工(仓库号(C10),职工号(C10),工资(N8))
请在考生文件夹下编写满足如下要求的程序PROG1:
检索出有职工的工资大于1220元的职工所管理的仓库信息,将结果保存在wh1数据表(仓库号(C10),城市(C10),面积(N8))文件中,该文件的结构和仓库数据表文件的结构一致,并按面积升序排序。
然后在考生文件夹下设计一个名为MENU1的菜单,并生成名为MENU1.mpr的菜单程序,菜单格式如下:
计算退出
程序运行时,单击“计算”菜单项应执行PROG1,单击“退出”菜单项,程序终止运行。
试完成上述要求,并调试运行菜单与程序。
sele0
use仓库
copystrutowh
sele0
usewh
sele0
use职工
sele1
scan
ckh=仓库号
sele3
locafor仓库号=ckh
ifnoteof()
locafor仓库号=ckhand工资>1220
ifnoteof()
sele2
appendfrom仓库for仓库号=ckh
endif
endif
sele1
ends
sele2
sorttowh1on面积
usewh1
list
closeall
第:
0007号题在考生文件夹下包括三个数据表YISHENG.DBF(医生)、YAO.DBF(药品)、CHUFANG.DBF(处方),表结构如下:
YISHENG(职工号(N4),姓名(C8),职称(C8),部门(C6),年龄(N2))
YAO(药编号(N4),药名(C10),单位(C2),价格(N5),生产厂(C10))
CHUFANG(药编号(N4),数量(N2),日期(D8),职工号(N4),处方号(N4))
请在考生文件夹下编写满足如下要求的程序PROG1:
查询同一处方中,包含"感冒"两个字的药品的处方号、药名和生产厂,以及医生的姓名和年龄,把查询结果按处方号升序排序存入CC(姓名(C8),年龄(N2),处方号(N4),药名(C10),生产厂(C10))数据表中。
最后统计这些医生的人数(注意不是人次数),并在CC中追加一条记录,将人数填入该记录的处方号字段中。
然后在考生文件夹下设计一个名为MENU1的菜单,并生成名为MENU1.mpr的菜单程序,菜单格式如下:
计算退出
程序运行时,单击“计算”菜单项应执行PROG1;单击“退出”菜单项,程序终止运行。
试完成上述要求,并调试运行菜单与程序。
seleYISHENG.姓名,YISHENG.年龄,CHUFANG.处方号,yao.药名,yao.生产厂fromYISHENG,YAO,CHUFANG;
whereyao.药编号=CHUFANG.药编号and"感冒"$yao.药名andYISHENG.职工号=CHUFANG.职工号;
orderby处方号;
intodbfcc
n=1
a=姓名
scan
ifnot(姓名$a)
a=a+姓名
n=n+1
endif
ends
appeblan
repl处方号withn
list
use第:
0009号题在考生文件夹下有数据表stock_sl.dbf和stock_fk.dbf,表结构如下:
stock_sl(股票代码(C6),买入价(N7,2),现价(N7,2),持有数量(N6))
stock_fk(股票代码(C6),浮亏金额(N11,2))
请在考生文件夹下编写满足如下要求的程序PROG1:
(1)先根据表stock_fk复制生成表stock_fk1
(2)将现价比买入价低的股票信息存入stock_fk1表,其中:
浮亏金额=(买入价-现价)*持有数量
(3)根据stock_fk1表计算总浮亏金额,存入一个新表stock_z(浮亏金额(N11,2))中,该表最终只有一条记录。
然后在考生文件夹下设计一个名为MENU1的菜单,并生成名为MENU1.mpr的菜单程序,菜单格式如下:
计算退出
程序运行时,单击“计算”菜单项应执行PROG1;单击“退出”菜单项,程序终止运行。
试完成上述要求,并调试运行菜单与程序。
usestock_fk
copytostock_fk1
usestock_fk1
sele0
usestock_sl
scanfor买入价>现价
b=股票代码
a=(买入价-现价)*持有数量
sele1
appenblank
repl股票代码withb,浮亏金额witha
sele2
ends
sele1
copystrutostock_zfield浮亏金额
sumtos浮亏金额
usestock_z
appendblan
repl浮亏金额withs
list
use第:
0010号题在考生文件夹下有数据表文件“score_fs.dbf”,其表结构如下:
score_fs(学号(C10)、物理(N11)、高数(N11)、英语(N11)和平均分(N6,2))
成绩如果用-1表示,说明学生没有选学该门课程。
其中,该表前四个字段已有数据。
请在考生文件夹下编写满足如下要求的程序PROG1:
(1)计算每一个学生的平均分存入平均分字段。
注意:
分数为-1不记入平均分,例如一个学生的三门成绩存储的是90,-1,70,平均分应是80。
(2)根据上面的计算结果,生成一个新的表PJF(学号(C10),平均分(N6,2)),并且按平均分的降序排序,如果平均分相等,则按学号升序排序。
然后在考生文件夹下设计一个名为MENU1的菜单,并生成一个名为MENU1.mpr的菜单程序,菜单格式如下:
计算退出
执行菜单程序时,单击“计算”菜单项,运行PROG1.PRG;单击“退出”菜单项,程序终止运行。
试完成上述要求,并调试运行菜单与程序。
操作步骤:
1:
使用MODICOMMPROG1命令进入编程窗口。
2:
使用USEscore_fs命令打开score_fs表。
3:
在score_fs表中循环
4:
menshu=0zongfen=0使每次循环开始时选课门数和总分为0
5;if物理<>-1then
menshu=menshu+1
zongfen=zongfen+物理
endif
if高数<>-1then
menshu=menshu+1
zongfen=zongfen+高数
endif
if英语<>-1then
menshu=menshu+1
zongfen=zongfen+英语
endif
依次判断是否选课
6:
replace平均分withzongfen/menshu
7:
使用sortfields学号,平均分topjfon平均分/d,学号生成要求的新表
8;关闭所有表
9:
使用CREATEMENUMENU1命令创建菜单。
第:
0011号题在考生文件夹下有数据表stock_mm和stock_cs,表结构如下:
stock_mm(股票代码(C10),买卖标记(L1(.T.表示买进,.F.表示卖出)),单价(N10,2),本次数量(N10))
stock_cs(股票代码(C10),持仓数量(N10))
stock_mm表中一只股票对应多个记录,stock_cs表中一只股票对应一个记录.
请首先在考生文件夹下编写符合下列要求的程序PROG1.PRG:
(1)先根据表stock_cs复制生成表stock_cc;
(2)根据stock_mm统计每只股票的持仓数量,并将结果存放到stock_cc表;
计算方法:
买卖标记为.T.(表示买进),将本次数量加到相应股票的持仓数量;买卖标记为.F.(表示卖出),将本次数量从相应股票的持仓数量中减去。
(注意:
stock_cc表中的记录按股票代码从小到大顺序存放).
然后在考生文件夹下设计一个名为MENU1的菜单,并生成名为MENU1.mpr的菜单程序,菜单格式如下:
计算退出
程序运行时,单击“计算”菜单项应执行PROG1;单击“退出”菜单项,程序终止运行。
试完成上述要求,并调试运行菜单与程序。
usestock_cs
copytostock_cc1
usestock_cc1
sele0
usestock_mm
b=""
dowhilenoteof()
a=股票代码
ifnot(a$b)
s=0
dowhilenoteof()
if股票代码=a
if买卖标记
s=s+本次数量
else
s=s-本次数量
endif
endif
skip
enddo
gotop
sele1
appeblan
repl股票代码witha,持仓数量withs
b=b+a
endif
sele2
skip
endd
sele1
sorttostock_ccon股票代码
第:
0012号题在考生文件夹下有数据表CHENGJI.dbf和KECHENG.dbf,表结构如下:
CHENGJI(学号(C8),姓名(C10),课程(C10),成绩(N8,2))
KECHENG(课程(C10),最高分(N8,2))
CHENGJI表用于记录学生的考试成绩,其中一个学生可以有多项记录(登记一个学生的多门成绩)。
KECHENG表的内容是所开课程,一门课程只有一个记录(表中有固定的已知数据)。
请在考生文件夹下编写符合下列要求的程序prog1:
(1)计算表CHENGJI中每门课程的最高分,并将结果存入KECHENG表的最高分字段中;
(2)根据上面的计算结果,生成一个按最高分降序排序的新表jcc(课程名(C10)最高成绩(N8,2))。
然后在考生文件夹下设计一个名为MENU1的菜单,并生成名为MENU1.mpr的菜单程序,菜单格式如下:
计算退出
程序运行时,单击“计算”菜单项应执行PROG1;单击“退出”菜单项,程序终止运行。
试完成上述要求,并调试运行菜单与程序。
useKECHENG
sele0
useCHENGJI
a=""
dowhilenoteof()
b=课程
ifnot(b$a)
s=成绩
dowhilenoteof()
if课程=b
ifs<成绩
s=成绩
endif
endif
skip
enddo
sele1
repl最高分withsfor课程=b
sele2
gotop
else
skip
endif
a=a+b
endd
sele1
sorttojccon最高分/d
closedatabase第:
0014号题在考生文件夹下有CHENGJI表和XUESHENG表,各表结构如下:
CHENGJI表(姓名(C10)、课程名(C10)、成绩(N8,2))
XUESHENG表(姓名(C10)、平均分(N16,2))
CHENGJI表用于记录学生的考试成绩,但一个学生可以有多条记录(登记一个学生的多门成绩)。
XUESHENG表是学生信息,一个学生只有一条记录(表中有固定的已知数据)。
请首先在考生文件夹下编写符合下列要求的程序PROG1.PRG:
根据CHENGJI表计算每个学生的平均分,并将结果存入XUESHENG表的平均分字段。
然后在考生文件夹下设计一个名为MENU1的菜单,并生成名为MENU1.mpr的菜单程序,菜单格式如下:
计算退出
程序运行时,单击“计算”菜单项应执行PROG1;单击“退出”菜单项,程序终止运行。
试完成上述要求,并调试运行菜单与程序。
useCHENGJI
sele0
useXUESHENG
scan
xm=姓名
sele1
avertoafor姓名=xm
sele2
repl平均分witha
endsc
list
closedatabase第:
0015号题在考生文件夹下有数据表YUANGONG和ZHICHENG,表结构如下:
YUANGONG(职工编码(C10),姓名(C10),职称(C10),工资(N10,2),新工资(N10,2))
ZHICHENG(职称(C10),增加百分比(N10,2))
请首先在考生文件夹下编写符合下列要求的程序PROG1.PRG:
(1)将YUANGONG表复制到JCC表中;
(2)在JCC表中给每个员工增加工资,新工资=工资*(1+增加百分比/100),将计算结果存入相应记录的“新工资”字段中。
然后在考生文件夹下设计一个名为MENU1的菜单,并生成名为MENU1.mpr的菜单程序,菜单格式如下:
计算退出
程序运行时,单击“计算”菜单项应执行PROG1;单击“退出”菜单项,程序终止运行。
试完成上述要求,并调试运行菜单与程序。
useYUANGONG
copytojcc
usejcc
sele0
useZHICHENG
scan
a=职称
b=增加百分比
sele1
repl新工资with工资*(1+b/100)for职称=a
sele2
ends
closedatabase第:
0018号题在考生文件夹下有数据表文件order_detail.dbf和order_list.dbf,表结构如下:
order_detail(订单号(C10),器件号(C10),单价(N10,2),数量(N4))
order_list(订单号(C10),订购日期(D8),总金额(N8,2))
请首先在考生文件夹下编写符合下列要求的程序PROG1.PRG:
(1)复制表order_list到表order_list1中;
(2)根据order_detail表中的记录重新计算order_list1表的总金额字段的值;
(3)最后将order_list1表中的记录按总金额降序排序存储到od_new表中。
然后在考生文件夹下设计一个名为MENU1的菜单,并生成名为MENU1.mpr的菜单程序,菜单格式如下:
计算退出
程序运行时,单击“计算”菜单项应执行PROG1;单击“退出”菜单项,程序终止运行。
试完成上述要求,并调试运行菜单与程序。
useorder_detail
sele0
useorder_list
copytoorder_list1
useorder_list1
scan
a=订单号
s=0
sele1
scanfor订单号=a
s=s+单价*数量
ends
sele2
repl总金额withs
ends
sorton总金额/dtood_new
useod_new
list
closedatabase
第:
0019号题在考生文件夹下有数据表order_detail.dbf和order_list.dbf,表结构如下:
order_detail(订单号(C10),器件号(C10),单价(N10,2),数量(N4))
order_list(订单号(C10),订购日期(D8),总金额(N8,2))
请首先在考生文件夹下编写符合下列要求的程序PROG1.PRG:
当order_detail表中的单价确定后,应该根据该表的"单价"和"数量"字段修改order_list表的总金额字段,现在有部分order_list记录的总金额字段值不正确,请编写程序挑出这些记录,并将这些记录存放到一个名为od_mod的表中(与order_list表结构相同),然后根据order_detail表的"单价"和"数量"字段修改od_mod表的总金额字段。
然后在考生文件夹下设计一个名为MENU1的菜单,并生成名为MENU1.mpr的菜单程序,菜单格式如下:
计算退出
程序运行时,单击“计算”菜单项应执行PROG1;单击“退出”菜单项,程序终止运行。
试完成上述要求,并调试运行菜单与程序。
useorder_detail
sele0
useorder_list
copytood_mod
useod_mod
scan
a=订单号
s=0
sele1
scanfor订单号=a
s=s+单价*数量
ends
sele2
if总金额=s
dele
else
repl总金额withs
endif
ends
pack
list
closedatabase第:
0022号题在考生文件夹下有数据表order_detail,表结构如下:
order_detail(订单号(C10),器件号(C10),单价(N10,2),数量(N16))
请首先在考生文件夹下编写符合下列要求的程序PROG1.PRG:
(1)把“订单号”尾部字母相同并且订货相同(“器件号”相同)的订单合并为一张订单,新的“订单号”就取原来的尾部字母,“单价”取最低价,“数量”取合计;
(2)按“器件号”降序排序;
(3)最终记录的处理结果保存在表od_new(订单号(C3),器件号(C10),单价(N102)),数量(N16))中。
然后在考生文件夹下设计一个名为MENU1的菜单,并生成名为MENU1.mpr的菜单程序,菜单格式如下:
计算退出
程序运行时,单击“计算”菜单项应执行PROG1;单击“退出”菜单项,程序终止运行。
试完成上述要求,并调试运行菜单与程序。
useorder_detail
copytood_new1
sele0
useod_new1
sele1
scan
c=right(allt(订单号),3)
a=right(allt(订单号),1)
b=器件号
s=0
n=单价
r=recn()
sele2
scanforright(allt(订单号),1)=aand器件号=b
s=s+数量
ifn>单价
n=单价
endif
ifrecn()<>r
dele
endif
ends
pack
gor
repl单价withn,数量withs,订单号withc
sele1
ends
sele2
sorttood_newon器件号
closedatabase第:
0026号题在考生文件夹下已有数据表文件“商品.dbf”,表结构如下:
商品(商品号C(10),出厂价N(10,2),单价N(10,2))
请首先在考生文件夹下编写符合下列要求的程序PROG1.PRG:
1)将商品表备份为BF,下列操作均在BF中进行;
2)将“商品号”前两位编号为“10”的商品“单价”修改为出厂单价提高10%;其他商品单价修改为出厂单价提高5%。
再在考生文件夹下设计一个名为MENU1的菜单,并生成一个名为MENU1.mpr的菜单程序,菜单格式如下:
计算退出
执行菜单程序时,单击“计算”菜单项,运行PROG1.PRG;单击“退出”菜单项,程序终止运