Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - SojatDotar

#11
Buenas noches, tengo una duda referente a la programación orientada a objeto y sus métodos, por ejemplo tengo definida mi clase

class circulo{
public:
void setX(float);
float getx (float);
void sety (float);
float gety (float);
private:
float x,y;
pero el (x,y) del cirulo lo ingresaria el usuario, tendría que hacer una función que me pida esas coordenadas?más o menos así?? class circulo{
public:
void setX(float);
float getx (float);
void sety (float);
float gety (float);
void pideCoordenadas(float float);
private:
float x,y;
o solo bastará con el set y get de cada coordenada ?ya que tengo entendido que el método set modifica un valor ( da un valor) y el método get(devuelve un valor) otra cosa si tengo un método set no hace falta el constructor ? o siempre tiene que haber un método constructor, independientemente que haya un método set?

void Circulo::setx(float _x)
{
x=_x;

}

float Circulo::getx(float  x)
{

return x;
}
void Circulo::sety(float _y)
{
y=_y;

}

float Circulo::gety(float  y)
{

return y;
}


void Circulo::pideCoordenadas(float x1, float y1)
{

cout<<"Teclee la coordenada"<<endl;
cin>>x>>y;
}

int main () {


Circulo miCirculo;
miCirculo.pideCoordenadas(x,y);


}

Sería así a la hora de implementar la clase y usarla en el main?
#12
Programación C/C++ / Re: Archivos bINARIOS c++
8 Febrero 2016, 18:19 PM
Listo problema solucionado!! muchas gracias a todos por su ayuda
#13
Programación C/C++ / Re: Archivos bINARIOS c++
8 Febrero 2016, 18:11 PM
Ya lo he solucionado, ahora me da un problema cuando quiero leer lo que esta en el archivo

#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
using std::exit;

struct alumno{

string nombre;
string apellido;
int edad;
};

int main () {

int i;
alumno alum[50];

ofstream f;

f.open("alumnos.bin", ios::out | ios::binary);
if(f.open){

for (i=0; i<=50; i++){

cout<<"Teclee el nombre del alumno"<<endl;
cin>>alum[i].nombre
cout<<"Teclee  el apellido"<<endl;
cin>>alum[i].apellido;
cout<<"Teclee  la edad"<<endl;
cin>>alum[i].edad;
f.write(reinterpret_cast<const char*>(&alum[i]), sizeof(alumno);
}

}
else {
cout<<"Error al abrir el archivo"<<endl;
exit(1);
}
is.close();


//leemos el archivo

ifstream fe("alumnos.bin", ios::in | ios::binary);
if (fe){
cerr<<"Se abrio correctamente"<<endl;
}
else {
cout<<"No se abrio correctamente"<<endl;
exit(1);
}
while (fe && !fe.eof()){
for (i=0; i<=50; i++){

cout<<"Teclee el nombre del alumno"<<endl;
cin>>alum[i].nombre
cout<<"Teclee  el apellido"<<endl;
cin>>alum[i].apellido;
cout<<"Teclee  la edad"<<endl;
cin>>alum[i].edad;

fe.read( reinterpret_cast< const char* >( &alum[i] ), sizeof(alumno));
}//fin del while


return 0;
}
#14
Programación C/C++ / Re: Archivos bINARIOS c++
8 Febrero 2016, 15:37 PM
O sea que sería mas o menos así,

#include <iostream>
#include <fstream>
using namespace std;

struct alumno{

string nombre;
string apellido;
int edad;
};

int main () {


alumno alum[50];

ofstream f;

f.open("alumnos.bin", ios::out | ios::binary);
if(f.open){

for (int i=0; i<=50; i++){

cout<<"Teclee el nombre del alumno"<<endl;
cin>>alum[i].nombre
cout<<"Teclee  el apellido"<<endl;
cin>>alum[i].apellido;
cout<<"Teclee  la edad"<<endl;
cin>>alum[i].edad;
f.write(reinterpret_cast<const char*>(&alum[i]), sizeof(alumno);
}

}
else {
cout<<"Error al abrir el archivo"<<endl;
}
is.close();


return 0;
}
lo pondría despues que hayan introducidos los datos, o antes para que se vaya guardando la información?




Me da un error cuando hago eso, justo en esa linea me dice     f.write(reinterpret_cast<const char*>(&alum), sizeof(alumno);
alumnos.cpp:37:62: error: name lookup of 'i' changed for ISO 'for' scoping [-fpermissive]
alumnos.cpp:37:62: note: (if you use '-fpermissive' G++ will accept your code)

no entiendo porque ese error
#include <iostream>
#include <fstream>
using namespace std;

struct alumno
    {
        string nombre;
        string  apellido;
        int edad;
};


int main () {

alumno alum[50];
ofstream archivosalida("alumno.bin",  ios::out | ios::binary);
if (!archivosalida){
cerr<<"No se pudo abrir correctamente"<<endl;

} //sale del programa si no se abrio correctamente
    for (int i=0; i<50; i++)
    {
                cout << "Teclee el nombre: " << i << endl;
                 cin >> alum[i].nombre;
cout<<"teclee el apellido : "<<i <<endl;
cin>> alum[i].apellido;
cout<<"teclee la edad : "<<i <<endl;
cin>> alum[i].edad;




    }

   archivosalida.write(reinterpret_cast<const char*>(&alum[i]), sizeof(alumno));
   archivosalida.close();
   
   



return 0;
}
#15
Programación C/C++ / Re: Archivos bINARIOS c++
8 Febrero 2016, 02:39 AM
Solo eso, o tengo que hacerlo con cada miembro de la estructura ? esta parte la copio tal cual? (reinterpret_cast<const char*>, otra pregunta si quiero leer el archivo sería tal cual pero cambiando a fread? nunca he usado archivo por eso ando perdido
#16
Programación C/C++ / Archivos bINARIOS c++
7 Febrero 2016, 19:17 PM
Buenas tarde quisiera saber como podría hacer llenar un archivo binario desde teclado con un arrays de estructuras

#include <iostream>
#include <fstream>
using namespace std;

struct alumno{

string nombre;
string apellido;
int edad;
};

int main () {


alumno alum[50];

ofstream f;

f.open("alumnos.bin", ios::out | ios::binary);
if(f.open){

for (int i=0; i<=50; i++){

cout<<"Teclee el nombre del alumno"<<endl;
cin>>alum[i].nombre
cout<<"Teclee  el apellido"<<endl;
cin>>alum[i].apellido;
cout<<"Teclee  la edad"<<endl;
cin>>alum[i].edad;
}

}
else {
cout<<"Error al abrir el archivo"<<endl;
}
is.close();


return 0;
}
Así lo implemente pero me da error al compilar
#17
Buenas, quieor implementar una función que dados 4 datos, validar que esten ingresados correctamente y en caso contrario que los vuelva a pedir, lo hice con un do while pero no funciona como quería, si podrían ver que hice mal por favor
#include <iostream>
            using name space std;

int verificacion (int a, int b, int c, int d ){
int n2=0;

do { //ciclo que se repite mientras los datos suministrados esten malos
       //cuando sean validos los datos se sale
       //correcto b>a y d>c
cout<<"suministre a"<<endl;
cin>>a;
cout<<"suministre b"<<endl;
cin>>b;
cout<<"suministre c"<<endl;
cin>>c;
cout<<"suministre d"<<endl;
cin>>d;
cout<<" Vuelva a suministrar los datos"<<endl;
} while (a>b and c>d)

if (n2==0){ // si los datos son erroneos que la funcion retorne el siguiente mensaje
cout<<"datos suministrados erroneos"<<endl;
return n2;
n2++
}

else { // en otro caso que retorne este mensaje
cout<<"Datos suministrado correctos"<<endl;
return n2;
}



}



int main () {
int a,b,c,d,n1;

n1=verificacion(a,b,c,d);
cout<<"Los datos son :"<<n1<<endl;









}

#18
Muchas gracias, si la pregunta era en torno a C++ ;D
#19
Buenas, tengo la siguiente duda, puedo comprar dos registro? es decir si quiero ver si son iguales dos registro se puede?
#20
Gracias, pero mas que el código me gustaría mas comprender su elaboración, todavía no comprendo bien como hacer el ejercicio, eso es mas que todo mi problema