一、实验目的
1、理解并掌握程序的顺序结构、分支结构和循环结构程序设计程序设计方法。
2、掌握分支结构语句和循环语句的嵌套形式。
3、学习过程化程序设计方法。
4、进一步学习掌握查找与修改编译错误的方法 。
二、准备内容
1、实验课前需预习实验内容,并做好实验设计。
2、复习视频及课上所讲授的C++顺序结构、分支结构和循环结构等C++基本知识。
三、实验内容
设计并完成项目三:慕课网站上第三周的编程作业。
四、实验步骤
(一)编程代码
3-1打印3个相邻字母
#include<iostream>
using namespace std;
int main()
{
char x,a,b;//定义三个字符串变量
cin>>x;//输入x
if(x>=65&&x<=90)//判断x是不是再65到90之间,如果符合则运行之后这一段程序,如果不满足则运行else里面的程序。
{
a=(x-'A'-1+26)%26+'A';//利用公式求出a
b=(x-'A'+1)%26+'A'; //利用公式求出b
}
else
{
a=(x-'a'-1+26)%26+'a';//利用公式求出a
b=(x-'a'+1)%26+'a';//利用公式求出b
}
cout<<a<<x<<b<<endl;//依次输出a,x,b的值。
return 0;
}
3-2歌唱大赛选手成绩计算
#include<iostream>
using namespace std;
int main()
{
int arr[10];//定义一个一维数组
int max,min,sum;//声明三个整型变量。
max=sum=0;//使max和sum的初始值都为零
min=101;//min的初始值为101.
double average;//声明一个双精度变量average
for(int i=0;i<10;i++)//这是一个循环语句,分别给一维数组赋值
{
cin>>arr[i];//输入这十个值。
if(arr[i]>100||arr[i]<0)//如果大于100或者小于零则输出下面的语句
{
cout<<"the score is invalid."<<endl;//输出这句话the score is invalid.
return 0;
}
if(arr[i]>max)//一维数组中的数值进行比较,取出最大值。
max=arr[i];//把最大的数赋值给max
if(arr[i]<min)//一维数组中的数值进行比较,取出最小值。
min=arr[i];//把最小的数赋值给min
sum=sum+arr[i]; //每个数值加起来
}
average=double(sum-max-min)/8;//求出平均值
cout<<average<<endl;//输出平均值
return 0;
}
3-3猴子吃桃
#include<iostream>
using namespace std;
int main()
{
int peach=1;//声明一个peach的整形数量,并使他的初始值为一
int day;//声明一个整型变量day
cin>>day;//输入day的值
for(int i=0;i<day-1;++i)//for循环,从第n天开始一直到开始的第一天
{
if(day>1)//如果天数大于1
peach=2*(peach+1);//桃子个数重新定义为前一天桃子个数加1乘以2
else if(day==1)//否则如果天数为1
peach=1;//则桃子个数为1
else//否则桃子个数为前一天桃子个数加1乘以2
cerr<<"input error."<<endl;//输出 “输入错误”
}
cout<<peach<<endl;//输出peach的值
return 0;
}
3-4搬砖问题
#include<iostream>
using namespace std;
int main()
{
int men,women,children;//定义这三个整型变量。
int n;//声明n整形变量
int x,y,z;//声明x,y,z三个整型变量
cin>>n;//输入n的值
for(men=0;men<=n/4;men++)//计算男人一次共搬多少砖块
{
for(women=0;women<=n/3;women++)//计算女人一次共搬多少砖块
{
children=2*(n-4*men-3*women);//计算儿童一次共搬多少砖块
if(children>0&&children==n-men-women)//如果儿童人数大于0,且儿童人数为n减男人和女人人数
{
x=men;y=women;z=children;//把x 定义为 men的人数; y 定义为 women; z 定义为 children
cout<<"men"<<men<<endl;
cout<<"women"<<women<<endl;
cout<<"children"<<children<<endl;
}
}
}
if(x==0||y==0||z==0)//如果男人,女人,儿童其中有为0的情况则输出没有结果
cout<<"no result!"<<endl;//输no result!
return 0;
}
3-5美分找钱
#include<iostream>
using namespace std;
int main()
{
int n,sum=0//定义整型变量n,count ,且count 初始值为 0
cin>>n;
if(n<0||n>99)//如果n美分数大于99或者小于0 ,则输出"the money is invalid!" ,这个钱数是无效的
{
cout<<"the money is invalid!"<<endl;
return 0;
}
else//否则输入美分数目在0到99之间
{
for(int a=0;a<=n;a++)//计算可以换25美分硬币的数目,从换一个25美分开始计算一直到小于等于n结束
{
for(int b=0;b<=n;b++)//计算可以换10美分硬币的数目.....
{
for(int c=0;c<=n;c++)//计算可以换5美分硬币的数目.....
{
for(int d=0;d<=n;d++)//计算可以换1美分硬币的数目......
{
if(25*a+10*b+5*c+d==n)//如果所换的25、10、5、1美分硬币数目相加为所要兑换的钱的数目
{
sum = sum+1;//则兑换方法加1
}
}
}
}
}
cout<<sum<<endl;
}
return 0;
}
- 运行结果
3-1打印3个相邻字母
3-3猴子吃桃
3-2歌唱大赛选手成绩计算
3-4搬砖问题
3-5美分找钱
五、实验结论
经过第三周的学习,算是对c++有初步的了解了。在这一章我学到了很多,老师也讲了许多mooc慕课上面没有的知识。我也再这周的编程作业中用到了这些知识。结构化程序由三种基本结构组成,顺序额,选择和循环。if、else、switch、case和break与分支语句有关。还有就是多路分支使用switch是典型的多路分支语句,其作用与嵌套使用if语句基本相同,但switch语句比if语句更具有可读性,而且switch语句允许在找不到一个匹配条件的情况下执行默认的一组语句。在这种情况下可以使用,死循环各类编程语言中,死循环都有多种实现的方法,以C语言为例,可分别使用while.for,goto实现。写了这周的编程作业,就是对知识的实际应用。在编程的时候,运用这些知识,使我对知识点记得更加清楚!