Colección de citas famosas - Slogan de motivación - Diseño de curso de lenguaje C

Diseño de curso de lenguaje C

Hay demasiadas puntuaciones de estudiantes. He encontrado un bibliotecario para que pueda ayudarle. El código es el siguiente:

#include lt;

#include lt; malloc.hgt;

#include lt; conio.hgt

#include string.hgt; p># include lt;stdlib.hgt;

#define LEN sizeof(struct booklist)

#define LEN2 sizeof(struct memberlist)

#define LEN3 sizeof(struct lectores)

typedef struct lectores//Estructura de información de préstamo

{

char name[30];//Nombre del prestatario

struct lectores *next2;

}lector

//Estructura de información del libro

typedef struct booklist

{

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

char nombre[30]; //título del libro

char preocupación[50]; //editorial

p>

char fecha[20]; //Fecha de publicación

char autor[20]; //Autor

int página; //Número de páginas

int precio; //Precio

int imformation; //Cantidad restante de libros

lector *a; //Prestatario

struct booklist * next ;

}Libro;

void creatlist(); //Crear nueva información del libro

void print(Libro *head); /p>

void save(Book *head); //Guardar información del libro

void AddBook(); //Agregar información del libro

void DelBook(); Eliminar información del libro

Libro *read(); //Leer información del libro

void manager(); //Operación del administrador

void Bookconsult (); /Consulta de libro

int Borrow(); //Pedir prestado un libro

int Return(); //Devolver un libro

Libro *sort( Libro * head); //La información del libro se ordena por número de libro

void imformation(); //Información del sistema

Libro *head=NULL, *p1=NULL, *p2=NULL ;

//Crear nueva información del libro

void creatlist()

{

int i, n;

printf("Número de libros a crear");

scanf("d",&n);

p2=head=(Libro *)malloc(LEN ); /Crear una lista enlazada con un nodo principal

p2-gt; a=(reader *)

malloc(LEN3);

p2-gt; a-gt; next2=NULL;

p2-gt; next=NULL

printf("Por favor Ingrese la información del libro:\n");

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

{

p1=(Libro * ) malloc(LEN);

printf("número de libro: "); scanf("s", p1-gt; num);

printf("título del libro: "); scanf("s",p1-gt;nombre);

printf("Editor: "); scanf("s",p1-gt;preocupación); "Fecha de publicación: "); scanf("s", p1-gt; fecha);

printf("Autor: "); p>

printf("Número de página del libro: "); scanf("d", amp; p1-gt; página);

printf("Precio del libro (yuanes): "); ("d",amp;p1-gt;precio);

p1-gt;a=(lector *)malloc(LEN3);

p1-gt;a- gt ;next2=NULL;

p1-gt;imformación=10;

p1-gt;next=NULL;

p2-gt;next=p1 ;

p2=p1;

if(ilt;n) printf("Siguiente libro:\n");

}

head=sort(head);

save(head);

print(head);

}

// Imprimir libro información

impresión nula(Libro *cabeza)

{

Libro *p=NULL;

lector *p0=NULL ;

p=head-gt;siguiente;

printf("************************ ** ************************************************* * ****\n");

while(p!=NULL)

{

printf("Número de libro: s\nTítulo del libro: s \nEditorial: s\nFecha de publicación: s\nAutor: s\nNúmero de páginas del libro (páginas): d\nPrecio del libro (yuanes): d\nCantidad restante: d\n", p-gt ;num,p-gt; nombre,p-gt;preocupación,p-gt;fecha,p-gt;autor,p-gt;página,p-gt;precio,p-gt;información);

printf("El persona que toma prestado el libro: ");

if(p-gt; a-gt; next2==NULL) printf("----------- -¡Aún no hay prestatario!"

else

{

for(p0=p-gt; a-gt; next2; p0!=NULL ;p0);

=p0-gt; siguiente2)

{

printf("s ", p0-gt; nombre

}

}

p=p-gt; next; /* p retrocede un nodo*/

printf("\n");

printf( " \n");

}

}

//La información del libro se ordena por número de libro

Libro *sort(Libro * head )

{

Libro *p1=NULL, *p2=NULL, *p3=NULL, *min=NULL, *min2=NULL, *head2=head-gt; siguiente ;

p1=cabeza2;

mientras(p1-gt; siguiente!=NULL)

{

min=p2= p1 ; /*Toma el primer nodo como valor mínimo*/

while(p2-gt; next!=NULL)

{

if(strcmp) (min -gt;num,p2-gt;next-gt;num)gt;0) /*Compara el primer nodo con el siguiente*/

{

min2= p2 ;

min=p2-gt;siguiente;

}

p2=p2-gt;siguiente;

}

if(min!=p1)

{

min2-gt; next=min-gt; /*Eliminar el nodo mínimo*/

min-gt; next=p1; /*Insertar el nodo mínimo*/

if(p1==head2) head2=min;

else p3-gt; next =min; /*p3 es el puntero de nodo antes de min*/

p3=min;

}

else

{

p3=p1;

p1=p1-gt; siguiente

}

}

cabeza -gt; next=head2;

return(head);

}

//Guardar información del libro

void save(Libro) *head)

{

ARCHIVO *fp, *fp2;

Libro *p=NULL;

lector *q=NULL ;

fp=fopen("Información del libro.txt", "wb"); //printf("¡No se puede abrir el archivo!\n");

fp2=fopen(" Préstamo de información.txt", "wb"); //printf("¡No se puede abrir el archivo!\n");

p=head;

while(p!=NULL)

{

fwrite(p, LEN, 1, fp); /*Escribir archivos nodo por nodo*/

for(q=p-gt; a; q!=NULL; q=q-gt; siguiente2)

p=p-gt;

}

fclose(fp);

fclose(fp2);

}

//Agregar información del libro

void AddBook()

{

ARCHIVO *fp, *fp2;

Libro *addbook=NULL;

lector *p0=NULL

fp=fopen("Libro; Information.txt", "ab"); //Abre el archivo en modo agregar

fp2=fopen("Préstamo de información.txt", "ab");

addbook= (Libro *)malloc(LEN);

printf("Ingrese la información del libro: \n");

printf("Número de libro: "); addbook-gt ; num);

printf("Título del libro: "); scanf("s", addbook-gt; nombre);

printf("Editor: ") ; scanf ("s", addbook-gt; preocupación);

printf("Fecha de publicación: "); printf( "Autor: "); scanf("s", addbook-gt; autor);

printf("Páginas del libro: "); scanf("d", amp; addbook-gt; página ) ;

printf("Precio del libro (yuanes): "); scanf("d", amp; addbook-gt; precio

p0=(lector *)malloc); ( LEN3);

p0-gt;next2=NULL;

addbook-gt;a=p0;

addbook-gt;imformation=10;

p>

addbook-gt; next=NULL;

fwrite(addbook, LEN, 1, fp); fwrite(p0, LEN3, 1, fp2);

fclose(fp

fclose(fp2); //Leer información del libro

Libro *read()

{

ARCHIVO *fp, *fp2;

Libro *p= NULL, *p1= NULL, *head=NULL;

lector *p0=NULL, *p2=NULL;

if((fp=fopen("Información del libro.txt" , "rb") )==NULL) printf("¡No se puede abrir el archivo o el archivo no existe!\n");

if((fp2=fopen("Información de préstamo.txt", "rb "))==NULL ) printf("¡No se puede abrir el archivo o el archivo no existe!\n");

head=(Libro *)malloc(LEN);

fread (cabeza, LEN, 1, fp);

p1=cabeza;

p0=(lector *)malloc(LEN3);

fread(p0, LEN3,

1, fp2);

p0-gt; siguiente2=NULL;

cabeza-gt; a=p0

siguiente=NULL;

p=(Libro *)malloc(LEN);

while(fread(p, LEN, 1, fp)) /*Leer nodo por nodo*/

{

p1-gt; siguiente=p;

p1=p1-gt; siguiente

p0=(lector *)malloc( LEN3 );

p1-gt; a=p0;

while(fread(p0, LEN3, 1, fp2))

{

if(p0-gt; next2==NULL)

{

p2=p0

p0=(lector *)malloc(LEN3) ;

descanso;

}

p2=p0;

p0=(lector *)malloc(LEN3);

p2-gt; siguiente2=p0;

}

libre(p0);

p2-gt;

p=(Libro *)malloc(LEN);

}

p1-gt; siguiente=NULL

libre(p); /p>

fclose(fp);

fclose(fp2);

cabeza=sort(cabeza);

if(cabeza!= NULL); ) return(head);

else

{

printf("¡El archivo está vacío!\n"); 0;

}

}

//Eliminar información del libro

void DelBook()

{

Libro *head=NULL, *p=NULL, *q=NULL;

char nombre del libro[30];

head=read();

p>

printf("Ingrese el título del libro que desea eliminar: ");

scanf("s", nombre del libro

p); =head;

while(p!=NULL)/*Buscar el libro que desea eliminar por nombre*/

{

if(strcmp(p- gt; nombre, nombre del libro)==0 )

{

if(p==cabeza)

{

cabeza=cabeza -gt; siguiente;

romper

}

más

{

q-gt; =p-gt; siguiente;

p>

romper

}

}

q=p;

p=p-gt; siguiente

}

guardar(cabeza);

}

//Operación del administrador

void manager()

{

int n, i=0, k =1;

mientras(k==1)

{

printf("************** * ************************************************** ****************\n");

printf("Seleccione la operación que necesita\n");

printf (" ◎ 1. Crear nueva información del libro\n");

printf(" ◎ 2. Insertar información del libro\n");

printf(" ◎ 3. Eliminar libro información\n");

printf(" ◎ 4. Leer toda la información del libro\n");

printf(" ◎ 5. Leer la información especificada del libro\n ");

printf(" ◎ 6. Volver al directorio superior\n");

printf(" ◎ 7. Guardar y salir\n"); > printf("Por favor ingrese: ");

scanf("d", amp; n

switch(n)

{< /p); >

caso 1: creatlist(); descanso;

caso 2: AddBook();

caso 3: DelBook(); p> caso 4: cabeza=leer(); sistema("CLS"); imprimir(cabezal);

caso 5: sistema("CLS"); p>

caso 6: k=0; romper

predeterminado: k=0

}

}

<; p>}

//Consulta de libro

void Bookconsult()

{

int n, m=1, sign =0 ;

Libro *p=NULL, *p1=NULL, *p0=NULL, *head=NULL;

lector *p2=NULL;

char a[30], b[20], c[20];

cabeza=leer();

mientras(m==1)

{

pr

intf("Elija cómo desea buscar libros: 1. Por título del libro 2. Por número de libro 3. Por autor del libro 4. Salir de la búsqueda\n"); );

scanf("d", amp; n);

interruptor(n)

{

caso 1: printf. ("Ingrese el título del libro:");

scanf("s", a

p0=head

while(p0!=); NULL )

{

if(strcmp(a,p0-gt;nombre)==0)

{

printf( " ************************************************* ** *******************************\n");

printf("ISBN: s\ nNombre del libro: s\nEditor: s\nFecha de publicación: s\nAutor: s\nNúmero de páginas del libro (páginas): d\nPrecio del libro (yuanes): d\nCantidad restante: d\n", p0 -gt;num, p0-gt;nombre,p0-gt;preocupación,p0-gt;fecha,p0-gt;autor,p0-gt;página,p0-gt;precio,p0-gt;información);

printf("La persona que tomó prestado el libro: ");

if(p0-gt; a-gt; next2==NULL) printf("--------- --- ¡Aún no hay prestatario!\n");

else

{

for(p2=p0-gt;a;(p2=p2 -gt;next2 )!=NULL;)

}

printf("\n");

sign=1;

p0=p0 -gt; siguiente;

}

si( signo==0 ) printf("No hay información sobre este libro.\n");

break

caso 2: printf("Ingrese el número del libro:") ;

scanf("s",b);

p0=cabeza;

while(p0!=NULL)

{

if(strcmp(b,p0-gt;num)==0)

{

printf("************ ** ************************************************* * *********************\n");

printf("Número de libro: s\nTítulo del libro:

s\nEditor: s\nFecha de publicación: s\nAutor: s\nNúmero de páginas del libro (páginas): d\nPrecio del libro (yuanes): d\nCantidad restante: d\n", p0-gt ;num,p0-gt ;nombre,p0-gt;preocupación,p0-gt;fecha,p0-gt;autor,p0-gt;página,p0-gt;precio,p0-gt;información);

printf(" La persona que pidió prestado el libro: ");

if(p0-gt; a-gt; next2==NULL) printf("----------- -Aún no hay prestatario !\n");

else

{

for(p2=p0-gt;a;(p2=p2-gt ;next2)!= NULL;)

}

printf("\n");

descanso

}

else p0=p0-gt; next;

}

if(p0==NULL) printf("No hay información sobre este libro.\n") ;

break;

caso 3: printf("Ingrese el autor del libro:");

scanf("s", c);

p>

p0=cabeza;

while(p0!=NULL)

{

if(strcmp(c,p0-gt ;autor) ==0)

{

printf

("****************** ****** ********************************************** ******* ********\n");

printf("Número de libro: s\nTítulo del libro: s\nEditorial: s\nFecha de publicación: s\nAutor : s\ nNúmero de páginas del libro (páginas): d\nPrecio del libro (yuanes) d\nCantidad restante: d\n", p0-gt; num, p0-gt; nombre, p0-gt; preocupación, p0-gt; fecha, p0-gt; autor, p0-gt; página, p0-gt; precio, p0-gt;

printf ("La persona que tomó prestado el libro: "); >

if(p0-gt; a-gt; next2==NULL) printf("---------------------¡Aún no hay prestatario!\n" );

else

{

for(p2=p0-gt;a;(p2=p2-gt;next2)!=NULL;)

}

printf("\n");

sign=1

p0=p0-gt; p>

}

else p0=p0-gt; next;

}

if(sign==0) printf("No hay información sobre este libro.\n"); >

descanso;

predeterminado: m=0

}

}

}

//Pedir libros prestados

int Borrow()

{

char a[30], b[30], c

<; p > Libro *p0=NULL, *head=NULL

lector *p2=NULL, *p3=NULL

head=read(); > printf("Ingrese el número del libro que desea tomar prestado: ");

scanf("s", a

p0=head-gt;

mientras(p0!=NULL)

{

if((strcmp(a, p0-gt; num))==0)

{

if(p0-gt;imformationgt;0)

{

printf("El libro está en la biblioteca y puede ser prestado. ¿Estás seguro de que quieres tomarlo prestado?'y'or'n'\n");

c=getchar();

scanf("c",amp ;c);

if (c=='y')

{

printf("Ingrese su nombre de usuario nuevamente: "

scanf("s", b);

p3=(lector *)malloc(LEN3);

strcpy(p3-gt; nombre, b);

if(p0- gt; a-gt; next2==NULL)

{

p0-gt; next2=p3; /p>

p3-gt; next2 =NULL

}

else

{

for(p2=p0 -gt; a; p2-gt; siguiente2! =NULL; p2=p2-gt;

p2-gt; =NULL;

}

--p0-gt;imformación;

save(head);

printf("La operación Se completa y se puede retirar el libro.

\n");

devolver 1;

romper;

}

más

{

return 0;

break;

}

}

else printf("Lo siento, el libro no está disponible Hall.\n"); return 0; break;

}

else p0=p0-gt; next;

}

if(p0==NULL)

{

printf("Lo sentimos, no existe tal libro.\n");

return 0;

}

else return 2

}

//Devuelve el libro

int Return()

{

Libro *p0=NULL, *head=NULL;

lector *p2=NULL, *p3=NULL;

char c[20], b[30];

head=read();

printf("Ingrese el ISBN del libro que desea devolver: ");

scanf("s",amp;c);

p0=head-gt;siguiente;

mientras(p0!=NULL)

{

if((strcmp(c,p0-gt;num))==0)

{

printf("Por favor, introduzca su nombre de usuario: ");

scanf("s", amp; b);

if(p0-gt; a-gt; next2==NULL)

else

{

p3=p0-gt;a;

p2=p3-gt;next2;

mientras (p2! =NULL)

{

if(strcmp(p2-gt; nombre, b)==0)

{

if (p2-gt; next2==NULL)

else

{

p3-gt; next2=p2-gt; p>

libre(p2);

descanso

}

}

más

{

p>

p3=p2

p2=p2-gt;

}

}

if(p2 ==NULL) printf("¡No tomaste prestado este libro!\n");

}

p0-gt;imformación;

save(head );

printf("El libro ha sido devuelto a la biblioteca y la operación se ha completado.

\n");

devolver 1;

romper;

}

más p0=p0-gt; siguiente;

p>

}

if(p0==NULL)

{

printf("No existe tal libro.\ n");

p>

devuelve 0;

}

de lo contrario, devuelve 2;

}

//Información de préstamo

void imformation()

{

printf("※※※※※※※※※※※※※※※※※ ※※※※※※※ ※※※※※※※※※※※※※※※※\n");

printf("※ ¡Bienvenido a utilizar nuestro sistema de gestión de bibliotecas! Los siguientes son instrucciones relevantes para este sistema: ※ \n");

printf("※La función principal de este sistema es administrar libros. Puede crear, insertar, eliminar, ※\n");

printf("※Consulta; durante la operación, los números arábigos se utilizan principalmente para seleccionar la función del menú correspondiente, y 'y' se utiliza para indicar 'sí' al seleccionar ※\n"); p>printf(" ※'n' significa 'no'. Habrá indicaciones de operación correspondientes cuando opere.

※\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ ※※※※※ ※\n");

}

main()

{

int n, k=1 ;

printf("****************************************** ** *****************************************\n");

printf("\n\n");

printf("¡Bienvenido a nuestro sistema de gestión de bibliotecas! \n");

printf("\n\n " );

printf("*************************************** **** *******************************************\n" );

while(k==1)

{

printf(" Elija su operación: 1. Operación del administrador 2. Información del sistema 3. Salir el sistema\ n");

printf("********************************* *** ************************************************* *\n");

printf("Su elección es: ");

scanf("d",&n);

system("CLS ");

cambiar(n)

{

caso 1: administrador(); descanso;

caso 2: transformación( ); break;

default: printf("¡Bienvenido a usar nuestro sistema nuevamente! \n");

}