Red de conocimientos turísticos - Curso de fotografía - El desarrollo de los sistemas de alquiler de coches

El desarrollo de los sistemas de alquiler de coches

Acabo de terminar de escribir así que estoy cansado. Todavía hay muchos errores. Vea si puede corregirlos. Si no, te ayudaré a corregirlo cuando tenga tiempo. Si tienes algún comentario, puedes decírmelo.

El compilador es VC6.

#incluye & ltstdio.h & gt

#incluye & ltstdlib.h & gt

#incluye & ltstring.h & gt

#Definir el número máximo 20

estructura typedef A{

int number; /*número de vehículo*/

Tipo de carácter /*tipo de automóvil*; /

Pago de intereses; /*alquiler*/

int multa/*pena*/

struct a* next /*apunta al siguiente nodo* /

}Coche;

estructura typedef B{

int número; /*número de cliente*/

char Nombre[20] ;/ *Nombre del cliente*/

char License; /*Categoría de licencia*/

int carNo/*Número de vehículo de alquiler*/

int day;/ *Número de días de alquiler*/

int DelayDay/*Número de días de retraso*/

Estructura B * siguiente

}Cliente;

Estructura C{/*Esta estructura es el nodo principal de la lista vinculada de vehículos. Cada tipo A, B y C tiene un tipo de carácter */

/*Modelo de vehículo*/

int avl/*Cantidad disponible*/

Coche *head /*Apuntando 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 */

void search(); /*Consulta*/

void carSc() /*Consulta vehículo*/

void clientSc();/ *Consultar cliente*/

void rent(); /*Alquilar un auto*/

void return() /*Devolver el auto*/

void add CLI(client * CLI); /*Agregar cliente a la lista de clientes*/

client * del CLI(int client no);

void addCar();/*Devolver el vehículo a la lista de vehículos*/

car * delCar();/*Eliminar un automóvil de la lista de vehículos*/

void Salir (); /*Salir*/

void main()

{

init();

mientras(1)

{

Cambiar(menú())

{

Caso 1: búsqueda();

Caso 2: alquilar(); romper;

Caso 3: devolver();

Caso 4: Salir(); >

Valor predeterminado:;

}

}

}

inicialización nula()

{

int I;

car *ptr, *pa=headNode[0]. cabeza, *pb=cabezaNodo[1]. cabeza, *pc=headNode[2].

encabezado;

for(I = 1;i& lt= MaxNumi++)

{

ptr=(car*)malloc(sizeof(car)); /p>

ptr->No = 10I;

ptr->Tipo = ' A

ptr->Pago= 400;

ptr-> multa = 600;

pa = ptr

pa = ptr->siguiente;

ptr=ptr=(coche* )malloc(tamañode(coche));

ptr-& gt;no = 20I;

ptr-& gt;Tipo = ' B

ptr->pago=300;

ptr->fine=500;

pb = ptr

Pb = ptr-& gt; /p>

ptr=(car*)malloc(sizeof(car));

ptr-& gt;no = 30I;

p>

ptr->type="C";

ptr->pago=200;

ptr->fine=400;

ptr-> ;pago=200;

ptr->fine=400;

p>

pc = ptr

PC = ptr-& gt; p>

}

pa = NULLpb = NULLpc = NULL

}

int menu()

{

int selección;

printf(" \ n \ n \ n Seleccionar servicio: 1. Preguntar 2. Alquilar un coche. Regresar 4. Salir\n"); >scanf("%d", & amp select);

1. & amp seleccione! ", & amp selección);

}

Selección de regresión;

}

Búsqueda no válida()

{

int selección;

printf("\nQuiere consultar: 1. Número de vehículo 2. Cliente 3. devolución \ n "); >scanf("%d ", & amp select);

Y (seleccionar! =1. & ¡elegir! = 2 & amp& amp¡Elige! =3)

{

printf("\nError de entrada, vuelva a ingresar:");

scanf("%d ", & select) ;

}

Interruptor (seleccionar)

{

Caso 1: carSc();

Caso dos: clientSc(); roto;

Caso tres:;

Valor predeterminado:;

}

}< / p>

void carSc()

{

printf(" \ n \ nToda la información del coche:\ n "); Quedan %d autos en la categoría NA, %d autos en la categoría NB y %d autos en la categoría NC.",

headNode[0], headNode[1]. avl , nodocabeza[2].

AVL);

}

void clientSc()

{

cliente * ptr = allClien

printf (" \ n \ nToda la información del cliente: \ n ");

while(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->carnot);

printf("\nNúmero de días de liberación:% d",ptr->día);

printf("\nNúmero de días de retraso:%d",ptr->día de retraso) ;

ptr = ptr-& gt;Siguiente;

}

}

void addCli(cliente*cli)

{

si (allClien)

allClien = cli

Otros

{

CLI-& gt; next = todos los clientes-& gt; ;

allClien = cli

}

}

cliente* delCli(int clientNo)

{

Cliente *ptr, * prePtr;

ptr = allClien

mientras(ptr ! = NULL && ampptr-& gt;No! =número de cliente)

{ prePtr = ptr

ptr = ptr-& gt;Siguiente;

}

if (ptr!=null)

{

if (ptr==allClien)

{

allClien = NULL

}

Otro

{

prePtr->; siguiente = ptr-& gt; siguiente ;

}

}

Devolver ptr

}

Alquiler no válido()

{

nombre de carácter[20], tipo, Sí _ No

int num, día, No;

car * carPtr

Cliente *cli

printf("\n\nIngrese la licencia escriba (A/B/C):");

scanf("%c",& amp type);

mientras (escriba! = 'A' & amp& amp escribiendo! = ' B ' & amp& amp escribiendo! ='C ')

{

Printf("Error de entrada, vuelva a ingresar:");

scanf("%c ", & tipo de amplificador ) ;

}

if(tipo=='A ')

num=headNode[0]. avl

else if(type=='B ')

num=headNode[1]. avl

Otro

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 (Yes_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(Yes_No=='Y'||Yes_No=='y ')

{

printf("\nIngrese su nombre:");

scanf("%s ", nombre);

printf("\nIngrese su días de 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;

p>

CLI->carNo = carPtr-> ;no;

CLI->día=día;

CLI->día de retraso= 0;

CLI->siguiente = NULL

añadir CLI(CLI);

/*Mover el coche*/

printf("\nSu número de cliente es: %d", No);

printf("\nEl auto que alquiló es %c auto, el número de auto es %d", escriba, carPtr- >No);

printf("\nSu período de alquiler es %d días., días);

}

void return()

{

número int;

Pago de intereses a largo plazo;

Cliente * ptr

printf(" \ n \ nNúmero de cliente: "); ,&No);

if((ptr=delCli(No))==NULL)

printf("\n¡El cliente no existe y no se puede devolver! ");

Otro

{

Cambiar (ptr-& gt; licencia)

{

Caso 1: Pago=ptr->Día*40ptr->DelayDay*600Break;

Caso 2: Pago=ptr->Día*30ptr-> ;DelayDay*500;Break ;

Caso 3: Pago = ptr->Día*20ptr->DelayDay*400Break;

Valor predeterminado:

}

printf("\n\nNombre del cliente: %s",ptr->nombre);

printf("\nTipo de licencia del programa de controladores: %c ",ptr-> licencia );

printf("\nNúmero de vehículo original: %d ",ptr->cano);

printf("\nNúmero de días de liberación:%d",ptr- >día);

printf("\nNúmero de días de retraso:%d",ptr->día de retraso);

printf("\n\nCosto requerido: % ld", pago);

addCar(ptr-> licencia,ptr-> número de tarjeta);

Gratis (ptr);

}

}

void addCar(char carType, int carNo)

{

car * ptr

int index = carType-65;

ptr=headNode[índice].

Cabeza;

if(ptr==NULL)

{ptr=(car*)malloc(sizeof(car));

nodo principal[index] . head = ptr

}

Otro

{ while(ptr-& gt; siguiente)

ptr = ptr-& gt ; Siguiente;

ptr-& gt;next=(car*)malloc(sizeof(car));

ptr = ptr-& gt;next;

}

ptr-> No = Carno;

ptr->Type = carType

ptr->Pago =pay[index];

ptr->fine = multa[index];

ptr->next = NULL

}

p>

coche* delCar(tipo de carácter)

{

Coche*coche de alquiler;

Cambiar (tipo)

{

Caso "A": coche de alquiler = nodo principal[0]. Cabeza;

cabezaNodo[0]. head = coche de alquiler->Siguiente;

Descanso;

Caso "B": coche de alquiler = nodo principal[1]. Cabeza;

cabezaNodo[1]. head = coche de alquiler->Siguiente;

Descanso;

Caso "C": coche de alquiler = nodo principal[2]. Cabeza;

cabezaNodo[2].

head = coche de alquiler->Siguiente;

Descanso;

Valor predeterminado:;

}

Volver al coche de alquiler;

}

void exit()

{

printf("\nBienvenido...88886666..."); p>

Salir(0);

}