Red de conocimiento del abogados - Ley de patentes - Diseño de curso de lenguaje C

Diseño de curso de lenguaje C

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

#include

#include

#include

#include

#include < stdlib. h>

#definir tamaño LEN de (lista de libros de estructuras)

#definir tamaño de LEN2 de (lista de miembros de estructuras)

#definir tamaño de LEN3 de (lectores de estructuras)

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

{

char name[30];//Nombre del prestatario

lectores de estructura *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

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

char autor[20];//Autor

int page;//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);//Imprimir información del libro

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(Book *head); la información 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=(Book *)malloc(LEN); //Crear banda lista enlazada con nodo principal

p2->a=(reader *)malloc(LEN3);

p2->a->next2=NULL;

p2- >next=NULL;

printf("Por favor, introduce el libro

Información:\n");

for(i=1;i<=n;i++)

{

p1=(Libro *)malloc ( LEN);

printf("Número de libro: "); scanf("%s",p1->num);

printf("Título del libro: "); "%s",p1->nombre);

printf("Editor: "); scanf("%s",p1->preocupación);

printf(" Publicación fecha: "); scanf("%s",p1->fecha);

printf("Autor: "); scanf("%s",p1->autor);

printf("Recuento de páginas del libro: "); scanf("%d",&p1->página);

printf("Precio del libro (yuanes): "); ",&p1->precio);

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

p1->a->next2=NULL;

p1->imformación=10;

p1->siguiente=NULL;

p2->siguiente=p1;

p2=p1; /p>

if(i

}

head=sort(head);

save(head);

print(head);

}

//Imprimir información del libro

void print (Libro *head)

{

Libro *p=NULL;

lector *p0=NULL;

p=head- >siguiente ;

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

while(p!=NULL)

{

printf("ISBN: %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",p->num,p-> nombre,p->concern,p-> fecha,p->autor,p->página,p->precio,p->información);

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

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

else

{

for(p0=p->a->siguiente2;p0!=NULL;p0=p0->siguiente2)

{

printf( "%s ",p0->name);

}

}

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

printf("\n");<

/p>

printf("\n");

}

}

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

Libro *sort(Libro *cabeza)

{

Libro *p1=NULL,*p2=NULL,*p3=NULL,*min=NULL,*min2= NULL, *cabeza2=cabeza->siguiente;

p1=cabeza2;

mientras(p1->siguiente!=NULL)

{

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

while(p2->next!=NULL)

{

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

{

min2= p2;

min=p2->siguiente;

}

p2=p2->siguiente;

}

if(min!=p1)

{

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

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

if(p1==head2) head2=min;

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

p3=min;

}

else

{

p3=p1;

p1=p1->siguiente;

}

}

cabeza->siguiente=cabeza2

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("Información del préstamo.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->a;q!=NULL; q =q->siguiente2)

p=p->siguiente;

}

fclose(fp);

fclose( fp2 );

}

//Agregar información del libro

void AddBook()

{

ARCHIVO * fp,*fp2;

Libro *addbook=NULL;

lector *p0=NULL;

fp=fopen("Información del libro.txt", " ab"); //Abre el archivo en modo agregar

fp2=fopen("Préstamo

Information.txt","ab");

addbook=(Libro *)malloc(LEN);

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

printf("Número de libro: "); scanf("%s",addbook->num);

printf("Título del libro: "); - >nombre);

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

printf("Fecha de publicación: "); ("%s",addbook->fecha);

printf("Autor: "); scanf("%s",addbook->autor); Número de páginas del libro: "); scanf("%d",&addbook->page);

printf("Precio del libro (yuanes): "); scanf("%d",&addbook ->precio);

p0=(lector *)malloc(LEN3);

p0->next2=NULL;

addbook->a=p0 ;

p>

addbook->imformation=10;

addbook->next=NULL;

fwrite(addbook,LEN,1,fp); *Bloquear escritura*/

fwrite(p0,LEN3,1,fp2

fclose(fp);

fclose(fp2);

}

//Leer información del libro

Libro *leer()

{

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("Borrow Message.txt","rb"))==NULL) printf("¡No se puede abrir el archivo o el archivo no existe!\n");

head=(Libro * )malloc(LEN);

p>

fread(head,LEN,1,fp);

p1=head;

p0=(lector *) malloc(LEN3);

fread(p0,LEN3,1,fp2);

p0->next2=NULL;

head->a=p0 ;

head- >next=NULL;

p=(Libro *)malloc(LEN);

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

{

p1->next=p;

p1=p1->next;

p0=(lector * )malloc(LEN3);

p1->a=p0;

while(fread(p0,LEN

3,1,fp2))

{

if(p0->next2==NULL)

{

p2=p0 ;

p0=(lector *)malloc(LEN3);

break;

}

p2=p0;

p0=(lector *)malloc(LEN3);

p2->next2=p0;

}

gratis(p0);

p2->siguiente2=NULL;

p=(Libro *)malloc(LEN);

}

p1->siguiente =NULL;

libre(p);

fclose(fp);

fclose(fp2);

head=sort( head);

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

else

{

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

return 0;

}

}

//Eliminar información del libro

void DelBook()

{

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

char nombre del libro[30]

head=read();

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

scanf("%s" ,bookname);

p=head;

while(p!=NULL)/*Buscar libros para eliminar por nombre*/

{

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

{

if(p==cabeza)

{

head=head->siguiente;

descanso;

}

más

{

q->siguiente=p->siguiente;

romper;

}

}

q=p

p=p->siguiente;

}

guardar(cabeza);

}

//Operación del administrador

void manager()

{

int n,i=0,k=1;

while( 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 información del libro\ n");

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

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

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

printf(" ◎ 7. Guardar y salir\n");

printf ("Por favor, introduzca:");

scanf("%d",&n);

switch(n)

{

caso 1: creatlist();romper;

caso 2: AddBook();romper;

caso 3: DelBook();romper;

caso 4: head=read();system("CLS");print(head);break;

caso 5: system("CLS");Bookconsult();break;

caso 6: k=0;romper;

predeterminado: k=0;romper;

}

}

}

//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];

head=read();

mientras(m==1)

{

printf("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");

printf( "input=");

scanf("%d",&n);

cambiar(n)

{

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

scanf("%s",a);

p0=head;

while (p0!=NULL)

{

if(strcmp(a,p0->nombre)==0)

{

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

printf("ISBN : %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->num, p0->nombre,p0->concern,p0->fecha,p0->autor,p0->página,p0->precio,p0->información);

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

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

else

{

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

}

printf("\n");

sign=1;

p0=p0->siguiente;

p >

}

else p0=p0->next;

}

if(sign==0) printf("No existe tal libro información.\n");

break;

caso 2: printf("Por favor, introduzca el número del libro:");

scanf("% s ",b);

p0=cabeza;

while(p0!=NULL)

{

if(strcmp( b ,p0->num)==0)

{

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

printf("ISBN: %s\nTítulo del libro: %s\nEditor: %s\nFecha de publicación: %s\n Autor : %s\nNúmero de páginas del libro (páginas): %d\nPrecio del libro (yuanes): %d\nCantidad restante: %d\n",p0->num,p0->nombre,p0->concern,p0- >fecha,p0->autor,p0->página,p0->precio,p0->información);

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

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

else

{

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

}

printf("\n");

romper

}

else p0=p0->siguiente;

}

si(p0==NULL) printf

("No hay información sobre este libro.\n");

break;

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

scanf("%s",c);

p0=cabeza;

while(p0!=NULL)

{

if(strcmp(c,p0->autor)==0)

{

printf

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

printf("ISBN: %s\nTítulo del libro: %s \nEmpresa publicada: %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- >num ,p0->nombre,p0->concern,p0->fecha,p0->autor,p0->página,p0->precio,p0->información);

printf("Propietario del libro prestado :");

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

else

{

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

}

printf("\n");

sign=1;

p0=p0->siguiente;

}

else p0=p0->next;

}

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

romper;

predeterminado: m=0; romper;

}

}

}

//Pedir prestado libros

int Borrow()

{

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

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 = cabeza->siguiente;

mientras(p0!=NULL)

{

if((strcmp(a,p0->num))== 0 )

{

if(p0->imformation>0)

{

printf("La biblioteca está en la biblioteca y se puede pedir prestado, ¿estás seguro de prestar? 'y'o'n'\n");

c=getchar();

> scanf("%c",&c);

if(c=='y')

{

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

scanf("%s",b);

p3=(lector *)malloc(LEN3);

strcpy( p3-> nombre,b);

if(p0->a->siguiente2==NULL)

{

p0->a->siguiente2 =p3;

p3->next2=NULL;

}

else

{

for( p2=p0 ->a;p2->siguiente2!=NULL;p2=p2->siguiente2);

p2->siguiente2=p3;

p3->siguiente2=NULL ;

}

--p0->imformación;

save(head);

printf("La operación está completa, puede traer Ir a reservar \n");

devolver 1;

descanso;

}

más

{

return 0;

break;

}

}

else printf("Lo siento, El libro no está en la biblioteca.\n");return 0;break;

}

else p0=p0->next;

}

if(p0==NULL)

{

printf("Lo sentimos, este libro no está disponible.

\n");

devuelve 0;

}

en caso contrario devuelve 2;

}

/ /Devolver 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",&c);

p0=head->next;

mientras (p0!=NULL)

{

if((strcmp(c,p0->num))==0)

{

printf("Ingrese su nombre de usuario:");

scanf("%s",&b);

if(p0->a-> next2= =NULL)

else

{

p3=p0->a;

p2=p3->next2;

while(p2!=NULL)

{

if(strcmp(p2->nombre,b)==0)

{

if(p2->siguiente2==NULL)

else

{

p3->siguiente2=p2->siguiente2 ;

gratis(p2);

descanso;

}

}

más

{

p3=p2

p2=p2->siguiente2;

}

}

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

}

++p0->informació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->siguiente;

}

if(p0==NULL)

{

printf("No existe tal libro.

\n");

devuelve 0;

}

si no, 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 relevantes instrucciones para este sistema: ※\n");

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

printf("※Consulta; En funcionamiento, los números arábigos se utilizan principalmente para seleccionar la función de menú correspondiente, y 'y' se utiliza para indicar 'sí' al seleccionar ※\n");

printf("※'n' significa 'no'. Habrá indicaciones de operación correspondientes cuando opere. ※\n");

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

}

principal ()

{

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");

mientras(k==1)

{

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

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

scanf("%d",&n);

sistema("CLS");

interruptor(n)

{

caso 1: manager();break;

caso 2: implementación();break;

predeterminado: printf("++++++++++ +++ +++++++++++++++ ¡Bienvenido a usar nuestro sistema nuevamente! +++++++++++++++++++++++++++++++ \n");k=0;romper;

}

}

}