结构化程序设计练习题_第1页
结构化程序设计练习题_第2页
结构化程序设计练习题_第3页
结构化程序设计练习题_第4页
结构化程序设计练习题_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、选择题一、选择题 1 如 a=1, b=2, x12=email, m=my , m+x WHERE 学生.学号=成绩.学号 AND 课程.课程号=成绩.课程号 AND; 姓名=XM TO SCREEN (2)SELECT DISTINCT 姓名,电话 FROM 学生,成绩 WHERE 成绩60; AND 成绩85 AND A.上机成绩85 REPLACE 等级 WITH “优秀” CASE A.笔试成绩60 AND A.上机成绩60 REPLACE 等级 WITH “未过” CASE A.笔试成绩60 OR A.上机成绩=320 分者 均被相应“志愿”学校所录取) 。 (2)编写一程序按

2、如下格式输出被录取考生的情况: 录取考生情况表 准考证号 姓名 总分 毕业学校 录取学校 (1)SET TALK OFF CLEAR SELECT 1 USE DA INDEX ON 准考证号 TAG ZK SELECT 2 USE CJ SET RELATION TO 准考证号 INTO DA DO WHILE NOT EOF() REPLACE 总分 WITH 语文+数学+外语+其他 IF 总分=320 REPLACE DA.录取否 WITH .T. ENDIF SKIP ENDDO (2)?” 录取考生情况表” ?” 准考证号 姓名 总分 毕业学校 录取学校” GO TOP DO WHI

3、LE NOT EOF() IF CJ.录取否 ?准考证号 ?CJ.姓名 ?总分 ? CJ.毕业学校 ? CJ.志愿 ENDIF SKIP ENDDO SET TALK ON 9某物资管理系统有两个表,其结构如下: 物资清单表(文件名 WZK.DBF):编号(C/5) ,名称(C/6) ,单价(N/6/2) ,数量 (N/3/0) ,总价(N/8/2) 当日发出物资记录库(文件名 PCWZ.DBF):编号(C/5) ,数量(N/3/0) 编写一个命令文件(文件名:KS21.PRG),要求如下: (1) 根据已发出物资记录来更新物资清单库,即把已发出的物资从物资清单中 减去,计算各种物资的总价填入

4、 WZK 的”总价”字段 (2) 显示当日发出物资统计表,要求分别以编号和数量排序显示,显示格式如 下: 发出物资统计表 编号 数量 总价 合计 (1)Clear Select 0 Use pcwz Index on 编号 tag bh Select 0 Use wzk Set relation to 编号 into pcwz Replace all 数量 with 数量-pcwz.数量 Replace all 总价 with 单价*数量 (2)?” 发出物资统计表” ?”编号 数量 总价” select pcwz go top S=0 M=0 scan ?编号,” ”,数量, “ ” ,数量

5、*wzk.单价 S=S+数量 M=M+数量*wzk.单价 Endscan ?”合计 ”,S,” “,M 10学生信息表(XSXX)中有五个字段:学号(C,4),姓名(C,6),计算机(N,3.0),政治 (N,3.0),英语(N,3.0),编写程序打印出如下形式的成绩统计表 。 姓名计算机政治英语 张晓908479 吴中586460 平均XXXXXX 表格中最后一行填写各门课程的平均成绩。 CLEAR SELECT 0 USE XSXX DIME S(3) C=0 FOR I=1 TO 3 S(I)=0 ENDFOR ?”姓名计算机政治英语 DO WHILE NOT EOF() ? 姓名 ?

6、计算机 ? 政治 ? 英语 S(1)= S(1)+计算机 S(2)= S(2)+ 政治 S(3)= S(3)+ 英语” C=C+1 SKIP ENDDO ?”平均 ” ?S(1)/C ?S(2)/C ?S(3)/C USE 11有计算机等级考试数据表 DJKS.DBF,包括:考号、姓名、性别、年龄和单位等字段;成 绩数据表 CJ.DBF,包括:考号、考场编号、笔试成绩和上机成绩等字段。 请编写程序 PROG1.PRG,其功能是把两数据表进行物理连接,只取其考号、单位、笔试成 绩和上机成绩共四个字段。然后在生成的连接数据库中按单位对笔试和上机成绩进行分类 汇总,存入数据表 QAZ.DBF 文件中

7、。 SET TALK OFF CLEAR CLOSE ALL SELECT 1 USE DJKS INDEX ON 考号 TO DJKS SELECT 2 USE CJ SET RELATION TO 考号 INTO A COPY TO CJ1 FILEDS 考号,DJKS.单位,笔试成绩,上机成绩 USE CJ1 INDEX ON 单位 TO CJ1 TOTAL ON 单位 FIELDS 笔试成绩,上机成绩 TO QAZ USE QAZ LIST CLOSE ALL SET TALK ON 12已有计算机等级考试数据表 DJKS.DBF,包括:考号、姓名、笔试成绩、上机成绩和平 均成绩等字段

8、,其中考号的前两位是单位代码;另有单位数据表 DW.DBF,包括:单位代码、 单位名称、人数和总平均分等字段。 请编写程序 PROG1.PRG,要求先在 DJKS.DBF 数据表中计算各位考生的平均成绩,并填入平 均成绩字段。然后按单位统计人数及总平均分,记入 DW.DBF 数据库的相应字段中,最后把 DW.DBF 所有记录复制到 DW1.DBF 文件中。 SET TALK OFF STORE 0 TO S,N SELECT 1 USE DJKS REPLACE ALL 平均成绩 WITH ( 笔试成绩+上机成绩)/2 SELECT 2 USE DW DO WHILE NOT EOF() DW

9、DM=单位代码 SELECT 1 COUNT TO N FOR SUBSTR(考号,1,2)=DWDM AVERAGE 平均成绩 TO S FOR SUBSTR(考号,1,2)=DWDM SELECT 2 REPLACE 人数 WITH N,总平均分 WITH S SKIP ENDDO SELECT 2 COPY TO DW1 LIST CLOSE ALL SET TALK ON 13已有三个数据表:(1)借阅数据表 JY.DBF,包括图书编号、借书证号、借书日期和 借出天数等字段;(2)读者数据表 DZH.DBF,包括借书证号、姓名、停借否等字段; (3)停借数据表 TJ.DBF,包括借书证

10、号、姓名等字段。 请编写一程序,其功能是整理图书借出情况:首先在借阅数据表中用当前日期减去借书日 期得出借出天数,然后进行判定处理,凡借书超过 60 天(不含 60 天)者,就把读者数据 表中的停借否字段置为逻辑真;并在停借数据表中产生一条记录。 SET TALK OFF CLEAR CLOSE DATABASE SELECT 3 USE TJ ZAP SELECT 2 USE DZH INDEX ON 借书证号 TO DZH SELECT 1 USE JY DO WHILE NOT EOF() IF DATE()-借书日期60 SELECT 2 SEEK A.借书证号 IF NOT EOF(

11、) REPLACE 停借否 WITH .T. SELECT 3 APPEND BLANK REPLACE 借书证号 WITH B.借书证号,姓名 WITH B.姓名 ENDIF ENDIF SELECT 1 SKIP ENDDO SELECT 3 LIST CLEAR ALL SET TALK ON 14设有材料明细表文件 CLMX.DBF 和材料发票表文件 CLFPZTZ.DBF,请编写程序实现下列 功能:依次从 CLMX.DBF 文件中取 CPH(传票号)字段的值,如果该字段值在 CLFPZTZ.DBF 文件的某个记录的 FPH 字段中也存在,则给该记录加上删除标记,最后把 CLFPZTZ

12、.DBF 中 无删除标记的记录拷贝到数据表文件 PZTZ.DBF 中。 注意:CPH 是字符类型,FPH 是数值类型 SET TALK OFF SET SAFETY OFF SELECT 2 USE CLFPZTZ RECALL ALL SELECT 1 USE CLMX DO WHILE NOT EOF() SELECT 2 LOCATE FOR STR(FPH)=A.CPH IF FOUND() DELETE ENDIF SELECT 1 SKIP ENDDO SELECT CLFPZTZ COPY TO PZTZ FOR !DELETED() USE PZTZ LIST CLOSE AL

13、L SET TALK ON SET SAFETY ON RETURN 15设计一程序,要求建立自定义函数 AREA() ,计算四边形的面积。 SET TALK OFF INPUT “请输入四边形的长:”TO AL INPUT “请输入四边形的宽:”TO BL S=AREA(AL,BL) ?S= ,S RETURN FUNCTION AREA PARA A,B C=A*B RETURN C 16已知整存整取的利率(L)和存款期限(M)的关系如下表所示。试编写程序,要求根 据用户村如的本金(E)和存款期限(M) ,计算并输出其存款到期后应得的本息和(Q) 。其 中,利息的计算公式为:X=E*M*L

14、。 银行利率与存款期限关系对照表 存款期限(年) 低于 1 年 1251015 20 年及其以上 利率(厘) 11.518.723.625.434.942.852.5 CLEAR INPUT “本金:”TO E INPUT “存款期限:”TO M DO CASE CASE M=20 L=52.5 CASE M=15 L=42.8 CASE M=10 L=34.9 CASE M=5 L=25.4 CASE M=2 L=23.6 CASE M=1 L=18.7 OTHERWISE L=11.5 ENDCASE ?”到期本息额:”,E*M*(1+L/1000) RETURN 17编写一个自定义函数

15、DXJE,用来自动实现将阿拉伯数字的整数金额转换为对应的汉字 大写金额 FUNCTION DXJE PARAMETERS JE Z1=”元拾佰仟万拾佰仟亿拾佰仟” Z2=”零壹贰叁肆伍陆柒捌玖” JE=ALLTRIM(STR(JE,12) CD=LEN(JE) DXJE=”整” K=0 DO WHILE CD0 K=K+1 N=VAL(SUBSTR(JE,CD,1) B1=SUBSTR(Z2,N*2+1,2) B2=SUBSTR(Z1,K*2-1,2) DXJE=B1+B2+DXJE CD=CD-1 ENDDO RETURN DXJE 18编写一程序,可以将下面的学生成绩表中每个学生的姓名及其

16、各课成绩输入计算机, 并在计算完成每个学生的总分后再将此表输出。 姓名数学外语计算机总分 张三 679076 李四 586268 王五 887792 赵六 758986 SET TALK OFF CLEAR MEMORY DIMENSION A(4,5) FOR I=1 TO 4 FOR J=1 TO 4 INPUT TO A(I,J) NEXT J NEXT I FOR I=1 TO 4 A(I,5)=0 FOR J=2 TO 4 A(I,5)=A(I,5)+A(I,J) NEXT J NEXT I ?”姓名 数学 外语 计算机 总分” FOR I=1 TO 4 ?A(I,1) FOR J=2 TO 5 ?STR(A(I,J),10) NEXT J NEXT I SET TALK ON RETURN 19编写一程序,判断从键盘上输入的整数是奇数还是偶数。 CLEAR DO WHILE .T. INPUT “请输入需要判断的整数:” TO ZS IF MOD(ZS,2)=0 ?”该数为偶数” ELSE ?”该数为奇数” ENDIF WAIT “继续查找吗?(Y/N)” TO YN IF UPPER(YN)“Y” EXIT ENDIF EN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论