Red de conocimiento informático - Computadora portátil - Problema de alquiler de coches con programación en lenguaje C

Problema de alquiler de coches con programación en lenguaje C

¿Puedo ejecutar el diseño del curso yo mismo para realizar pruebas personales? Estoy muy cansado. El código es el siguiente: Mi curso diseña un sistema de alquiler de autos 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);?

}