第19周上机时间项目4——点和距离

来源:互联网 发布:医疗软件销售 编辑:程序博客网 时间:2024/04/28 02:13

问题及代码

/* * Copyright (c) 2015, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作    者:辛彬 * 完成日期:2015 年 2 月 13 日 * 版 本 号:v1.0 * * 问题描述:读程序,写出函数的定义,注意其中枚举类型的用法。 * 输入描述:没有输入。 * 程序输出:对称坐标。 */#include <iostream>#include <cmath>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;    std::cout<<"两点的距离为:"<<distance(p1,p2)<<std::endl;    std::cout<<"p1到原点的距离为:"<<distance0(p1)<<std::endl;    p=symmetricAxis(p1,axisx);    std::cout<<"p1关于x轴的对称点为:"<<"("<<p.x<<","<<p.y<<")"<<std::endl;    p=symmetricAxis(p1,axisy);    std::cout<<"p1关于y轴的对称点为:"<<"("<<p.x<<","<<p.y<<")"<<std::endl;    p=symmetricAxis(p1,point);    std::cout<<"p1关于原点的对称点为:"<<"("<<p.x<<","<<p.y<<")"<<std::endl;    return 0;}// 求两点之间的距离double distance(Point p1,Point p2){    double d;    d=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));    return d;}// 求点到原点的距离double distance0(Point p){    double d;    d=sqrt(p.x*p.x+p.y*p.y);    return d;}// 求对称点Point symmetricAxis(Point p1,SymmetricStyle style){    Point p;    if(style==axisx)    {        p.x=p1.x;        p.y=-p1.y;    }    else if(style==axisy)    {        p.x=-p1.x;        p.y=p1.y;    }    else if(style==point)    {        p.x=-p1.x;        p.y=-p1.y;    }    return p;}

运行结果:

学习感悟:一开始老是报错,后来去贺老师的题解中看了一下,去掉using namesapace std,再在cout,cin,endl前加上std::就行,虽然原理不太懂

0 0
原创粉丝点击