获取文件数据并进行相关读写操作(无STL算法情况下)

类中:

#pragma once
#include
#include
#include
using namespace std;

class Point
{
private:
double _x, _y, _z;

public:
Point(double a = 0, double b = 0, double c = 0):_x(a),_y(b),_z© {}
Point(const Point& a) :_x(a._x), _y(a._y), _z(a._z) {}
~Point(){}
double getx() {
return _x;
}
double gety() {
return _y;
}
double getz() {
return _z;
}
void setx(double a) {
_x = a;
}
void sety(double a) {
_y = a;
}
void setz(double a) {
_z = a;
}
void showpoint() {
cout << “x=” << _x << " " << “y=” << _y << " " << “z=” <<_z<<" " << endl;
}

bool operator ==(const Point a) {
	if (a._x == this->_x && a._y == this->_y && a._z == this->_z) {
		return 1;
	}
	else
		return 0;
}

};

class Segment :public Point {
protected:
Point _p1, _p2;

public:
Segment(Point a=0, Point b=0) :_p1(a), _p2(b) {};//
Segment(const Segment& a) :_p1(a._p1), _p2(a._p2) {}
~Segment(){}

};

class Polygons :public Segment {
protected:
Point* _ptr;
int _n;
public:
Polygons( Point *a ,int j=0):_ptr(a),_n(j){}

~Polygons(){}
double getS( Point a, Point b) {
	double Sx = sqrt((a.getx() - b.getx()) * (a.getx() - b.getx()));
	double Sy = sqrt((a.gety() - b.gety()) * (a.gety() - b.gety()));
	double Sz = sqrt((a.getz() - b.getz()) * (a.getz() - b.getz()));
	return Sx + Sy + Sz;
}

double getmeter() {
	double perimeter = 0;
	for (int i = 0; i < _n - 1; i++) {
		perimeter = perimeter + getS(_ptr[i], _ptr[i + 1]);
	}
	perimeter = perimeter + getS(_ptr[0], _ptr[_n - 1]);
	return perimeter;
}

double getN() {
	return _n;
}

void printS() {
	cout << "线段数为:" << _n<<endl;
	for (int i = 0; i < _n-1; i++) {
		cout << "线段长度为:" << getS(_ptr[i], _ptr[i + 1]) << endl;
	}
	cout << "线段长度为:" << getS(_ptr[0], _ptr[_n - 1]) << endl;
}

};

CPP文件:

#include<iostream
#include<fstream
#include"Point.h"
#include<vector
using namespace std;

void compare(Point a[],int i) {
for (int j = 0; j < i; j++) {
if (a[j] == a[i]) {
int p = 1;
throw p;
}
}
}

void myputin(Point* a, Point b, int p, int n) {//插入点的函数,输入插入的位置,如第十个节点,p=10,num为数组大小

Point temp(b);
if (p <= 0 || p > n) {
	cout << "insert wrong place" << endl;
}
else {
	for (; p <= n + 1; p++) {
		Point temp2(a[p - 1]);
		a[p - 1].setx(temp.getx());
		a[p - 1].sety(temp.gety());
		a[p - 1].setz(temp.getz());
		temp = temp2;
	}
}

}

void swap(double& a, double& b) {
double temp3 = 0;
temp3 = a;
a = b;
b = temp3;
}

void sort(vector &a) {
for (int i = 0; i <a.size() ; i++) {
for (int j = 0; j < a.size() - i-1; j++) {//a.size() - i-1防止下标越界;
if (a[j] > a[j+1]) {
swap(a[j], a[j + 1]);
}
}
}

}

int main() {
Point a[125]{ 0 };
double _temp;
int i = 1;
int num = 0;
ifstream put_f(“points.txt”);
while (i) {

	try {
		put_f >> _temp;
		a[i - 1].setx(_temp);
		put_f >> _temp;
		a[i - 1].sety(_temp);
		put_f >> _temp;
		a[i - 1].setz(_temp);
		if (i >= 2) {
			compare(a, i - 1);
		}
		if (a[i - 1].getx() != 0 && a[i - 1].gety() != 0 && a[i - 1].getz() != 0) {
			num++;
		}
	}
	catch (int) {
		cout << "number crush" << endl;
		i = i - 1;
	}
	if (_temp == 0) {
		put_f.close();
		cout << "size:" << i - 1 << endl;
	}
	i++;
	if (i == 100) {
		put_f.close();
		break;
	}
}



for (int j = 0; j < num; j++) {
	a[j].showpoint();
}
cout << "after insert:" << endl;
Point sqe(101, 102, 103);
myputin(a, sqe, 10, num);
for (int j = 0; j < num+1; j++) {
	a[j].showpoint();
}
Polygons pol(a, num+1);
cout << "the perimeter after insert is:" << pol.getmeter() << endl;
pol.printS();//打印多边形各线段的长度;
vector<double> vol;
for (int i = 0; i < pol.getN()-1; i++) {
	vol.push_back(pol.getS(a[i],a[i+1]));
}
vol.push_back(pol.getS(a[0], a[num]));//这里的num是插入之前的,插入后是num+1个点;

cout << "排序前的线段:" << endl;
for (int i = 0; i < vol.size(); i++) {
	cout << vol[i] << endl;
}


sort(vol);
cout << "排序后的线段长度为:" << endl;
for (int i = 0; i < vol.size(); i++) {
	cout << vol[i] << endl;
}

ofstream output_f("points.txt");
for (int i = 0; i < vol.size(); i++) {
	output_f << vol[i];
	output_f << endl;
}
output_f.close();
return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值