C++语言程序设计想项目三

一、实验目的

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实现。写了这周的编程作业,就是对知识的实际应用。在编程的时候,运用这些知识,使我对知识点记得更加清楚!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值