第六周 任务三

谁践踏了优雅 2022-06-13 06:29 322阅读 0赞
  1. /*实验目的:设计平面坐标点类
  2. 实验内容:设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等
  3. * 程序的版权和版本声明部分
  4. * Copyright (c) 2011, 烟台大学计算机学院学生
  5. * All rights reserved.
  6. * 文件名称: 设计平面坐标点类
  7. * 作 者: 薛广晨
  8. * 完成日期: 2012 年 3 月 25 日
  9. * 版 本号: x1.0
  10. * 对任务及求解方法的描述部分
  11. * 输入描述:计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等
  12. * 程序头部的注释结束(此处也删除了斜杠)
  13. */
  14. //【任务3】设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等
  15. #include<iostream>
  16. #include"cmath"
  17. using namespace std;
  18. enum SymmetricStyle {axisx, axisy, point};//分别表示按x轴, y轴, 原点对称
  19. class CPoint
  20. {
  21. private:
  22. double x; // 横坐标
  23. double y; // 纵坐标
  24. public:
  25. CPoint(double xx = 0,double yy = 0) : x(xx), y(yy){};
  26. void Distance(CPoint p) const; // 两点之间的距离(一点是当前点,另一点为参数p)
  27. void Distance0() const; // 到原点的距离
  28. CPoint SymmetricAxis(SymmetricStyle style) const; // 返回对称点
  29. void input(); //以x,y 形式输入坐标点
  30. void output(); //以(x,y) 形式输出坐标点
  31. };
  32. void CPoint :: Distance(CPoint p) const // 两点之间的距离(一点是当前点,另一点为参数p)
  33. {
  34. double d;
  35. d = sqrt((p.x - x) * (p.x - x) + (p.y - y) * (p.y - y));
  36. cout << "两点之间的距离:" << d << endl;
  37. }
  38. void CPoint :: Distance0() const // 到原点的距离
  39. {
  40. double d;
  41. d = sqrt((x - 0) * (x - 0) + (y - 0) * (y - 0));
  42. cout << "到原点的距离:" << d << endl;
  43. }
  44. CPoint CPoint::SymmetricAxis(SymmetricStyle style) const // 返回对称点
  45. {
  46. switch(style)
  47. {
  48. case axisx: cout << "(" << x << "," << y << ")" <<"与" << "(" << x << "," << -y << ")" << "关于x轴对称" << endl ; break;
  49. case axisy: cout << "(" << x << "," << y << ")" <<"与" << "(" << -x << "," << y << ")" << "关于y轴对称" << endl; break;
  50. case point: cout << "(" << x << "," << y << ")" <<"与" << "(" << -x << "," << -y << ")" << "关于原点对称" << endl; break;
  51. }
  52. return(x,y);
  53. }
  54. void CPoint :: input() //以x,y 形式输入坐标点
  55. {
  56. char c1, c2, c3;
  57. cout << "请输入坐标(形式 (x,y))";
  58. do
  59. {
  60. cin >> c1 >> x >> c2 >> y >> c3;
  61. if(c1 != '(' || c2 != ',' || c3 != ')')cout << "格式错误,请重新输入(形式 x,y)";
  62. else break;
  63. }while(1);
  64. }
  65. void CPoint :: output() //以(x,y) 形式输出坐标点
  66. {
  67. cout << "(" << x << "," << y << ")" << endl;
  68. }
  69. int main()
  70. {
  71. CPoint c1, c2;
  72. c1.input();
  73. cout << "请再输入一个点" << endl;
  74. c2.input();
  75. c1.Distance(c2);
  76. c1.Distance0();
  77. c1.SymmetricAxis(axisx);
  78. c1.SymmetricAxis(axisy);
  79. c1.SymmetricAxis(point);
  80. return 0;
  81. }

1332935829_1435.JPG
上机感言:const类型也太霸道了吧,无法改变值啊

发表评论

表情:
评论列表 (有 0 条评论,322人围观)

还没有评论,来说两句吧...

相关阅读

    相关 任务

    要求:请在原类基础上,增加下列成员函数,要求前三个设计成内置函数,在main()数中增加适当的调用以展示扩充类定义后的功能(最好能一次运行)。 add_a_s

    相关 任务

    /【任务5】将任务4的解决用一个项目多个文件的方式实现,其中两个类的声明放在一个.h文件中,每个类的成员函数分别放一个文件,main()函数用一个文件。体会这样安排的优

    相关 任务

    //【任务1】下面的程序存在编译错误。有两种方法可以修改,请给出这两种修改方案,在报告中说明你倾向于用哪一种?为什么?处理此类问题的原则是什么? /实验目的:

    相关 任务

    / 实验内容:设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。 程序的版权和版本声明部分

    相关 任务

    /实验目的:设计平面坐标点类 实验内容:设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等 程序的版权和版本声明部分

    相关 任务

    /实验目的:练习使用指针 实验内容:程序填空:按要求将缺少的代码填进去 程序的版权和版本声明部分 Copyright (c)