平面上的点和线——Point类、Line类 (VII)
来源:互联网 发布:软件功能介绍 编辑:程序博客网 时间:2024/06/05 06:46
Description
在数学上,平面直角坐标系上的点用X轴和Y轴上的两个坐标值唯一确定,两点确定一条线段。现在我们封装一个“Point类”和“Line类”来实现平面上的点的操作。
根据“append.cc”,完成Point类和Line类的构造方法和show()方法,输出各Line对象和Point对象的构造和析构次序。
接口描述:
Point::showCounter()方法:按格式输出当前程序中Point对象的计数。
Point::showSum()方法:按格式输出程序运行至当前存在过的Point对象总数。
Line::showCounter()方法:按格式输出当前程序中Line对象的计数。
Line::showSum()方法:按格式输出程序运行至当前存在过的Line对象总数。
Input
输入的第一行为N,表示后面有N行测试样例。
每行为两组坐标“x,y”,分别表示线段起点和终点的x坐标和y坐标,两组坐标间用一个空格分开,x和y的值都在double数据范围内。
Output
输出格式见sample。
C语言的输入输出被禁用。
Sample Input
40,0 1,11,1 2,32,3 4,50,1 1,0
Sample Output
Current : 3 points.In total : 3 points.Current : 6 lines.In total : 6 lines.Current : 17 points.In total : 17 points.Current : 6 lines.In total : 7 lines.Current : 15 points.In total : 17 points.Current : 6 lines.In total : 8 lines.Current : 17 points.In total : 21 points.Current : 6 lines.In total : 9 lines.Current : 15 points.In total : 21 points.Current : 6 lines.In total : 10 lines.Current : 17 points.In total : 25 points.Current : 6 lines.In total : 11 lines.Current : 15 points.In total : 25 points.Current : 6 lines.In total : 12 lines.Current : 17 points.In total : 29 points.Current : 6 lines.In total : 13 lines.Current : 15 points.In total : 29 points.Current : 9 lines.In total : 17 lines.Current : 21 points.In total : 37 points.Current : 13 lines.In total : 21 lines.Current : 21 points.In total : 45 points.
#include <iostream>#include <iomanip>#include <cmath>using namespace std;class Point{ friend class Line;private: double x,y;public: static int sum; static int val; Point() { x=0; y=0; sum++; val++; } Point(double a,double b) { x=a; y=b; sum++; val++; } Point(Point &a) { x=a.x; y=a.y; sum++; val++; } static void showSum() { cout << "In total : " << val << " points.\n"; } static void showCounter() { cout << "Current : " << sum << " points.\n"; } ~Point() { sum--; }};int Point::sum=0;int Point::val=0;class Line{ friend class Point;private: Point p,q; double a,b,c,d;public: static int sum2; static int val2; Line() { sum2++; val2++; } Line(Point & a,Point & b):p(a),q(b) { sum2++; val2++; } Line(Line &g):p(g.p),q(g.q) { sum2++; val2++; } static void showSum() { cout << "In total : " << val2 << " lines.\n"; } static void showCounter() { cout << "Current : " << sum2 << " lines.\n"; } void readLine() { char ch; cin >> a >> ch >> b >> c >> ch >> d; p.x=a; p.y=b; q.x=c; q.y=d; } ~Line() { sum2--; }};int Line::sum2=0;int Line::val2=0;int main(){ int num, i; Point p(1, -2), q(2, -1), t; t.showCounter(); t.showSum(); std::cin>>num; Line line[num + 1]; for(i = 1; i <= num; i++) { Line *l1, l2; l1->showCounter(); l1->showSum(); l1 = new Line(p, q); line[i].readLine(); p.showCounter(); p.showSum(); delete l1; l2.showCounter(); l2.showSum(); q.showCounter(); q.showSum(); } Line l1(p, q), l2(p,t), l3(q,t), l4(l1); Line::showCounter(); Line::showSum(); Point::showCounter(); Point::showSum(); Line *l = new Line[num]; l4.showCounter(); l4.showSum(); delete[] l; t.showCounter(); t.showSum();}
没有多余无用函数,做的时候主要是l1的处理卡住了。
l1=new Line(p,q) 需要 Point(Point &a) 和 Line(Line &g)两个函数。
0 0
- 平面上的点和线——Point类、Line类 (VII)
- 平面上的点和线——Point类、Line类 (VII)
- 平面上的点和线——Point类、Line类 (VII)
- Problem G: 平面上的点和线——Point类、Line类 (VII)
- Problem : 平面上的点和线——Point类、Line类 (VII)
- Problem I: 平面上的点和线——Point类、Line类 (V)
- Problem H: 平面上的点和线——Point类、Line类 (IV)
- Problem G: 平面上的点和线——Point类、Line类 (III)
- Problem A: 平面上的点和线——Point类、Line类 (I)
- Problem B: 平面上的点和线——Point类、Line类 (II)
- Problem C: 平面上的点和线——Point类、Line类 (III)
- Problem D: 平面上的点和线——Point类、Line类 (IV)
- Problem E: 平面上的点和线——Point类、Line类 (V)
- Problem F: 平面上的点和线——Point类、Line类 (VI)
- Problem B: 平面上的点和线——Point类、Line类 (III)
- Problem C: 平面上的点和线——Point类、Line类 (IV)
- Problem D: 平面上的点和线——Point类、Line类 (V)
- Problem 平面上的点和线——Point类,line类 Ⅰ
- Q82:三角形网格[Triangle Mesh]图形的平滑着色[Smooth Shading]
- dwz框架的应用
- spring jdbc-数据库操作对象化模型
- 设计模式---享元模式(C++实现)
- 网络基础知识
- 平面上的点和线——Point类、Line类 (VII)
- Druid 在小米公司部分技术实践
- 如何在Library Project中使用ButterKnife
- 支持向量机
- mysql sql语句大全
- Elastic-Job项目源码分析4--核心执行器AbstractElasticJobExecutor
- 读《卧底经济学》有感
- mysql性能优化(八) mysql索引优化
- java中不可变类