Red de conocimientos turísticos - Información de alquiler - Código de versión en lenguaje C del sistema de gestión de préstamo de libros

Código de versión en lenguaje C del sistema de gestión de préstamo de libros

Debido al límite de palabras, solo se puede enviar un archivo del código. Si necesita otros archivos, ¡contácteme!

#include

#include

#include

# incluir

# incluir

# incluir

#incluir

#define IZQUIERDA 0x4b00 /*Izquierda**

#define DERECHA 0x4d00 /*Derecha**

#define ABAJO 0x5000 /* ABAJO*/

#define ARRIBA 0x4800 /* ARRIBA*/

#define ESPACIO 0x3920 /* ESPACIO*/

#define ESC 0x011b /* Tecla ESC*/

#define ENTER0x1c0d /* Tecla ENTER*/

#define Retroceso 0xe08 /* Tecla Borrar*/

#define ALT_B 12288 /* Combinación de teclas ALT_B */

#define ALT_M 12800 /* Combinación de teclas ALT_M */

#define ALT_H 8960 /* Combinación de teclas ALT_H */

int key /* Variable de clave*/< / p>

int textx, texty; /*coordenadas del cursor, fila x, columna y*/

struct menustruct/*estructura del menú*/

{

char name[10];/* Nombre del menú principal*/

char str[10][20];/* Opciones*/

int n;/ * Número de opciones*/

}ml[3];/* Utilice 3, puede agregar o eliminar según sea necesario*/

typedef struct BookList/* Estructura del libro*/< / p>

{

char num[20];/* número de libro*/

char nombre[20];/* título de libro*/

int precio;/* precio del libro*/

char person[20];/* prestatario*/

int sí;

struct BookList * next;

}Libro;

typedef struct MemberList/* estructura miembro*/

{

nombre char[ 20];/ * Miembro nombre**

char sex[2];/* Género del miembro**

int edad;/* Edad del miembro***

struct MemberList *next ;

}Miembro;

char save[4096];/* Guardar espacio en el área de texto***

/*char sav1[4096] ;*/

char c[4096];/* Borrar espacio de pantalla dedicado***

int i,j;/* Variables de uso común***

void Menu();/*Interfaz de inicialización**

void Selecti

tem();/* Definir menú**/

void DrawSelectitem();/* Mostrar menú principal**/

void BlackText(int x,int y,char *z );/* Seleccionar menú**/

void RedText(int x, int y,char *z);/* Comprobar menú*

void RedText(int x, int y ,char *z);/* Comprobar menú*

void RedText(int x, int y,char *z);/* Comprobar menú*

strcpy(ml[1] .name, "Miembro");

strcpy(ml[1].str[0], "Agregar");/* Agregar nuevo miembro*/

strcpy(ml[ 1].str[1], "Consult");/* Consultar información del miembro*/

strcpy(ml[1].str[2], "Del");/* Eliminar información del miembro*/

strcpy(ml[1].str[3], "Miembro&libro ");

ml[1].n=4;

strcpy(ml[2].nombre," Help");/* Ayuda del sistema*/

strcpy(ml[2].str[0], "Este sistema ");

strcpy(ml[2].str [1], "Ver ");

ml[2].n=2;

}

/* Mostrar nombre de lista principal*

void DrawSelectitem()

{

for(i=0;i<3;i++)

RedText(i,1,ml[ i].name);/*Mostrar la primera letra del nombre del menú principal en rojo*/

}

/*Mostrar el menú normalmente*/

void RedText(int x,int y,char *z)

{

textbackground(7 /*Establece el color de fondo en gris claro*/

<); p > gotoxy(3+x*20,y);

for(j=0;z[ j];j++)

{

if( j ==0)

textcolor(RED);/* La primera letra se muestra en rojo*/

else

textcolor(BLACK); Configuración de Negro*/

cprintf("%c",z[ j]);/* Nombre del menú de salida*/

}

}

/* Mostrar el menú seleccionado*/

void BlackText(int x,int y,char *z)

{

textbackground(0 ) ) /* Establece el color de fondo en negro*/

textcolor(15); /* Establece el color del texto en blanco*/

gotoxy(3+20*x,y); );/ *Coordenadas de posición*/

cputs(z); /*Cadena de nombre del menú de salida*

}

//// Proceso de pulsación de tecla*/

void Run()

{

while(1)

{

gotoxy(texty,textx

key=bioskey(0);/*Recibir clave*/

switch(key)

{

caso

caso ARRIBA: /* Control de operación de la tecla de flecha hacia arriba**

{

if(textx==3)

textx=23;

textx--;

gotoxy(texty,textx);

}break

case ABAJO: /* Control de operación de la tecla de flecha hacia abajo**

{

if(textx==23)

textx=3;

textx++;

gotoxy(texty,textx);

}break;

case LEFT: /* Control de operación de la tecla del cursor izquierdo***

{

if(texty==2)

texty=79;

texty--;

gotoxy(texty,textx);

}break;

case Retroceso:/* Borrar configuración de tecla**

{

if(texty==2&&textx==3)

continuar;

else

{

if(texty!=2)

texty--; /* Borra los detalles clave, borra el contenido primero, luego el cursor debe regresar a un cuadro*/

else

if(texty= =2)

{

texty=78;

textx--;

}

gotoxy( texty,textx);

printf(" ");

gotoxy(texty,textx);

}

}romper; /*end case 0xe08*/

case DERECHA: /* Control de operación de la tecla del cursor derecho**/

{

if(texty==79)

texty=2;

texty++;

gotoxy(texty,textx);

}romper;

case SPACE:/*Operación de la barra espaciadora*/

{

if(texty==79)

continuar;

else

{

gotoxy(texty,textx); /*Operación de detalles del espacio**

printf(" ");

texty++;

gotoxy(texty,textx);

}

}break;

case ENTER: /* Controla la operación de retorno de carro* *

{

if(textx==23)

continuar;

textx ++;

texty =2;

gotoxy(texty,textx);

}break;

Valor predeterminado: /* Resultado de clave sin control**

{

if(texty==79&&textx== 23)/* Detener la salida al llegar al final*/

Continuar;

else

if(texty==79&&textx! =23) /* hasta el final de la línea*/

{

t

exx++;

texty=2;<

}

gotoxy(texty,textx);/* Resultado de salida*/

printf ("%c",key);

if(texty==79) /* Si texty==79, no ejecutar*/

continuar;

else /* Si no se llega al final de la línea, continúa la ejecución y mueve el cursor una posición hacia adelante*/

texty++;

}

}

}/* Usar llaves para bucles grandes*/

}

/*Función DrawFrame*/

void DrawFrame(int l,int u,int r,int d,int e,int f.int g,int g,int h,int h. ,int h ,int g,int h,int h,int h,int h)int u,int r,int d,int tcolor,int bcolor)

{

fondo de texto (bcolor) ;/* Color de fondo*/

textcolor(bcolor); /* Color de texto*/

for(i=l;i <=r;i++) /* Área de fondo de salida */

{

for(j=u;j<=d;j++)

{

gotoxy( i,j );

printf("%c",219); /* Salida de caracteres de fondo*/

}

}

textcolor( tcolor /* Color del borde***

for(i=u+1;i

{

gotoxy(l,i);

cprintf("%c",179 /* línea vertical***

gotoxy(r); ,i);

cprintf("%c",179);

}

for(i=l+1;i

{

gotoxy(i,u);

cprintf("%c",196); /*Línea horizontal**

gotoxy(i ,d);

cprintf("%c",196);

}

gotoxy(l,u);

cprintf("%c",218);/* Esquina superior izquierda**

gotoxy(r,u);

cprintf("%c", 191);/* Esquina superior derecha Esquina*/

gotoxy(l,d);

cprintf("%c",192);/* Esquina inferior izquierda*/

gotoxy(r ,d);

cprintf(" %c",217); /* Esquina inferior derecha*/

/* gettext(l+) 1,u+1,r-1, d-1,save1);*//// Guardar el área dentro del borde*/

}

/// Mostrar específico selecciones desplegables*/

void DrawMl(int n)

{

gettext(1,1,80,25,save) ;/* Dónde guardar la máscara*/

BlackText(n,1,

ml[n].name);/* Mostrar el menú principal mediante selección inversa*/

DrawFrame(3+20*n-1,2,3+20*n+19,3+ml[ n ].n,0,7);/* Borde del menú desplegable*/

for(i=3;i<3+ml[n].str[i-3]);/ * El primer carácter de los elementos restantes se muestra en rojo*/

}

gotoxy(79,1);

MoveMl(n,3); /* Control de opciones de menú*/

}

/* Control de opciones de menú, n determina los elementos horizontales, x determina las opciones desplegables*/

void MoveMl(int n,int x)

{

int bandera=1;

while(bandera)

{

gotoxy(79,1);

key=bioskey(0);/* recibir clave**

gotoxy(79,1);

cambiar (tecla)

{

case ESC:/* Salir del bucle**

puttext(1,1,80,25 ,save);/*Restaurar el estado antes de abrir el menú*/

flag=0;

break;

case LEFT: /* Mover al opción izquierda*/

puttext(1,1,80,25,save);/* Restaurar la forma en que estaba antes de abrir el menú*/

if(n==0 )/* Si moverse hacia la izquierda está fuera de los límites, muévase Ir a la última opción*/

DrawMl(2);

else

DrawMl(n- 1);

flag=0 ;

break;

case DERECHA: /* Mover la opción a la derecha***

puttext(1,1,80,25,save);/ * Restaurar el estado antes de que se abriera el menú***

if(n==2)/* Pasar a la primera opción si cruza la línea a la derecha***

DrawMl (0);

else

DrawMl(n+1);

bandera=0;

ruptura;

caso DERECHA.

bandera=0;

ruptura;

case UP:/* Mover opciones específicas hacia arriba*/

RedText(n,x,ml[n].str[x-3]);/* Generar fuente roja*/

if(x==3)/* Muévete hacia arriba y presiona la tecla arriba, se moverá hacia abajo*/

x=3+ml[n].n-1;

else

x--;/ * Mover a la nueva posición a mostrar */

BlackText(n,x,ml[n].str[x- 3]);/* Salida de fuente negra */

flag=1;

break;

case DOWN:/* Opciones específicas para moverse hacia abajo*/

RedText(n,x,ml[n] .str[x-3]);

if(x==(3+ml[n].n-1) )/* Muévete hacia abajo y luego presiona la tecla nuevamente para ir hacia arriba */

x=3;

else

x++;/ * Mover a la nueva posición a mostrar */

BlackText( n,x,ml[n].str[x-3]);

flag=1;

descanso;

case ENTER:

puttext( 1,1,80,25,save);/* Restaura el estado antes de abrir el menú**

Enter(n,x -3 );/* Funciones específicas de las opciones del menú**

flag=0;

break;

}

gotoxy( 79, 1);

}

}

/*Funciones específicas de las opciones del menú*/

void Enter(int m, int n )

{

switch(m)

{

caso 0: switch(n) /*Opción de menú Libro seleccionada * /

{

caso 0:BookAdd();break;/* Agregar libro*/

caso 1:BookConsult();break;/* Consulta de libro*/

caso 2:BookDel();break;/* Eliminar información del libro*/

caso 3.BookBorrow();break;/* Pedir prestado libro**< / p>

case 4:BookReturn();break;/* Devolver el libro**

case 5:exit(0);break;

} break;/ * Salir del sistema**

caso 1.Switch(n) /*Opción de menú de miembros seleccionada**

{

caso 0: MemberAdd();break ; /*Agregar miembro**

caso 1: MemberConsult();break;/*MemberConsult**

caso 2.MemberDel();break;/* Eliminar información del miembro* /

caso 3:MemberBook();/* Consultar los libros prestados por los miembros*/

}break;

caso 2: switch(n) / * Seleccione Definir opciones del menú de ayuda*/

{<

case 0:Help();break;

case 1:Ver();

}

}

}/* Finalizar interruptor externo**

}