La Red de Conocimientos Pedagógicos - Conocimientos históricos - Versión en lenguaje C del código del sistema de gestión de préstamo de libros.

Versión en lenguaje C del código del sistema de gestión de préstamo de libros.

Debido al límite de palabras, solo puedes enviar código para un archivo.

Si quieres otros archivos, ¡pregúntame!

#incluye & ltdos.h & gt

# incluye & ltbios.h & gt

#incluye & ltconio.h & gt

# incluir & ltstdio.h & gt

# incluir & ltstdlib.h & gt

# incluir & ltmath.h & gt

#definir izquierda 0x4b00 /*izquierda*/

# definir derecha 0x4d 00/* derecha */

#definir 0x5000 /*

#bajo */ */definir 0x4800 /*

#define espacio 0x3920 /* espacio */

#define ESC 0x011b/* Tecla ESC*/

# define ENTER 0x 1c0d/* ENTER */

#Definir retroceso 0xe08 /*Tecla de borrado*/

#Definir ALT_B 12288 /*Tecla combinada ALT_B */

#Definir ALT_M 12800/* Clave combinada ALT_M */

#Define ALT_H 8960/*Clave combinada ALT_H */

int key; /*Variable clave*/

int textx, texty /*Coordenadas del cursor, fila X, columna Y*/

Estructura del menú/*Estructura del menú*/

{

Nombre del personaje[10];/ *Nombre del menú principal*/

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

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

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

Typedef struct BookList/*La estructura del libro*/

{

Número de carácter[20];/*número de libro*/

nombre de carácter[20];/*título*/

precio int; libro*/

char person[20]; /*Prestatario*/

int yes/*Juzga si el libro existe o ha sido prestado, 1 existe, 0 préstamo*/

struct BookList * next

}book;

Typedef struct MemberList/*estructura de miembros*/

{

char name[20];/*Nombre del miembro*/

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

int age /*Edad del miembro*/

struct MemberList * next

}member;

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

/* char sav 1[4096];*/

char c[4096];/*Limpiar el espacio especial de la pantalla*/

int i, j; /*Variables públicas*/

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

void Selectitem() /*Definir menú*/

void DrawSelectitem(); el menú principal*/

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

void RedText(int x, int y, char *); z); /*Menú normal*/

Ejecución en seco(); /*Proceso de operación específico*/

void DrawMl(int);

n); /*Mostrar menú desplegable*/

void MoveMl(int n, int x /*Control de opciones del menú*/

void Enter(int m, int); n ); /*Funciones específicas de las opciones del menú*/

void BookAdd() /*Agregar libros*/

void book consulta(); / p>

void BookDel();/*Eliminar libros y materiales*/

void book listening();/*Pedir libros prestados*/

void book return() ; /*Devolver el libro*/

miembro vacío add(); /*Agregar miembro*/

miembro vacío consultar() /*Consultar miembro*/

;

void member del();/*Eliminar miembro*/

void member book();/*Consultar información de préstamo de miembros*/

void Help();/* Ayuda */

void Ver(); /*Información de versión*/

void clr SCR() /*Función de borrado de pantalla personalizada*/

void DrawFrame(int izquierda, int arriba, int derecha, int abajo, int color de texto, int color de fondo*/

/* * *Funciones principales* * */

);

Administrador no válido (no válido)

{

menu(); /*Interfaz de inicialización*/

run() /*Proceso de operación específico* /

}

/*Interfaz de inicialización*/

Menú no válido()

{

Sistema( " cls"); /*Llamar al comando de pantalla clara del sistema*/

textbackground(blue); /*Establecer el fondo en azul*/

Ventana (1, 1, 25); , 80);

clr SCR();

textx = 3; /*posición de inicialización del cursor*/

texty = 2;

gotoxy(1, 2);

printf("%c ", 218);/*Dibuja la esquina superior izquierda*/

for(I = 0;I<78 ; i++)

printf("%c ",196);/*Dibuja una línea recta horizontal*/

printf("%c ",191);/*Dibuja la parte superior esquina derecha */

for(I = 3;i<=23;i++)

{

gotoxy(1,I);

printf("%c ", 179); /*Dibuja una línea vertical*/

gotoxy(80, I);

printf("%c ", 179) ;

}

printf("%c ",192);/*Dibuja la esquina inferior izquierda*/

for(I = 0;I<78; i++)

printf("%c ", 196);

printf("%c ", 217); /*Dibuja la esquina inferior derecha*/

gotoxy(1, 1);

color del texto(7); /*Establecer gris*/

for(I = 0;i<80;i++)

cprintf("%c ", 219); /*Usa símbolos para dibujar el área de fondo gris del menú principal*/

selectitem() /*Función de opción de compra*/

DrawSelectitem();/*Opciones de dibujo*/

gettext(2, 3, 78

, 23, c); /*Guardar el área de texto actual*/

}

/*Definir el menú*/

void Selectitem()

{

strcpy(ml[0]). name, "book"); /*Para que el fondo negro de cada menú sea el mismo, complete las siguientes opciones específicas en el espacio en blanco*/

strcpy(ml[0]). str[0], "Agregar"); /*Agregar libros*/

strcpy(ml[0]). str[1], "Consulta"); /*Consultar libros*/

strcpy(ml[0]). str[2], "Del"); /*Eliminar libros y materiales*/

strcpy(ml[0]). str[3], "pedir prestado"); /*pedir prestado un libro*/

strcpy(ml[0]). str[4], "Regresar "); /*Devolver el libro*/

strcpy(ml[0]). str[5], "Salir"); /*Salir del sistema*/

ml[0]. n = 6; /*El número de elementos en el menú guardado*/

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

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

strcpy(ml[1]. str[1], "Consulta"); / p>

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

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

ml[1]. n = 4;

strcpy(ml[2]).name, "Ayuda"); /p>

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

strcpy(ml[2]). p>ml[2].

n = 2;

}

/*Mostrar nombre único principal*/

void DrawSelectitem()

{

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

RedText(i, 1, ml[i].name); /*Muestra el nombre del menú principal, la primera letra es roja* /

}

/*Menú de visualización normal*/

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

{

text background(7);/*Establece el color de fondo en gris claro*/

gotoxy(3+x*20, ​​​​y);

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

{

Si (j==0)

textcolor(rojo);/ *th Una letra es roja*/

Otros

textcolor(black); /*Establecer en negro*/

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

}

}

/*Mostrar menú seleccionado*/

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

{

text background(0 /*Establece el color de fondo en negro*/

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

gotoxy(3+20*x, y);/*Coordenadas de posicionamiento*/

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

}

/*Proceso de operación clave*/

Operación no válida ()

{

mientras(1)

{

gotoxy(texty, textx);

clave = clave BIOS(0) ;/ *Botón de recepción*/

Interruptor (tecla)

{

Caso ALT_B:

caso ESC:DrawMl(0) ;Break ; /*Mostrar menú desplegable 1*/

case ALT _ M:DrawMl(1); /*Mostrar menú desplegable 2*/

case ALT _ H: DrawMl(2);/*Mostrar menú desplegable 3*/

Control de operación de las teclas de cursor en el chasis:/* *

{

if(textx= =3)

textx = 23

textx-;

gotoxy(texty, textx);

} Roto;

Control de operación de las teclas de cursor debajo del chasis:/* *

{

if(textx==23)

textx = 3;

p>

textx++;

gotoxy(texty, textx);

}Roto;

Caso IZQUIERDO: /*Control de operación de la tecla del cursor izquierdo* /

{

if(texty==2)

texty = 79

texty-;

gotoxy(texty, textx);

}Roto;

Retroceso de mayúsculas y minúsculas: /*Borrar configuración de teclas*/

{

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

Continuar;

Otro

{

Si (texty ! =2)

texty-; /* Borrar detalles clave.

Primero elimine el contenido, luego mueva el cursor hacia atrás un espacio*/

Otros

if(texty==2)

{

texty = 78

textx-;

}

gotoxy(texty, textx);

printf(" ");

gotoxy(texty, textx);

}

}Roto; /*Fin de caso 0xe08*/

Caso DERECHO: /* Control de operación de la tecla del cursor derecho*/

{

if(texty==79)

texty = 2;

texty++; /p>

gotoxy(texty, textx);

}Roto;

Espacio entre mayúsculas y minúsculas:/*Operación de la barra espaciadora*/

{< / p>

if(texty==79)

Continuar;

Otros

{

gotoxy(texty, textx )

printf(" ");

texty++;

gotoxy(texty, textx);

}

}Roto;

Entrada de caso:/*Ingresar operación de control*/

{

if(textx == 23)

Continuar;

textx++;

texty = 2;

gotoxy(texty, textx);

}Roto;

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

{

if(texty == 79 & amp; & ampTextx==23)/*Sin salida al final*/

Continuar;

Otros

if(texty == 79 & amp;& amptextx! = 23) /*Hasta el final de la línea*/

{

textx++;

texty = 2;

}

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

printf("%c ", clave);

If(texty==79) /*si texty ==79, no se ejecutará*/

Continuar;

De lo contrario /*Si la línea no está al final, la ejecución continuará y el cursor avanzar una posición*/

texty++;

}

}

}/*Tirantes para bucles grandes*/

}

/*Función de borde de dibujo*/

void DrawFrame(int l, int u, int r, int d, int tcolor, int bcolor)

{

fondo del texto(bcolor);/*color de fondo*/

color del texto(bcolor);/*color del texto*/

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

{

for(j = u; j & lt= d; j++ )

{

gotoxy(i, j);

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

}

}

color del texto(tcolor);/*color del borde*/

for(I = u+1;i<d;I++ ) /*en el área de fondo Línea de borde de salida*/

{

gotoxy(l, I);

c

printf("%c ", 179); /*línea vertical*/

gotoxy(r, I);

cprintf("%c ", 179);

}

for(I = l+1;i<r;i++)

{

gotoxy(i,u);

p>

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*/

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, save 1); *//*Guardar el área dentro del borde*/

}

/*Mostrar opciones desplegables específicas*/

void DrawMl(integer)

{

gettext(1, 1, 80, 25, save); /*Guardar la posición oculta*/

BlackText(n, 1, ml[n]. Nombre); *Deseleccionar el menú principal*/

Marco de imagen (3+20*n-1, 2, 3+20*n+19, 3+ml[n]). n, 0, 7);/*El borde del menú desplegable*/

for(I = 3;I<3+ml[n].n;I++)/*Generar la opción de menú seleccionada */

{

Si (i==3)

TextoNegro(n, I, ml[n]). str[I-3]);/*El primer elemento está seleccionado de forma predeterminada*/

Otro

RedText(n, I, ml[n].

str[I-3]);/*El primer carácter de otros elementos se muestra en rojo*/

}

gotoxy(791);

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

}

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

void MoveMl(int n, int x)

{

int bandera = 1;

mientras(bandera)

{

gotoxy(791);

tecla = tecla BIOS(0); /*botón de recepción*/

gotoxy(791) ;

Interruptor (tecla)

{

Caso ESC:/*Salir del bucle*/

puttext(1, 1, 80, 25, guardar); /*Restaurar la apariencia antes de abrir el menú*/

flag = 0;

Break;

Caso IZQUIERDO:/* Opción para moverse hacia la izquierda* /

puttext(1, 1, 80, 25, save /*Restaurar la apariencia antes de abrir el menú*/

If(n==0); )/*Mover a la izquierda y pasar a la última opción*/

DrawMl(2);

Otro

DrawMl(n-1);

flag = 0;

Salir;

Caso DERECHA:/*Opción Mover a la derecha*/

puttext(1, 1, 80 , 25, guardar); /*Restaurar la apariencia antes de abrir el menú*/

If(n==2)/*Mover a la derecha y pasar a la primera opción*/

DrawMl(0);

Otros

DrawMl(n+1);

bandera = 0; /p>

Mover caso hacia arriba:/*Mover opciones específicas hacia arriba*/

RedText(n, x, ml[n]). str[x-3]);/*Fuente de salida roja*/

If(x==3)/*Mover hacia arriba, mover la tecla hacia abajo*/

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

Otro

x-;/*Mover al nuevo contenido que se mostrará*/

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

flag = 1;

Break;

Mover mayúsculas y minúsculas hacia abajo:/*Opciones específicas Mover hacia abajo*/

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

If(x==(3+ml[n]).n-1))/*Mover hacia abajo, presione la tecla para ir hacia arriba* /

x = 3;

Otro

x++; /*Mover al nuevo contenido para mostrar*/

BlackText(n , x, ml[n]).

str[x-3]);

flag = 1;

Break;

Entrada de caso:

puttext(1, 1 , 80, 25, guardar); /*Restaurar la apariencia antes de abrir el menú*/

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

bandera = 0;

Romper;

}

gotoxy(791);

}

}

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

void Enter(int m, int n)

{

Switch(m )

{

Caso 0: Cambiar (n) /*Seleccionar opción de menú de libro*/

{

Caso 0: BookAdd (); Break; /*Agregar libro*/

Caso 1: consulta de libro(); /*Consulta de libro*/

Caso 2: BookDel(); /*Eliminar libro*/

Caso 3: préstamo de libro(); descanso; /*Libro prestado*/

Caso 4: devolución de libro(); libro */

Caso 5: Salir (0); roto;

} roto /*Salir del sistema*/

Caso 1: Cambiar (n) ) seleccionado ) /*Opción de menú de miembros*/

{

Caso 0: miembro add();*Agregar miembro*/

Caso 1; : consulta de miembro(); /*consulta de miembro*/

Caso 2: miembro del(); /*eliminar información de miembro*/

Caso 3: libro de miembro; () ;/*Consultar los libros prestados por los miembros*/

}Roto;

Caso 2: Seleccione el interruptor (n) /*Opción del menú Ayuda*/

{

Caso 0: Ayuda();

Caso 1: Ver(); *Finalizar interruptor externo*/

}