zoukankan      html  css  js  c++  java
  • C++语言程序化设计——第一次作业

    C++语言程序化设计——第一次作业

    枚举类型教学教案

    一、课题

    自定义数据类型——枚举类型enum

    二、教学目的

    通过实验教学加深学生对枚举类型的掌握及运用

    三、课型

    新授课、练习课

    四、教学重点

    枚举类型的认识及运用

    五、教学过程

    1、枚举类型概念引入

    一场比赛只有胜、负、平局、比赛取消四种情况;一个袋子里只有红、黄、蓝、白、黑五种颜色的小球;一个星期只有七天······上述情况每种数据只有有限的几种情况,使用int、char来定义它们未尝不可,但是对数据的合法性检查却十分麻烦。我们为何不将变量可取得值一一列举出来,构成一个自定义数据类型——枚举类型,这样便能简便很多。

    2、枚举类型声明形式

    enum 枚举类型名 {变量值列表};
    

    例如:

    enum Weekday {SUN, MON, TUE, WED, THU, FRI, SAT};
    

    3、枚举类型应用说明

    (1)对枚举元素按常量处理,不能对它们赋值。例如,下面的语句是非法的:

    SUN= 0;    //SUN是枚举类型,此语句非法
    

    (2)枚举元素具有默认值,依次为:0,1,2,···。
    (3)也可在声明时另行定义枚举元素的值,如:

    enum Weekday {SUN=7, MON=1, TUE, WED, THU, FRI, SAT};
    

    定义SUN为7,MON为1,以后顺序加1,SAT为6.
    (4)枚举值可以进行关系运算。
    (5)枚举值可以直接赋值给整数型,整数值不能直接赋值给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换。例如:

    int main(){
        int i=1;
        enum Num {ONE=1, TWO, THR};
        i=TWO;//枚举值可以直接赋值给整数型
        cout<<"i="<<i<<endl;
        return 0;
    }
    

    运行结果为:

    而程序:

    int main(){
        int i=1;
        enum Num {ONE=1, TWO, THR};
        TWO=i;
        cout<<"TWO="<<TWO<<endl;
        return 0;
    }
    

    则会运行出错:

    在下面的例题中将会对此进行深入体会。

    4、例题分析

    例: 设某次体育比赛的结果有四种可能:胜(WIN)、负(LOSE)、平局(TIE)、比赛取消(CANCEL),编写程序输出这四种情况。
    分析: 由于比赛结果只有四种可能,所以可以声明一个枚举类型,用一个枚举类型的变量来存放比赛结果。
    源程序:
    //2-11.cpp
    #include
    using namespace std;

    enum GameResult {WIN, LOSE, TIE, CANCEL};
    
    int main(){
        GameResult result;        //有声明变量时,可以不写关键字enum
        enum GameResult omit=CANCEL;      //也可以在类型名前写enum
    
        for(int count=WIN; count<=CANCEL; count++){     //隐含类型转换(自动类型转换)
    	    result=GameResult(count);                   //显式类型转换(强制类型转换)
    	if(result==omit)
    		cout<<"The game was canceled"<<endl;
    	else{
    		cout<<"The game was played ";
    		if(result==WIN)
    			cout<<"and we won!";
    		if(result==LOSE)
    			cout<<"and we lost.";
    		cout<<endl;
    	}
    }
    return 0;
    }
    

    运行结果:

    六、作业安排

    P63页2-34取小球问题
    解答:
    #include
    using namespace std;

    enum Ball {red,yellow,blue,white,black};
    
    int main()
    {
        int count1,count2,count3,result=0;
        for(count1=red;count1<=black;count1++){
    	for(count2=count1+1;count2<=black;count2++){
    		for(count3=count2+1;count3<=black;count3++){
    			result++;
    			cout<<count1<<count2<<count3<<endl;
    		}
    	}
    }
        cout<<"The result is "<<result<<endl;
        return 0;
    }
    

    运行结果:

    七、课程总结

    本次课程圆满结束,还需学生课下自主练习,以对枚举类型有更深的体会。

  • 相关阅读:
    《构建之法》阅读有疑 与 个人Week1作业
    版本管理和项目管理软件浅谈
    [2019BUAA软工助教]第0次个人作业
    [2017BUAA软工助教]博客格式的详细说明
    [2017BUAA软工助教]收集个人信息
    最长英文单词串题目分析
    蓝桥杯PREV-11:横向打印二叉树
    day2
    冯如杯day1
    个人阅读作业
  • 原文地址:https://www.cnblogs.com/ningningning/p/11521532.html
Copyright © 2011-2022 走看看