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:
}
} p >
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)
{ p>
cliente *ptr, *prePtr;;
ptr=allClien;
while(ptr!=NULLamp;amp;ptr-gt;No!=clientNo)
{ prePtr=ptr
ptr; =ptr-gt; siguiente;
}
si(ptr!=NULL) p>
{
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 p >
{
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) p>
{
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);
}