1. (其它)
1.实现一个Point类,采用多文件结构存放,重载构造函数来实现,多文件形式存放:
该类的数据成员只有四个:直角坐标(横与纵坐标,整型数据)、极坐标(角度与极半径,浮点型数据)
创建类对象时,必须给定直角坐标和极坐标中一个
成员函数要求能够实现两种坐标间的换算,并输出直角坐标和极坐标计算
我的答案:
//头文件.h
#ifndef _point
#define _point
#include<math.h>
#include<iostream>
#include<cstdio>
#define PI 3.1415926
using namespace std;
class Point{
public:
void zhijiao();
void jizuobiao();
void cin_xy();
void cin_ap();
int x,y;
double angle,p;
};
#endif
-----------------------------------
//成员函数.cpp
#include<iostream>
#include"point.h"
using namespace std;
void Point::jizuobiao() {
angle=sqrt(x*x+y*y);
p=atan(y/1.0/x)*(180.0/PI);
}
void Point::zhijiao(){
x=p*cos(angle*PI/180.0);
y=p*sin(angle*PI/180.0);
}
void Point::cin_xy(){
cin>>x>>y;
}
void Point::cin_ap(){
cin>>p>>angle;
}
-----------------------------------
//主函数.cpp
#include<iostream>
#include"point.h"
#include"point.cpp"
using namespace std;
int main()
{
cout<<"欢迎使用本程序\n"<<endl;
cout<<"本程序实现两种坐标间的换算,并输出直角坐标和极坐标计算"<<endl;
int i;
Point point;
cout<<"连续输入三个数字,若为直角坐标第一个数字请输入0,若为极坐标第一个数字请输入任意数"<<endl;
cout<<"再依次输入两个坐标值"<<endl;
cin>>i;
if(i==0){
point.cin_xy();
point.jizuobiao();
printf("极坐标为:(%.1f,%.1f)", point.p, point.angle);
}else{
point.cin_ap();
point.zhijiao();
cout<<"直角坐标为:"<<"("<<point.x<<","<<point.y<<")"<<endl;
}
return 0;
}