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. 快速了解ARP

    介绍MAC地址和五种ARP报文 目录 前言 一、MAC 1、MAC地址三种帧 二、ARP 1、五种ARP 三、 […]...

  2. Python学习笔记:PyHive连接Hive数据库

    PyHive 是 Python 语言编写的用于操作 Hive 的简便工具库。一、PyHive安装# Liunx系统pip install saslpip install thriftpip install thrift-sasl...

  3. ajax过程详解 – 洛水三千

    ajax过程详解 Ajax是Asynchronous JavaScript and XML的缩写,意思是异步J […]...

  4. 简单的获取验证码

    <!DOCTYPE html><html> <head> <meta […]...

  5. mysql安装以后无法登陆的的解决方法((ERROR 1698 (28000): Access denied for user \’root\’@\’localhost\’))

    mysql安装以后无法登陆的的解决方法((ERROR 1698 (28000): Access denied […]...

  6. 学会学习

    树立有效的学习的目标 所谓有效就你想要学习的内容对你的学习、工作有实质性的帮助/作用 明确的目标,不是基于想象 […]...

  7. JavaScript–AJXS

    协议(基于tcp/ip)超文本传输协议(HyperText Transfer Protocol,HTTP)是用于从WWW服务器传输超文本到本地浏览器的传输协议 (transport)。它可以使浏览器更加高效,使网络传输减少。请求的类型...

  8. Angular2 快速入门 之 环境搭建

    2015.10.14更新:本文的内容已经过期了,Angular2现在已经完全基于TypeScript开发了,可 […]...

展开目录

目录导航