第21、22讲 链表、枚举 项目三:应用举例(输出对称点)

问题及代码:

/* 
* Copyright (c) 2015, 烟台大学计算机学院 
* All rights reserved. 
* 文件名称:Project4.cpp 
* 作    者:李楠 
* 完成日期:2015年1月23日 
* 版 本 号:v1.0 
* 
* 问题描述:设计函数,可以按指定的方式,输出一个平面点的对称点
            下面给出枚举类型定义和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;
}
void output(double x,double y,SymmetricStyle style)
{
    if(style==axisx)
        cout<<"("<<x<<","<<-y<<")"<<endl;
    if(style==axisy)
        cout<<"("<<-x<<","<<y<<")"<<endl;
    if(style==point)
        cout<<"("<<-x<<","<<-y<<")"<<endl;
}


运行结果:


知识点总结:

因为枚举常量作为常量是有值的,编译按定义时的顺序对它们赋值为:0,1,2,3,4……,所以也可以写成       if(style==0)

自定义函数不用if语句也可以用switch写成:

  1. void output(double x,double y,SymmetricStyle n)  
  2. {  
  3.      switch(n)  
  4.      {  
  5.       case 0 :  
  6.               cout << '(' << x << ',' << -y << ')' << endl  ;
  7.               break ;   //x轴对称  
  8.       case 1 :  
  9.               cout << '(' << -x << ',' << y << ')' << endl ;
  10.               break ;    //y轴对称  
  11.       case 2 :  
  12.               cout << '(' << -x << ',' << -y << ')' << endl ;
  13.               break ;    //原点对称  
  14.      }  
  15. }  

学习心得:

要懂得变通~枚举还是挺好玩的~




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值