试验3控制结构试验报告_第1页
试验3控制结构试验报告_第2页
试验3控制结构试验报告_第3页
试验3控制结构试验报告_第4页
试验3控制结构试验报告_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、,南昌大学实验报告实验类型:口 验证M综合口设计口创新实验日期: 实验成绩:.实验名称实验3控制语句二.实验目的.熟练掌握if、ifelse ifelse if语句和switch语句格式及使用方法,掌握 if语 句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。.熟练掌握while语句、do . . . while语句和for语句格式及使用方法,掌握三种循 环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。.掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调 试程序,掌握语法错误和逻辑错误的检查方法。.实验内容.选择结构程序设计;.

2、 if语句的使用;.使用switch语句实现多分支选择结构;.三种循环语句的应用;.循环结构的嵌套;. break和continue语句的使用。三.实验环境PC微机DOS操作系统或 Windows操作系统Visual c+程序集成环境.实验内容和步骤本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。学会单步调试和断点调试程序及变量跟踪方法。.通过键盘输入一个字符,判断该字符是数字字符、大写字母、小写字母、空格还是 其他字符。.编程实现:输入一个整数,判断该数的正负性和奇偶性之后,将其数值按照小于 10,1099,100999,1000以上四个类别分类并显示。要求:(1)将变

3、量定义为整型。(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语句实现。运行程序,并检查结果是否正确。 再运行一次程序,输入分

4、数为负值(如70),这显然是输入时出错,不应给出等级。修改程序,使之能正确处理任何数据。当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束4.某航空公司规定:在旅游旺季 79月份,如果订票 20张及其以上,优惠票价的 10%, 20张以下,优惠5%;在旅游淡季16月份,1012月份,订票20张及其以上,优惠票价 的20%, 20张以下,优惠10%。编写一个C程序,根据月份和旅客订票张数决定优惠率。已知机票单价,请算出旅客的总付款。请使用不同的测试数据进行测试。2-1 111.编与程序:根据公式=-2 -2-+ -2- + 2,输出兀的值。12 2232n2要求:(1)变量兀为单精

5、度类型,n为整型;(2)计算当n的取值分别为20, 50 ,100, 200时的兀值,说明什么问题?(3)修改程序,不给出n值,而改为求兀值,直到最后一项的数值小于10-4为止。(4)对修改后的程序,输出 兀值以及总的项数 n。输出格式为:兀值;n=值。.从键盘输入一个 01000之间的任意整数,输出该整数的所有因子(例如:输入 12,其 因子为 1, 2, 3, 4, 6, 12)。要求:(1)采用while循环语句实现。(2)输出格式为:Input: 12Output: 1, 2, 3, 4, 6, 12.计算并输出 N以内最大的10个素数以及它们的和,N为用户任意输入的正整数(如:100

6、0)。要求:(1)在程序内部加必要的注释。(2)由于偶数不是素数,可以不考虑对偶数的处理。(3)需要考虑N以内的素数个数没有超过 10个的情况处理。(4)输出形式为:素数 1+素数2+素数+素数10=总和值。五.实验数据及处理结果习题1通过键盘输入一个字符,判断该字符是数字字符、大写字母、小写字母、空格还是其他字符。 问题分析从键盘上输入一个字符,它的ASCII值如果等于32就是空格字符,如果在 a和z之间就是小写字母;如果在 Z和A之间就是大写字母;如果在字符0和9之间就是数字字符;以上都不是的,就是其他字符。数据需求这次输入需要一个空格输入,所以要用到c=cin.get()算法设计开始输入

7、ctl结耒,否杳程序实现#include using namespace std;int main ()cout请输入一个字符endl;char ch;cin.get(ch);if (ch=32)coutch=48&ch=57)cout ch是数字字符;elseif (ch=a) coutch小写字母;elseif(ch=A) coutch是大写字母;else coutch“是其他字符;程序测试入一个子符J-I.cpp1 i抨 include using nanus space stdj int main ()U请输入一字符rMd 1 ichar chjcin a get (ch) j.if

8、(ch=32)ccntcih-43&Bch-57);cout Cch 是数字字符匕if (ch=-a) sut,th*,小写字由 else是大号字母痴J else,wuK-L是其他字符1II1是数字字符rsDELLDes ktop3-1aexe请输入一个字符a小写字母E3 GUsersDELLDesktop3 - 1 uBxe请输入一个于符 A也是大写字母睛输入一个字符 ,是其他字符 CU sereDELLPe5ktop3 -1 .exe入一个-H寸是空格字符ft混译日志“漏试Q理索炼里电关1用Process esited alter 4. 552 seconds with return va

9、lue 0 青按任意键继续一.习题2编程实现:输入一个整数,判断该数的正负性和奇偶性之后,将其数值按照小于10,1099,100999,1000以上四个类别分类并显示。要求:(1)将变量定义为整型。(2)输入整数前,利用 cout给出提示信息。(3)输出结果时要有必要的说明,例如:输入358 时,显示 358 is 100 to 999。(4)该程序利用if语句实现。运行程序,分别输入 9, 21, 321, 4321数据检查输出信息的正确性。问题分析这道题主要是使用if结构,输入一个数 比较,输出数字段即可。数据需求定义输入的数字为整型,在判断奇偶性时,算法设计./ Km/BSSr否1g,先

10、判断其奇偶,再判断其正负,然后再根据大小 还需要取余运算。F足 brhmmm工舌ggggg、杳r局 Mil程序实现#include using namespace std;int main ()int a;cout“输入一个整数a;if(a0&a%2=0)if (a10) couta丘-个正数且为不TT riw MV;禺数 endl;couta=10&a99&a=999)coutvvavv”是 个正数且为偶数 1000)coutvvavv”是 个正数且为偶数 endl;coutais more than 1000; if(a0&a%2!=0) if (a=10&a=99&a1000)coutv

11、vavv是 个正数且为奇数 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;程序测试#inelude using namespace Etdj,int mdiin ()40nqd 101618im20 nE C:Users.DE LLDes.ktop3- 2.eweC C:User4DE LLDesktop3- 2.exe播人一个整数321

12、W21是 T 正数目为奇数321 is 100 to 99g 1 C:、U,EF$DELL,kt0p3-2 4火总脚人一个整麴4321:4羽1是一个正数且为奇数4321 is more than 1000汪悻C:U s e rsDE LLDeskop3-2.exe输入一个整数q是一个正数且为奇数p is less than 10Process esited after 2. 508 second 请按任意键名隹续. . .搜狗拼音输入法全:indjifif是一个正数且为 数less th art是一个正数且为儡数,*Mdljeut0占=乜! toi4(a99i&aa-999)(sutz日4厂是

13、一个正数且为偶数We0dli玉to 99 F) ifcLita 是一个正数且为偶数”endlj;cout4ai0ee)uQut4m44是一个正数且为偶费c已nd 1 :匚 ul:Vmie more than 100& if ea&ali2!=e) (i-f aie)coutaiefcfta99)gut3mL 是一个正数且为奇数-99aao999)( cout “V是一个正数且为奇数eindlji couta是一个正裁且为奇数,end 1 j; couta(c.Quita是0 且为网数 rcwmdl j= 小于 10,B 3)if(a&a%2=3)fgutxa=是一个负数且为制数*0士口(111

14、1*“*,小于10%;是一个贪熟且为奇数YvtndlLtXA.”小于1日1 已选择;0 号行a 36 长蜃1296 插入在。,口15秒内完成解忻习题3从键盘输入学生的考试成绩,利用计算机将学生的成绩划分等级并输出。学生的成绩可分成5个等级,90-100分为A级,80-89分为B级,70-79分为C级,60-69分为D级,0-59分 为E级。要求在输入负数时,给出错误提示。事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。再运行一次程序,输入分数为负值(如70),这显然是输入时出错,不应给出等级。修改程序,使之能正确处理任何数据。当输入数据大于100或小于0时

15、,通知用户“输入数据错,程序结束问题分析把成绩分为五个等级可以用switch语句实现,if语句用来提示错误数据需求需要输入学生的成绩,输出相应等级或者输入错误算法设计(流程图中X为输入学生的成绩)程序实现#include using namespace std;int main ()double a ;int i;cin a;if (a100)cout输入数据错误 endl;elsei=a/10;switch (i)case 0 : cout E endl;break;: cout D endl;break;: cout C endl;break;: cout B endl;break;: c

16、out A endl;break;: cout A 2 using: nanespace Etdjint工11 S121314 H-double b ) int cin aj if (a10e) gutw”输入数据错误Nd endlj elseia/10j Eudtch (i)case5 :wut nEwendl|breakjeast6cout HIDendl;breakjEase7 :cout yendlj break;cas-e常:cout Bendljbreakjcase9 :cout HAendlj.bre*kj:caseie:CDUt E(1endljbreak4case case

17、case case caseA输入数据错误13 c:uJ95A , iOXUsersDELLVDeskto p3-3-,ex&-60输入数岳错误185B CrU5ers.DELLDe5ktcip3-3,expED Y 汕65Di C:Use r&DE LLDe&ktop3 - 3.exe75CI sz辞匚;|55 芯Process exited after 2 8 seconds 括技任意键继绿21001X6请按任意讪狗拼音输入法全:习题4某航空公司规定:在旅游旺季 张以下,优惠5%;在旅游淡季(/* 一共输入了9个数字*/)79月份,如果订票20张及其以上,优惠票价的10%, 2016月份,

18、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)(

19、if(n=20)sum=p*n*(1-0.05);elsesum=p*n*(1-0.1);cout总价为sumendl;break;default:if(n=20)sum=p*n*(1-0.1);elsesum=p*n*(1-0.2);cout总价为sumendl;break;)程序测试Sin elude us i ng namespace std jiht main ()*3 int m jin jidouble pi suim jsaw*宿输入单价:-zsdl-8cinp;白匚。M请输人月份工1Eut X”请输入票数xadLi3cimn j,3switch (nr)41) i (;56;c

20、ase Si7case 9:B if(rt=20)g e12sunr=p*n,(l-iB*fc05)jiels-e5urr-p*n*(l-&.l) jcout 总价为 Y suff tn dig break;4!15&surrp*n*ti -w. 1; $ else7sunr-p* n *fll-6B:9 9 L )coutc c 息价为Z玉 end! j break i )53 选接C:tu$er 请输入单价: 20请输入月份9请输支票数20总价为3双1*1:Usef5D ELLDe5 ktop3 - 4,ex请输入单价:20请输入月份请输入票鼓50总价为其口 1 C:U5wDQ iSC:U

21、 5erSPELLPe&ktcpX3-4.e;(e202D请输入月份;请输入月份t66请输入票数请输入票数2050总价为翔口国榆为颔QProcess esit.Process exited after 6. 366 siec獴狗拼日辅人-炳技仕总建雉博. , .习题5编写程序:根据公式.1111二2+2+2+. 一 十2 ,输出兀的值。6122232n2要求:(2)计算当n的取值分别为(1)变量兀为单精度类型,n为整型;20, 50 , 100, 200时的兀值,说明什么问题?当n值越大时,最后的约接近3.14,并且相差减小。(3)修改程序,不给出n值,而改为求兀值,直到最后一项的数值小于 1

22、0-4为止。(4)对修改后的程序,输出兀值以及总的项数 n。输出格式为:兀值;n=值。问题分析需要用for语句实现1/n2求和,然后做数学运算就好数据需求需要调用数学函数,pow()和sqrt()o对于修改前额程序,需要输入n值,对修改后的不需要做输入。算法设计开始否7T=5刖)中(修改前算法)程序实现修改前:#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);coutp

23、aiendl;修改后:#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;)程序测试修改前:3-5Lcpp#inelude#includeusiing name s pace std jint m己in()(int n ;float paij sun;81rty,请输入n值Ymd】jcirn;16f

24、or (sum=0jn=lj*-n)-sum=suni+pcvi(nj, -2)y:pai=sqrt(6*suifl) ,ccutpaiEndl;. C:XUser 请输入n值 20 , 094671 C:Ll sersD E LL.Oes ktop3 - 5i .exe请输入门值1003. 13208 C:Use 请输入门值 503. 12263* J3C;U cersD E LLDesktop3-请输入埼值2003. 1368315I L Process exi 请按任意键名搜狗拼音输,1Process exited after 2. 018 seconds wit 情按任意键继续搜狗拼音

25、输入法全:当n值越大时,最后的约接近3.14,修改后:并且相差减,6。#include #include u&ing namespace std Int main ()(int ri=0jfloat pai?5Lir=ejrr=e5 doYir=pcM式口厂 m jsunr=suir+pow ( n -2) ji1while(n=le-4)j pai=5qrt(6*5UT) 5,C:UserEDELLDe5ktcp3-5ii.eKepai=3. 13217n=101Process exited after 0. 3168 second 请按任意键继续. . .拽狗拼音输入法全:coutpsi=

26、paiendli euE n=nendli习题6从键盘输入一个 01000之间的任意整数,输出该整数的所有因子(例如:输入12,其因子为 1, 2, 3, 4, 6, 12)。要求:(1)采用while循环语句实现。(2)输出格式为:Input: 12Output: 1, 2, 3, 4, 6, 12问题分析输入一个数,需要输出所有能被它整除的数数据需求输入一个数,然后对小于它的正整数做取余运算即可开始输入K算法设计程序实现#include using namespace std ; int main ()(int a,n;n=1;couta;cout=0&an)(if(a%n=0) (cou

27、tn,;n+;) else n+;couta;elsecout“请输入 01000 的整数 using narnie space std j int vln ()int ajfij.nslj,coutcc HInput:*j 小Aa;coutOut put I*jInput:1001Output:请输入口00。的整数i C:UsersDELLDe5ktop3-fi.exeInput:12Output: 13 2. & 4, 612Process exited after 21 666 seconds with reta 请按任意键继续.1617IB1。21outn n+ielse n+itle

28、caut-请输入e-ieee 的整数endl;习题7计算并输出N以内最大的10个素数以及它们的和,N为用户任意输入的正整数 (如:1000)。要求:(1)在程序内部加必要的注释。(2)由于偶数不是素数,可以不考虑对偶数的处理。(3)需要考虑N以内的素数个数没有超过 10个的情况处理。(4)输出形式为:素数 1+素数2+素数+素数10=总和值。问题分析28以内的数质数的个数小于 10,所以单独考虑;大于28的数,从输入数开始要从大到小先判断是不是质数,是的话顺次输出,当输出 10个是求和,并结束程序。数据需求程序开始时需要输入一个正整数算法设计程序实现#include using namespa

29、ce 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=sum usingstd jF int maLn ()uoutcd 输入一个正整熟,门int aijib j”稿之内只寻我小领簟*甑演拿出亲学蠢番焦据错设,小于相的孰字以内不蒲足有LB叶顺效.请重新萧入RT3BE C!U5trsDElULD,e5.ktop3 a7,exe X2g 输入数据错误,小于琳的数字以内不;i菌足有1此质数,请重新输 -I? 0又 7 lajSqiiajlK上.LMWhH A*l li kA- - C:UrsPEllDsMQpV3-7-txp- X输人T正整数woo997-91+933 +977+71+967+g 53-47 十我1吗 W 7=9664a) breakjjsuv-suni + aj,l?rocess edited after 3. 54* secondf with return value 0 请按任意键旌续一一.攫典拼音输入法 :六.简答题及挑

温馨提示

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

评论

0/150

提交评论