2014秋C++第19周 项目3参考 应用枚举

简介: 课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。 【项目3-应用枚举】(1)阅读教材7.3节,了解枚举类型的一般用法。阅读下面输出He先生买车方案的程序,理解使用枚举类型的意义。#include <iostream>using na
课程主页在 http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在 云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。 


【项目3-应用枚举】
(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)设计函数,可以按指定的方式,输出一个平面点的对称点
下面给出枚举类型定义和main函数(测试函数),请写出output函数的实现。
#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;
}


参考解答:

#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;
}





=================== 迂者 贺利坚 CSDN博客专栏=================
|== IT学子成长指导专栏 专栏文章的分类目录(不定期更新) ==|
|== C++ 课堂在线专栏  贺利坚课程教学链接(分课程年级) ==|
|== 我写的书——《逆袭大学——传给IT学子的正能量》    ==|
===== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =====

目录
打赏
0
0
0
0
67
分享
相关文章
基于 C++ 语言的迪杰斯特拉算法在局域网计算机管理中的应用剖析
在局域网计算机管理中,迪杰斯特拉算法用于优化网络路径、分配资源和定位故障节点,确保高效稳定的网络环境。该算法通过计算最短路径,提升数据传输速率与稳定性,实现负载均衡并快速排除故障。C++代码示例展示了其在网络模拟中的应用,为企业信息化建设提供有力支持。
122 15
|
12天前
|
【实战指南】 C/C++ 枚举转字符串实现
本文介绍了在C/C++中实现枚举转字符串的实用技巧,通过宏定义与统一管理枚举名,提升代码调试效率并减少维护错误。
44 10
从集思录可转债数据探秘:Python与C++实现的移动平均算法应用
本文探讨了如何利用移动平均算法分析集思录提供的可转债数据,帮助投资者把握价格趋势。通过Python和C++两种编程语言实现简单移动平均(SMA),展示了数据处理的具体方法。Python代码借助`pandas`库轻松计算5日SMA,而C++代码则通过高效的数据处理展示了SMA的计算过程。集思录平台提供了详尽且及时的可转债数据,助力投资者结合算法与社区讨论,做出更明智的投资决策。掌握这些工具和技术,有助于在复杂多变的金融市场中挖掘更多价值。
160 12
【C++面向对象——继承与派生】派生类的应用(头歌实践教学平台习题)【合集】
本实验旨在学习类的继承关系、不同继承方式下的访问控制及利用虚基类解决二义性问题。主要内容包括: 1. **类的继承关系基础概念**:介绍继承的定义及声明派生类的语法。 2. **不同继承方式下对基类成员的访问控制**:详细说明`public`、`private`和`protected`继承方式对基类成员的访问权限影响。 3. **利用虚基类解决二义性问题**:解释多继承中可能出现的二义性及其解决方案——虚基类。 实验任务要求从`people`类派生出`student`、`teacher`、`graduate`和`TA`类,添加特定属性并测试这些类的功能。最终通过创建教师和助教实例,验证代码
154 5
那C++适合开发哪些项目
C++ 是一种功能强大、应用广泛的编程语言,适合开发多种类型的项目。它在游戏开发、操作系统、嵌入式系统、科学计算、金融、图形图像处理、数据库管理、网络通信、人工智能、虚拟现实、航空航天等领域都有广泛应用。C++ 以其高性能、内存管理和跨平台兼容性等优势,成为众多开发者的选择。
WK
360 1
C++多线程应用
【10月更文挑战第29天】C++ 中的多线程应用广泛,常见场景包括并行计算、网络编程中的并发服务器和图形用户界面(GUI)应用。通过多线程可以显著提升计算速度和响应能力。示例代码展示了如何使用 `pthread` 库创建和管理线程。注意事项包括数据同步与互斥、线程间通信和线程安全的类设计,以确保程序的正确性和稳定性。
158 5
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
1582 3
【C++篇】揭开 C++ STL list 容器的神秘面纱:从底层设计到高效应用的全景解析(附源码)
【C++篇】揭开 C++ STL list 容器的神秘面纱:从底层设计到高效应用的全景解析(附源码)
168 2
|
10月前
|
【C++核心】函数的应用和提高详解
这篇文章详细讲解了C++函数的定义、调用、值传递、常见样式、声明、分文件编写以及函数提高的内容,包括函数默认参数、占位参数、重载等高级用法。
119 3
|
10月前
|
C++
【C++案例】一个项目掌握C++基础-通讯录管理系统
这篇文章通过一个通讯录管理系统的C++项目案例,详细介绍了如何使用C++实现添加、显示、删除、查找、修改和清空联系人等功能。
181 3
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等