文档介绍:
距离排序
本程序用VC++,完成给出三维空间中的n个点(不超过10个),求出n个点两两之间的距离,并按距离由大到小依次输出两个点的坐标及它们之间的距离。
①输入的形式包括两行,第一行包含一个整数n表示点的个数,第二行包含每个点的坐标(坐标都是整数)。点的坐标的范围是0到100,输入数据中不存在坐标相同的点。
②输出的形式:对于大小为n的输入数据,输出n*(n-1)/2行格式如下的距离信息:(x1,y1,z1)-(x2,y2,z2)=距离其中距离保留到数点后面2位。
③本程序所能达到的功能:可多次输入,求出两两坐标之间的距离并排序输出。
④测试数据:
输入:
4
0 0 0 1 0 0 1 1 0 1 1 1
输出:(0,0,0)-(1,1,1)=
(0,0,0)-(1,1,0)=
(1,0,0)-(1,1,1)=
(0,0,0)-(1,0,0)=
(1,0,0)-(1,1,0)=
(1,1,0)-(1,1,1)=
输入:
2
0 0 0 1 1 1
输出:(0,0,0)-(1,1,1)=
输入:
2
1 1 1 0 0 0
输出:(1,1,1)-(0,0,0)=
输入:
3
0 0 0 0 0 1 0 0 2
输出:(0,0,0)-(0,0,2)=
(0,0,0)-(0,0,1)=
(0,0,1)-(0,0,2)=
输入:
3
0 0 2 0 0 1 0 0 0
输出:(0,0,2)-(0,0,0)=
(0,0,2)-(0,0,1)=
(0,0,1)-(0,0,0)=
1)为了实现上述程序功能,需要定义类:
class zuobiao{
数据对象:k[i]={k|k∈x,y,z,i=0,1,2,…,n,n≥0}
zuobiao()
构造函数
shuru()
初始条件:存在对象k[i];
操作结果:把数据输入对象k
jl(zuobiao a,zuobiao b)
初始条件:存在对象k[i];
操作结果:求出a,b之间的距离
class shuju{
数据对象:g[i] {g|g∈x1,y1,z1,x2,y2,z2,s,h,i=0,1,2,…,n,n≥0}
shuju()
构造函数
2)本程序包含7个函数:
①主函数main()
②类zuobiao的构造函数zuobiao()
③类shuju的构造函数shuju()
④类zuobiao的输入操作函数shuru()
⑤类zuobiao的求距离函数jl(zuobiao a,zuobiao b)
⑥类shuju的构造函数shuju()
⑦求两点坐标差平方函数pfc()
各函数间关系如下:
main
zuobiao
shuru
jl
shuju
pfc
#include<iostream>
#include <iomanip>
#include<>
using namespace std;
const int maxsize=100;
//----