实验3 控制结构实验报告.doc_第1页
实验3 控制结构实验报告.doc_第2页
实验3 控制结构实验报告.doc_第3页
实验3 控制结构实验报告.doc_第4页
实验3 控制结构实验报告.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

南昌大学实验报告 实验类型: 验证 综合 设计 创新 实验日期: 实验成绩: 一.实验名称实验3 控制语句二实验目的1熟练掌握if 、ifelse、ifelse、if语句和switch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。 2熟练掌握while语句、do while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。 3掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。 三实验内容1 选择结构程序设计;2 if语句的使用;3 使用switch语句实现多分支选择结构;4 三种循环语句的应用;5 循环结构的嵌套;6 break和continue语句的使用。三实验环境PC微机DOS操作系统或 Windows 操作系统Visual c+程序集成环境四实验内容和步骤本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。学会单步调试和断点调试程序及变量跟踪方法。1通过键盘输入一个字符,判断该字符是数字字符、大写字母、小写字母、空格还是其他字符。2编程实现:输入一个整数,判断该数的正负性和奇偶性之后,将其数值按照小于10,1099,100999,1000以上四个类别分类并显示。 要求: (1)将变量定义为整型。(2)输入整数前,利用cout给出提示信息。(3)输出结果时要有必要的说明,例如:输入358时,显示358 is 100 to 999。(4)该程序利用if语句实现。运行程序,分别输入9,21,321,4321数据检查输出信息的正确性。3从键盘输入学生的考试成绩,利用计算机将学生的成绩划分等级并输出。学生的成绩可分成5个等级,90-100分为A级,80-89分为B级,70-79分为C级,60-69分为D级,0-59分为E级。要求在输入负数时,给出错误提示。 事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。 再运行一次程序,输入分数为负值(如70),这显然是输入时出错,不应给出等级。修改程序,使之能正确处理任何数据。当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束4某航空公司规定:在旅游旺季79月份,如果订票20张及其以上,优惠票价的10%,20张以下,优惠5%;在旅游淡季16月份,1012月份,订票20张及其以上,优惠票价的20%,20张以下,优惠10%。编写一个C程序,根据月份和旅客订票张数决定优惠率。已知机票单价,请算出旅客的总付款。请使用不同的测试数据进行测试。5编写程序:根据公式 ,输出 的值。 要求: (1)变量为单精度类型,n为整型; (2)计算当n的取值分别为20,50 ,100,200时的值,说明什么问题? (3)修改程序,不给出n值,而改为求值,直到最后一项的数值小于10-4 为止。 (4)对修改后的程序,输出值以及总的项数n。输出格式为:=值;n=值。 6从键盘输入一个01000之间的任意整数,输出该整数的所有因子(例如:输入12,其因子为1,2,3,4,6,12)。 要求: (1)采用while循环语句实现。 (2)输出格式为:Input:12 Output:1,2,3,4,6,12 7计算并输出N以内最大的10个素数以及它们的和,N为用户任意输入的正整数(如:1000)。 要求: (1)在程序内部加必要的注释。(2)由于偶数不是素数,可以不考虑对偶数的处理。 (3)需要考虑N以内的素数个数没有超过10个的情况处理。(4) 输出形式为:素数1+素数2+素数+素数10=总和值。五实验数据及处理结果习题1 通过键盘输入一个字符,判断该字符是数字字符、大写字母、小写字母、空格还是其他字符。问题分析从键盘上输入一个字符,它的ASCII值如果等于32就是空格字符,如果在a和z之间就是小写字母;如果在Z和A之间就是大写字母;如果在字符0和9之间就是数字字符;以上都不是的,就是其他字符。数据需求这次输入需要一个空格输入,所以要用到c=cin.get()算法设计程序实现 #include using namespace std;int main () cout请输入一个字符endl; char ch; cin.get(ch); if (ch=32) coutch=48&ch=57) cout ch是数字字符; else if (ch=a) coutch小写字母; else if(ch=A) coutch是大写字母; else coutch是其他字符; 程序测试 习题2 编程实现:输入一个整数,判断该数的正负性和奇偶性之后,将其数值按照小于10,1099,100999,1000以上四个类别分类并显示。 要求: (1)将变量定义为整型。(2)输入整数前,利用cout给出提示信息。(3)输出结果时要有必要的说明,例如:输入358时,显示358 is 100 to 999。(4)该程序利用if语句实现。运行程序,分别输入9,21,321,4321数据检查输出信息的正确性。问题分析这道题主要是使用if结构,输入一个数,先判断其奇偶,再判断其正负,然后再根据大小比较,输出数字段即可。数据需求 定义输入的数字为整型,在判断奇偶性时,还需要取余运算。算法设计 程序实现 #include using namespace std;int main ()int a;cout输入一个整数a;if(a0&a%2=0) if (a10) couta是一个正数且为偶数endl;couta=10&a=99) couta是一个正数且为偶数endl;couta99&a=999) couta是一个正数且为偶数endl;coutais 100 to 999; if(a=1000) couta是一个正数且为偶数endl;couta1000) couta是一个正数且为偶数endl;couta0&a%2!=0) if (a10) couta是一个正数且为奇数endl;couta=10&a=99) couta是一个正数且为奇数endl;couta=99&a=999)couta是一个正数且为奇数endl;couta is 100 to 999; if(a=1000) couta是一个正数且为奇数endl;couta1000) couta是一个正数且为奇数endl;couta is more than 1000; if(a=0) couta是0且为偶数endl;couta小于 10;if(a0&a%2=0) couta是一个负数且为偶数endl;couta小于10;if(a0&a%2!=0) couta是一个负数且为奇数endl;couta小于10; 程序测试习题3 从键盘输入学生的考试成绩,利用计算机将学生的成绩划分等级并输出。学生的成绩可分成5个等级,90-100分为A级,80-89分为B级,70-79分为C级,60-69分为D级,0-59分为E级。要求在输入负数时,给出错误提示。 事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。 再运行一次程序,输入分数为负值(如70),这显然是输入时出错,不应给出等级。修改程序,使之能正确处理任何数据。当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束 问题分析 把成绩分为 五个等级可以用switch语句实现,if语句用来提示错误数据需求需要输入学生的成绩,输出相应等级或者输入错误算法设计 (流程图中X为输入学生的成绩)程序实现 #include using namespace std;int main ()double a ;int i; cin a;if (a100)cout输入数据错误 endl;else i=a/10; switch (i) case 0 : case 1 : case 2 : case 3 : case 4 : case 5 : cout E endl;break; case 6 : cout D endl;break; case 7 : cout C endl;break; case 8 : cout B endl;break; case 9 : cout A endl;break; case 10 : cout A endl;break; 程序测试 (/*一共输入了9个数字*/)习题4 某航空公司规定:在旅游旺季79月份,如果订票20张及其以上,优惠票价的10%,20张以下,优惠5%;在旅游淡季16月份,1012月份,订票20张及其以上,优惠票价的20%,20张以下,优惠10%。编写一个C程序,根据月份和旅客订票张数决定优惠率。已知机票单价,请算出旅客的总付款。请使用不同的测试数据进行测试。问题分析 本题是在月份不同、票数不同计算总票价的问题,使用switch和if语句就好数据需求 需要输入单价,输入月份,输入票数,然后做简单的计算就可以了算法设计 程序实现 #include using namespace std ;int main ()int m ,n ;double p, sum ;cout请输入单价:p;cout 请输入月份:m ;cout 请输入票数 n ;switch (m) case 7:case 8: case 9: if(n=20) sum=p*n*(1-0.05); else sum=p*n*(1-0.1); cout总价为sumendl;break;default:if(n=20) sum=p*n*(1-0.1); else sum=p*n*(1-0.2); cout总价为sumendl;break; 程序测试 习题5 编写程序:根据公式 ,输出 的值。 要求: (1)变量为单精度类型,n为整型; (2)计算当n的取值分别为20,50 ,100,200时的值,说明什么问题? 当n值越大时,最后的约接近3.14,并且相差减小。 (3)修改程序,不给出n值,而改为求值,直到最后一项的数值小于10-4 为止。 (4)对修改后的程序,输出值以及总的项数n。输出格式为:=值;n=值。 问题分析 需要用for语句实现1/n2 求和,然后做数学运算就好数据需求需要调用数学函数,pow()和sqrt()。对于修改前额程序,需要输入n值,对修改后的不需要做输入。 算法设计 (修改前算法)程序实现 修改前: #include #include using namespace std ; int main () int n ; float pai,sum; cout请输入n值n; for (sum=0;n=1;-n) sum=sum+pow(n,-2) ; pai=sqrt(6*sum) ; coutpaiendl; 修改后:#include #include using namespace std ;int main () int n=0;float pai,sum=0,m=0;do m=pow(n,-2); +n; sum=sum+pow(n,-2) ; while(m=1e-4); pai=sqrt(6*sum) ; coutpai=paiendl; coutn=nendl; 程序测试 修改前:当n值越大时,最后的约接近3.14,并且相差减小。修改后:习题6 从键盘输入一个01000之间的任意整数,输出该整数的所有因子(例如:输入12,其因子为1,2,3,4,6,12)。 要求: (1)采用while循环语句实现。 (2)输出格式为:Input:12 Output:1,2,3,4,6,12 问题分析 输入一个数,需要输出所有能被它整除的数数据需求输入一个数,然后对小于它的正整数做取余运算即可 算法设计 程序实现 #include using namespace std ;int main ()int a,n;n=1;couta;cout=0&an)if(a%n=0)coutn,;n+;elsen+;couta; else cout请输入01000的整数endl; 程序测试 习题7 计算并输出N以内最大的10个素数以及它们的和,N为用户任意输入的正整数(如:1000)。 要求: (1)在程序内部加必要的注释。(2)由于偶数不是素数,可以不考虑对偶数的处理。 (3)需要考虑N以内的素数个数没有超过10个的情况处理。(4) 输出形式为:素数1+素数2+素数+素数10=总和值。问题分析 28以内的数质数的个数小于10,所以单独考虑;大于28的数,从输入数开始要从大到小先判断是不是质数,是的话顺次输出,当输出10个是求和,并结束程序。数据需求 程序开始时需要输入一个正整数算法设计 程序实现 #include using namespace std ;int main ()cout输入一个正整数a;if(a=28) /28之内只有9个质数,所以拿出来单独考虑 cout28) while (bi;i+) if(a%i=0) break; if(a=i) b+; sum=sum+a; couta+; a-; coutb=sumendl; 程序测试 六简答题及挑战题1对于多分支选择结构何时使用if语句的嵌套,何时使用switch语句?两个都是条件语句,当知道准确有几种情况,而且条件是同等级的的情况下使用switc

温馨提示

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

评论

0/150

提交评论