Problema de alquiler de coches con programación en lenguaje C
# incluir ltstdio.h gt?
#include 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-gt;no=100;?
ptr- gt;Tipo = 'A?
ptr-gt;pago=400;?
ptr-gt;bien = 600;?
headNode[0]. cabeza = ptr?
pa=ptr?
pagt; next = NULL?
for(I = 1;i lt20;i){?
ptr=(coche*)malloc(tamañode(coche));?
ptr-gt;no=100i;?
ptr- gt;Tipo = 'A?
ptr-gt;pago=400;?
ptr-gt;bien = 600;?
pagt; next = ptr?
pa=ptr?
pagt; next = NULL?
}?
Gratis(ptr);?
ptr=(coche*)malloc(tamañode(coche));?
ptr-gt;no=200;?
ptr-gt; Tipo = ' B?
ptr-gt;pago=300;?
ptr-gt;bien = 500;?
headNode[1]. cabeza = ptr?
pb=ptr?
pb- >siguiente = NULL?
for(I = 1;i lt20;i){?
ptr=(coche*)malloc(tamañode(coche));?
ptr-gt; no = 200 I;?
ptr- gt;Tipo = 'A?
ptr-gt;pago=400;?
ptr-gt;bien = 600;?
pb- >siguiente = ptr?
pb=ptr?
pb- >siguiente = NULL?
}?
Gratis(ptr);?
ptr=(coche*)malloc(tamañode(coche));?
ptr-gt;no=300;?
ptr-gt;type="C";?
ptr-gt;pago=200;?
ptr-gt;bien = 400;?
headNode[2].
cabeza = ptr?
pc=ptr?
PC->siguiente = NULL?
for(I = 1;i lt20;i){?
ptr=(coche*)malloc(tamañode(coche));?
ptr- gt;no = 300 I;?
ptr- gt;Tipo = 'A?
ptr-gt;pago=400;?
ptr-gt;bien = 600;?
PC- gt; 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", selección de amplificador);?
Y (¡elección!=1. ampchoice!=2 amp ampchoice!=3 amp ampchoice!=4)?
{?
printf ("\ nError de entrada, vuelva a ingresar:");?
scanf("d", selección de amplificador);?
}?
Devolver selección;?
}?
búsqueda nula()?
{?
int seleccionar;?
printf("\n¿Quiere consultar: 1. ¿Automóvil? 2. ¿Cliente? 3. ¿Devolución?\n ");?
scanf("d", selección de amplificador);?
Y (¡select!=1. amp select!= 2 amp amp select!=3)?
{?
printf("\nError de entrada, por favor vuelva a ingresar: ");?
scanf("d", selección de amplificador);?
}?
¿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, nodocabeza[1]. avl, nodocabeza[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-gt;No);?
printf("\nNombre del cliente: s",ptr-gt;nombre);?
printf("\nTipo de licencia de conducir: c",ptr-gt; licencia);?
printf(" \nNúmero de vehículo original: d ",ptr-gt; Kano);?
printf("\nDías de lanzamiento: d",ptr-gt;días);?
printf("\nDías de retraso: d",ptr-gt;día de retraso);?
ptr = ptr- gt; siguiente;?
}?
}?
¿void addCli(cliente *cli)?
{?
if(allClien==NULL)?
allClien = cli?
¿Y si?
{?
CLI- gt; 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- gt; siguiente;?
}?
¿Si (ptr!=NULL)?
{?
if(ptr==allClien)?
{?
allClien = NULL?
}?
¿Y si?
{?
prePtr->; siguiente = ptr-gt;?
}?
}?
¿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 de amplificador);?
while(type!= 'A' amp amptyping!= 'B' amp amptyping!='C')?
{?
Printf("Error de entrada, vuelva a ingresar:");?
scanf("c", tipo de amplificador);?
}?
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", amp yes_no);?
Y (¡Sí_No! = ' Y ' amp amp yes_no! = ' N ' amp amp yes_no! = ' y ' amp amp yes_no! = 'n ')?
{?
Printf("Y o n: ");?
scanf("c", amp 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", amp天);?
}?
no = rand() 60 200;?
carPtr = delCar(tipo);?
cli=(cliente *)malloc(tamañode(cliente));?
CLI-gt;no=no;?
strcpy(CLI- gt; nombre, nombre);?
CLI-gt;licencia=tipo;?
CLI- gt; carNo = carPtr- gt;?
CLI- gt; día = día;?
CLI- gt; 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 el auto c, el número del 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", ampNo);?
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- gt; Día * 400 ptr- gt; Día de Retraso * 600 Descanso;?
Caso 2: Pago = ptr-gt;días*300 ptr-gt;días de retraso*500;descanso;?
Caso 3: Pago = ptr-gt;día*200 ptr-gt;DelayDay*400Break;?
Valor predeterminado: ;?
}?
printf("\n\nNombre del cliente: s",ptr-gt;nombre);?
printf("\nTipo de licencia de conducir: c",ptr-gt; licencia);?
printf(" \nNúmero de vehículo original: d ",ptr-gt; Kano);?
printf("\nDías de lanzamiento: d",ptr-gt;días);?
printf("\nDías de retraso: d",ptr-gt;día de retraso);?
printf("\n\nCosto requerido: ld", pago);?
addCar(ptr-gt; licencia,ptr-gt;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?
{ while(ptr- gt; siguiente)?
ptr = ptr- gt; siguiente;?
ptr- gt; next=(car*)malloc(sizeof(car));?
ptr = ptr- gt; siguiente;?
nodo principal[índice].
avl;?
}?
ptr- gt; No = Kano;?
ptr- gt; Tipo = tipo de coche?
ptr-gt;pago=pago[índice];?
ptr-gt; multa = 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 = alquiler car- gt; siguiente;?
headNode[0]. AVL-;?
¿Romper;?
Caso "B": coche de alquiler = nodo principal[1]. cabeza;?
headNode[1]. head = alquiler car- gt; siguiente;?
headNode[1]. AVL-;?
¿Romper;?
Caso "C": coche de alquiler = nodo principal[2]. cabeza;?
headNode[2]. head = alquiler car- gt; siguiente;?
headNode[2]. AVL-;?
¿Romper;?
Valor predeterminado: ;?
}?
Volver al alquiler de coches;?
}?
¿Anular la salida()?
{?
printf("\nBienvenido...88886666...");?
Salir(0);?
}