Red de conocimiento informático - Conocimiento sistemático - Lenguaje C para sistema de alquiler de coches, programa de lenguaje de estructura de datos.

Lenguaje C para sistema de alquiler de coches, programa de lenguaje de estructura de datos.

Acabo de terminar de escribir, estoy muy cansado. Todavía hay muchos errores a ver si puedes solucionarlos. Si no, te ayudaré a solucionarlos cuando tenga tiempo. dime también

El compilador es VC6

#includelt;stdio.hgt;

#includelt;stdlib.hgt;

# includelt;string.hgt;

#define MaxNum 20

typedef struct A{

int No /*Número de vehículo*/

char Type; /*Tipo de coche*/

int Pago; /*alquiler*/

int multa/*multa*/

struct A *next; /*apuntar hacia abajo Un nodo*/

} car;

typedef struct B{

int No /*Número de cliente*/

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

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

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

int Día; /*número de días para alquilar*/

int DelayDay /*número de días para retrasar*/

struct B *next; ;

} client;

struct C{/*Esta estructura es el nodo principal de la lista vinculada de vehículos. Cada tipo de A, B y C tiene un tipo*/<. /p>

char Type; /*Modelo de vehículo*/

int avl; /*número disponible*/

car *head; /

} headNode[3] ={{'A', MaxNum, NULL}, {'B', MaxNum, NULL}, {'C', MaxNum, NULL}};

cliente *allClien=NULL;

int pay[3]={400, 300, 200}, fine[3]={600, 500, 400}

void init(); /*Inicialización*/

int menu() /*Interfaz de menú simple*/

void search() /*Consulta*/

void carSc(); /*Consultar vehículo* /

void clientSc(); /*Consultar cliente*/

void rent() /*Alquilar un coche* /

void Giveback(); /* Devolver el auto*/

void addCli(client *cli);/*Agregar un cliente a la lista de clientes*/

client* delCli(int clientNo);/*Eliminar un cliente de la lista de clientes Customer*/

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

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

void Exit() /*Salir*/

void main( )

{

init();

while(1)

{

cambiar(menú( ))

{

caso

1: buscar(); romper;

caso 2: alquilar();

caso 3: devolver(); Salir();

predeterminado:

}

}

}

void init()

{

int i;

auto *ptr, *pa=headNode[0].head, *pb=headNode[1].head, *pc =headNode[2].head;

for(i=1; ilt; =MaxNum; i )

{

ptr=(car *)malloc (tamaño de (coche));

ptr-gt; No=100 i;

ptr-gt; ; Pago=400;

ptr-gt; multa=600;

pa=ptr;

pa=ptr-gt;

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

ptr-gt; No=200 i;

ptr-gt; ';

ptr-gt; Pago=300

ptr-gt; pb=ptr-gt; siguiente;

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

ptr-gt; p> ptr-gt;Tipo='C';

ptr-gt;Pago=200;

ptr-gt;fine=400;

pc =ptr;

pc=ptr-gt;siguiente;

}

pa=NULL; pb=NULL; pc=NULL;

}

int menu()

{

int elección;

printf("\n\n\nElija servicio: 1. Consulta 2. Alquilar un coche 3. Regresar 4. Salir\n");

scanf("d",amp;choice);

while(choice!=1amp ; amp;choice!=2amp;amp;choice!=3amp;amp;choice!=4)

{

printf("\nEntrada incorrecta, vuelva a ingresar:") ;

scanf("d",amp;choice);

}

devolver elección;

}

void search()

{

int Choice;

printf("\nQuiere consultar: 1. Coche 2. Cliente

3. Regresar\n");

scanf("d",amp;choice);

while(choice!=1amp;amp;choice!=2amp;amp;choice !=3)

{

printf("\nEntrada incorrecta, vuelva a ingresar: ");

scanf("d",amp;choice )

}

cambiar(elección)

{

caso 1: carSc(); > caso 2: clientSc(); romper;

caso 3:

predeterminado:

}

}

void carSc()

{

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

printf(" \nAllí Quedan d autos Clase A.\nQuedan d autos Clase B.\nQuedan d autos Clase C.",

headNode[0].avl, headNode[1].avl, headNode[ 2].avl);

}

void clientSc()

{

cliente *ptr=allClien;

void clientSc()

{

client *ptr=allClien;

p>

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

while(ptr!=NULL)

{ printf("\n\n Nú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 coche de alquiler: d",ptr-gt;carNo);

printf("\n nNúmero de días de alquiler: d",ptr-gt;Día);

printf("\nDías retrasados: d",ptr-gt;DelayDay);

ptr=ptr- gt

}

}

void addCli(cliente *cli)

{

if (allClien)

allClien=cli;

else

{

cli-gt; next=allClien-gt; siguiente;

allClien=cli;

}

}

cliente* delCli(int clientNo)

{

cliente *ptr, *prePtr;;

ptr=allClien;

while(ptr!=NULLamp;amp;ptr-gt;No!=clientNo)

{ prePtr=ptr

ptr; =ptr-gt; siguiente;

}

si(ptr!=NULL)

{

if(ptr==allClien)

{

allClien=NULL

}

else

{

prePtr-gt; siguiente=ptr-gt; siguiente

}

}

return ptr;

}

void rent()

{

nombre de char[20], tipo, Sí_No

int num, día; , No;

car *carPtr;

cliente *cli; );

scanf("c",amp;type);

while(type!='A'amp;type!='B'amp;amp; type!= 'C')

{

printf("Entrada incorrecta, vuelva a ingresar: ");

scanf("c", amp; tipo);

}

if(type=='A')

num=headNode[0].avl;

else if( type=='B')

num=headNode[1].avl;

else

num=headNode[2].avl; >

printf("\nQuedan d autos en el tipo c, ¿quieres alquilarlos? (Y/N): ", type, num);

scanf("c", amp); ; Sí_No);

while (Sí_No!='Y'amp; y Sí_No!='N'amp; y; Sí_No!='y'amp; y Sí_No!='n')

{

printf("S o N: ");

scanf("c", amp; Sí_No

); }

/*Agregar clientes*/

if(Yes_No=='Y'||Yes_No=='y')

{

printf("\nIngrese su nombre: ");

scanf("s",nombre);

printf("\nIngrese el número de días de su alquiler: ");

scanf("d",amp;día);

}

No=rand()60 200;

carPtr=delCar(tipo);

cli=(cliente *)malloc(tamañode(cliente));

cli-gt; > strcpy(cli-gt; Nombre, nombre);

cli-gt; Licencia=tipo;

cli-gt; carNo=carPtr-gt;

cli-gt;Da

y=día;

cli-gt; DelayDay=0;

cli-gt; siguiente=NULL;

/*Mover un coche*/

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

printf("\nSu alquiler El coche es una clase C auto, y el número de auto es: d", type, carPtr-gt; No);

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

p>

}

void return()

{

int No

pago int largo

cliente *ptr;

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

scanf("d",amp;No);

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

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

else

{

switch(ptr-gt;Licencia)

{

caso 1: pago=ptr-gt Día*400 ptr-; gt ; Día de retraso*600;

caso 2: pago=ptr-gt; Día*300 ptr-gt; día de retraso*500; - gt; Día*200 ptr-gt; RetrasoDía*400;

predeterminado:; s",ptr-gt;Nombre);

printf("\nTipo de licencia de conducir: c",ptr-gt;Licencia);

printf("\nNúmero de coche de alquiler: d",ptr-gt;carNo);

printf("\nNúmero de días de alquiler: d",ptr-gt;Día);

printf("\nDías de retraso: d",ptr-gt;DelayDay);

printf("\n\nTarifa requerida: ld", pago);

addCar(ptr-gt;Licencia, ptr-gt ; número de coche);

free(ptr);

}

}

void addCar(char Tipo de coche, int número de coche)

{

coche *ptr;

int index=carType-65;

ptr=headNode[index].head; >

if(ptr==NULL)

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

headNode[index].head= ptr;

}

else

{mientras(ptr-gt;siguiente)

ptr=ptr-gt;siguiente;

ptr-gt;next=(coche *)malloc (tamañode(coche));

ptr=ptr-gt;next;

}

ptr-gt;No=carNo;

ptr-gt;Type=carType;

ptr-gt;Pago= pago[índice];

ptr-gt;fine=fine[índice];

ptr-gt; next=NULL;

}

car* delCar(tipo de carácter)

{

coche * rentcar;

switch(type)

{

caso 'A': rentcar=headNode[0].head;

headNode [0].head=rentcar-gt; siguiente;

descanso;

caso 'B': rentcar=headNode[1].head

headNode; [1].head=rentcar-gt; siguiente;

descanso;

caso 'C': rentcar=headNode[2].head

headNode; [2].head=rentcar-gt; siguiente;

descanso;

predeterminado:

}

devolver coche de alquiler;

}

void Exit()

{

printf("\nBienvenido...888888888886666.... ");

salir(0);

}