




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、结构化程序设计和程序调试要求 结构化程序设计和程序调试要求 VFP提供一种程序执行方式,这种方式就是预先把需要执行的多条命令按一定的结构组成一个有机序列以文件的形式存储在磁盘上,这个文件就称为程序文件,这个序列的设计、编码和调试的过程就是程序设计。9.1 程序设计基础 9.1.1 程序设计的概念 结构化程序设计和程序调试要求9.1.2 程序的控制结构 任何复杂的程序都由3种基本控制结构组成。它们是顺序结构、选择结构和循环结构。 图程序的控制结构 结构化程序设计和程序调试要求9.1.3 结构化程序设计方法 结构化程序设计采用自顶向下、逐步求精和模块化的分析方法。 自顶向下是指对设计的系统要有一个
2、全面的理解,从问题的全局入手,把一个复杂问题分解成若干个相互独立的子问题 。逐步求精是指程序设计的过程是一个渐进的过程,先把一个子问题用一个程序模块来描述,再把每个模块的功能逐步分解细化为一系列的具体步骤 。模块化是结构化程序的重要原则。所谓模块化就是把大程序按照功能分为较小的程序。 结构化程序设计和程序调试要求9.1.4 程序文件的建立与执行 1命令方式建立或修改程序文件命令格式: MODIFY COMMAND ? MODIFY.FILE.文件名? 功能:启动VFP提供的文本编辑器来建立或编辑程序文件。2菜单方式建立编辑程序文件 结构化程序设计和程序调试要求命令格式: DO 程序文件名 功
3、能 : 将程序文件从磁盘调入内存, 编译成.FXP目标文件后并执行。3.程序文件的执行 菜单方式:.CANCEL:终止程序运行,清除所有的私有变量,返回命令窗口。.RETURN:结束程序执行,返回调用它的上级程序,若无上级程序则返回命令窗口。.QUIT:结束程序执行并退出系统,返回操作系统。 结构化程序设计和程序调试要求9.2 顺序结构程序 顺序结构是最简单、最基本的一种程序结构。在顺序结构程序中,各命令按照各自出现的先后顺序,依次执行。 结构化程序设计和程序调试要求9.2.1 程序文件中的辅助命令 一输入类语句 格 式1: STORE 表达式 TO 内存变量名表 格 式2: 内存变量 表达式
4、 功 能:给内存变量赋值。. 赋值语句结构化程序设计和程序调试要求. 交互式语句/键盘输入命令 1. 字符串数据输入命令格式: ACCEPT TO 功能:在屏幕上显示提示信息,等待用户从键盘输入,再把输入内容赋值给指定的内存变量。 注:ACCEPT命令只能接受字符型常量,输入时不需加定界符。 键盘输入命令主要用于程序执行过程中原始数据的输入。结构化程序设计和程序调试要求例9-1:要求用户从键盘上输入用户名,然后把输入的用户名显示出来。ACCEPT “请输入用户名:” TO NAME?NAME结构化程序设计和程序调试要求格式:INPUT TO 2. 数据输入命令功能:在屏幕上显示提示信息,等待用
5、户从键盘输入,再把输入内容赋值给指定的内存变量。 注:INPUT命令能接受任何类型的表达式: 输入C 型数据时,要使用 或 “ ” 作为定界符; 输入L 型数据时,.T. 和 .F. ,两边的 . 不能省; 输入D 型数据时,要用 或CTOD( ) 将字符串转成日期型变量。结构化程序设计和程序调试要求例9-2:求任意两数之和。INPUT “请输入一个数x:” TO X?X+YINPUT “请输入另一个数y:” TO Y结构化程序设计和程序调试要求 J=2800 INPUT “输入 J+200 :” TO A ACCEPT “输入 J+200 :” TO B ?“A=”,A ? “B=”,B 注
6、:执行时,先后两次输入同样的内容:J+200例9-3: 给出下列A、B的结果结构化程序设计和程序调试要求格式:WAIT TO TIMEOUT 3. 只能输入一个字符的命令功能:当程序执行某一处需要暂停时使用此命令。 注:WAIT命令响应速度快,它只接受一个字符,不需用户键入回车键。结构化程序设计和程序调试要求* 数据表操作命令菜单 *打开工作数据表增加数据表记录删除数据表记录修改数据表记录打印数据表记录关闭工作数据表? “您选择的是第” + CHOICE + “个选项”WAIT “请选择相应代码:” TO CHOICE例9-4:结构化程序设计和程序调试要求格式: SAY GET RANGE ,
7、 READ4. 格式输入语句功能:在屏幕指定的坐标位置上显示提示或输入数据。 READ 一般与GET 联合起来用:当有READ时, GET 的内容可以从键盘上修改;没有READ时,GET 后的变量只能显示内容,不能修改;一个READ可以修改它前面的多个GET项的内容,但它可以由CLEARGETS命令隔断。 注: :该变量应在其前面定义过( 赋初值 ) 。结构化程序设计和程序调试要求 8, 18 SAY “* 数据表操作命令菜单 *” 9, 18 SAY “ 1.打开工作数据表 ” 10, 18 SAY “ 2. 增加数据表记录 ” 11, 18 SAY “ 3. 删除数据表记录 ” 12, 1
8、8 SAY “ 4. 修改数据表记录 ” 13, 18 SAY “ 5. 打印数据表记录 ” 14, 18 SAY “ 6. 关闭工作数据表 ” 18, 28 SAY “您选择的是:” + LTRIM(STR(CHOICE) 16, 28 SAY “ 请选择相应代码:” GET CHOICEREAD例9-5:结构化程序设计和程序调试要求二输出类语句1. 非格式输出语句 格式1: ? 内存变量名表格式2: ? 内存变量名表注:语句1 是在光标所在行的下一行开始显示, 语句2 则是在当前光标位置开始显示。功 能:显示内存变量、常量或表达式的值。结构化程序设计和程序调试要求格式: SAY FUNCT
9、ION PICTURE 2. 格式输出语句功能:按指定的坐标位置在屏幕上输出表达式的值。 注: 若选用PICTURE、 FUNCTION子句,则按一定的格式输出 ,分别见教材P131的表、。结构化程序设计和程序调试要求格式: TEXT ENDTEXT 3. 文本输出语句功能:在屏幕上原样显示TEXT和ENDTEXT之间的内容。 注: TEXT、ENDTEXT是一条子句,不能省略其中任一条子句。结构化程序设计和程序调试要求* 数据表操作命令菜单 *打开工作数据表增加数据表记录删除数据表记录修改数据表记录打印数据表记录关闭工作数据表? “您选择的是第” + CHOICE + “个选项”WAIT “
10、请选择相应代码:” TO CHOICE例6-6TEXTENDTEXT结构化程序设计和程序调试要求三. 设置会话状态语句语句格式2: SET TALK OFF功能 语句1:设置会话状态开通。 语句2:设置会话状态关闭。语句格式1: SET TALK ON结构化程序设计和程序调试要求四. 清屏与注释语句语句格式: CLEAR1. 清屏语句功 能 :清除屏幕上所有显示内容,光标回到屏幕左上角。结构化程序设计和程序调试要求2. 注释语句语句格式2: * 注:语句1、2、3 在程序中,系统不执行。语句格式1: NOTE 功 能 : 在程序中加入说明性语句。语句格式3: & 结构化程序设计和程序调试要求五
11、. RETURN命令注:一般RETURN出现于程序末尾。格式: RETURN /TO MASTER/TO 功能 : 结束一个程序的执行。结构化程序设计和程序调试要求六. 终止程序执行语句语句格式2: QUIT注: 语句1:在终止程序执行后,返回到VFP命令状态; 语句2:返回到操作系统状态。语句格式1: CANCEL功能:终止程序执行,关闭所有打开的命令文件。结构化程序设计和程序调试要求顺序结构程序:按语句的先后顺序组织的程序,即把处理过程的各个步骤按执行的先后顺序列出。其流程图如右图所示。顺序结构程序设计 A B C N图中箭头表示程序执行的方向,方框代表不同的可执行语句。 结构化程序设计和
12、程序调试要求例9-7 变量的初始化和变量的赋值。SET TALK OFF STORE 0 TO X,Y,ZA=3B=A+1C=A*B? X, Y, Z? A, B, CSET TALK ON 结构化程序设计和程序调试要求例9-8 执行以下命令序列,问答问题:最后显示的值是:所有职工的平均工资;所有工资在1000元以上的职工的平均工资;所有工资在1000元以上的职工人数;所有职工人数 。USEzgbSUM 基本工资 FOR 基本工资1000 TO SGZCOPY FOR 基本工资1000 TO GZK2USE GZK2num=reccount( )ave=sgz/num? ave结构化程序设计和
13、程序调试要求在计算机应用的许多场合,要求程序根据不同的条件采用不同的处理方法。如果条件满足,则执行某一些语句;如果条件不满足,则执行另一些语句。这些需要根据判断条件来控制程序走向的程序设计称为选择结构程序设计,又称分支结构程序设计。Visual FoxPro提供双分支选择语句、多分支选择语句两种选择结构。9.3 选择结构程序设计结构化程序设计和程序调试要求 ENDIF后的语句语句序列1 ENDIF后的语句语句格式:IF 条件 语句序列1ENDIF 条件9.3.1 双分支选择语句(选择判断语句) 条件.T.F.语句序列1.Y.N.语句序列2 ELSE 语句序列2结构化程序设计和程序调试要求注:(
14、1) IF和ENDIF必须配对使用,而ELSE可选。(2)IF、ELSE、ENDIF必须各占一行。(3) 可以为关系表达式、逻辑表达式。(4)在语句序列1和语句序列2中可以嵌套IF语句。执行过程:如果成立,就执行语句序列1;如果不成立,执行语句序列2。 结构化程序设计和程序调试要求例 请改用分支结构语句编程计算电费: 不超过50度, 每度元; 超过50度时, 超出部分每度元。SET TALK OFFINPUT “请输入所用电量: TO DLDF=IIF(DL=50,0.52*DL,0.52*50+0.75*(DL-50))? “应缴电费为:” + LTRIM(STR(DF,10,2) + 元S
15、ET TALK ONRETURN 结构化程序设计和程序调试要求SET TALK OFF INPUT 请输入行李重量: TO WIF 1 YF=0.22*W ELSE YF= 0.22*40 + 1ENDIF ? 应交托运费为:+LTRIM(STR(YF,10,2)+元SET TALK ONRETURN 例 火车托运行李: 每人不超过40公斤,每公斤元;超过40公斤时, 超出部分每公斤元。填空完成以下程序。W 40结构化程序设计和程序调试要求SET TALK OFFSet defa to f:jfvfpprgUSE zgbACCEPT “请输入要查找人的姓名: ” TO NLOCATE ALL
16、FOR XM=NIF FOUND( ) DISP ELSE ? 查无此人ENDIFUSESET TALK ONRETURN例 编程:在中查找某人。结构化程序设计和程序调试要求9.3.2 多分支选择语句(选择语句|情况语句)说明:DO CASE和第一个CASE子句之间不能插入任何语句。DO CASE和ENDCASE必须配对使用,且DO CASE,CASE,OTHERWISE和ENDCASE各子句必须各占一行。在语句序列中可嵌套情况语句。 语句格式: DO CASE CASE 条件表达式1 语句序列1 CASE 条件表达式2 语句序列2 CASE 条件表达式n 语句序列n OTHERWISE 语句
17、序列n+1 ENDCASE 结构化程序设计和程序调试要求功能:系统依次测试语句中各个条件表达式的值: 若为真,即执行相应条件表达式后的语句序列, 然后脱离情况语句,执行ENDCASE的下一语句。若所有的条件表达式的值均为假,则执行OTHERWISE后面的语句序列, 然后脱离情况语句,执行ENDCASE下一语句 。 开始判断语句序列1序列2序列n序列n+1ENDCASE后面的语句条件1条件2条件n其它结构化程序设计和程序调试要求例 已知中包含xingming,avcj等字段。试用avcj来判断该生成绩属于优(90)、良(80)、及格(60)或不及格(60)。USE cjbACCEPT 请输入姓名
18、: TO xmLOCATE FOR ALLTRIM(xingming)=ALLTRIM(xm)navcjDO CASE CASE n=90 dj=优 CASE n=80 dj=良 CASE n=60 dj=及格 OTHERWISE dj=不及格ENDCASE5,10 SAY xingming+同学的成绩等级为:+ dj结构化程序设计和程序调试要求A=3000DO CASE CASE A=1000 B=A CASE A=2000 B=2*A CASE A=3000 B=3*AENDCASE? B例 阅读下列程序段,写出运行结果: 结构化程序设计和程序调试要求Set talk offSet def
19、a to f:yyfoxclearcho=0 8, 18 SAY “* 数据表操作命令菜单 *” 9, 18 SAY “ 1. 打开工作数据表 ” 10, 18 SAY “ 2. 增加数据表记录 ” 11, 18 SAY “ 3. 删除数据表记录 ” 12, 18 SAY “ 4. 修改数据表记录 ” 14, 18 SAY “ 5. 关闭工作数据表 ” 15, 28 SAY “ 请选择相应代码:” GET choReadDo case case cho=1 accept “请输入表文件名:” to bm use &bm例 利用CASE语句实现简单的菜单功能 结构化程序设计和程序调试要求 cas
20、e cho=2 append case cho=3 input “请输入要删除的记录号:” to jlh go jlh dele case cho=4 browse case cho=5 use otherwise 15, 28 SAY “ 选择代码错!” endcaseSet talk on return结构化程序设计和程序调试要求 循环,就是按给定的条件连续地重复执行一段特定功能的程序。循环结构也称为重复结构。9.4 循环结构程序设计 Visual FoxPro给出了三种循环结构:条件循环(DO WHILEENDDO)计算循环(FORENDFOR)扫描循环(SCANENDSCAN)结构化程
21、序设计和程序调试要求语句格式: DO WHILE LOOP EXIT ENDDO 循环体 ENDDO后的语句条件.T.F.条件循环结构流程图一、条件循环循环体功能:有条件连续地重复执行DO WHILE与ENDDO之间的语句序列,直到为假或因执行EXIT语句而结束。条件结构化程序设计和程序调试要求(2)循环体中的LOOP是可选项。遇到LOOP时,不再执行后面的语句,转回DO WHILE处重新判断。其作用相当于一个特殊的“短路”返回控制。(3)循环体中的EXIT也是可选项。遇到它时便无条件地退出循环,转到ENDDO后面的语句。其作用相当于一个紧急出口。(4)通常LOOP或EXIT出现在循环体内嵌套
22、的分支语句中,根据条件来决定是LOOP回去,还是EXIT出去。功能说明:(1)系统执行该语句时,先判断循环开始DO WHILE的条件是否成立, 如果条件为真,则执行循环体中的语句序列。当执行到ENDDO时,返回到DO WHILE,再次判断条件是否为真,以确定是否再次执行循环体。若条件为假,则结束循环 ,执行ENDDO后面的语句。 如果第一次判断条件时,条件即为假,则循环体一次都不执行,这就是称为“先判断后执行”的语句。结构化程序设计和程序调试要求SET TALK OFF SET TALK ONRETURNCLEAR?OK?OK?OK例 在屏幕上换行显示字符串“OK”20次结构化程序设计和程序调
23、试要求i=1? OKi=i+1ENDDODO WHILESET TALK OFF SET TALK ONRETURNCLEARi=20循环次数循环前i值循环后i值112223202021&设置循环变量初值&修改循环变量例 在屏幕上换行显示字符串OK20次? OK结构化程序设计和程序调试要求 DO WHILE 语句之前一定要有设置循环变量初 值的语句。 在以循环变量作为循环控制参数的条件循环中 循环体内一定要有修改循环变量的语句,否则 就会出现死循环。注意结构化程序设计和程序调试要求例 求自然数1至4的和。 分析算法:s= s+i ;i= i+1 ;1. i=1 , s=0 ;2. 累加第 i
24、个数3. 累加次数加1 4. 当 i= 4 重复做2 ;5. ? s 。结构化程序设计和程序调试要求例 求自然数1至4的和。 SET TALK OFFS=0 &定义一个变量表示和,并初始化&指定以循环次数作判断条件 S=S+i&把S的值加上i后再赋给S,即求和&修改循环变量i=1DO WHILE i=4i=i+1ENDDO? S&输出求和的结果 SET TALK ON RETURN&设置循环变量的初值结构化程序设计和程序调试要求程序流程图S=0i=11=4S=0+1i=1+1.T.2=4S=1+2i=2+13=4S=3+3i=3+14=4S=6+4i= 4+15=4.F.? 10SET TAL
25、K OFFS=0i=1DO WHILE i=4 S=S+i i=i+1ENDDO? SSET TALK ONRETURN结构化程序设计和程序调试要求 若求自然数1至N的和呢? 程序:求自然数1至4的和SET TALK OFFS=0 i=1INPUT 请输入N的值: TO N DO WHILE i=4 S=S+ii=i+1ENDDO?S SET TALK ON RETURNi=N推广1结构化程序设计和程序调试要求 若求自然数1至N的积呢? 程序:求自然数1至N的和SET TALK OFFS=0 i=1INPUT 请输入N的值: TO N DO WHILE i=N S =S + ii =i + 1
26、ENDDO?S SET TALK ON RETURN推广2S=1S=S*i结构化程序设计和程序调试要求例 阅读程序,并说出程序的运行结果IF i=3 LOOPENDIF程序结果23456程序结果2456 RETURN SET TALK ONSET TALK OFFi=1DO WHILE i=5 i=i+1 ENDDO ? i? “E”EE结构化程序设计和程序调试要求例 求1100以内所有奇数的和。 SET TALK OFFS=0I=0Do while I100 I = I + 1 If int(I/2) = I/2 Loop endif S = S + IEnddo? “1到100的奇数和 S
27、= ”, SSET TALK ONReturn以循环变量作为控制参数控制循环。S=0I=1Do while I 720 EXITENDIF结构化程序设计和程序调试要求例 求1,100内所有能被3或被5整除的数的个数。i=1DO WHILE i=100i=i+1ENDDO IF MOD(i,3)=0 .OR. MOD(i,5)=0N=N+1ENDIFN= 0&定义一个变量表示个数,并初始化&总个数增加1 SET TALK OFF? 满足条件的数的个数为,NSET TALK ON RETURN? i&显示满足条件的这个数结构化程序设计和程序调试要求语句格式: FOR XA TO B STEP C
28、LOOP EXIT ENDFOR | NEXT 二、计数循环循环体功能:将FORENDFOR循环中的执行指定的次数。循环变量循环初值步长值循环终值结构化程序设计和程序调试要求例 求1100之和。 SET TALK OFFClear S=0for I=1 to 100 S = S + IEndfor? “S = ”, SSET TALK ONReturn 若求100的阶乘呢?思考1结构化程序设计和程序调试要求例 求1100之奇数和。 SET TALK OFFClear S=0for I=1 to 100 step 2 S = S + INext ? “S = ”, SSET TALK ONRet
29、urn 若求1100的偶数和呢?思考2结构化程序设计和程序调试要求例 阅读程序,写出程序运行结果 SET TALK ONSET TALK OFFS=0 FOR K=1 TO 10 STEP 2 S=S+K ENDFOR ? S RETURNIF K=7LOOPENDIF思考3若改成EXIT呢?结构化程序设计和程序调试要求语句格式: SCAN FOR LOOP EXIT ENDSCAN 三、表文件扫描循环循环体功能:在指定的范围内,扫描满足给定条件的记录,执行相应的语句。结构化程序设计和程序调试要求SET TALK OFFUSE zgbACCEPT “请输入要查找人的姓名: ” TO NSCAN
30、 FOR XM=N DISP WAIT “按任意键继续,按ESC键退出”ENDSCANUSE?“查找结束”SET TALK ONRETURN例 用SCAN语句编程:在中查找某人。结构化程序设计和程序调试要求对数据表扫描时三种循环的等价格式表文件扫描循环: SCAN FOR ENDSCAN条件循环: DO WHILE .NOT. EOF()SKIP ENDDO计数循环: n=RECCOUNT() FOR i=1 TO n GO i ENDFOR结构化程序设计和程序调试要求循环嵌套循环体内又设置循环的情况称为多重循环,又称为循环嵌套。内外循环的层次必须分明,不允许有交叉现象出现。循环结构可以与分支
31、结构嵌套,同样不允许有交叉现象出现。 以下交叉情形不允许出现: 结构化程序设计和程序调试要求例 已知S1=1,S2=1+2,S3=1+2+3, Sn=1+2+3+N,编程求S1+S2+S100的和。s=0n=1Do while n=100 i=1 sub=0 Do while i800时退出,求此时最小的S值(4)求(5)求结构化程序设计和程序调试要求9.5 程序的模块化 9.5.1 子程序、过程和函数 1.子程序(1).子程序的结构子程序与其他程序文件的惟一区别是其末尾或返回处必须有返回语句。命令格式:RETURN.TO.程序文件名表达式 结构化程序设计和程序调试要求 (2).子程序的调用
32、子程序调用命令与主程序执行命令相同,其格式都是:DO程序文件名过程名WITH.参数表(3).子程序的嵌套调用 主程序可以调用子程序,子程序还可以调用另外的子程序,这就是子程序的嵌套调用。实际上,子程序和主程序都是相对的,任何一个程序可以调用其他程序,也可以被其他程序调用。每个被调用程序的末尾或返回处都要加上RETURN命令。 结构化程序设计和程序调试要求2.自定义函数(1).自定义函数的结构 FUNCTION.函数名PARAMETERS.参数表命令组 RETURN.表达式(2).自定义函数的调用 调用格式是: 函数名(自变量表) 结构化程序设计和程序调试要求3.过程与过程文件(1).过程的结构 过程的一般格式是:PROCEDURE过程名PARAMETERS参数表命令组 RETURN (2).过程文件 一个过程可以以文件形式单独存在,也可以将多个过程合并到一个文件中,这个文件称为过程文件。在过程文件中,每个过程仍然是独立的,可以单独调用。 结构化程序设计和程序调试要求(3).过程文件的打开与关闭 打开过程文件命令格式是: SET.PROCEDURE.TO.过程文件名关闭过程文件命令格式是:或者CLOSE.PROCEDURE 结构化程序设计和程序调试要求9.5.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年初中人教版八年级下册生物 7.2.1基因控制生物的性状说课稿
- DB32-T 5023-2025 板卷库无人化建设通 用要求
- 第五课 网络新纪元-网络新技术应用与发展 教学设计 -2023-2024学年大连版(2015)初中信息技术八年级上册
- 2025年止血用医用生物蛋白胶合作协议书
- 玻璃钢制品生产线建设可研报告
- 2023-2024学年八年级地理上册 第一章 人口和民族 教学设计
- 第16课 独立自主的和平外交(教学设计)八年级历史下册同步备课系列(统编版)
- 第八章第一节 日本 第一课时教学设计-2023-2024学年七年级地理下册湘教版
- 2024年下半年池州市投资控股集团公开招聘工作人员25人笔试参考题库附带答案详解
- 第一单元课题2化学实验与科学探究(第2课时)教学设计-2024-2025学年九年级化学人教版上册
- 《电梯安全教育培训》课件
- 2024年北京电子科技职业学院高职单招语文历年参考题库含答案解析
- 2024版消防设计质量问题案例分析手册建筑机电专业
- 《业财一体化实训教程-金蝶云星空V7.5》
- 工业机器人工作站系统组建课件 5.1康耐视is2000工业相机视觉识别操作
- 人教版二年级数学下册第一单元综合测评卷(含答案)
- 社区意识形态工作2025年度工作计划
- 2025年山东省济南广播电视台招聘30人历年管理单位笔试遴选500模拟题附带答案详解
- DG-TJ 08-2048-2024 民用建筑电气防火设计标准
- 2025年中智集团招聘笔试参考题库含答案解析
- 肝癌围手术期的护理
评论
0/150
提交评论