循环结构实验报告范本.docx
《循环结构实验报告范本.docx》由会员分享,可在线阅读,更多相关《循环结构实验报告范本.docx(14页珍藏版)》请在冰豆网上搜索。
![循环结构实验报告范本.docx](https://file1.bdocx.com/fileroot1/2022-12/8/b370afbb-b98b-4600-8285-28559493b081/b370afbb-b98b-4600-8285-28559493b0811.gif)
循环结构实验报告范本
深圳大学实验报告
课程名称:
程序设计基础
实验项目名称:
循环结构
学院:
计算机与软件学院
专业:
指导教师:
报告人:
学号:
班级:
实验时间:
2013-11-20
实验报告提交时间:
2013-11-22
教务处制
一、实验目的与要求:
实验目的:
1.理解结构化程序设计方法的循环结构;
2.掌握用for语句实现循环结构;
3.掌握用while、do…while语句实现循环结构;
4.理解for、while、do…while三者的区别;
5.掌握转向语句break、continue;
6.掌握上机调试的方法。
实验要求:
1.输入数据、输出数据应加以说明(交互性);
2.程序应注意使用注释语句(可读性);
4.对各种可能的输入情况都要考虑处理方案(健壮性);
5.熟悉for、while、do…while、break、continue语法。
6.在blackboard上提交C++源程序或执行文件、输出界面拷屏至实验报告;
7.按报告内容要求完成实验报告。
二、实验环境:
地点:
深圳大学
机器编号:
lily
操作系统:
windows8
C++语言环境:
VC6.0
project类型:
WIN32ConsoleApplication
三、实验内容:
1.求所有“水仙花数”。
所谓“水仙花数”是指一个三位数,其各位数字立方和等于该
数本身。
例:
153是水仙花树,因为:
153=13+53+33。
2.重复输入n(1≤n≤10),输出1!
+2!
+…+n!
的结果。
输入ctrl+z,退出程序。
3.打印如下九九乘法表。
123456789
11
224
3369
4481216
5510152025
661218243036
77142128354249
8816243240485664
991827364554637281
4.编程,输入一个十进制数num,输入一个整数d(2、8),将num转换为d进制
数输出。
(要求用while或do…while实现)
四、实验步骤与过程:
(给出各题主要变量定义、解题思路、流程图(可手画),并附上代码,注意注视语句的添加。
)
1.求所有“水仙花数”。
所谓“水仙花数”是指一个三位数,其各位数字立方和等于该
数本身。
例:
153是水仙花树,因为:
153=13+53+33。
●解题思路:
①首先对数字进行分解,即百位整除100得到百位上的数字;十位上即可通过先对100求余得到一个两位数,再对两位数整除,即分解得十位数;求个位数直接整除10即可;②分解完数字后即对数字进行计算;③然后开始判断该数字是否满足条件,满足即输出,不满足继续向后求;key:
因为这是3位数,所以采用循环结构将所有三位数判定一遍,输出符合条件的。
●主要变量:
数字,分解后的三个数为整型变量。
●流程图见下:
●编程时应注意各个符号,不可遗漏,还有for循环的使用语法;判断循环条件的设置;输出方式的设置,即输出所有的水仙花数;还须注意程序的交互性,提示信息;具体见下面代码:
代码1:
水仙花数
流程图1:
求水仙花数
2.重复输入n(1≤n≤10),输出1!
+2!
+…+n!
的结果。
输入ctrl+z,退出程序。
●解题思路:
①需要重复输入n,考察对返回值的判断理解,即对输入值进行判断,首先给出输入值的变量定义,然后对输入值的返回值进行判断,满足条件即执行下面步骤,包括重复输入的循环,不满足即退出;②输入符合条件的n后,开始计算n!
,利用循环结构从1走到n,后输出结果;再继续重复。
●主要变量定义:
输入的数字,中间转换变量,数字的阶乘均为整型变量。
●流程图见下:
●编程时应注意循环结构的嵌套,即内层循环用于计算n!
,外层循环用于控制n的重复输入,其中包括了对n返回值的判断和限制了范围;程序的交互性。
详细代码如下:
代码2:
求n!
流程图2:
求n!
3.打印如下九九乘法表。
123456789
11
224
3369
4481216
5510152025
661218243036
77142128354249
8816243240485664
991827364554637281
●解题思路:
乘法表的输出需考虑两点,一是输出格式的控制,二是乘法的计算。
①首先输出行1~9,利用一个for循环实现;②然后控制列的输出与计算,采用两个for嵌套,即按列计算输出,首先输出第一列的结果,然后依次2、3、、、、、9列;③为控制格式的对齐,开头和列输出过程中都使用”/t”自动间隔对齐。
●流程图见下:
●编写程序时,充分考虑格式的输出对齐,以及for嵌套的书写。
详细代码如下:
代码3:
输出乘法表
流程图3:
输出乘法表
4.编程,输入一个十进制数num,输入一个整数d(2、8),将num转换为d进制
数输出。
(要求用while或do…while实现)
●解题思路:
首先要熟练掌握进制转换算法,十进制化其他进制,即采用整除求余法,除以转换进制一直到商为0,再将所有余数从后到前排,所得数即为转换后的数;因为转换进制不明确,所以还须对输入进制进行判断。
①采用while循环对十进制数整除求余,并将每一次求得的余数赋予数组,计数;②对输入进制的判断采用if判断;③最后对数组倒序输出。
●流程图见下:
●编程时,要注意中间变量的使用;数组的赋值与定义;对d值的判断;对数组输出位数的判断条件,注意i的初始化赋值;详细代码如下:
代码4:
进制转换
流程图4:
进制转换
五、实验结果与数据分析:
(有运行结果的界面截图,实验结果与实验结果分析,说明实验结果是否达到要求?
并提出对程序的改进想法)。
实验一:
求水仙花数,运行结果界面如下:
实验一:
求水仙花数
●实验结果:
输出所有水仙花数。
●实验结果分析:
达到要求。
实验二:
重复输入n(1~9),求n的阶乘;运行界面如下:
实验二:
求n!
(1~10)
●实验结果:
输入1~10的数字,可正确计算结果;输入超出范围的数字时,结束程序;可重复输入;输入ctrl+z退出程序。
●实验结果分析:
基本达到要求;不足:
当输入3~10时,输出结果正确且格式严谨;但输入1或2时,输出界面不太规范。
●改进:
可另外加一个选择结构即输入1或2时,另外单独显示为1!
=1或1!
+2!
=3,,使得输出更为严谨规范。
改进后代码如下:
改进后代码
程序运行界面如下:
改进后
实验三:
输出乘法表,见下图:
实验三:
输出乘法表
●实验结果:
如上图
●实验结果分析:
达到实验要求。
实验四:
进制转换
实验四:
图一实验四:
图二
实验四:
图三
●实验结果:
如上图所示
●实验结果分析:
达到实验要求。
●改进:
可继续优化的地方,即考虑输入数字有小数的情况,可采用函数等优化。
六、实验体会:
(自己在编程或程序编译运行中遇到的难点、问题及解决办法)
1.对重复输入n的控制,如何实现直接对n值输入类型的判断
将“cin>>n”放入while中,会对n的返回值进行判断,当输入n为所定义的类型后继续执行,不是则退出。
2.对乘法表输出格式对齐的调整?
要一一对齐输出,计算空格较为麻烦,采用“\t”,可自动间隔并对齐。
3.进制转换时,如何让所求余数倒序输出?
要倒序输出,首先要有一个量把每一个余数都记录下来,然后才能控制倒序,所以想到采用数组,记录每一个余数。
4.可是由于输入的数不确定大小,不知道会出现多少次求余,因此对于数组空间大小的给定不确定,太大浪费空间,太小无法执行,该怎么解决?
待解决问题
5.在进制转换中,若有小数,该怎么分解开来?
待解决问题
6.当程序可以运行,但运行结果不对如何检查?
自己对程序进行调试,在可能有错处插入断点,进行跟踪检查,对相关变量的值进行跟踪判断,从而找寻问题所在。
七、自我评价:
(请给自己此次实验进行百分制打分并说明理由)
自我评分:
90
理由:
基本达到程序实验要求,相关提示信息和注释语句也有添加,程序正确可达到实验目的,计算得正确结果。
缺点:
对某些输出格式的控制不够规范,还有对多方面输入情况的处理方案不够完善和全面。
指导教师批阅意见:
成绩评定:
指导教师签字:
年月日
备注:
注:
1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。