zoukankan      html  css  js  c++  java
  • c++第一次作业

    C++语言程序设计基础——enum枚举类型用法



    一.课程导入

    在实际问题中我们会遇到一些数据只有有限的几种可能,虽然我们也可以用int等类型来表示他们,但是对数据的合法性检查却是很麻烦的事情。例如,如果用1到7来表示一个星期里面的7天,那么变量8便是不合理的。这时候我们便可以使用枚举来解决问题。



    二.教学目标

    了解枚举是如何使用的并且会自己应用



    三.教学内容


    枚举类型的声明形式


    enum 枚举类型名{变量值列表}; 例如: enum weekday{sun,mon,tue,wed,thu,fri,sat};

    枚举类型应用说明


    1.默认情况下,设置第一个枚举量为0,下一个为1,以此类推。例如上述生命中sun为0而sat为7.


    2.我们也可以在声明时自己定义枚举元素的值

    例如: enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat};
    这里面我们自己定义了sun,mon的值,mon后面的值以此类推加1,sat将为6.
    3.枚举元素我们是当作常量处理的,我们是不可以对其赋值的 例如: sun=0;(这句话是非法的)

    枚举类型的深入理解


    1.enum语句只是定义数据类型, 没有创建任何变量,当以后创建这个数据类型的变量时,他们看起来就只是一个整数。

    例如: weekday a;
    这里面weekday是数据类型名称,a是定义的变量。 接下来我们还可以枚举常量来给他赋一个值。
    例如: a=sun;

    2.整数值不能直接赋值给枚举变量,如果需要将整数值赋值给枚举变量,应该进行强制类型转化

    3.即使枚举类型中的值实际存储为整数,但也不能总是将整数值替换为符号名称。

    例如: a=0;(这是不对的)
    但是我们可以用整数值来测试枚举变量。
    例如: if(a==sun)和if(a==0)这两个是等效的。

    4.枚举列表中的mon,wed,sun等这些标识符的作用范围是全局的,不能再定义与他们名字相同的变量。



    例题分析

    某次体育比赛结果有四种可能:WIN,LOSE,TIE,CANCEL,编写程序顺序输出这四种情况(教材54页)

    #include<iostream>
    using namespace std;
    
    enum GameResult{WIN,LOSE,TIE,CANCAL};
    
    int main()
    {
        GameResult result;
        enum GameResult omit=CANCEL;//应用枚举常量初始化
    
        for(int count=WIN;count<=CANCEL;count++)//把枚举类型的值赋值给整数,枚举和int型可以进行比较
        {
            result=GameResult(count);//强制类型转化
            if(result==omit)
            cout<<"The game was cancelled"<<endl;
            else
            {
                cout<<"The game was played"<<endl;
                if(result==WIN)
                cout<<"and we won"
                else(result==LOSE)
                cout<<"and we lost"
            }
        }
        return 0;
    }
    


    口袋中有红黄蓝白黑5种颜色的球若干个,每次从口袋中取出3个不同颜色的球,问有多少种取法?(教材63页2-34)

    #include<iostream>
    using namespace std;
    enum colour{red,yellow,blue,white,black};//枚举
    
    void printcolour(int i)
    {
        switch(i)
        {
            case red:cout<<"红色;break;
            case yellow:cout<<"黄色;break;
            case blue:cout<<"蓝色;break;
            case white:cout<<"白色;break;
            case black:cout<<"黑色;break;
        }
    }
    int main()
    {
        int cout=0,i=red,j=yellow,k=blue;
        for(i;i<=blue;i++)
        for(j;j<=white;j++)
        {
            if(i<j)
            for(k;k<=black;k++)
            if(i<k&&j<k)
            {
                cout++;
                printcolour(i);
                printcolour(j);
                printcolour(k);
            }
        }
        
    }
    return 0;
    }
    
  • 相关阅读:
    BZOJ 2069 POI2004 ZAW 堆优化Dijkstra
    浏览器大小屏适配的方法
    编译性语言&amp;解释性语言
    ubuntu 查看网卡 数据包处理 速度
    使用Newtonsoft JsonConvert反序列化Json数据到DataTable
    easyUI datagrid view扩展
    easyUI layout 中使用tabs+iframe解决请求两次方法
    oracle自定义判断数据是否为数值函数
    easyUI datagrid editor扩展dialog
    JavaScript格式化日期
  • 原文地址:https://www.cnblogs.com/mxrroy/p/11521634.html
Copyright © 2011-2022 走看看