平面上的点和线——Point类、Line类 (VII)
来源:互联网 发布:debian与centos 编辑:程序博客网 时间:2024/06/05 02:50
Problem D: 平面上的点和线——Point类、Line类 (VII)
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 2497 Solved: 1744
[Submit][Status][Web Board]
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
4
0,0 1,1
1,1 2,3
2,3 4,5
0,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.
HINT
#include <iostream>using namespace std;class Point{private: double x,y; friend class Line; static int num; static int t;public: Point(double x1=0,double y1=0) { x=x1; y=y1; num++; t++; }// Point()// {// x=0;y=0;// num++;// t++;//// // } ~Point() { num--; } Point(const Point &p):x(p.x),y(p.y) { num++; t++; } static void showCounter() { cout<<"Current : "<<num<<" points."<<endl; } static void showSum() { cout<<"In total : "<<t<<" points."<<endl; }};class Line{private: Point a,b; static int num1; static int t1; friend class Point;public: Line(Point &a1,Point &b1):a(a1),b(b1) { num1++; t1++; } Line():a(0,0),b(0,0) { num1++; t1++; } Line(double a11,double b11,double c11,double d11) { a.x=a11; a.y=b11; b.x=c11; b.y=d11; num1++; t1++; } ~Line() { num1--;; } Line(const Line &p):a(p.a),b(p.b) { num1++; t1++; } void readLine() { char c; int i; cin>>a.x>>c>>a.y>>b.x>>c>>b.y; } static void showCounter() { cout<<"Current : "<<num1<<" lines."<<endl; } static void showSum() { cout<<"In total : "<<t1<<" lines."<<endl; }};int Point::num=0;int Point::t=0;int Line::num1=0;int Line::t1=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();}
误删一个大括号,报错。
- 平面上的点和线——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类 Ⅰ
- python+selenium+unittest+HTMLTestRunner读取csv文件参数化登陆测试
- Android程序中完美解决Zxing二维码扫描图片变形问题
- 密码验证合格程序
- oracle数据库判断是否为闰年和二月的最后一天
- This fragment should provide a default constructor (a public constructor with no arguments
- 平面上的点和线——Point类、Line类 (VII)
- eclipse中java链接mysql步骤
- Web模板引擎——Mustache
- 解决Jenkins获取Git Commit乱码
- butterknife 8.5.1配置使用
- Mysql保存字符串(回车符)
- jQuery EasyUI详解-EasyUI布局和标签页
- 浅谈core dump
- C++关键点总结系列-1