上机目的:复习函数定义及switch语句
上机内容:求坐标
/* * 程序的版权和版本声明部分 * Copyright (c)2012, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: object.cpp * 作者:刘玉金 * 完成日期: 2013年3 月 24 日 * 版本号: v1.0 * 输入描述:无 * 问题描述:无 * 程序输出:无 */ #include <iostream> #include<cmath> using namespace std; enum SymmetricStyle {axisx,axisy,point};//分别表示按x轴, y轴, 原点对称 struct Point{ double x; // 横坐标 double y; // 纵坐标 }; double distance(Point p1, Point p2); // 两点之间的距离 double distance0(Point p1); Point symmetricAxis(Point p,SymmetricStyle style); //返回对称点 int main( ){ Point p1={1,5},p2={4,1},p; cout<<"两点的距离为:"<<distance(p1,p2)<<endl; cout<<"p1到原点的距离为:"<<distance0(p1)<<endl; p=symmetricAxis(p1,axisx); cout<<"p1关于x轴的对称点为:"<<"("<<p.x<<", "<<p.y<<")"<<endl; p=symmetricAxis(p1,axisy); cout<<"p1关于y轴的对称点为:"<<"("<<p.x<<", "<<p.y<<")"<<endl; p=symmetricAxis(p1,point); cout<<"p1关于原点的对称点为:"<<"("<<p.x<<", "<<p.y<<")"<<endl; return 0; } double distance(Point p1, Point p2) { double a; a=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)); return a; } double distance0(Point p1) { double b; b=sqrt(p1.x*p1.x+p1.y*p1.y); return b; } Point symmetricAxis(Point p1,SymmetricStyle style) { Point p; p.x=p1.x; p.y=p1.y; switch(style) { case axisx: p.y=-p1.y; break; case axisy: p.x=-p1.x; break; case point: p.x=-p1.x; p.y=-p1.y; } return p; }
运行结果:
心得体会:略