elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  necesito ayuda en este ejercicio principalmente después de la letra d) C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: necesito ayuda en este ejercicio principalmente después de la letra d) C++  (Leído 2,800 veces)
brennopedroso

Desconectado Desconectado

Mensajes: 3


Ver Perfil
necesito ayuda en este ejercicio principalmente después de la letra d) C++
« en: 23 Abril 2021, 20:29 pm »

 necesito ayuda en este ejercicio principalmente después de la letra d) en la creación de otra clase, aquí está la primera clase que hice en un archivo de encabezado
Declaración del ejercicio:
1- Realizar un programa de registro y consulta de vehículos nuevos o usados.
a) Defina una clase de Automóvil, que tenga la siguiente información:
- marca
- año - ano
- estado (que puede venderse o estar disponible) - status
- color - cor
- precio - preco
- modelo
- Expresar - estado


b) Defina un método constructor para la clase Automobile que inicialice los valores de los atributos pasando argumentos definidos.
c) Defina los métodos get y set para todos los atributos y métodos.
d) Diseñar otra clase (UsaAutomovel) para probar la clase Automóvil donde:
- Debe crearse una lista de automóviles mediante la creación de objetos de la clase Automovel.
 - Definir un método para completar datos sobre un automóvil y agregarlo a la lista.
e) Elaborar un método para buscar vehículos por aspecto de marca Marca: enumera el automóvil de una determinada marca.
f) Hacer un método que permita la venta de un vehículo.
g) Defina en la clase principal (UsaAutomovel) las siguientes opciones: Listar autos y ventas totales.

2- Crear dos clases que hereden las características de la clase de automóviles.

Código
  1. #ifndef AUTOMOVEL_H
  2. #define AUTOMOVEL_H
  3.  
  4.  
  5. class Automovel
  6. {
  7.    int ano;
  8.    string marca, modelo, cor, estado, status;
  9.    float preco;
  10.  
  11.    public:
  12.    Automovel(void){
  13.    }
  14.    //consulta
  15.    Automovel(string marca, int ano, string status, string cor, float preco, string modelo, string estado){
  16.        this->marca = marca;
  17.        this->ano = ano;
  18.        this->status = status;
  19.        this->cor = cor;
  20.        this->preco = preco;
  21.        this->modelo = modelo;
  22.        this->estado = estado;
  23.    }
  24.    string getMarca(void){
  25.        return this->marca;
  26.    }
  27.    int getAno(void){
  28.        return this->ano;
  29.    }
  30.    string getStatus(void){
  31.        return this->status;
  32.    }
  33.    string getCor(void){
  34.        return this->cor;
  35.    }
  36.    float getPreco(void){
  37.        return this->preco;
  38.    }
  39.    string getModelo(void){
  40.        return this->modelo;
  41.    }
  42.    string getEstado(void){
  43.        return this->estado;
  44.    }
  45.    void setMarca(string marca){
  46.        this->marca = marca;
  47.    }
  48.    void setAno(int ano){
  49.        this->ano = ano;
  50.    }
  51.    void setStatus(string status){
  52.        this->status = status;
  53.    }
  54.    void setCor(string cor){
  55.        this->cor = cor;
  56.    }
  57.    void setPreco(float preco){
  58.        this->preco;
  59.    }
  60.    void setModelo(string modelo){
  61.        this->modelo;
  62.    }
  63.    void setEstado(string estado){
  64.        this->estado;
  65.    }
  66.    void toString(){
  67.        cout << "Marca: " << this->getMarca() <<" Ano: " << this->getAno() << " Status: " << this->getStatus()<< " Cor: " << this->getCor()<< " Preco: " << this->getPreco() << " Modelo: " << this->getModelo() << " Estado: " << this->getEstado();
  68.    }
  69. };
  70. class UsaAutomovel
  71. {
  72.  
  73. };
  74. #endif // AUTOMOVEL_H

MOD: El código debe ir entre etiquetas de Código GeSHi


« Última modificación: 23 Abril 2021, 21:00 pm por K-YreX » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: necesito ayuda en este ejercicio principalmente después de la letra d) C++
« Respuesta #1 en: 23 Abril 2021, 21:14 pm »

Esta es una práctica típica de lenguajes totalmente orientados a objetos como Java o C#. En estos lenguajes todo el código tiene que estar dentro de una clase, entonces se suele pedir crear una clase principal (que contendrá el método main()) para probar el funcionamiento del resto de clases.

En C++ también es posible hacerlo aunque no es tan típico ya que no es realmente necesario crear una clase principal. La función main() puede encontrarse fuera de toda clase.
Al final lo que te están pidiendo es una clase que tenga una lista de automóviles y que puedas instanciarla en el main() para trabajar con ello. Algo como esto:
Código
  1. class UsoAutomovil {
  2.  private:
  3.    std::vector<Automovil> automoviles;
  4.  
  5.  public:
  6.    guardarNuevoAutomovil();
  7.    ...
  8. }

Y ahora en tu función main() tendrías que tener algo como esto:
Código
  1. int main() {
  2.  UsoAutomovil concesionario;
  3.  // La funcion guardarNuevoAutomovil() tiene que pedir al usuario todos los valores necesarios para crear un automovil nuevo
  4.  // y agregarlo a la lista (vector) de automoviles que tiene dentro de la clase
  5.  concesionario.guardarNuevoAutomovil();
  6.  ...
  7. }

Así mismo tienes que crear el resto de funciones que te piden.
Para la última parte tan solo tienes que mirar cómo funciona la herencia en C++. Para este ejemplo no tienes ninguna complicación, puedes crear por ejemplo una clase Coche que herede de Automovil y así esta primera tendrá de manera implícita todos los atributos de la segunda.


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: necesito ayuda en este ejercicio principalmente después de la letra d) C++
« Respuesta #2 en: 23 Abril 2021, 21:25 pm »

Hola,

Citar
Elaborar un método para buscar vehículos por aspecto de marca Marca: enumera el automóvil de una determinada marca.

Debes usar std:::find ( https://www.cplusplus.com/reference/string/string/find/ ), pero hay un gran detalle, te están pidiendo "buscar", pero ¿buscar donde?, probablemente debas hacer que sea posible ingresar múltiples vehículos en una lista de objetos y deberás realizar una iteración por cada objeto y según el tipo de búsqueda hacer match con el valor solicitado, el tipo puede venir definido en un string o en un enumerador y hacer que el usuario seleccione el tipo a traves de una lista numérica.


Citar
Hacer un método que permita la venta de un vehículo.

Eso no se entiende bien, quieren que hagas un carro de ventas con precios, pasarelas de pago, integración con tarjetas, guardado de logs, ordenes de compra, ordenes de despacho, manejo de stock, etc?, pidele a tu profesor que sea mas específico en lo que requiere.


Citar
Defina en la clase principal (UsaAutomovel) las siguientes opciones: Listar autos y ventas totales.

Esta es la parte donde te mencioné que necesitarás una lista. Para agregar un vehículo necesitarás un controlador, o sea, una función o clase que pida al usuario ingresar un nuevo vehículo e ingresar estos datos a la clase (dto) y luego guardar esta clase en una lista de objetos, para esto puedes utilizar std::list ( https://codereview.stackexchange.com/questions/41525/creating-objects-and-putting-them-into-stdlist ).

Espero te ayude, cuando tengas algo avanzado con tu código nos lo muestras, puedes subirlo a un repositorio como github para ir observando los avances y ayudarte en corregir lo que podamos.

Edito: dosculpa K-YreX, no aparecía tu post cuando comencé a escribir la respuesta.

Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines