日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

图书馆管理系统

發布時間:2023/12/19 综合教程 26 生活家
生活随笔 收集整理的這篇文章主要介紹了 图书馆管理系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/*模擬圖書館管理系統。每名讀者只能借一本書,讀者可借書或還書。管理員可對圖書和讀者信息進行錄入、修改和刪除。
圖書信息至少應包括:編號、書名、數量。
讀者信息至少應包括:編號、姓名、所借圖書。
可根據圖書名稱或編號進行圖書信息查詢,可查詢某本書現在被哪些讀者借走。*/

/*創建兩個txt文件,1、reader.txt 2、book.txt

1 凌霄 0
2 楊逗比 0
3 腳大神 0
4 胡笳 0

1 平凡的世界 10
2 瓦爾登湖 10
3 曼德拉傳 10

*/

#include<stdio.h>
#include<string.h>

#define MAX 100

struct reader
{
int number;
char name[MAX];
int bookborrowed;
}
READER;
struct book
{
int num;
char name[MAX];
int amount;
}
BOOK;

int contents(void);//查詢書目
int reader_search(void);//讀者的查詢
int admin_search(void);//管理員的查詢
int enter_reader(void);//錄入讀者信息
int enter_book(void);//錄入書籍信息
int conrrect_reader(void);//修改讀者信息
int conrrect_book(void);//修改書籍信息
int delet_reader(void);//刪除讀者信息
int delet_book(void);//刪除書籍信息
int swit(void);//管理員的選擇
int borrow(int readernum,int booknum);//借書的函數
int bring(void);//還書的函數

int main()
{
char readerenter;
char pass[8],c;
printf("管理員請輸入password,讀者請回車
");
gets(pass);
if(strcmp(pass,"password") == 0)
{
//管理員的諸項操作
swit();
}
else
{
//讀者的諸項操作
printf("回車查詢書目,輸入“B”還書,其他輸入查詢詳細信息
");
readerenter = getchar();
if(readerenter == '
')
{
contents();
}
else if(readerenter == 'B')
{
bring();
}
else
{
reader_search();
}
}
return 0;
}

int contents(void)//查詢書目
{
char agree;
char line[MAX];
FILE *book;
if((book = fopen("book.txt","r")) == NULL)
printf("無書籍信息
");
else
printf("編號 書名 數量
");
while(1)
{
fgets(line,MAX,book);
if(feof(book))
break;
printf("%s",line);
}
fclose(book);
printf("借閱請輸入“Y”
");
agree = getchar();
if(agree == 'Y')
reader_search();
return 0;
}

int reader_search(void)//讀者的查詢
{
//輸入編號或書名,查詢書籍信息
FILE *book;
FILE *reader;
int choose = 0,booknum,readernum,key = 0;
char booknam[MAX],line[MAX],c;
printf("請輸入:
1.編號
2.書名
");
while(choose != 1 && choose != 2)
scanf("%d",&choose);
book = fopen("book.txt","r");
reader = fopen("reader.txt","r");
if(choose == 1)
{
printf("請輸入書籍編號
");
scanf("%d",&booknum);
while(!feof(book))
{
fscanf(book,"%d%20s%10d
",&BOOK.num,&BOOK.name,&BOOK.amount);
if(booknum == BOOK.num )
{
printf("編號 書名 數量
");
printf("%d%20s%10d
",BOOK.num,BOOK.name,BOOK.amount);
key = 1;
break;
}
}
}
if(choose == 2)
{
printf("請輸入書名
");
scanf("%s",booknam);
while(!feof(book))
{
fscanf(book,"%d%20s%10d
",&BOOK.num,&BOOK.name,&BOOK.amount);
if(strcmp(booknam,BOOK.name) == 0)
{
printf("編號 書名 數量
");
printf("%d%20s%10d
",BOOK.num,BOOK.name,BOOK.amount);
booknum = BOOK.num;
key = 1;
break;
}
}
}
if(key == 0)
{
printf("查無此書,請重新查詢
");
reader_search();
}
else
{
printf("查詢完畢,輸入“Y”重新查詢,回車借閱
");
getchar();
scanf("%c",&c);
if(c == 'Y')
reader_search();
else
{
printf("請輸入你的讀者編號
");
scanf("%d",&readernum);
while(READER.number == readernum)
{
fscanf(reader,"%d%20s%d
",&READER.number,&READER.name,&READER.bookborrowed);
}
if(READER.bookborrowed != 0)
{
printf("請先還書
");
return 1;
}
else
{
printf("編號 姓名 借閱
");
printf("%d%20s%10d
",READER.number,READER.name,BOOK.num);
}
}
fclose(reader);
fclose(book);
borrow(readernum,booknum);
}
return 0;
}

int admin_search(void)//管理員的查詢
{
//輸入編號,查詢書籍信息和借閱情況
FILE *book;
FILE *reader;
int choose = 0,booknum,readernum,key = 0;
char booknam[MAX],line[MAX],c;
printf("請輸入:
1.編號
2.書名
");
while(choose != 1 && choose != 2)
scanf("%d",&choose);
book = fopen("book.txt","r");
reader = fopen("reader.txt","r");
if(choose == 1)
{
printf("請輸入書籍編號
");
scanf("%d",&booknum);
while(!feof(book))
{
fscanf(book,"%d%20s%10d
",&BOOK.num,&BOOK.name,&BOOK.amount);
if(booknum == BOOK.num )
{
printf("編號 書名 數量
");
printf("%d%20s%10d
",BOOK.num,BOOK.name,BOOK.amount);
key = 1;
break;
}
}
}
if(choose == 2)
{
printf("請輸入書名
");
scanf("%s",booknam);
while(!feof(book))
{
fscanf(book,"%d%20s%10d
",&BOOK.num,&BOOK.name,&BOOK.amount);
if(strcmp(booknam,BOOK.name) == 0)
{
printf("編號 書名 數量
");
printf("%d%20s%10d
",BOOK.num,BOOK.name,BOOK.amount);
booknum = BOOK.num;
key = 1;
break;
}
}
}
if(key == 0)
{
printf("查無此書,請重新查詢
");
admin_search();
}
else
{
printf("這些人借了這本書
");
while(!feof(reader))
{
fscanf(reader,"%d%20s%d
",&READER.number,&READER.name,&READER.bookborrowed);
if(READER.bookborrowed == booknum)
{
printf("%d%20s%10d
",READER.number,READER.name,BOOK.num);
}
}
}
swit();
return 0;
}

int enter_reader(void)//錄入讀者信息
{
FILE *reader;
char agree,temp[MAX];
int num;
reader = fopen("reader.txt","r+");
printf("請輸入新增的讀者信息(姓名 所借圖書編號)
");
scanf("%s %d",&READER.name,&READER.bookborrowed);
while(!feof(reader))
fscanf(reader,"%d%20s%d
",&READER.number,temp,num);
fprintf(reader,"%d%20s%10d
",READER.number+1,READER.name,READER.bookborrowed);
printf("回到選擇操作面板請輸入“Y”
");
getchar();
agree = getchar();
if(agree == 89)
swit();
fclose(reader);
return 0;
}

int enter_book(void)//錄入書籍信息
{
FILE *book;
char agree,temp[MAX];
int num;
book = fopen("book.txt","r+");
printf("請輸入新增的書籍信息(書名 數目)
");
scanf("%s %d",&BOOK.name,&BOOK.amount);
while(!feof(book))
fscanf(book,"%d%20s%d
",&BOOK.num,temp,&num);
fprintf(book,"%d%20s%10d
",BOOK.num+1,BOOK.name,BOOK.amount);
printf("回到選擇操作面板請輸入“Y”
");
getchar();
agree = getchar();
if(agree == 89)
swit();
fclose(book);
return 0;
}

int conrrect_reader(void)//修改讀者信息
{
int readernum,bookborrowed;
char readername[MAX];
FILE *reader = fopen("reader.txt","r");
FILE *rereader = fopen("rereader.txt","w");
printf("請輸入要修改的讀者的編號
");
scanf("%d",&readernum);
printf("請輸入該讀者新的信息(姓名 所借圖書的編號)
");
scanf("%s %d",&readername,&bookborrowed);
while(!feof(reader))
{
fscanf(reader,"%d%20s%10d
",&READER.number,&READER.name,&READER.bookborrowed);
if(readernum != READER.number)
fprintf(rereader,"%d%20s%10d
",READER.number,READER.name,READER.bookborrowed);
else
fprintf(rereader,"%d%20s%10d
",READER.number,readername,bookborrowed);
}
printf("操作成功!
");
fclose(reader);
fclose(rereader);
remove("reader.txt");
rename("rereader.txt","reader.txt");
return 0;
}

int conrrect_book(void)//修改書籍信息
{
int booknum,bookamount;
char bookname[MAX];
FILE *book = fopen("book.txt","r");
FILE *rebook = fopen("rebook.txt","w");
printf("請輸入要修改的書籍的編號
");
scanf("%d",&booknum);
printf("請輸入該書籍新的信息(書名 數量)
");
scanf("%s %d",&bookname,&bookamount);
while(!feof(book))
{
fscanf(book,"%d%20s%10d
",&BOOK.num,&BOOK.name,&BOOK.amount);
if(booknum != READER.number)
fprintf(rebook,"%d%20s%10d
",BOOK.num,BOOK.name,BOOK.amount);
else
fprintf(rebook,"%d%20s%10d
",BOOK.num,bookname,bookamount);
}
printf("操作成功!
");
fclose(book);
fclose(rebook);
remove("book.txt");
rename("rebook.txt","book.txt");
return 0;
}

int delet_reader(void)//刪除讀者信息
{
int readernum;
FILE *reader = fopen("reader.txt","r");
FILE *rereader = fopen("rereader.txt","w");
printf("請輸入要刪除的讀者的編號
");
scanf("%d",&readernum);
while(!feof(reader))
{
fscanf(reader,"%d%20s%10d
",&READER.number,&READER.name,&READER.bookborrowed);
if(readernum != READER.number)
fprintf(rereader,"%d%20s%10d
",READER.number,READER.name,READER.bookborrowed);
else
;
}
printf("操作成功!
");
fclose(reader);
fclose(rereader);
remove("reader.txt");
rename("rereader.txt","reader.txt");
return 0;
}

int delet_book(void)//刪除書籍信息
{
int booknum;
FILE *book = fopen("book.txt","r");
FILE *rebook = fopen("rebook.txt","w");
printf("請輸入要刪除的書籍的編號
");
scanf("%d",&booknum);
while(!feof(book))
{
fscanf(book,"%d%20s%10d
",&BOOK.num,&BOOK.name,&BOOK.amount);
if(booknum != BOOK.num)
fprintf(rebook,"%d%20s%10d
",BOOK.num,BOOK.name,BOOK.amount);
else
;
}
printf("操作成功!
");
fclose(book);
fclose(rebook);
remove("book.txt");
rename("rebook.txt","book.txt");
return 0;
}

int swit(void){
int handle = 0;
printf("請輸入您要進行的操作的編號:
1.查詢書籍信息
2.錄入讀者信息
3.錄入書籍信息
4.修改讀者信息
5.修改書籍信息
6.刪除讀者信息
7.刪除書籍信息
8.退出
");
scanf("%d",&handle);
getchar();
switch(handle)
{
case 1:admin_search();
break;
case 2:enter_reader();
break;
case 3:enter_book();
break;
case 4:conrrect_reader();
break;
case 5:conrrect_book();
break;
case 6:delet_reader();
break;
case 7:delet_book();
break;
case 8:
return 0;
default:printf("輸入錯誤,請重新輸入:
");
swit();
break;
};
return 0;
}

int borrow(int readernum,int booknum)
{
int flag = 1;
FILE *reader = fopen("reader.txt","r");
FILE *rereader = fopen("rereader.txt","w");
FILE *book = fopen("book.txt","r");
FILE *rebook = fopen("rebook.txt","w");
while(!feof(book))
{
fscanf(book,"%d%20s%10d
",&BOOK.num,&BOOK.name,&BOOK.amount);
if(booknum != BOOK.num)
fprintf(rebook,"%d%20s%10d
",BOOK.num,BOOK.name,BOOK.amount);
else if(BOOK.amount == 0)
{
printf("書已被借光
");
flag = 0;
fprintf(rebook,"%d%20s%10d
",BOOK.num,BOOK.name,BOOK.amount);
}
else
fprintf(rebook,"%d%20s%10d
",BOOK.num,BOOK.name,BOOK.amount-1);
}
while(!feof(reader))
{
fscanf(reader,"%d%20s%10d
",&READER.number,&READER.name,&READER.bookborrowed);
if(readernum != READER.number)
fprintf(rereader,"%d%20s%10d
",READER.number,READER.name,READER.bookborrowed);
else if(!flag)
fprintf(rereader,"%d%20s%10d
",READER.number,READER.name,READER.bookborrowed);
else
fprintf(rereader,"%d%20s%10d
",READER.number,READER.name,booknum);

}
if(flag)
printf("借閱成功!
");
fclose(reader);
fclose(rereader);
remove("reader.txt");
rename("rereader.txt","reader.txt");
fclose(book);
fclose(rebook);
remove("book.txt");
rename("rebook.txt","book.txt");
}

int bring(void)
{
int readernum,booknum,flag = 1;
printf("請輸入你的讀者編號
");
scanf("%d",&readernum);
FILE *reader = fopen("reader.txt","r");
FILE *rereader = fopen("rereader.txt","w");
FILE *book = fopen("book.txt","r");
FILE *rebook = fopen("rebook.txt","w");
while(!feof(reader))
{
fscanf(reader,"%d%20s%10d
",&READER.number,&READER.name,&READER.bookborrowed);
if(readernum != READER.number)
fprintf(rereader,"%d%20s%10d
",READER.number,READER.name,READER.bookborrowed);
else if(READER.bookborrowed == 0)
{
printf("您不需要還書
");
fprintf(rereader,"%d%20s%10d
",READER.number,READER.name,READER.bookborrowed);
flag = 0;
}
else
{
fprintf(rereader,"%d%20s%10d
",READER.number,READER.name,0);
booknum = READER.bookborrowed;
}
}
while(!feof(book))
{
fscanf(book,"%d%20s%10d
",&BOOK.num,&BOOK.name,&BOOK.amount);
if(booknum != BOOK.num)
fprintf(rebook,"%d%20s%10d
",BOOK.num,BOOK.name,BOOK.amount);
else if(!flag)
fprintf(rebook,"%d%20s%10d
",BOOK.num,BOOK.name,BOOK.amount);
else
fprintf(rebook,"%d%20s%10d
",BOOK.num,BOOK.name,BOOK.amount+1);
}
if(flag)
printf("還書成功!
");
fclose(reader);
fclose(rereader);
remove("reader.txt");
rename("rereader.txt","reader.txt");
fclose(book);
fclose(rebook);
remove("book.txt");
rename("rebook.txt","book.txt");
}

總結

以上是生活随笔為你收集整理的图书馆管理系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。