c++实验一

99563220-fhy 2019-03-16 原文


c++实验一


2-28

实现一个简单的菜单程序,运行时显示“Menu:A(dd) D(elete) S(ort) Q(uit),Select one:”提示用户输入。输入为A、D、S时分别表示“数据已经增加、删除、排序。”,输入为Q时程序结束。

(1)要求使用if…else语句进行判断,用break,continue控制程序流程。

代码:

#include<iostream>
using namespace std;
int main()
{    char i;
    while(true)
    {    cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:";
        cin>>i;
        if(i-65==0)
        {    cout<<"数据已经增加"<<endl;
            continue;
        }
        else if(i-68==0)
        {    cout<<"数据已经删除"<<endl;
            continue;
        }
        else if(i-83==0)
        {    cout<<"数据已经排序"<<endl;
            continue;
        }
        else if(i-81==0)
        {    cout<<"程序结束";
            break;
        }
        else
        {    cout<<"not found"<<endl;
            continue;
        }
    }
    return 0;
}

结果:

(2)要求使用switch语句。

代码:

#include<iostream>
using namespace std;
int main()
{    char i;
    while(true)
    {    cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:";
        cin>>i;
        switch(i)
        {    case 'A':cout<<"数据已经增加"<<endl;break;
            case 'D':cout<<"数据已经删除"<<endl;break;
            case 'S':cout<<"数据已经排序"<<endl;break;
            case 'Q':cout<<"程序结束";break;
            default:cout<<"not found"<<endl;
        }
        if(i==81)
        break;
    }
    return 0;
}

结果:

 

2-29

用穷举法找出1~100间的质数并显示出来,分别使用while,do…while,for循环语句实现。

(1)while循环语句

代码:

#include<iostream>
using namespace std;
int main()
{    int a=2,n=1;
    while(a<101)
    {    int i=2;
        while(i<a&&a%i!=0)
        {    i++;
        }
        if(i==a)
        {    cout<<a;
            if(n%5==0)
                cout<<endl;
            else
                cout<<"  ";
            n++;
        }
        a++;
    }
    return 0;
}

结果:

(2)do…while循环语句

代码:

#include<iostream>
using namespace std;
int main()
{    int a=2,n=1,i=2;
    do
    {    if(a%i==0&&i!=a)
        {    a++;
            continue;
        } 
        else if(i==a)
        {    cout<<a++;
            if(n%5==0)
                cout<<endl;
            else
                cout<<"  ";
            n++;
            i=2;
        }
        else
            i++;
    }while(a<101);
    return 0;
}

结果:

(3)for循环语句

代码:

#include<iostream>
using namespace std;
int main()
{    int i,j,n=1;
    for(i=2;i<=100;i++)
        for(j=2;j<=i;j++)
        {    if(i%j==0&&i!=j)
                break;
            if(i==j)
            {    cout<<i;
                if(n%5==0)
                    cout<<endl;
                else
                    cout<<"  ";
                n++;
            }
        }
    return 0;
}

结果:

 

2-32

在程序中定义一个整形变量,赋予1~100的值,要求用户猜这个数,比较两个数的大小,把结果提示给用户,直到猜对为止。分别使用while,do…while语句实现循环。

(1)while循环语句

代码:

#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{    srand(time(NULL));
    int n=rand()%100+1;
    int a,i=1;
    while(i==1)
    {    cout<<"输入1~100中你猜测的数:";
        cin>>a;
        if(a>n)
            cout<<"实际比这个数小"<<endl;
        else if(a<n)
            cout<<"实际比这个数大"<<endl;
        else
        {    cout<<"你猜对啦"<<endl;
            i=0;
        }
    }
    return 0;
}

结果:

(2)do…while循环语句

代码:

#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{    srand(time(NULL));
    int n=rand()%100+1;
    int a,i=1;
    do
    {    cout<<"输入1~100中你猜测的数:";
        cin>>a;
        if(a>n)
            cout<<"实际比这个数小"<<endl;
        else if(a<n)
            cout<<"实际比这个数大"<<endl;
        else
        {    cout<<"你猜对啦"<<endl;
            i=0;
        }
    }while(i==1);
    return 0;
}

结果:

 

2-34

口袋中有红、黄、蓝、白、黑5种颜色的球若干,每次从口袋中取出3个不同颜色的球,问有多少种取法?

代码:

#include<iostream>
using namespace std;
enum ball{red,yellow,blue,white,black};
int main()
{    ball balls;
    int i,j,k,n=0;
    for(i=red;i<=black;i++)
        for(j=i+1;j<=black;j++)
            for(k=j+1;k<=black;k++)
            {    switch(i)
                {    case 0:cout<<"red ";break;
                    case 1:cout<<"yellow ";break;
                    case 2:cout<<"blue ";break;
                    case 3:cout<<"white ";break;
                    case 4:cout<<"black ";break;
                }
                switch(j)
                {    case 1:cout<<"yellow ";break;
                    case 2:cout<<"blue ";break;
                    case 3:cout<<"white ";break;
                    case 4:cout<<"black ";break;
                }
                switch(k)
                {    case 2:cout<<"blue"<<endl;break;
                    case 3:cout<<"white"<<endl;break;
                    case 4:cout<<"black"<<endl;break;
                }
                n++;
            }
    cout<<""<<n<<"种取法";
    return 0;
} 

结果:

用了好几个switch唉,尝试改进一下代码:

#include<iostream>
using namespace std;
void pailie(int); 
enum ball{red,yellow,blue,white,black};
int main()
{    ball balls;
    int i,j,k,n=0;
    for(i=red;i<=black;i++)
        for(j=i+1;j<=black;j++)
            for(k=j+1;k<=black;k++)
            {    pailie(i);
                pailie(j);
                pailie(k);
                cout<<endl;
                n++;
            }
    cout<<""<<n<<"种取法";
    return 0;
} 
void pailie(int x)
{    switch(x)
    {    case 0:cout<<"red ";break;
        case 1:cout<<"yellow ";break;
        case 2:cout<<"blue ";break;
        case 3:cout<<"white ";break;
        case 4:cout<<"black ";break;
    }
}

结果:

 

 

实验一总结:

1、感觉自己do…while用的不怎么熟练唉;

2、百度了一波随机数,学到了用时间time(NULL)使每次可以随机到不同的数,其包含在ctime类中;

3、rand()包含在cstdlib类中。

 

 

版权声明:本文为99563220-fhy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/99563220-fhy/p/10541807.html

c++实验一的更多相关文章

随机推荐

  1. 五十岁的创业者告诉我们,奋斗其实没有终点

    一 我曾经提到过最终改行从事美缝行业的老w,他靠自己的“不够努力”,最终离开了行业。 但是,这个世界其实有点讽 […]...

  2. HTTPS 为什么比较安全

    HTTP和HTTPS的安全性 1. HTTP协议为什么是不安全的 HTTP协议属于明文传输协议,交互过程以及数 […]...

  3. 并发编程之Java内存模型

      在介绍Java内存模型之前,先来了解一下为什么要有内存模型,以及内存模型是什么。然后我们基于对内存模型的了 […]...

  4. Java – 反射

    一、定义java的反射(reflection) 机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到嘛,那么,我们就可以修改部分类型信息;这种动态获取信息以及动态...

  5. 网卡速率、带宽、上行、下行、之间关系

    问题: 1.网卡和带宽都会限制上传和下载速度,当 网卡大于带宽时,限制以带宽为准,当网卡小于带宽时以网卡为准? […]...

  6. JDBC连接数据库的步骤

    JDBC连接数据库一共有7步。 1、首先加载驱动 2、提供JDBC连接的URL 3、创建数据库的连接 4、创建 […]...

  7. 五大浏览器内核-简介

    一般说的浏览器内核是指浏览器最重要的核心部分,RenderingEngine,翻译成中文大概意思就是“解释引擎 […]...

  8. nodejs的调试debug

    目录 简介 开启nodejs的调试 调试的安全性 使用WebStorm进行nodejs调试 使用Chrome […]...

展开目录

目录导航