程序设计题.docx

上传人:b****5 文档编号:7665063 上传时间:2023-01-25 格式:DOCX 页数:35 大小:92.20KB
下载 相关 举报
程序设计题.docx_第1页
第1页 / 共35页
程序设计题.docx_第2页
第2页 / 共35页
程序设计题.docx_第3页
第3页 / 共35页
程序设计题.docx_第4页
第4页 / 共35页
程序设计题.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

程序设计题.docx

《程序设计题.docx》由会员分享,可在线阅读,更多相关《程序设计题.docx(35页珍藏版)》请在冰豆网上搜索。

程序设计题.docx

程序设计题

表下载

查询生成器:

1,2,3,4,15,

多表操作:

4,5,6,7,8,9,10,11,12,14,23,28(共11题)

单表操作:

13,16,17,18,19,(20,21),22,23,24,25,27,29(共13题)

1.在考生文件夹下有如下所示两个表文件:

仓库(仓库号(C10),城市(C10),面积(N8))

职工(仓库号(C10),职工号(C10),工资(N8))

请在考生文件夹下编写满足如下要求的程序PROG1:

检索出所有职工的工资都大于等于1220元的职工所管理的仓库信息,将结果保存在wh1(仓库号(C10),城市(C10),面积(N8))数据表文件中,并按面积降序排序。

仓库号城市面积

WH1北京370

WH2上海500

WH3广州200

WH4武汉400

仓库号职工号工资

WH2E11220

WH1E31210

WH2E41250

WH3E61230

WH1E71250

2.在考生文件夹下有如下所示两个表文件:

仓库(仓库号(C10),城市(C10),面积(N8))

职工(仓库号(C10),职工号(C10),工资(N8))

请在考生文件夹下编写满足如下要求的程序PROG1:

检索出有职工的工资大于1220元的职工所管理的仓库信息,将结果保存在wh1数据表(仓库号(C10),城市(C10),面积(N8))文件中,该文件的结构和仓库数据表文件的结构一致,并按面积升序排序。

3.在考生文件夹下包括三个数据表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中追加一条记录,将人数填入该记录的处方号字段中。

职工号姓名职称部门年龄

1001杨阳主任医师内科45

1002王晓晨医师内科34

1003白晶医师内科33

1004赵彬医师内科27

1005于春鹏医士内科20

1006田园主任医师外科39

1007张妍医师外科32

1008孙佳医师外科31

1009李宇医士外科23

药编号药名单位价格生产厂

1复方甘草片瓶2.30同仁堂

2胃得乐瓶7.20西安制药厂

3感冒冲剂袋1.20同仁堂

4维生素C瓶9.40天津制药厂

5感冒通盒1.80上海制药厂

6维生素B2瓶7.60天津制药厂

7维生素B6瓶8.70天津制药厂

8康泰克盒11.00上海制药厂

9芬必得盒7.00西安制药厂

10青霉素盒24.00北京制药厂

11止疼散代8.10同仁堂

12先锋4号盒42.00北京制药厂

药编号数量日期职工号处方号

321999010710021

911999011410062

1211999011910013

321999022110014

511999032310015

121999040210036

421999042610047

611999050610058

1211999051710079

10119990524100310

11119990529100811

9119990601100812

2219990612100313

12119990623100614

3219990712100115

5119990725100416

7219990727100417

8119990730100318

10119990730100819

1219990731100220

4.(查询生成器)

在考生文件夹下有数据表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))中,该表最终只有一条记录。

股票代码(C6),买入价(N7,2),现价(N7,2),持有数量(N6)

60000010.007.481000

60000217.0015.362000

6000039.0010.403000

60000420.0012.764000

60000515.009.965000

60000111.0014.586000

60000710.007.481000

60000817.0015.362000

6000099.0010.403000

60001120.0012.764000

60001215.009.965000

60002011.0014.586000

60001410.007.481000

60001517.0015.362000

6000169.0010.403000

60001720.0012.764000

60001815.009.965000

60001911.0014.586000

5.在考生文件夹下有数据表文件“score_fs.dbf”,其表结构如下:

score_fs(学号(C10)、物理(N11)、高数(N11)、英语(N11)和平均分(N6,2))

成绩如果用-1表示,说明学生没有选学该门课程。

其中,该表前四个字段已有数据。

请在考生文件夹下编写满足如下要求的程序PROG1:

(1)计算每一个学生的平均分存入平均分字段。

注意:

分数为-1不记入平均分,例如一个学生的三门成绩存储的是90,-1,70,平均分应是80。

(2)根据上面的计算结果,生成一个新的表PJF(学号(C10),平均分(N6,2)),并且按平均分的降序排序,如果平均分相等,则按学号升序排序。

试完成上述要求,并调试运行菜单与程序。

学号(C10)、物理(N11)、高数(N11)、英语(N11)和平均分(N6,2)

2000241018990550.00

20002410278881000.00

200024103-170900.00

2000241048099770.00

2000241054399780.00

2000241064567890.00

20002410765-1640.00

2000241088990550.00

20002410978881000.00

200024110-170900.00

2000241118099770.00

2000241124399-10.00

20002411345-1890.00

20002411465-1640.00

2000241158990550.00

20002411678881000.00

2000241175670900.00

20002411880-1770.00

200024119-1-1780.00

2000241204567890.00

2000241216587640.00

操作步骤:

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命令创建菜单。

6.在考生文件夹下有数据表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表中的记录按股票代码从小到大顺序存放).

股票代码(C10),买卖标记(L1(.T.表示买进,.F.表示卖出)),单价(N10,2),本次数量(N10)

a123T20.00100

a123F21.0010

a234F24.00100

a345T234.0090

a234T59.00120

股票代码(C10),持仓数量

a123

a234

a345

7.在考生文件夹下有数据表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))。

学号(C8),姓名(C10),课程名(C10),成绩(N8,2)

20050001季节VFP78.00

20050002赵小名VB65.00

20050001季节VB46.00

20050003洪文如QB90.00

20050002赵小名VFP88.00

20050004左文严VB65.00

20050005王丹VB66.00

20050006赵丹C70.00

课程(C10),最高分(N8,2)最低分,平均分,总分

VFP0.00

VB0.00

QB0.00

C0.00

[分析]

1、本题希望修改内容的表是KECHENG,所以应在KECHENG表中循环

2、修改KECHENG要以chengji表为依据,但成绩表用locafor按课程查找时,第一次遇到的并不是最高分,如何能让查找是第一次遇到的就是最高分?

---如果将chemgji按照课程、成绩(降)排序后,配合KECHENG使用,就可以大大简化程序

[方法一]

usechengji

sorton课程名,成绩/dtonew&&将每门课排在一起,且成绩高的在前。

备配合kecheng用

use

sele0

usekecheng

sele0

usenew

selekecheng

scan

kcm=课程

selenew

locafor课程=kcm

zgf=成绩

selekecheng

repl最高分withzgf

endscan

brow

sorton最高分/dtojcc

closall

cancel

[方法二]

Clea

Settalkoff

Sele0

useKECHENGaliakc

sele0

useCHENGJIaliacj

selekc

scan

kcm=课程

selecj

setfiltto课程=kcm

maxf=成绩

scan

ifmaxf<成绩

maxf=成绩

endi

ends

setfiltto

selekc

repl最高分withmaxf

ends

selekc

sorttojccon最高分/d

closeall

settalkon

cancel

8.在考生文件夹下有CHENGJI表和XUESHENG表,各表结构如下:

CHENGJI表(姓名(C10)、课程名(C10)、成绩(N8,2))

XUESHENG表(姓名(C10)、平均分(N16,2))

CHENGJI表用于记录学生的考试成绩,但一个学生可以有多条记录(登记一个学生的多门成绩)。

XUESHENG表是学生信息,一个学生只有一条记录(表中有固定的已知数据)。

请首先在考生文件夹下编写符合下列要求的程序PROG1.PRG:

根据CHENGJI表计算每个学生的平均分,并将结果存入XUESHENG表的平均分字段。

姓名(C10)、课程名(C10)、成绩(N8,2)

季节VFP78.00

赵小名VB65.00

季节VB46.00

洪文如QB90.00

赵小名VFP88.00

左文严VB65.00

王丹VB66.00

赵丹C70.00

姓名(C10)、平均分(N16,2)

赵小名0.00

季节0.00

洪文如0.00

左文严0.00

王丹0.00

赵丹0.00

Clea

Settalkoff

Sele0

useCHENGJIaliacj

sele0

useXUESHENGaliaxs

selexs

scan

xm=姓名

selecj

avertopjffor姓名=xm

selexs

repl平均分withpjf

endsc

closeall

settalkon

cancel

9.在考生文件夹下有数据表YUANGONG和ZHICHENG,表结构如下:

YUANGONG(职工编码(C10),姓名(C10),职称(C10),工资(N10,2),新工资(N10,2))

ZHICHENG(职称(C10),增加百分比(N10,2))

请首先在考生文件夹下编写符合下列要求的程序PROG1.PRG:

(1)将YUANGONG表复制到JCC表中;

(2)在JCC表中给每个员工增加工资,新工资=工资*(1+增加百分比/100),将计算结果存入相应记录的“新工资”字段中。

职工编码(C10),姓名(C10),职称(C10),工资(N10,2),新工资(N10,2)

990001王芳讲师1000.000.00

001234王李教授5000.000.00

980002前程讲师1100.000.00

908769刘运讲师1111.000.00

职称(C10),增加百分比(N10,2)

教授20.00

副教授20.00

讲师10.00

助教5.00

Clea

Settalkoff

Sele0

useYUANGONG

copytojcc

usejcc

sele0

useZHICHENGaliazc

selezc

scan

a=职称

b=增加百分比

selejcc

repl新工资with工资*(1+b/100)for职称=a

selezc

ends

closeall

settalkon

cancel

10.在考生文件夹下有数据表文件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表中。

订单号(C10),器件号(C10),单价(N10,2),数量(N4)

99ABC992510.00100

99ABC99249.00200

01BCD992310.00200

02BCD99259.00100

订单号(C10),订购日期(D8),总金额(N8,2)

99ABC200101011000.00

01BCD200101012000.00

02BCD200201011000.00

11.在考生文件夹下有数据表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表的总金额字段。

closall

sele0

useorder_listaliali

sele0

useorder_detailaliade

seleli

scan

ddh=订单号

selede

sum(单价*数量)tozjefor订单号=ddh

seleli

if总金额=zje

dele

else

repl总金额withzje

endif

endscan

brow

closall

cancel

12.在考生文件夹下有数据表order_detail,表结构如下:

order_detail(订单号(C10),器件号(C10),单价(N10,2),数量(N16))

请首先在考生文件夹下编写符合下列要求的程序PROG1.PRG:

(1)把“订单号”尾部字母相同并且订货相同(“器件号”相同)的订单合并为一张订单,新的“订单号”就取原来的尾部字母,“单价”取最低价,“数量”取合计;

(2)按“器件号”降序排序;

(3)最终记录的处理结果保存在表od_new(订单号(C3),器件号(C10),单价(N102)),数量(N16))中。

order_detail(订单号(C10),器件号(C10),单价(N10,2),数量(N16))

99ABC992510.00100

99ABC99259.00200

01BCD992310.00200

02BCD99259.00100

*prog1

closall

SELECTright(allt(Aa.订单号),1)as订单号,Aa.器件号,;

min(Aa.单价)as单价,sum(Aa.数量)as数量;

FROMaaGROUPBY1;

INTOTABLEod_new.dbf

closall

cancel

13.在考生文件夹下已有数据表文件“商品.dbf”,表结构如下:

商品(商品号C(10),出厂价N(10,2),单价N(10,2))

请首先在考生文件夹下编写符合下列要求的程序PROG1.PRG:

1)将商品表备份为BF,下列操作均在BF中进行;

2)将“商品号”前两位编号为“10”的商品“单价”修改为出厂单价提高10%;其他商品单价修改为出厂单价提高5%。

再在考生文件夹下设计一个名为MENU1的菜单,并生成一个名为MENU1.mpr的菜单程序,菜单格式如下:

计算退出

执行菜单程序时,单击“计算”菜单项,运行PROG1.PRG;单击“退出”菜单项,程序终止运行。

试完成上述要求,并调试运行菜单与程序。

商品(商品号C(10),出厂价N(10,2),单价N(10,2))

1035000112.000.00

1135000278.000.00

10350002100.000.00

2336000189.000.00

操作步骤:

1:

使用MODICOMMPROG1命令进入编程窗口。

2:

使用USE商品命令打开商品表。

3:

copytobf备份商品表为BF

4:

replace单价with出厂价*1.1forleft(商品号,2)='10'更新商品号前2位是10的记录

5;replace单价with

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1