當前位置:編程學習大全網 - 源碼下載 - C++圖書管理源代碼請幫忙填寫!!!!

C++圖書管理源代碼請幫忙填寫!!!!

# include & ltstdio.h & gt

# include & ltstring.h & gt

# include & ltconio.h & gt

# include & ltstdlib.h & gt

# include & ltctype.h & gt

#define STACK_INIT_SIZE 10

#定義OK 1

#定義真1

#定義假0

#定義錯誤0

結構student/*定義了學生類型,用於存儲借出的書籍*/

{

int carnum

char lend book[10];

}學生[1000];

結構員工/*定義員工類型*/

{

int employnum

char employ name[15];

int employage

char employex[2];

char employ leve[10];

long int employtage

}雇傭[50];

Struct book /*定義了書的類型*/

{

int booknum

char bookname[10];

char book creat[10];

int turefalse/*圖書借還模塊判斷圖書是否借出的條件*/

} book[1000];

Struct car /*圖書館卡的數據類型*/

{

int carnum

char student name[10];

int studentclass

}車[100];

Huanbook() /*返回函數*/

{

FILE *fp,* fp2/*定義兩個文件指針。fp2用於在修改數據時建立臨時文件,防止數據被破壞*/

int i,n;

int carnum

char lend book[10];

Printf("請輸入您的卡號\ n ");

scanf("%d ",& ampcarnum);

fp=fopen("car.txt "," r ");/*讀取卡號記錄*/

for(I = 0;弗雷德(& ampcar[i],sizeof(struct car),1,fp)!=0;I++) /*for循環判斷卡號是否存在*/

{

如果(車[我]。carnum==carnum) /*卡號存在,下壹個周期*/

{

n = I;

fclose(FP);

Printf("請輸入您要歸還的圖書名稱\ n ");

scanf("%s ",lend book);

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

for(I = 0;弗雷德(& amp學生[i],sizeof(結構學生),1,fp)!=0;I++) /*判斷輸入的圖書是否被借閱*/

{

If (strcmp (student [I])。Lendbook,Lendbook) = = 0)/*借書,進入下壹個循環,否則顯示錯誤*/

{

fclose(FP);

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

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

for(I = 0;弗雷德(& amp學生[i],sizeof(結構學生),1,fp)!=0;i++)

{

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

{

繼續;/*刪除還書的借閱記錄*/

}

fwrite(& amp;student[i],sizeof(struct student),1,fp2);/*寫下沒有歸還的書的記錄*/

}

fclose(FP);

fclose(fp2);

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

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

for(I = 0;弗雷德(& amp學生[i],sizeof(結構學生),1,fp2)!=0;i++)

{

fwrite(& amp;學生[i],sizeof(結構學生),1,FP);/*寫回圖書借閱記錄信息*/

}

fclose(FP);

fclose(fp2);

fopen("bookl.txt "," w ");/*清除臨時文件的記錄*/

fclose(fp2);

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

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

for(I = 0;弗雷德(& ampbook[i],sizeof(結構書),1,fp)!=0;I++) /*將書的記錄寫入臨時文件,防止之前的記錄被修改信息破壞*/

{

如果(i==n)

{

書[我]。ture false = 1;

fwrite(& amp;book[i],sizeof(struct book),1,fp2);/*將還書的原始狀態設置為無人借閱*/

繼續;

}

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;弗雷德(& ampbook[i],sizeof(結構書),1,fp2)!=0;i++)

{

fwrite(& amp;book[i],sizeof(struct book),1,FP);/*將臨時文件寫回*/

}

fclose(FP);

fclose(fp2);

fopen("bookl.txt "," w ");/*清除臨時文檔*/

fclose(fp2);

Printf("還書,按任意鍵返回\ n ");

getch();

返回1;

}

}

Printf("妳沒有借這樣的書,按任意鍵返回\ n ");/*錯誤提示*/

fclose(FP);

getch();

返回0;

}

}

Printf("系統中沒有此卡,請聯系管理員,按任意鍵返回\ n ");/*錯誤提示*/

fclose(FP);

getch();

}

findbook()

{

FILE * fp

char bookname[10];

int ture,我;

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

Printf("請輸入您要找的書的書名\ n ");

scanf("%s ",圖書名稱);

for(I = 0;弗雷德(& ampbook[i],sizeof(結構書),1,fp)!=0;i++)

{

if(strcmp(bookname,book[i])。圖書名稱)==0)

{

如果(書[我]。turefalse==1)

{

Printf("這本書的詳細信息是:%d %s %s這本書沒有被借走\ n按任意鍵返回\ n ",Book [i]。Booknum,Book [i]。書名,書[i]。bookcreat);

}

Else {printf("本書已被借出\ n ");fclose(FP);返回0;}

fclose(FP);

返回FALSE

}

}

Printf("沒有您要查詢的書籍\ n ");

fclose(FP);

返回FALSE

}

findbook1()

{

FILE * fp

char book creat[10];

int ture,我;

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

Printf("請輸入您要查找的作者的姓名\ n ");

scanf("%s ",bookcreat);

for(I = 0;弗雷德(& ampbook[i],sizeof(結構書),1,fp)!=0;i++)

{

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

{

如果(書[我]。turefalse==1)

{

Printf("這本書的詳細信息是:%d %s %s這本書沒有被借走\ n按任意鍵返回\ n ",Book [i]。Booknum,Book [i]。書名,書[i]。bookcreat);

}

Else {printf("本書已被借出\ n ");fclose(FP);返回0;}

fclose(FP);

返回FALSE

}

}

Printf("沒有您要查詢的書籍\ n ");

fclose(FP);

返回FALSE

}

lendcount()

{

FILE * fp

int i,n = 0;

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

for(I = 0;弗雷德(& amp學生[i],sizeof(結構學生),1,fp)!=0;i++)

{

Printf("卡號為%d的書:% s \ n ",學生[i]。卡努姆,學生[我]。lend book);

n = n+1;

}

fclose(FP);

Printf ("* *目前已借出%d本書\n ",n);

Printf("按任意鍵\ n ");

getch();

返回n;

}

查布克()

{

char ch5

{

Printf (" -歡迎使用圖書查詢系統!-\ n ");

printf(" 1:& lt;按標題搜索> \ n ");

printf(" 2:& lt;按作者搜索> \ n ");

printf(" 0:& lt;返回到> \ n ");

Printf("請輸入0-2,其他輸入不合法!\ n ");

scanf("%s ",& ampch5);

開關(ch5)

{

case ' 1 ':find book();getch();打破;

案例“2”:findbook 1();getch();打破;

大小寫“0”:break;

默認值:printf("無此操作\ n ");getch();打破;

}

}while(ch5!='0');

返回FALSE

}

lendbook()

{

FILE *fp,* fp2

int i,n;

int carnum

Printf("請輸入您的卡號\ n ");

scanf("%d ",& ampcarnum);

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

for(I = 0;弗雷德(& ampcar[i],sizeof(struct car),1,fp)!=0;i++)

{

如果(車[我]。卡號= =卡號)

{

n = I;

fclose(FP);

Printf("請輸入妳想借的書的名字\ n ");

scanf("%s ",學生[n]。lend book);

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

for(I = 0;弗雷德(& ampbook[i],sizeof(結構書),1,fp)!=0;i++)

{

if(strcmp(書[i])。書名,學生[n]。lendbook)==0)

{

如果(書[我]。true false = = 0){ printf("對不起,這本書已經借出,請借其他書\ n ");fclose(FP);getch();返回;}

其他

fclose(FP);

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

學生。carnum = carnum

fwrite(& amp;學生[n],sizeof(結構學生),1,FP);

fclose(FP);

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

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

for(I = 0;弗雷德(& ampbook[i],sizeof(結構書),1,fp)!=0;i++)

{

if(strcmp(書[i])。書名,學生[n]。lendbook)==0)

{

書[我]。ture false = 0;

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

繼續;

}

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;弗雷德(& ampbook[i],sizeof(結構書),1,fp2)!=0;i++)

{

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

}

fclose(FP);

fclose(fp2);

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

fclose(fp2);

Printf("借書後按任意鍵返回\ n ");

getch();

返回;

}

}

Printf("沒有這樣的書,按任意鍵返回\ n ");

fclose(FP);

getch();

返回;

}

}

Printf("您的卡號不存在,請辦理新卡,按任意鍵返回\ n ");

fclose(FP);

getch();

}

汽車計數()

{

FILE * fp

int i,n = 0;

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

for(I = 0;弗雷德(& ampcar[i],sizeof(struct car),1,fp)!=0;i++)

{

Printf("卡%d

n = n+1;

}

fclose(FP);

Printf("目前* * *有%d本書\n ",n);

Printf("按任意鍵\ n ");

getch();

}

德爾卡爾()

{

FILE *fp,* fp2

int I;

int carnum

char選擇;

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

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

Printf("請輸入您要刪除的卡號\ n ");

Printf("如果您輸入的卡號存在,系統會自動刪除信息!如果不存在,系統不會做任何更改\ n ");

scanf("%d ",& ampcarnum);

for(I = 0;弗雷德(& ampcar[i],sizeof(struct car),1,fp)!=0;i++)

{

如果(車[我]。卡努姆。=carnum)

{

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

}

}

fclose(FP);

fclose(fp2);

Printf("妳確定要刪除這張卡嗎?刪除後,本書所有信息無法恢復為Y/N \ N”);

scanf("%s ",& amp選擇);

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

{

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

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

for(I = 0;弗雷德(& amp汽車[i],sizeof(結構汽車),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("按任意鍵返回\ n ");

getch();

返回;

}

其他

{

Printf("按任意鍵返回\ n ");

getch();

返回;

}

}

addcar()

{

FILE * fp

int I = 0;

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

Printf("請輸入卡號\ n ");

scanf("%d ",& amp汽車[我]。carnum);

Printf("請輸入學生姓名\ n ");

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

Printf("請輸入類\ n ");

scanf("%d ",& amp汽車[我]。student class);

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

fclose(FP);

Printf("輸入後,任何鍵都會返回\ n ");

getch();

}

  • 上一篇:本地搭建robotframework + allure 遇到的問題
  • 下一篇:雨林木風的創始人是誰
  • copyright 2024編程學習大全網