三种程序结构补充.ppt

上传人:本田雅阁 文档编号:2875761 上传时间:2019-05-31 格式:PPT 页数:22 大小:400.02KB
返回 下载 相关 举报
三种程序结构补充.ppt_第1页
第1页 / 共22页
三种程序结构补充.ppt_第2页
第2页 / 共22页
三种程序结构补充.ppt_第3页
第3页 / 共22页
三种程序结构补充.ppt_第4页
第4页 / 共22页
三种程序结构补充.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《三种程序结构补充.ppt》由会员分享,可在线阅读,更多相关《三种程序结构补充.ppt(22页珍藏版)》请在三一文库上搜索。

1、数据库应用(VFP6.0),,J,Company Logo,4.1.1 顺序结构,例1:显示指定表文件的全部记录内容。,分析: 指定表文件应该由键盘输入(ACCEPT)实现; 打开对应表文件进行操作; 显示该表文件的全部记录用LIST或DISP ALL命令; 对表操作完毕,应该关闭指定的表。,程序代码: SET TALK OFF CLEAR ACCEPT “请输入指定的表文件:” TO BWJ USE &BWJ DISP ALL USE SET TALK ON,与INPUT的区别?,INPUT:数据类型可以是N,C,D,L和Y等,也可以是表达式; ACCEPT:从键盘输入的数据只能是字符型常量

2、。,J,Company Logo,4.1.1 顺序结构,例2:求“学生”表中指定班级的全体学生的奖学金总额。,note 求指定班级的奖学金总额 set talk off clear use 学生 accept “输入班级(951/953):“ to bj sum 奖学金 to jxj for left(学号,3)=bj ?bj+“班的奖学金总额为“+str(jxj,5,2) use set talk on,J,Company Logo,4.1.1 顺序结构,例3:统计“成绩”表中某学生的平均成绩。 (顺序例题5.PRG),分析: 对表文件操作应该打开指定的表(成绩.DBF); 由键盘输入指定的

3、学生,应该提供输入处理; 对指定学生统计平均成绩(AVERAGE命令),并显示平均成绩; 对表操作完毕,应该关闭指定的表。,程序代码: SET TALK OFF USE 成绩 ACCEPT “请输入学号:“ TO MXH AVERAGE 成绩 TO MPJCJ FOR 学号=MXH ?MPJCJ USE SET TALK ON,J,Company Logo,4.1.1 顺序结构,上机作业 1、编写一个程序统计成绩表中所有学生的平均成绩。 2、编写一程序统计学生表中获得奖学金的人数。 3、编写一个程序,实现对“学生”表中指定学生(由键盘输入)的奖学金加10元,并显示该学生的奖学金。,J,Comp

4、any Logo,4.1.2 选择分支结构,例4:求“学生”表中指定班级(如951或953,学号字段的前3个字符表示班级)的男、女学生的奖学金总额。,分析:由题意得知,从键盘输入的班级在“学生”表中确实存在才有统计奖学金的必要。用户输入的班级一旦在“学生”表中找不到,程序运行之后虽然不会出错,但却因为找不到满足条件的记录而得出我们不期望看到的结果。所以必须采取相应的输入值检验措施。解题步骤如下: 对表中信息进行查询,首先必须打开相应的表文件。 运用相应的字符输入语句实现输入班级操作。 查找指定的班级(可用顺序查找或索引查找命令)。 判断输入的班级在“学生”表中是否存在,如果存在就进行下面的步骤

5、5、6,否则给出提示信息,说明指定的班级不存在。直接进行步骤7。 计算男、女学生的奖学金总额。 输出显示查询结果。 结束对表中信息的操作,关闭相应的表文件。,J,Company Logo,4.1.2 选择分支结构,流程图如下:,J,Company Logo,4.1.2 选择分支结构,程序代码: SET TALK OFF CLEAR USE 学生 ACCEPT “输入指定的班级(如951或953):“ TO BJ LOCATE FOR LEFT(学号,3)=BJ IF FOUND() SUM 奖学金 TO JXJ1 FOR LEFT(学号,3)=BJ AND 性别 SUM 奖学金 TO JXJ2

6、 FOR LEFT(学号,3)=BJ AND !性别 ?BJ+“班全体男学生的奖学金总额为:“+STR(JXJ1,6,2) ?SPACE(LEN(BJ)+2)+“全体女学生的奖学金总额为:“+STR(JXJ2,6,2) ELSE ?“指定班级不存在!“ ENDIF USE SET TALK ON,J,Company Logo,4.1.2 选择分支结构,例5:从键盘输入学生的学号,在“成绩”表中计算该学生的平均成绩,并说明成绩的档次(优、良、中、及格和不及格),如果该学生不在表中则提示相应的信息。 流程图:P168图4.7 程序代码:P168,思考:在这个例子里,如果要查询多个学生的成绩,该怎么

7、办?,J,Company Logo,4.1.2 选择分支结构,选择分支结构上机作业: 1、求指定学生的出生日期,并求其年龄,如果学生不存在则显示提示信息。 2、用多路选择分支结构实现统计某学生的平均成绩,并可根据平均成绩确定他的奖学金,标准如下: 平均分 奖学金等级 95 100 100元 90 94 75元 85 89 50元 80 84 25元,J,Company Logo,4.1.3 循环结构,例6:利用永真循环结构完成对多个学生成绩的查询操作。 请同学们自己画出流程图。,J,Company Logo,J,Company Logo,4.1.3 循环结构,对表文件中的记录逐条进行操作。 格

8、式:DO WHILE .NOT. EOF()/BOF() SKIP/SKIP -1 ENDDO 功能:对当前打开的表文件中的记录自上而下或自下而上地逐条进行操作。 注意:记录指针由SKIP语句控制,循环结束的条件由函数EOF()和BOF()控制。 例题:,J,Company Logo,4.1.3 循环结构,例7:逐条显示女生的姓名和出生日期,并统计女生的人数。不能用LIST和COUNT命令。,分析: (1)打开表,指针在第一条记录 (2)如果是女生,则显示,并将个数加1;如果不是女生,则什么也不做,到下一步 (3)移动指针 (4)重复(2)(3)直到文件末尾 (5)关闭表,程序代码: SET

9、TALK OFF CLEAR USE 学生 N=0 DO WHILE !EOF() IF !性别 DISP N=N+1 ENDIF SKIP ENDDO ?“N=“,N USE SET TALK ON,J,Company Logo,4.1.3 循环结构,例8:显示输出“学生”表中获得奖学金的学生姓名和奖学金数额。 流程图:,程序代码: SET TALK OFF CLEAR USE 学生 DO WHILE !EOF() IF 奖学金0 ?姓名,奖学金 ENDIF SKIP ENDDO USE SET TALK ON,J,Company Logo,4.1.3 循环结构,该题也可以用SCANENDS

10、CAN循环结构来实现。 格式: SCAN NOOPTIMIZE 范围 FOR WHILE LOOP EXIT ENDSCAN 功能:对当前打开的表文件在指定范围,满足条件的记录中进行自上而下逐个扫描操作,随着记录指针的移动,SCAN循环允许对指定的每条记录执行相同的操作。,程序代码: SET TALK OFF CLEAR USE 学生 SCAN FOR 奖学金0 ?姓名,奖学金 ENDSCAN USE SET TALK ON,J,Company Logo,4.1.3 循环结构,例9:输出“学生”表中1971年或以前出生的学生姓名和出生年月。 流程图:,J,Company Logo,4.1.3

11、循环结构,程序代码: SET TALK OFF CLEAR USE 学生 LOCATE FOR YEAR(出生年月)=1971 DO WHILE !EOF() ?姓名,出生年月 CONTINUE &查找下一个满足条件的记录 ENDDO USE SET TALK ON,问题:LOCATE命令能不能放在循环之内?为什么?,思考:该题如何用SCANENDSCAN循环结构来实现?,J,Company Logo,4.1.3 循环结构,例10:查找学生.DBF中所有姓王的记录 (用LOCATE和SEEK实现)(在查找的过程中使用循环)( 循环例题3.PRG ),程序代码: SET TALK OFF USE

12、 学生 LOCATE FOR SUBSTR(姓名,1,2)=“王” DO WHILE .NOT.EOF() DISPLAY CONTINUE ENDDO SET TALK ON,问题:在这里可以使用SKIP吗? SKIP:输出第一条姓王的记录之后的所有记录; CONTINUE:仅仅输出姓王的记录,J,Company Logo,4.1.3 循环结构,用SEEK或FIND函数实现: SET TALK OFF USE 学生 INDEX ON 姓名 TO IXS2 SEEK “王“ &或FIND 王 DO WHILE .NOT.EOF().AND.SUBSTR(姓名,1,2)=“王“ DISPLAY

13、SKIP ENDDO SET TALK ON,问题:为什么还要加这个条件?,问题:在这里可以使用CONTINUE吗?,J,Company Logo,4.1.3 循环结构,三、SCANENDSCAN 格式: SCAN NOOPTIMIZE 范围 FOR WHILE LOOP EXIT ENDSCAN 功能:对当前打开的表文件在指定范围,满足条件的记录中进行自上而下逐个扫描操作,随着记录指针的移动,SCAN循环允许对指定的每条记录执行相同的操作。 例题:P174例4.15, P174例4.16。,J,Company Logo,4.1 程序控制的基本结构,循环结构上机作业: 1、用永真循环结构实现对学生.DBF中多个学生情况的查询,要求按学号查询。 2、编写口令判断程序,要求在VFP主窗口显示信息并从键盘输入口令,能自动判断口令是否与系统口令(学生.DBF中“姓名”字段的值)完全一致,若一致则显示欢迎信息;否则给予三次重输机会,输入次数超过三次则显示无权使用本系统的提示。 3、分别用DO WHILE ENDDO和SCANENDSCAN结构显示输出“学生.DBF”中1971年以前出生的男性的学生姓名和出生年月。,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1