Current location - Training Enrollment Network - Books and materials - Write a book management system in C language
Write a book management system in C language
# Including

# Including

# Including

# Including

# Including

#define STACK_INIT_SIZE 10

# Define OK 1

# Define true 1

# Define false 0

# Definition error 0

The structure student/* defines the student type, which is used to store the lent books */

{

int carnum

char lend book[ 10];

} students [1000];

Structure employee/* Define employee type */

{

int employnum

char employ name[ 15];

int employage

char employex[2];

char employ leve[ 10];

long int employtage

} employment [50];

Struct book /* defines the type of book */

{

int booknum

char bookname[ 10];

char book creat[ 10];

Int turefalse/* Conditions for book lending and returning module to judge whether books are lent or not */

} book[ 1000];

Struct car /* data type of library card */

{

int carnum

char student name[ 10];

int

} car [100];

Huanbook() /* Return function */

{

FILE *fp, * fp2/* defines two file pointers. Fp2 is used to create temporary files when modifying data to prevent data from being destroyed */

int i,n;

int carnum

char lend book[ 10];

Printf ("Please enter your card number \ n");

scanf("%d ",& ampcarnum);

fp=fopen("car.txt "," r "); /* Read the card number record */

for(I = 0; Fred (&car [i], sizeof(struct car), 1, fp)! =0; I) /*for loop to determine whether the card number exists */

{

If (the car [me]. Carnum==carnum) /* Card number exists, next cycle */

{

n = I;

fclose(FP);

Printf ("Please enter the name of the book you want to return \ n");

scanf("%s ",lend book);

fp=fopen("record.txt "," r ");

for(I = 0; Fred (& student [i], sizeof (structural student), 1, fp)! =0; I) /* Judge whether the entered book is borrowed */

{

If (strcmp (student [I])。 Lendbook) = = 0)/* Borrow a book and enter the next cycle, otherwise an error will be displayed */

{

fclose(FP);

fp=fopen("record.txt "," r ");

fp2=fopen("bookl.txt "," w ");

for(I = 0; Fred (& student [i], sizeof (structural student), 1, fp)! =0; I)

{

if(strcmp(student[i])。 lendbook,lendbook)==0)

{

Continue; /* Delete the borrowing record of returned books */

}

fwrite(& amp; student[i],sizeof(struct student), 1,fp2); /* Write down the records of books that have not been returned */

}

fclose(FP);

fclose(fp2);

fp=fopen("record.txt "," w ");

fp2=fopen("bookl.txt "," r ");

for(I = 0; Fred (& student [i], sizeof (structural student), 1, fp2)! =0; I)

{

fwrite(& amp; Student [i], sizeof (structural student), 1, FP); /* Write back the book borrowing record information */

}

fclose(FP);

fclose(fp2);

fopen("bookl.txt "," w "); /* Clear the records of temporary files */

fclose(fp2);

fp=fopen("book.txt "," r ");

fp2=fopen("bookl.txt "," w ");

for(I = 0; Fred (& book [i], sizeof (structural book), 1, fp)! =0; I) /* Write the records of books into a temporary file to prevent the previous records from being destroyed by modification information */

{

If (i==n)

{

Book [me]. ture false = 1;

fwrite(& amp; book[i],sizeof(struct book), 1,fp2); /* Set the original status of the returned book to no one to borrow */

Continue;

}

fwrite(& amp; book[i],sizeof(struct book), 1,fp2);

}

fclose(FP);

fclose(fp2);

fp=fopen("book.txt "," w ");

fp2=fopen("bookl.txt "," r ");

for(I = 0; Fred (& book [i], sizeof (structural book), 1, fp2)! =0; I)

{

fwrite(& amp; book[i],sizeof(struct book), 1,FP); /* Write the temporary file back to */

}

fclose(FP);

fclose(fp2);

fopen("bookl.txt "," w "); /* Clear temporary documents */

fclose(fp2);

Printf ("Return the book, press any key to return \ n");

getch();

Returns1;

}

}

Printf ("You didn't borrow such a book, press any key to return \ n"); /* Error prompt */

fclose(FP);

getch();

Returns 0;

}

}

Printf ("This card is not available in the system, please contact the administrator and press any key to return \ n"); /* Error prompt */

fclose(FP);

getch();

}

findbook()

{

FILE * fp

char bookname[ 10];

Int ture, me;

fp=fopen("book.txt "," r ");

Printf ("Please enter the title of the book you are looking for \ n");

Scanf("%s ",book name);

for(I = 0; Fred (& book [i], sizeof (structural book), 1, fp)! =0; I)

{

if(strcmp(bookname,book[i])。 Book name) ==0)

{

If (book [me]. turefalse== 1)

{

Printf ("The details of this book are: %d %s %s This book has not been borrowed \ nPress any key to return \ n", Book [i]. Booknum,Book [i]。 Book title, book [i]. bookcreat);

}

other

fclose(FP);

Returns FALSE

}

}

Printf ("No book you want to query \ n");

fclose(FP);

Returns FALSE

}

findbook 1()

{

FILE * fp

char book creat[ 10];

Int ture, me;

fp=fopen("book.txt "," r ");

Printf ("Please enter the name of the author you are looking for \ n");

scanf("%s ",bookcreat);

for(I = 0; Fred (& book [i], sizeof (structural book), 1, fp)! =0; I)

{

if(strcmp(bookcreat,book[i])。 bookcreat)==0)

{

If (book [me]. turefalse== 1)

{

Printf ("The details of this book are: %d %s %s This book has not been borrowed \ nPress any key to return \ n", Book [i]. Booknum,Book [i]。 Book title, book [i]. bookcreat);

}

other

fclose(FP);

Returns FALSE

}

}

Printf ("No book you want to query \ n");

fclose(FP);

Returns FALSE

}

lendcount()

{

FILE * fp

int i,n = 0;

fp=fopen("record.txt "," r ");

for(I = 0; Fred (& student [i], sizeof (structural student), 1, fp)! =0; I)

{

Printf ("Book with card number %d:% s \ n", student [i]. Kanum, student [me]. lend book);

n = n 1;

}

fclose(FP);

Printf ("* * has lent out %d books \n ",n);

Printf ("Press any key \ n");

getch();

Returns n;

}

Chabuke ()

{

char ch5

do

{

Printf ("-Welcome to the book inquiry system! -\ n ");

printf(" 1:\ n ");

printf(" 2:\ n ");

printf(" 0:\ n ");

Printf ("Please enter 0-2, other inputs are illegal! \ n ");

scanf("%s ",& ampch5);

Switch (ch5)

{

case ' 1 ':find book(); getch(); Break;

Case "2": findbook1(); getch(); Break;

Case "0": break;

Default value: printf ("No such operation \ n"); getch(); Break;

}

}while(ch5! ='0');

Returns FALSE

}

lendbook()

{

FILE *fp,* fp2

int i,n;

int carnum

Printf ("Please enter your card number \ n");

scanf("%d ",& ampcarnum);

fp=fopen("car.txt "," r ");

for(I = 0; Fred (&car [i], sizeof(struct car), 1, fp)! =0; I)

{

If (the car [me]. Card number = = card number)

{

n = I;

fclose(FP);

Printf ("Please enter the name of the book you want to borrow \ n");

Scanf("%s ",student [n]. lend book);

fp=fopen("book.txt "," r ");

for(I = 0; Fred (& book [i], sizeof (structural book), 1, fp)! =0; I)

{

If(strcmp (book [i]). Book title, student [n]. lendbook)==0)

{

If (book [me]. turefalse==0)

other

fclose(FP);

fp=fopen("record.txt "," a ");

student carnum = carnum

fwrite(& amp; Student [n], sizeof (structural student), 1, FP);

fclose(FP);

fp=fopen("book.txt "," r ");

fp2=fopen("bookl.txt "," w ");

for(I = 0; Fred (& book [i], sizeof (structural book), 1, fp)! =0; I)

{

If(strcmp (book [i]). Book title, student [n]. lendbook)==0)

{

Book [me]. ture false = 0;

fwrite(& amp; book[i],sizeof(struct book), 1,fp2);

Continue;

}

fwrite(& amp; book[i],sizeof(struct book), 1,fp2);

}

fclose(FP);

fclose(fp2);

fp=fopen("book.txt "," w ");

fp2=fopen("bookl.txt "," r ");

for(I = 0; Fred (& book [i], sizeof (structural book), 1, fp2)! =0; I)

{

fwrite(& amp; book[i],sizeof(struct book), 1,FP);

}

fclose(FP);

fclose(fp2);

fopen("bookl.txt "," w ");

fclose(fp2);

Printf ("Press any key to return after borrowing a book \ n");

getch();

Return;

}

}

Printf ("There is no such book, press any key to return \ n");

fclose(FP);

getch();

Return;

}

}

Printf ("Your card number does not exist, please apply for a new card, and press any key to return \ n");

fclose(FP);

getch();

}

Car Count ()

{

FILE * fp

int i,n = 0;

fp=fopen("car.txt "," r ");

for(I = 0; Fred (&car [i], sizeof(struct car), 1, fp)! =0; I)

{

Printf ("card %d \ n ",I 1,car [I]。 Carnum,car [I]。 Scientific name, car [me]. );

n = n 1;

}

fclose(FP);

Printf ("There are %d books in * * * at present \n", n);

Printf ("Press any key \ n");

getch();

}

Delkar ()

{

FILE *fp,* fp2

int I;

int carnum

Char selection;

fp=fopen("car.txt "," r ");

fp2=fopen("bookl.txt "," w ");

Printf ("Please enter the card number you want to delete \ n");

Printf ("If the card number you entered exists, the system will automatically delete the information! If it does not exist, the system will not make any changes \ n ");

scanf("%d ",& ampcarnum);

for(I = 0; Fred (&car [i], sizeof(struct car), 1, fp)! =0; I)

{

If (the car [me]. Kanum. =carnum)

{

fwrite(& amp; car[i],sizeof(struct car), 1,fp2);

}

}

fclose(FP);

fclose(fp2);

Printf ("Are you sure you want to delete this card? After deletion, all the information in this book cannot be restored to y/n \ n ");

Scanf("%s ",& select);

if(choice=='y'||choice=='Y ')

{

fp=fopen("car.txt "," w ");

fp2=fopen("bookl.txt "," r ");

for(I = 0; Fred (&car [i], sizeof (structural car), 1, fp2)! =0; I)

{

fwrite(& amp; car[i],sizeof(struct car), 1,FP);

}

fclose(FP);

fclose(fp2);

fp2=fopen("bookl.txt "," w ");

fclose(fp2);

Printf ("Press any key to return \ n");

getch();

Return;

}

other

{

Printf ("Press any key to return \ n");

getch();

Return;

}

}

addcar()

{

FILE * fp

int I = 0;

fp=fopen("car.txt "," a ");

Printf ("Please enter the card number \ n");

Scanf("%d ",& Auto [me]. carnum);

Printf ("Please enter student name \ n");

scanf("%s ",car[i].student name);

Printf ("Please enter a class \ n");

Scanf("%d ",& Auto [me]. );

fwrite(& amp; car[i],sizeof(struct car), 1,FP);

fclose(FP);

Printf ("After input, any key will be returned \ n");

getch();

}