第二十四周项目5-应用枚举

(1)阅读教材7.3节,了解枚举类型的一般用法。阅读下面输出He先生买车方案的程序,理解使用枚举类型的意义。

#include <iostream>
using namespace std;
enum Color {red,black,white};
enum Brand {lavida,tiggo,skoda};
int main( )
{
  int color,brand;
  for(color=red; color<=white; color++)
    for(brand=lavida; brand<=skoda; brand++)
      if(!((color==red&&brand==tiggo)
           ||(color==white&&brand==skoda)))
      {
        switch(color)
        {
        case red:
          cout<<"红";
          break;
        case black:
          cout<<"黑";
          break;
        case white:
          cout<<"白";
          break;
        }
        switch(brand)
        {
        case lavida:
          cout<<"Lavida"<<endl;
          break;
        case tiggo:
          cout<<"Tiggo"<<endl;
          break;
        case skoda:
          cout<<"Skoda"<<endl;
          break;
        }
      }
  return 0;
}

运行结果:

(2)设计函数,可以按指定的方式,输出一个平面点的对称点。

#include<iostream>
using namespace std;
enum SymmetricStyle {axisx, axisy, point};//分别表示按x轴, y轴, 原点对称三种方式
void output(double,double,SymmetricStyle);
int main()
{
    int x,y;
    cout<<"输入点的坐标:";
    cin>>x>>y;
    cout<<"关于x轴的对称点是:";
    output(x,y,axisx);
    cout<<"关于y轴的对称点是:";
    output(x,y,axisy);
    cout<<"关于坐标原点的对称点是:";
    output(x,y,point);
    return 0;
}

void output(double x,double y, SymmetricStyle s)
{
    switch(s)
    {
    case axisx:
        cout<<'('<<x<<','<<-y<<')';
        break;
    case axisy:
        cout<<'('<<-x<<','<<y<<')';
        break;
    case point:
        cout<<'('<<-x<<','<<-y<<')';
        break;
    }
    cout<<endl;
    return;
}

运行结果:

@ Mayuko

时间: 2024-10-25 07:47:35

第二十四周项目5-应用枚举的相关文章

第二十四周项目4-猴子选大王(约瑟夫问题)

一群猴子,编号是1,2,3 ...m,这群猴子(m个)按照1-m的顺序围坐一圈.从第1只开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王.输入m和n,输出为大王的猴子是几号. 提示1:(1)链表解法:可以用一个循环的单链表来表示这一群猴子.表示结点的结构体中有两个成员:一个保存猴子的编号,一个为指向下一个人的指针,编号为m的结点再指向编号为1的结点,以此构成环形的链.当数到第n个时,该结点被删除,继续数,直到只有一个结点.(2)使用结构数组来表示

第二十四周项目6-点和距离

读程序,写出函数的定义,注意其中枚举类型的用法. enum SymmetricStyle {axisx,axisy,point};//分别表示按x轴, y轴, 原点对称 struct Point{ double x; // 横坐标 double y; // 纵坐标 }; double distance1(Point p1, Point p2); // 两点之间的距离,如果用distance,将会与命名空间std中也已经定义的distance函数重名 double distance0(Point

第二十四周项目1-哈希法的存储与查找

在实际的工程中,大量使用哈希法. 关于哈希法: 下面是采用哈希法存储数据并实现查找的示例.实现哈希函数用"除法取余法",解决冲突为"开放地址法". #include <iostream> using namespace std; int searchHash(int h[], int l, int key); void insertHash(int h[], int l, int data); int main() { const int hashLen

第二十四周项目2-回溯法走迷宫

问题: 迷宫问题中,在寻找路径时,采用的方法通常是:从入口出发,沿某一方向向前试探,若能走通,则继续向前进:如果走不通,则要沿原路返回,换一个方向再继续试探,直到所有可能的能跟都试探完成为止.为了保证在任何位置上都能沿原路返回(回溯),要建立一个后进先出的栈来保存从入口到当前位置的路径. 而且在求解迷宫路径中,所求得的路径必须是简单路径.即在求得的路径上不能有重复的同一块通道. 为了表示迷宫,设置一个数组,其中每个元素表示一个方块的状态,为0时表示对应方块是通道,为1时表示对应方块为墙,数组如下

第二十四周项目3-动态链表体验

下面是一个建立动态链表的程序.阅读程序,在草稿纸上画出链表建立的过程,借此学会如何建立链表.然后按要求改造程序. #include <iostream> using namespace std; struct Node { int data; //结点的数据 struct Node *next; //指向下一结点 }; Node *head=NULL; //将链表头定义为全局变量,以便于后面操作 void make_list(); //建立链表 void out_list(); //输出链表

第二十四周项目7-读懂“共同体”

运行下面的程序,并解释运行结果. #include <iostream> using namespace std; union un { int i; char c[4]; }; int main() { union un x; x.c[0]='A'; x.c[1]='B'; x.c[2]='C'; x.c[3]='D'; cout<<x.i<<endl; return 0; } #include <iostream> using namespace std

十四周 项目 1 动物这样叫

#include <iostream> #include <string> using namespace std; class Animal { public: virtual void cry() { cout<<"不知哪种动物,让我如何学叫?"<<endl; } }; class Mouse:public Animal { public: Mouse(string nam,char s):name(nam),sex(s) {} vo

第十四周 项目三 电子词典

/* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:d.cpp *作 者:张旺华 *完成日期:2015年6月3日 *版 本 号:v1.0 */ /*项目3-OOP版电子词典] 做一个简单的电子词典.在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000个, 英文.中文释义与词性间用'\t'隔开. (1)编程序,由用户输入英文词,显示词性和中文释义. 提示1:如果要用OOP完成这个词典(当然也

第十四周项目3-OOP版电子词典

做一个简单的电子词典.在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000个,英文.中文释义与词性间用'\t'隔开. (1)编程序,由用户输入英文词,显示词性和中文释义. 提示1:如果要用OOP完成这个词典(当然也可以用OO方法实现),可以定义一个Word类表示一个词条,其中的数据成员string english; 表示英文单词,string chinese;表示对应中文意思,string word_class;表示该词的词性:还可以定义一个Dictionary类,