[ Foro de C ]
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.)