Problema de alquiler de coches con programación en lenguaje C
#incluye & ltstdio.h & gt?
#incluye & ltstdlib.h & gt?
#include & ltstring.h & gt?
#¿Definir MaxNum? 20?
estructura typedef A{?
número entero;? /*Número de vehículo*/?
Tipo de carácter; /*modelo de coche*/?
Pago de intereses; /*tarifa de arrendamiento*/?
int bien/*muy bien*/?
struct a* next;/*apunta al siguiente nodo*/?
}Coche;?
estructura typedef B{?
int número; /*número de cliente*/?
char Nombre[20];/*Nombre del cliente*/?
licencia de caracteres;? /*Categoría de licencia*/?
int car¿No? /*Número de vehículo de alquiler*/?
int? cielo;? /*Número de días de alquiler*/?
int DelayDay/*Días de retraso*/?
Estructura B* ¿siguiente?
}Cliente;?
La estructura c {/* es el nodo principal de la lista vinculada de vehículos, cada tipo A, B, C tiene un */?
Tipo de carácter; /*modelo de vehículo*/?
int avl/*cantidad disponible*/?
Car*head; /*apunta al nodo del vehículo*/?
} headNode[3]={{'A ', MaxNum, NULL}, {'B ', MaxNum, NULL}, {'C ', MaxNum, NULL } }?
cliente * allClien = NULL?
int pay[3]={400, 300, 200}, multa[3]={600, 500, 400};?
void init();/*Inicialización*/?
int menu();/*Interfaz de menú simple*/?
búsqueda nula();/*consulta*/?
void carSc();/*Consultar vehículo*/?
void clientSc();/*Consultar cliente*/?
anular alquiler();/*alquilar un coche*/?
void return();/*Devolver el auto*/?
void add CLI(client * CLI); /*Agregar cliente a la lista de clientes*/?
client * del CLI(int client no); /*Eliminar el cliente de la lista de clientes*/?
void addCar(char carType, int carNo);?
car* delCar(tipo de carácter);?
salir nula(); /*Salir*/?
¿Anular principal()?
{?
init();?
¿Y (1)?
{?
¿Cambiar (menú())?
{?
Caso 1: búsqueda(); rota;?
Caso 2: alquiler(); roto;?
Caso 3: devolver(); romper;?
Caso 4: Salir();?
Valor predeterminado:;?
}?
}?
}?
¿void init()?
{?
int I = 0;?
¿Coche *ptr, *pa, *pb, *pc?
headNode[0]. cabeza=NULL, cabezaNodo[1]. cabeza=NULL, cabezaNodo[2]. cabeza = NULO?
ptr=(coche*)malloc(tamañode(coche));?
ptr->no=100;?
ptr->Tipo = 'A?
ptr->pago=400;?
ptr-> bien = 600;?
headNode[0].
cabeza = ptr?
pa=ptr?
pa-> siguiente = NULL?
for(I = 1;i<20;i++){?
ptr=(coche*)malloc(tamañode(coche));?
ptr->no=10I;?
ptr->Tipo = 'A?
ptr->pago=400;?
ptr-> bien = 600;?
pa-> siguiente = ptr?
pa=ptr?
pa-> siguiente = NULL?
}?
Gratis(ptr);?
ptr=(coche*)malloc(tamañode(coche));?
ptr->no=200;?
ptr->Tipo = ' B?
ptr->pago=300;?
ptr-> bien = 500;?
headNode[1]. cabeza = ptr?
pb=ptr?
pb- >siguiente = NULL?
for(I = 1;i<20;i++){?
ptr=(coche*)malloc(tamañode(coche));?
ptr->no = 20I;?
ptr->Tipo = 'A?
ptr->pago=400;?
ptr-> bien = 600;?
pb- >siguiente = ptr?
pb=ptr?
pb- >siguiente = NULL?
}?
Gratis(ptr);?
ptr=(coche*)malloc(tamañode(coche));?
ptr->no=300;?
ptr-> tipo = "C";?
ptr->pago=200;?
ptr-> bien = 400;?
headNode[2]. cabeza = ptr?
pc=ptr?
PC-> siguiente = NULL?
for(I = 1;i<20;i++){?
ptr=(coche*)malloc(tamañode(coche));?
ptr->no = 30I;?
ptr->Tipo = 'A?
ptr->pago=400;?
ptr-> bien = 600;?
PC-> siguiente = ptr?
pc=ptr?
PC-> siguiente = NULL?
}?
Gratis(ptr);?
}?
int menú()?
{?
int seleccionar;?
printf("\n\n\nSeleccione servicio: 1. Preguntar 2. Alquilar un auto. Regresar 4. Salir\n ");?
scanf("%d ", & amp select);?
Y (¡elección!=1. & ampchoice!= 2 & amp& ampchoice!= 3 & amp& ampchoice!=4)?
{?
printf ("\nError de entrada, vuelva a ingresar:");?
scanf("%d ", & amp select);?
}?
Devolver selección;?
}?
búsqueda nula()?
{?
int seleccionar;?
printf(" \ nQuiere consultar: 1. ¿Coche? 2. ¿Cliente? 3. ¿Devolución? \ n ");?
scanf("%d ", & amp select);?
Y (seleccione!=1.
& ¡elegir! = 2 & amp& amp¡Elige! =3)?
{?
printf("\nError de entrada, vuelva a ingresar:");?
scanf("%d ", & amp select);?
}?
¿Cambiar (seleccionar)?
{?
Caso 1: carSc(); roto;?
Caso 2: clientSc(); roto;?
Caso 3:;?
Valor predeterminado:;?
}?
}?
¿Anular carSc()?
{?
printf(" \ n \ nToda la información del coche:\ n ");?
Printf ("\Hay %d autos que van a Norteamérica.\Hay %d autos que van a NB.\Quedan %d autos para NC",?
headNode[0]. avl, headNode[1]. avl, headNode[2].
AVL);?
}?
¿Anular clientSc()?
{?
cliente * ptr = allClien?
printf(" \ n \ nToda la información del cliente: \ n ");?
mientras(ptr!=NULL)?
{ printf("\n\nNúmero de cliente:%d",ptr->No);?
printf("\nNombre del cliente:%s",ptr->nombre);?
printf("\nTipo de licencia de conducir: %c",ptr-> licencia);?
printf("\nNúmero de vehículo original: %d",ptr->kano);?
printf("\nNúmero de días de lanzamiento: %d",ptr->days);?
printf("\nDías de retraso:%d",ptr->día de retraso);?
ptr = ptr->Siguiente;?
}?
}?
¿void addCli(cliente *cli)?
{?
if(allClien==NULL)?
allClien = cli?
¿Y si?
{?
CLI-> next = allClien?
allClien = cli?
}?
}?
cliente* delCli(int número de cliente)?
{?
Cliente *ptr, *prePtr;?
ptr = todoCliente?
mientras(ptr!= NULL & amp& ampptr-& gt; ¡No!=clientNo)?
{ prePtr = ptr?
ptr = ptr->Siguiente;?
}?
¿Si (ptr!=NULL)?
{?
if(ptr==allClien)?
{?
allClien = NULL?
}?
¿Y si?
{?
prePtr->;siguiente = ptr->Siguiente;?
}?
}?
¿Devolver ptr?
}?
¿Anular el alquiler()?
{?
nombre de carácter[20], tipo, Sí _ No?
int núm, día, No;?
coche * carPtr?
Cliente *cli?
printf("\n\nIngrese el tipo de licencia (A/B/C):");?
scanf("%c ", & tipo);?
mientras(type!= 'A' & amp&typing!= 'B' &&typing!='C')?
{?
Printf("Error de entrada, vuelva a ingresar:");?
scanf("%c ", & tipo);?
}?
if(tipo=='A ')?
num=headNode[0]. avl?
si no (tipo=='B ')?
num=headNode[1]. avl?
¿Y si?
num=headNode[2].
avl?
printf(" \ N % Quedan %d autos en la categoría C, ¿quieres alquilarlos (Y/N): ", tipo, num);?
scanf("%c", & yes_no);?
Y (Yes_No!= ' Y ' & amp& ampYes_No! = ' N ' & amp& ampYes_No!= ' y ' & amp& ampYes_No!='n ')?
{?
Printf("Y o n:");?
scanf("%c", & yes_no);?
}?
/*Agregar clientes*/?
if(Sí_No=='Y'||Sí_No=='y ')?
{?
printf("\nIngrese su nombre:");?
scanf("%s ", nombre);?
printf("\nIngrese el número de días de su alquiler:");?
scanf("%d ", & días);?
}?
no = rand()% 6200;?
carPtr = delCar(tipo);?
cli=(cliente *)malloc(tamañode(cliente));?
CLI->no=no;?
strcpy(CLI-> nombre, nombre);?
CLI->license=tipo;?
CLI->carNo = carPtr->No;?
CLI->日=日;?
CLI-> día de retraso = 0;?
CLI-> siguiente = NULL?
¿Agregar CLI(CLI);?
/*Saca el coche*/?
printf(" \nSu número de cliente es: %d ", No);?
printf("\nEl auto que alquila es %c, y el número de auto es %d ", escriba, carPtr-& gt; No);?
printf("\nSu período de alquiler es %d días., días);?
}?
void return().
{?
int número;?
Pagos de intereses a largo plazo;?
¿Cliente*ptr?
printf("\n\nNúmero de cliente:");?
scanf("%d ", & no);?
if((ptr=delCli(No))==NULL)?
printf("\n¡El cliente no existe y no se puede devolver!");?
¿Y si?
{?
¿Cambiar (ptr-& gt; licencia)?
{?
Caso 1: Pago = ptr->Día*40ptr->DelayDay*600Break;?
Caso 2: Pago = ptr->día*30ptr->día de retraso*500;descanso??
Caso 3: Pago = ptr->Día*20ptr->DelayDay*400Break;?
Valor predeterminado:;?
}?
printf("\n\nNombre del cliente: %s",ptr->name);?
printf("\nTipo de licencia de conducir: %c",ptr-> licencia);?
printf("\nNúmero de vehículo original: %d",ptr->kano);?
printf("\nDías de lanzamiento: %d",ptr->days);?
printf("\nDías de retraso:%d",ptr->día de retraso);?
printf(" \ n \ nCosto requerido: %ld ", pago);?
addCar(ptr->licencia,ptr->carno);?
Gratis(ptr);?
}?
}?
void addCar(char carType, int carNo)?
{?
coche *ptr?
int index=carType-65;?
ptr=headNode[índice]. cabeza;?
si(ptr==NULL)?
{ptr=(coche*)malloc(tamañode(coche));?
nodo principal[índice]. cabeza = ptr?
nodo principal[índice]. avl++;?
}?
¿Y si?
{ mientras(ptr-& gt; siguiente)?
ptr = ptr->Siguiente;?
ptr-& gt; next=(car*)malloc(sizeof(car));?
ptr = ptr->Siguiente;?
nodo principal[índice]. avl++;?
}?
ptr-& gt; No = Kano;?
ptr->Tipo = tipo de coche?
ptr->pago=pago[índice];?
ptr->fine = multa[índice];?
ptr-> siguiente = NULL?
}?
car* delCar(tipo de carácter)?
{?
Coche*Alquiler de coche;?
¿Coche*pp?
¿Interruptor (tipo)?
{?
Caso A:
rentcar=headNode[0]. cabeza;?
headNode[0]. head = alquilar coche->siguiente;?
headNode[0]. AVL-;?
¿Romper;?
Caso "B": coche de alquiler = nodo principal[1]. cabeza;?
headNode[1]. head = alquilar coche->siguiente;?
headNode[1]. AVL-;?
¿Romper;?
Caso "C": coche de alquiler = nodo principal[2]. cabeza;?
headNode[2]. head = alquilar coche->siguiente;?
headNode[2].
AVL-;?
¿Romper;?
Valor predeterminado:;?
}?
Volver al alquiler de coches;?
}?
¿Anular salida()?
{?
printf("\nBienvenido...88886666...");?
Salir(0);?
}