[ Foro de C ]

Ayuda con un código en C

28-May-2021 06:05
Invitado (anonim23)
0 Respuestas

Necesito ayuda para crear las siguientes fuciones:
1.- Completar los diferentes espacios para el registro de un nuevo vehiculo
2.- Generar una función que permite mostrar una lista de todos los vehiculos registrados (información resumida)

3.- Genrar una función para visulizar la información completa y organizada de un vehiculo en especifico
4.- Generar una función que permita actualizar la información de un vehiculo sleccionado.


Es necesario usar estructuras y arreglos de estructuras, apuntadores y funciones.


//Estructuras anidadas
#include <stdio.h>
#include <stdlib.h>

//registro vehicular
     /* modelo
      marca
      año
      placas
     
     
      origen pais
      origen estado
      origen minicipio
      origen cp
     
     
      color
      tipo
      numero de ejes
      numero de serie
     
      propietario nombre
      propietario domicilio
      propietario telefono
      propietario correo
      propietario discapacidad
      numero de propietario
      tipo de propietario
     
      adeudos por multas pendientes
      adeudo por registro vehicular
      */
      struct def_struct_direccion{
          char calle[50];
          int numext;
          char numint[5];
          char col[50];
          char ciudad[50];
          char estado[50];
          char pais[50];
          int cp;
      };
             
       struct def_struct_telefono{
           unsigned int lada;
           unsigned int num;
           char tipo[20];
           
       };
      struct def_struct_propietario{
          char nom[50];
          char ape[50];
          struct def_struct_direccion dir; //Este dato es tipo estuctura tiene los datos que estan adentro
          struct def_struct_telefono tel;//estuctura tipo estuctura telefono
           char mail[50];
           unsigned int num_propietario;
           char discapacidad[20];
           unsigned int tipo; //persona fisica persona moral persona gubernamental  otro
           
           
         
         
      };

   struct def_struct_auto{
       struct def_struct_propietario propietario; //estuctura tipo propietario la variable propietario tendra todo lo de la estuctura  
       struct def_struct_direccion origen; //estuctura tipo direccion;
       char marca[30];
       char modelo [30];
       unsigned int anio;
       char placas[10];
       char color[20];
       unsigned int tipo; //carros, camionetas pick up, suv,moto, camion, trailer
       unsigned int ejes;
       char num_serie[30];
       unsigned int combustible;//gasolina disel, gas, electico ,otro
       int adeudos[2][2];
       int ID;
       
       
       
       
   };
   
int f_menu(){
   int funcion;
do{
   //system("clear");
printf("\t\tRegistro vehicular\n\n");
printf("\t\tMenu\n");
printf("1.registar un nuevo vehiculo.\n");
printf("2.modificar un nuevo vehiculo.\n");
printf("3.reporte vehicular.\n");
printf("\t\t\t¿Que opcion eliges?: \n");
scanf(" %d",&funcion);
}while(funcion>3||funcion<=0);

 
   
   return funcion;
}
unsigned int f_restriccion(int lim_inf,int lim_sup){
   unsigned int aux;
    scanf(" %ud",&aux);
   while(aux>lim_sup||aux<lim_inf){
       printf("\tError... ");
   scanf(" %ud",&aux);
   }
   
}

typedef     struct def_struct_auto      struct_auto; //declara un nuevo tipo de variable


void f_nuevovehiculo(struct_auto *elemento){
   //Registro del nuevo vehiculo
 system("clear");
  int i=0;
 
   printf("\t\tnuevo vehiculo\n\n");
   printf("\tCaracteristicas exteriores\n");
   printf("1.carro    2.pickup    3. SUV  4.motocicleta   5.camion    6.trailer\n");
 
   printf("tipo de vehiculo\n");
   
  elemento->tipo=f_restriccion(1,7);
 
   printf("Marca: ");
   scanf(" %[^\n]",elemento->marca);
   
   printf("Modelo: ");
   scanf(" %[^\n]",elemento->modelo);
   
   printf("Año de fabricacion: ");
   elemento->anio=f_restriccion(1900,2100);
   printf("color del vehiculo: ");
   
   scanf(" %[^\n]",elemento->color);
   printf("1.gasolina    2.disel    3.gas    4.electrico   5.hibrido    6.otros\n");
   printf("tipo de vehiculo\n");
   
   elemento->combustible=f_restriccion(1,6);
   
   printf("numero de ejes: ");
   scanf(" %ud",&elemento->ejes);
   
   printf("\tCaracteristicas de identificacion\n");
   
   printf("Placas: ");
   scanf(" %[^\n]",elemento->placas);
   
   printf("numero de serie: ");
   scanf(" %[^\n]",elemento->num_serie);
   
   printf("Pais de origen: ");
   scanf(" %[^\n]",elemento->origen.pais);//es el i,enesimo termino dentro de origen, dentro de pais
   
   printf("Estado de registro: ");
   scanf(" %[^\n]",elemento->origen.estado);
   
   printf("ciudad de registro: ");
   scanf(" %[^\n]",elemento->origen.ciudad);
 
   printf("\t informacion del propietario\n");
 
  printf("1)fisica 2)moral 3)gubernamental 4)otro\n   ");
  printf("Tipo: ");
   elemento->propietario.tipo=f_restriccion(1,4);
   
  printf("Nombre: ");
  scanf(" %[^\n]",elemento->propietario.nom);
 
   printf("Apellidos: ");
   scanf(" %[^\n]",elemento->propietario.ape);
 
   printf("calle: ");
   scanf(" %[^\n]",elemento->propietario.dir.calle);
   printf("numero: ");
   scanf(" %ud",&elemento->propietario.dir.numext);
 
 
}

struct_auto f_NN(){
   struct_auto elemento;
       //Registro del nuevo vehiculo
 system("clear");
  int i=0;
 
   printf("\t\tnuevo vehiculo\n\n");
   printf("\tCaracteristicas exteriores\n");
   printf("1.carro    2.pickup    3. SUV  4.motocicleta   5.camion    6.trailer\n");
 
   printf("tipo de vehiculo\n");
   
  elemento.tipo=f_restriccion(1,7);
 
   printf("Marca: ");
   scanf(" %[^\n]",elemento.marca);
   
   printf("Modelo: ");
   scanf(" %[^\n]",elemento.modelo);
   
   printf("Año de fabricacion: ");
   elemento.anio=f_restriccion(1900,2100);
   printf("color del vehiculo: ");
   
   scanf(" %[^\n]",elemento.color);
   printf("1.gasolina    2.disel    3.gas    4.electrico   5.hibrido    6.otros\n");
   printf("tipo de vehiculo\n");
   
   elemento.combustible=f_restriccion(1,6);
   
   printf("numero de ejes: ");
   scanf(" %ud",&elemento.ejes);
   
   printf("\tCaracteristicas de identificacion\n");
   
   printf("Placas: ");
   scanf(" %[^\n]",elemento.placas);
   
   printf("numero de serie: ");
   scanf(" %[^\n]",elemento.num_serie);
   
   printf("Pais de origen: ");
   scanf(" %[^\n]",elemento.origen.pais);//es el i,enesimo termino dentro de origen, dentro de pais
   
   printf("Estado de registro: ");
   scanf(" %[^\n]",elemento.origen.estado);
   
   printf("ciudad de registro: ");
   scanf(" %[^\n]",elemento.origen.ciudad);
 
   printf("\t informacion del propietario\n");
 
  printf("1)fisica 2)moral 3)gubernamental 4)otro\n   ");
  printf("Tipo: ");
   elemento.propietario.tipo=f_restriccion(1,4);
   
  printf("Nombre: ");
  scanf(" %[^\n]",elemento.propietario.nom);
 
   printf("Apellidos: ");
   scanf(" %[^\n]",elemento.propietario.ape);
 
   printf("calle: ");
   scanf(" %[^\n]",elemento.propietario.dir.calle);
   printf("numero: ");
   scanf(" %ud",&elemento.propietario.dir.numext);
 
  return elemento;
}



int main()
{
struct_auto lista[10]; //lista/vector/arreglo tipo auto
   int funcion;
   int i=0;
   funcion=f_menu();
   
   f_nuevovehiculo(&lista[i]);
  i=1;
  lista[i]=f_NN();
 
 
 
 
   return 0;
}




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)