式武神

导航

c++第一次实验

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

(1)if...else

#include<iostream>
using  namespace std;
int main()
{
    cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:";
    char a;
    while(cin>>a)
    {
    if(a=='A')
    {
        cout<<"数据已经增加。"<<endl;

    }
    else if(a=='D')
    {
        cout<<"数据已经删除。"<<endl;
        
    }
    else if(a=='S')
    {
        cout<<"数据已经排序。"<<endl;
        
    }
    else if(a=='Q')
    {
        break;
    }
    else
    {
        cout<<"输入错误,请重新输入。"<<endl;
        
    }
cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:";
    }
    return 0;
}

(2)switch

#include<iostream>
using  namespace std;
int main()
{
    cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:";
    char a;
    while(cin>>a)
    {
        switch(a)
        {
        case 'A':cout<<"数据已经增加。"<<endl;break;
        case 'D':cout<<"数据已经删除。"<<endl;break;
        case 'S':cout<<"数据已经排序。"<<endl;break;
        case 'Q':return 0;

default: cout<<"输入错误,请重新输入。"<<endl;break; } cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:"; } return 0; }

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

(1)while

#include<iostream>
using namespace std;
#include<cmath>
int main()
{
    int i=2;
    while(i<=100)
    {
        int j=2,m;
        m=sqrt(i*1.0);
        while(j<=m)
        {
            if(i%j==0)
                break;
            j++;
        }
        if(j>m)
            cout<<i<<endl;
        i++;
    }
    return 0;
}

(2)do...while

#include<iostream>
using namespace std;
#include<cmath>
int main()
{
    int i=2;
    do
    {
        int j=2,m;
        m=sqrt(i*1.0);
        do
        {
            if(i%j==0)
                break;
            j++;
        }while(j<=m);
        if(j>m)
            cout<<i<<endl;
        i++;
    }while(i=<100);
    return 0;
}

(3)for

#include<iostream>
using namespace std;
#include<cmath>
int main()
{
    int i;
    for(i=2;i<=100;i++)
    {
        int j,m;
        m=sqrt(i*1.0);
        for(j=2;j<=m;j++)
        {
            if(i%j==0)
                break;
            
        }
        if(j>m)
            cout<<i<<endl;
    }
    return 0;
}

3.在程序中定义一个整型变量,赋以 1~100 的值,要求用户猜这个数,比较两个数的大小,把结果提示给用户,直到猜对为止。

(1)while

#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{
    int n,a;
srand(time(0));
n=rand()%100;
while(cin>>a)
{
    if(a>n)
        cout<<"大了"<<endl;
    else if(a<n)
        cout<<"小了"<<endl;
    else if(a==n)
    {
        cout<<"猜对了"<<endl;
break;
    }
}
return 0;
}

(2)do...while

#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{
    int n,a;
srand(time(0));
n=rand()%100;
cin>>a;
do
{
    if(a>n)
        cout<<"大了"<<endl;
    else if(a<n)
        cout<<"小了"<<endl;
    else if(a==n)
    {
        cout<<"猜对了"<<endl;
break;
    }
}while(cin>>a);
return 0;
}

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

#include<iostream>
using namespace std;
int main()
{
    int n=5,k=3,s=1;
for(n;n>=k;n--)
s=s*n;
for(k;k>=1;k--)
s=s/k;
cout<<s<<endl;
return 0;
}

实验总结与体会:

1.因为好久没编程,寒假没练习,许多东西都忘了,尤其是第一题用字符时用了双引号,卡了许久才意识到应该用单引号。还有就是cin最后不能加endl。

2.这次实验初步学会了如何使用随机数和c++,同时认识到自己应该去复习上学期学习的知识。

3.我感觉学习编程最好的方法还是应该多练。

posted on 2019-03-12 20:42  式武神  阅读(238)  评论(3编辑  收藏  举报