main.cpp
#include <iostream>
#include <string>
#include <vector>
#include "Figuras.h"
using namespace std;
void error(){
cout<<"algo ha ido mal vuelve a empezar"<<endl;
exit(0);
}
int main(){
Figuras fig;
vec V;
string tip;
cout << "Triangle = Tr / Cuadrat = Cu / Rectangle = Re / Segment = Se / Cercle = Ce" << endl;
cin >> tip;
if(tip=="Tr"){
V = vector<pair<double,double>>(3);
}
else if(tip == "Cu" or tip == "Re"){
V = vector<pair<double,double>>(4);
}
else if (tip == "Se" or tip == "Ce"){
V = vector<pair<double,double>>(2);
}
else error();
for (int i = 0; i < V.size(); i++) { //fill vector with coords
cout << "Introdueix coordenada numero: " << i<<" format (double,double): " <<endl;
cout << "x: ";
cin >> V[i].first;
cout << "y: ";
cin >> V[i].second;
}
fig.crea_figura(tip,V);
fig.mostrar_fig();
}
Figuras.cpp
#include "Figuras.h"
using namespace std;
/*void Figuras::Figura(){
tipo = NULL;
Coord = NULL;
}*/
string Figuras::get_tipo (){
return tipo;
};
vec Figuras::get_coords (){
return Coord;
};
punto Figuras::get_inicio (){
return inicio;
};
void Figuras::Set_tipo (string typ){
tipo = typ;
};
void Figuras::Set_Coord (vec V){
punto p;
int x= V.size();
Coord=vector<pair<double,double>>(x);
for ( int i =0; i<x; i++){
Coord[i].first = p.first;
Coord[i].second = p.second;
}
};
void Figuras::Set_inicio (punto ini){
inicio = ini;
};
void Figuras::crea_figura (string tip, vec V){
Set_tipo(tip);
Set_Coord(V);
};
void Figuras::trasladar (punto P){
double difx,dify;
difx=P.first - inicio.first;
dify=P.second - inicio.second;
vec V;
Figuras::get_coords();
if (!Coord.empty()){
for(int i=0; i<Coord.size(); i++){
Coord[i].first += difx;
Coord[i].second += dify;
}
}
else cout<< "no hay coords"<<endl;
};
void Figuras::mostrar_fig (){
vec V;
V=get_coords();
punto ini;
ini=get_inicio();
string tip;
tip=get_tipo();
cout<<"tipo: "<<tip<<endl;
for (int i =0; i<V.size(); i++){
cout<<"punto "<< i+1<<": "<<"("<<V[i].first<<","<<V[i].second<<")"<<endl;
}
cout<< "punto inicial: ("<<ini.first<<","<<ini.second<<")"<<endl;
};
Figuras.h
#ifndef FIGURAS_H
#define FIGURAS_H
#include <vector>
#include <iostream>
#include <string>
using namespace std;
typedef vector < pair < double, double >>vec;
typedef pair < double, double >punto;
class Figuras
{
private:
string tipo;
vec Coord;
punto inicio={0.0,0.0};
public:
string get_tipo ();
vec get_coords ();
punto get_inicio ();
void Set_tipo (string typ);
void Set_Coord (vec V);
void Set_inicio (punto ini);
void crea_figura (string tip, vec vec);
void trasladar (punto P);
void mostrar_fig ();
};
#endif
hi guys let me explain the problem when i do, crea_figura(tip,V);
and then mostrar_fig() at main.cpp line 39,40
this happens:
Triangle = Tr / Cuadrat = Cu / Rectangle = Re / Segment = Se / Cercle = Ce Tr Introdueix coordenada numero: 0 format (double,double): x: 1.1 y: 1.1 Introdueix coordenada numero: 1 format (double,double): x: 2.2 y: 2.2 Introdueix coordenada numero: 2 format (double,double): x: 3.1 y: 1.1 tipo: Tr punto 1: (0,0) punto 2: (0,0) punto 3: (0,0) punto inicial: (0,0)
any help with that? if u hadn't noticed all points appear to be empty and i can not realize why is that for. Please help me and if you know any other way to initialize the class (another type of constructor), i will really appreciate that.
Aucun commentaire:
Enregistrer un commentaire