实验一:C++简单程序设计

Part 1:

     C++是面向对象的编程语言。主要特点表现在两个方面:一全面兼容C,二支持面向对象的方法。

     C++中,将数据从一个对象到另一个对象的流动抽象为“流”。数据的输入输出是通过I/O流实现,输入提取符(>>)作用cin,输出插入符(<<)作用cout。

Part 2:编程练习

1、2-28 “菜单程序”

   (1)IF

#include<iostream>
using namespace std;
int main()
{
    while(1)
    {
        cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:";
        char n;
        cin>>n;
        if(int(n)==65)
            cout<<"Data has added."<<endl;
        else if(int(n)==68)
            cout<<"Data has deleted."<<endl;
        else if(int(n)==83)
            cout<<"Data has sorted."<<endl;
        else if(int(n)==81)
            break;
        else
            cout<<"No such choice,please select again."<<endl;
    }
    return 0;
}

程序结果如下

一点补充:我在编写的时候对于字符的对比出现如下错误:if('n'=='A'),if('n'==65)等,由于对字符操作涉及它的ASCII码与它本身字符时模糊,补充应用了转换类型或者叫导出字母ASCII码的相关知识。其中,char n;if(n=='A')也可以。

(2)SWITCH

#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
    while(1)
    {
        cout<<"Menu:Menu:A(dd) D(elete) S(ort) Q(uit),Select one:";
        char n;
        cin>>n;
        switch(n)
        {
            case'A':cout<<"Data has added."<<endl;break;
            case'D':cout<<"Data has deleted."<<endl;break;
            case'S':cout<<"Data has sorted."<<endl;break;
            case'Q':exit(0);
            default:cout<<"No such choice,please select again."<<endl;
        }
    }
    return 0;
}

程序结果和上一个结果相同,欢迎调试并给予建议。

2、2-29“1~100间的质数”

(1)WHILE

#include<iostream>
#include<iomanip>
using namespace std;
int prime(int x);
int main()
{
    int n=1,m=0;
    while(n<=100)
    {
        if(prime(n)==0)
        {
            m++;
            if(m%6!=0)
            cout<<setw(5)<<n;
            else
            cout<<setw(5)<<n<<endl;
        }
        n++;
    }
    return 0;
}
int prime(int x)
{
    int t,i=0;
    for(t=2;t<x;t++)
    {
        if(x%t==0)
        {
            i=1;break;
        }
    }
    if(x<t)
        i=1;
    return i;
}

(2)DO······WHILE

#include<iostream>
#include<iomanip>
using namespace std;
int prime(int x);
int main()
{
    int n=1,m=0;
    do
    {
        if(prime(n)==0)
        {
            m++;
            if(m%6!=0)
            cout<<setw(5)<<n;
            else
            cout<<setw(5)<<n<<endl;
        }
        n++;
    }while(n<=100);
    return 0;
}
int prime(int x)
{
    int t,i=0;
    for(t=2;t<x;t++)
    {
        if(x%t==0)
        {
            i=1;break;
        }
    }
    if(x<t)
        i=1;
    return i;
}

(3)FOR

#include<iostream>
#include<iomanip>
using namespace std;
int prime(int x);
int main()
{
    int n,m=0;
    for(n=1;n<=100;n++)
    {
        if(prime(n)==0)
        {
            m++;
            if(m%6!=0)
            cout<<setw(5)<<n;
            else
            cout<<setw(5)<<n<<endl;
        }
    }
    return 0;
}
int prime(int x)
{
    int t,i=0;
    for(t=2;t<x;t++)
    {
        if(x%t==0)
        {
            i=1;break;
        }
    }
    if(x<t)
        i=1;
    return i;
}

程序结果

 

一点补充:C++在C基础上对输出格式有变化,对于输入输出格式设定要使用操纵符,注意必须在源程序开头包含iomanip头文件。

3、2-32“猜数字”

#include<iostream> 
#include<time.h>
#include<stdlib.h>
using namespace std;
#define N (rand()%(100-0+1))+0
int main()
{
    while(true)
    {
        cout<<"Input your number:";
        srand((unsigned)time(NULL)); 
        int n;
        cin>>n;
        if(n<0||n>100)
        cout<<"Your number is out of range.Please select the number between 0 and 100."<<endl;
        else if(n>N)
        cout<<"Your number is bigger than the right number."<<endl;
        else if(n<N)
        cout<<"Your number is smaller than the right number."<<endl;
        else
        {
            cout<<"Congratulations!You guess it!"<<endl;break; 
        }
    }
    return 0;
}

程序结果为

一点补充:设置随机数如下图(原文地址http://www.cnblogs.com/vathena/articles/4356646.html自己进行了简化整理)

4、2-34“摸球”

初级版

#include<iostream>
using namespace std;
int main()
{
    int n=0;
    int x,y,z;
    for(x=1;x<=3;x++)
    {
        for(y=x+1;y<=4&&y>x;y++)
        {
            for(z=y+1;z<=5&&z>y;z++)
            {
                n++;
            }
        }
    }
    cout<<n<<endl;
    return 0;
}

 

结果如下:

 

改进版

#include<iostream>
using namespace std;
void out(int m);
enum color{red,yellow,blue,white,black};
int main()
{
    int n=0;
    int x,y,z;
    for(x=red;x<=blue;x++)
    {
        for(y=x+1;y<=white&&y>x;y++)
        {
            for(z=y+1;z<=black&&z>y;z++)
            {
                out(x);out(y);out(z);
                cout<<endl;
                n++;
            }
        }
    }
    cout<<n<<endl;
    return 0;    
 } 
 void out(int m)
 {
     switch(m)
     {
         case red:cout<<"red  ";break;
         case yellow:cout<<"yellow  ";break;
         case blue:cout<<"blue  ";break;
         case white:cout<<"white  ";break;
         case black:cout<<"black  ";break;
     }
 }

程序结果

最后,程序之间穿插了一些实验体会,此处简写。

1、c++不同于c的输入输出方式,头文件,位宽。

2、有范围不同随机数的设定。

3、编写最后一题时利用到枚举类型,发现自己确实生疏,参考资料https://blog.csdn.net/yukgwy60648/article/details/54908711

4、注意cout后跟<<(插入)而不是>>(提取)。

5、多多复习包括一些c的知识,我想能够反复去用大概可以记的更牢。

转载于:https://www.cnblogs.com/lovecpp/p/10520456.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值