Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Error en ejercicio de C++

Estas en el tema de Error en ejercicio de C++ en el foro de C/C++ en Foros del Web. Hola a todos, miren estoy haciendo este ejercicio y tengo unos errores que no se como puedo solucionarlos. Esperaba que me pudieseis ayudar. El ejercicio ...
  #1 (permalink)  
Antiguo 01/02/2014, 08:11
 
Fecha de Ingreso: noviembre-2013
Mensajes: 8
Antigüedad: 10 años, 4 meses
Puntos: 0
Error en ejercicio de C++

Hola a todos,
miren estoy haciendo este ejercicio y tengo unos errores que no se como puedo solucionarlos. Esperaba que me pudieseis ayudar.
El ejercicio esta dividido en dos partes, la primera la tengo echa y funcionando pero la segunda me esta costando mucho mas.

Aquí os dejo las diferentes partes del ejercicio.

Enunciado:

Escribe una clase Vehículo con los siguientes atributos (privados):
• Anio: año de fabricación. Entero
• CapDepo: Capacidad del deposito en litros. Entero
• LitrosDepo: Litros en el deposito. Tiene que ser menor que CapDepo. Entero
• Kph: Km/h del vehiculo. Entero
• Propietario: cadena de caracteres de 25 posiciones
Y los siguientes métodos públicos:
• Imprimir ()
• LlenarDeposito (int nLitros)
• Todas las funciones necesarias para acceder al valor de los atributos y
modificarlos.
Además has de crear tres constructores: uno por defecto, otro con parámetros y otro de
copia.
Por ultimo crea un procedimiento principal donde

Crea dos clases derivadas de Vehículo que serán Coche y Moto. El coche tendrá como
atributos propios
• NumAsientos: numero de asientos. Entero
• Marca: marca del coche. Cadena de caracteres de 10 posiciones.
La moto tendrá como atributos propios:
• Cilindrada: Entero
• Tipo : cadena de caracteres de 20 posiciones que indicia le tipo de moto (trial,
cross, custom...)
En ambas clases crea los métodos que permitan acceder a los atributos privados y
solapa la función imprimir para que muestre la información propia aparte de la
general.

He logrado hacer diferentes archivos de encabezado ".h"y otros tanto ".cpp" pero me corren exactamente 6 errores. Aquí os dejo el código por partes:

Primer los cuatro ".cpp":

Moto.cpp

#include "Moto.h"
#include <iostream>

using namespace std;

void Moto::Imprimir()
{
cout << "Cilindrada de la Moto: " << cilindrada() << endl;
cout << "Tipo de Moto: " << tipo() << endl;
}


Coche.cpp

#include "Coche.h"
#include <iostream>

using namespace std;

void Coche::Imprimir()
{
cout << "Numero de asientos: " << this -> marca() << endl;
cout << "Marca del Coche: " << this -> asientos() << endl;
}


Vehiculo.cpp

#include "Vehiculo.h"
#include <iostream>

using namespace std;

void Vehiculo::Imprimir()
{
cout << "Propietario: " << this->GetPropietario() << endl;
cout << "Anio de fabricacion: " << this->GetAño() << endl;
cout << "Capacidad del deposito: " << this->GetCapDepo() << " Litros. ";
cout << this->GetLitrosDepo() << " Litros actualmente" << endl;
cout << "Velocidad maxima: " << this->GetKph() << " Km/h" << endl;
}

int Vehiculo::LlenarDeposito(int litros)
{
this->SetLitrosDepo(this->GetLitrosDepo() + litros);
return this->GetLitrosDepo();
}


Source.cpp

#include <iostream>
#include <iomanip>
#include "Vehiculo.h"

using namespace std;

int main(){

Vehiculo vehiculoA;
cout << "VEHICULO A - Constructor por defecto" << endl;
vehiculoA.Imprimir();
cout << "-------------------------------" << endl;
cout << endl;

cout << "VEHICULO A - SetPropietario(\"Bruce Willis\")" << endl;
vehiculoA.SetPropietario("Bruce Willis");
vehiculoA.Imprimir();
cout << "-------------------------------" << endl;
cout << endl;

cout << "VEHICULO A - LlenarDeposito(50)" << endl;
vehiculoA.LlenarDeposito(50);
vehiculoA.Imprimir();
cout << "-------------------------------" << endl;
cout << endl;

cout << "VEHICULO A - LlenarDeposito(500)" << endl;
vehiculoA.LlenarDeposito(500);
vehiculoA.Imprimir();
cout << "-------------------------------" << endl;
cout << endl;

cout << "_________________________________________________ ____________________" << endl;

Vehiculo vehiculoB(1987, 55, 180);
cout << "VEHICULO B - Constructor(1987, 55, 180)" << endl;
vehiculoB.Imprimir();
cout << "-------------------------------" << endl;
cout << endl;

cout << "VEHICULO B - SetPropietario(\"Jennifer Aniston\")" << endl;
vehiculoB.SetPropietario("Jennifer Aniston");
vehiculoB.Imprimir();
cout << "-------------------------------" << endl;
cout << endl;

cout << "_________________________________________________ ____________________" << endl;

Vehiculo vehiculoC(vehiculoB);
cout << "VEHICULO C - Constructor copia(Vehiculo B)" << endl;
vehiculoC.Imprimir();
cout << "-------------------------------" << endl;
cout << endl;

cout << endl << endl;
system("Pause");
}


Ahora pondré los ".h"que son tres:

Moto.h

#include <string>

class Moto{

private:
char* tipo;
int cilindrada;

public:
void Imprimir();
void Settipo(char*);
char* Gettipo();
}


Coche.h

#include <string>

class Coche{

private:
char* marca;
int asientos;

public:
void Imprimir();
void SetMarca(char*);
char* GetMarca();
}


Vehiculo.h

#include <string>

class Vehiculo{

private:
int año;
int capDepo;
int litrosDepo;
int kph;
char propietario[25];

public:
Vehiculo(){
SetAño(2000);
SetCapDepo(100);
SetLitrosDepo(0);
SetKph(300);
SetPropietario("");
}

Vehiculo(int _año, int _cap, int _kph){
SetAño(_año);
SetCapDepo(_cap);
SetLitrosDepo(0);
SetKph(_kph);
SetPropietario("");
}

Vehiculo(const Vehiculo &v){
SetAño(v.año);
SetCapDepo(v.capDepo);
SetLitrosDepo(v.litrosDepo);
SetKph(v.kph);
SetPropietario((char*) v.propietario);
}

//PUBLIC METHODS==========
public:
void Imprimir();
int LlenarDeposito(int litros);

//GETTERS=================
public:
int GetAño(){
return año;
}
int GetCapDepo(){
return capDepo;
}
int GetLitrosDepo(){
return litrosDepo;
}
int GetKph(){
return kph;
}
char* GetPropietario(){
return propietario;
}

//SETTERS=================
public:
void SetAño(int _año){
año = _año;
}
void SetCapDepo(int _cap){
capDepo = _cap;
}
void SetLitrosDepo(int _litros){
litrosDepo = _litros;
if (litrosDepo > GetCapDepo())
SetLitrosDepo(GetCapDepo());
}
void SetKph(int _kph){
kph = _kph;
}
void SetPropietario(char* _propietario){
strcpy_s(propietario, _propietario);
}
};


Y esto es los que sucede cuando genero el código:

1>Compilando...
1>Coche.cpp
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\iostream(12) : error C2143: error de sintaxis : falta ';' delante de 'namespace'
1>c:\users\007\desktop\app\programacion c++\tema 9\ejercicio 2\ejercicio 2\coche.cpp(8) : error C2064: el término no se evalúa como una función con 0 argumentos
1>c:\users\007\desktop\app\programacion c++\tema 9\ejercicio 2\ejercicio 2\coche.cpp(9) : error C2064: el término no se evalúa como una función con 0 argumentos
1>Moto.cpp
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\iostream(12) : error C2143: error de sintaxis : falta ';' delante de 'namespace'
1>c:\users\007\desktop\app\programacion c++\tema 9\ejercicio 2\ejercicio 2\moto.cpp(8) : error C2064: el término no se evalúa como una función con 0 argumentos
1>c:\users\007\desktop\app\programacion c++\tema 9\ejercicio 2\ejercicio 2\moto.cpp(9) : error C2064: el término no se evalúa como una función con 0 argumentos
1>Source.cpp
1>Vehiculo.cpp
1>Generando código...
1>El registro de compilación se guardó en el "file://c:\Users\007\Desktop\App\Programacion C++\Tema 9\Ejercicio 2\Ejercicio 2\Debug\BuildLog.htm"
1>Ejercicio 2 - 6 errores, 0 advertencias
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========


¿Como solucionaría esos errores?

Muchas gracias de antemano, y un gran saludo :D
  #2 (permalink)  
Antiguo 01/02/2014, 09:46
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 7 meses
Puntos: 83
Respuesta: Error en ejercicio de C++

Tiene que arrojarte mas errores de los que comentas, hay mas cosas que estan mal: estas llamando a la funcion this -> marca() cuando 'marca' no es ninguna funcion (lo mismo en 'tipo', 'cilindrada', etc...), olvidas algunos puntoycoma ';' al final de las declaraciones de clase, hay caracteres no validos en los nombres de variables y funciones (p.ej. las 'ñ' no valen), olvidas incluir algunas cabeceras (algunas seguramente te las incluye el propio compilador o el ide por defecto, pero tendrias que indicarlo explicitamente)

Corrige un poco todo eso, e indenta el codigo; será mejor para todos: para ti porque te quedará mas claro lo que estas haciendo y las partes de tu codigo, y para los que puedan ayudarte porque será un codigo amigable y de facil lectura.

Saludos
vosk

Etiquetas: clases, ejercicio, funcion, int, numero, programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:14.