实验七 程序设计基础
实验目的
1.掌握VISUAL FOXPRO命令文件的建立和执行。
2.掌握结构化程序设计的一般方法,熟练掌握VISUAL FOXPRO程序设计的3种基本结构。
3.熟悉VISUAL FOXPRO的过程、过程文件和自定义函数的使用。
4.了解VISUAL FOXPRO程序调试器的使用方法。
实验题目
1.编制程序abc1.prg,其功能是根据用户所输入的学生成绩,判断该生的成绩等级,其中,89~80分为良好,79~70分为中等,69~60分为及格,60分以下为不及格。(练习分支结构)
2.编制程序abc2.prg,其功能是统计“学生.DBF”表中男生、女生的人数分别是多少。(练习循环结构)
3.编制程序abc3.prg,其功能是计算1!+2!+…+100!的值。(练习过程及自定义函数)
4.编制程序abc4.prg,求出3~100间的素数,并从屏幕输出。(综合练习)
5.编制程序abc5.prg,利用选课表和课程表,编制程序查找并显示所有选修了《数据库》课程的学生的学号和成绩,并输出《数据库》课程的平均成绩。(综合练习)
6.设计一个查询程序abc6.prg,首先输出如下所示的一个菜单,然后根据用户的选择,实现相应的功能,最好通过调用过程文件来实现。该菜单应能循环调用,最后通过VISUAL FOXPRO的程序调试器将其调试通过。(综合练习)
实验步骤
7-1 实验步骤
分析:该程序的编制用多分支语句来实现较为简单,但是值得注意的是,在进行判断时应按照从高到低或从低到高的顺序进行,否则由于多分语句只要有一个条件符合就不再进行之后的判断,这样则会导致出错。
实验步骤:
1.输入如下命令建立程序:modi command a:\abc1.prg
2.在程序设计器中输入如下命令系列:
CLEAR
INPUT“请输入学生成绩”: TO SCORE
DO CASE
CASE SCORE>=90
?“该生成绩优秀”
CASE SCORE>=80
?“该生成绩良好”
CASE SCORE>=70
?“该生成绩中等”
CASE SCORE>=60
?“该生成绩及格”
OTHERWISE
?“该生成绩不及格”
ENDCASE
RETURN
3.执行该程序,查看是否得到正确结果。
练习:
(1)请将该程序改为使用单分支来实现。
(2)请将该程序改为使用双分支来实现。
7-2 实验步骤
分析:该程序用循环结构来实现,首先定义两个变量MN和WN,并对其赋初值为0,该二变量用于存储表中男、女生的人数,在打开学生表后,对学生表中每一条记录的性别字段进行判断。根据判断的情况来对MN和WN重新赋值,直至所有记录判断完毕后,MN和WN的值即是男生和女生的人数。
实验步骤:
1.输入如下命令建立程序:modi command a:\abc2.prg
2.在程序设计器中输入如下命令系列:
3.执行该程序,查看是否得到正确结果。
练习:
(1)请将该程序改为用FOR/ENDFOR循环来实现。
(2)请将该程序改为用SCAN/ENDSCAN循环来实现。
7-3 实验步骤
分析:该程序用单循环结构+过程来实现,循环变量N从1循环到100 ,而过程JS则实现N的阶乘的计算,每次计算完后,将计算结果加入变量S中,循环完成后,S的值就是1!+2!+……+100!的值了。
实验步骤:
1.输入如下命令建立程序:modi command a:\abc3.prg
2.在程序设计器中输入如下命令系列:
3.执行主程序ABC3,查看是否得到正确结果。
练习:
(1)请将该程序改为用二重循环来实现。
(2)请将该程序改为用自定义函数来实现。
7-4 实验步骤
分析:该题显然应该用二重循环,外重循环用来控制3~100间的数,内重循环用来判断该数是否是素数,其中用到标志变量flag。flag变量的初值为0,在判断的过程中如果该数能被任何一个数整除则将flag的值置为1,标志该数不是素数,最后再通过判断flag的值来判断该数是否是素数。
1.输入如下命令建立程序:modi command a:\abc4.prg
2.在程序设计器中输入如下命令系列:
3.执行该程序,查看是否得到正确结果。
练习:在程序中,语句EXIT可否省略,使用该语句有何好处。
7-5 实验步骤
分析:该题涉及的学生学号和课程名分别来自选课表和课程表,因此显然应该用到多工作区操作。所以首先应在不同的工作区中打开这两个表并进行连接,然后根据课程表中的课程名来进行判断,这其中用到两个变量,变量S用来存放选修了“数据库”这门课程的学生成绩总和,变量K用来累计选修了“数据库”这门课程的学生人数。
1.输入如下命令建立程序:modi command a:\abc5.prg
2.在程序设计器中输入如下命令系列:
?"选修数据库同学的平均成绩为:",averg
close all data
canc
3.执行该程序,查看是否得到正确结果。
7-6 实验步骤
分析:该题应分成两个部分来完成,由主程序来完成菜单的显示和过程的调用,另再生成一个过程文件来完成主程序的各项功能。其中变量choice用来接收用户的选择,需要注意的是对于用户按错键的情况应该作出相应处理,由于要求能循环使用该菜单,因此在菜单前加入一个死循环,通过用户的选择跳出。
1.输入如下命令建立主程序:modi command a:\abc6.prg
2.在程序设计器中输入如下命令系列:
思考题
1.请编一程序判断用户输入的字符是大写字母、小写字母、数字还是其他字符。
2.请编一程序根据用户输入的学号在选课表中进行查找,找到后根据该生的成绩判断其成绩等级:100~90分为优秀,89~80分为良好,79~70为中等,69~60分为及格,60分以下为不及格。然后输出该生的姓名和成绩等级,该程序应能循环使用(提示:请用多工作区操作,涉及学生表和选课表、判断等级请用多重分支)。
3.请编程序从键盘输入任意一个数据,按大小顺序将它们输出(提示:可用数组来接收输入的数,然后用二重循环进行排序)。
4.编写程序计算Y=3ex+6x在2、4、6处的值,并求出平均值(要求:只能使用自定义函数来实现)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。