C課程設(shè)計(jì)報(bào)告圖書管理系統(tǒng)_第1頁(yè)
C課程設(shè)計(jì)報(bào)告圖書管理系統(tǒng)_第2頁(yè)
C課程設(shè)計(jì)報(bào)告圖書管理系統(tǒng)_第3頁(yè)
C課程設(shè)計(jì)報(bào)告圖書管理系統(tǒng)_第4頁(yè)
C課程設(shè)計(jì)報(bào)告圖書管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

年4月19日C課程設(shè)計(jì)報(bào)告圖書管理系統(tǒng)文檔僅供參考C語(yǔ)言課程設(shè)計(jì)報(bào)告:圖書管理系統(tǒng)系統(tǒng)需求一、新書入庫(kù):圖書信息包括書名,書號(hào),庫(kù)存量,現(xiàn)存量共4項(xiàng).首先輸入3本書的信息,并將其存入文件”book.dat”中.當(dāng)有新書入庫(kù)時(shí),先判斷文件中是否有此書(即比較書名),若有則修改庫(kù)存量,現(xiàn)存量的信息;若無(wú)此書,則將該書的信息添加到文件中.二、圖書查詢:輸入一個(gè)書號(hào),在文件中查找此書,若找到則輸出此書的全部信息;若找不到則輸出查找失敗的信息.三、借閱管理每個(gè)讀者的信息包括姓名,編號(hào),1張借書卡(限借一本書),輸入3個(gè)讀者的信息存入文件“reader.dat”中.借書登記:輸入讀者的編號(hào),所借圖書的書號(hào),先判斷姓名是否在文件”reader.dat”中,若有則將書號(hào)存入一張借書卡上(注:初始時(shí)借書卡的信息都為零,借書后借書卡的信息改為所借書的書號(hào)),并修改文件”reader.dat”的相應(yīng)內(nèi)容,同時(shí)修改文件”book.dat”中此書的現(xiàn)存量.若”reader.dat”無(wú)此姓名,則應(yīng)提示錯(cuò)誤還書管理:輸入讀者的編號(hào),所還圖書的書號(hào),將借書卡的信息置為零,并修改文件”reader.dat”的相應(yīng)內(nèi)容,同時(shí)修改文件”book.dat”中此書的現(xiàn)存量.四、輸出全部圖書信息和全部讀者信息五、退出系統(tǒng).六、附加說明:系統(tǒng)將來完善的功能有:添加讀者,一位讀者可同時(shí)借閱和歸還多本圖書等總體設(shè)計(jì)仔細(xì)閱讀系統(tǒng)要求,首先將此系統(tǒng)化分為如下模塊(即如下函數(shù))新書入庫(kù)模塊:可用一個(gè)函數(shù)insert_new_book(charbook_num[],charbook_name[],intnumber)來實(shí)現(xiàn)。形參分別為:書名,書號(hào),以及有多少本書要入庫(kù),再根據(jù)要求將信息寫入文件boot.dat中。又由于最開始要輸入三本新書,故能夠加一個(gè)初始化函數(shù)init_book(),可是初始化函數(shù)只執(zhí)行一次,也就是在系統(tǒng)第一次運(yùn)行的時(shí)候執(zhí)行,此時(shí)能夠根據(jù)判斷是否存在boot.dat這個(gè)文件來決定是否執(zhí)行初始化函數(shù).查詢模塊:可用一個(gè)函數(shù)voidfind_book(charbook_num[])來實(shí)現(xiàn)。找到就輸出此書全部信息,找不到就輸出查找失敗信息。借閱管理模塊:三個(gè)讀者的信息能夠在系統(tǒng)初始化時(shí)完成.即可用初始化函數(shù)init_reader()來實(shí)現(xiàn)對(duì)讀者的初始化。因?yàn)樽x者初始化函數(shù)也只是在系統(tǒng)第一次運(yùn)行的時(shí)候執(zhí)行一次,故也能夠根據(jù)是否存在reader.dat文件來確定是否執(zhí)行此函數(shù)。(到現(xiàn)在能夠發(fā)現(xiàn)在系統(tǒng)初始化函數(shù)里,至少已經(jīng)需要調(diào)用兩個(gè)初始化函數(shù)了)借書登記模塊:可用一個(gè)函數(shù)borrow_book(charreader_num[],charbook_num[])來實(shí)現(xiàn)。在函數(shù)中要分別判斷A該讀者的編號(hào)是否已經(jīng)存在,如果不存在,則提示錯(cuò)誤。B該讀者的借閱書是否已滿(即最多只能借1本書)如果是,則提醒該用戶先去還書C輸出的書號(hào)對(duì)應(yīng)的書是否存在,如果不存在,則提醒讀者不存在此書。借書過程完成后,則對(duì)讀者信息里的借書信息寫上所借書號(hào),并修改庫(kù)存量。還書管理模塊:可用一個(gè)函數(shù)return_book(charreader_num[],charbook_num[])來實(shí)現(xiàn)。在實(shí)現(xiàn)此函數(shù)時(shí)要判斷:A該讀者的姓名是否已經(jīng)存在,如果不存在,則提示錯(cuò)誤。B該讀者是否已經(jīng)借閱此書。如果沒有,則提示錯(cuò)誤。C還書過程完成后,則對(duì)讀者信息里的借書信息清零,并修改庫(kù)存量。輸出圖書和讀者信息:可分別用模塊print_book()和print_reader()來實(shí)現(xiàn)直接從book.dat文件和reader.dat文件中讀取信息并輸出。退出系統(tǒng):可用一個(gè)函數(shù)exit()來實(shí)現(xiàn)。首先將信息保存到文件,釋放動(dòng)態(tài)創(chuàng)立的內(nèi)存空間,再退出此程序。圖書管理系統(tǒng)二、系統(tǒng)主模塊結(jié)構(gòu)圖:圖書管理系統(tǒng)退出系統(tǒng)新書入庫(kù)圖書查詢借書登記借書登記輸出讀者信息輸出圖書信息退出系統(tǒng)新書入庫(kù)圖書查詢借書登記借書登記輸出讀者信息輸出圖書信息詳細(xì)設(shè)計(jì)界面設(shè)計(jì)此系統(tǒng)界面采用圖形和數(shù)字化菜單設(shè)計(jì)。主界面設(shè)計(jì)如下:圖書管理系統(tǒng)圖書管理系統(tǒng)主菜單請(qǐng)選擇相應(yīng)的數(shù)字執(zhí)行相應(yīng)的功能:0:退出此系統(tǒng)1:新書入庫(kù)2:圖書查詢3:借書登記4:還書管理5:輸出全部圖書信息和讀者信息各子界面如下:新書入庫(kù)界面:請(qǐng)選擇相應(yīng)的數(shù)字執(zhí)行相應(yīng)的功能:10:返回主菜單11:新書入庫(kù)請(qǐng)輸入新書名:請(qǐng)輸入新書號(hào):請(qǐng)輸入新書數(shù)量:(注:新書入庫(kù)成功后,程序返回到子界面1)圖書查詢界面界面:請(qǐng)選擇相應(yīng)的數(shù)字執(zhí)行相應(yīng)的功能:20:返回主菜單21:圖書查詢請(qǐng)輸入需要查詢的書號(hào):(注:圖書查詢完成后,返回到子界面2) ` 3、借書登記界面: 請(qǐng)選擇相應(yīng)的數(shù)字執(zhí)行相應(yīng)的功能:30:返回主菜單31:借書登記 請(qǐng)輸入讀者編號(hào):請(qǐng)輸入所借書號(hào):(注:借書過程完成后,返回到子界面3)` ` 4、還書管理:請(qǐng)選擇相應(yīng)的數(shù)字執(zhí)行相應(yīng)的功能:40:返回主菜單41:還書登記 請(qǐng)輸入讀者編號(hào):請(qǐng)輸入所借書號(hào):(注:還書過程完成后,返回到子界面4) 5、輸出全部圖書和讀者信息:請(qǐng)選擇相應(yīng)的數(shù)字執(zhí)行相應(yīng)的功能:50:返回主菜單51:輸出全部圖書信息:書號(hào)書名:庫(kù)存量現(xiàn)存量52:輸出全部讀者信息:讀者編號(hào)讀者姓名所借書號(hào)(注:輸出圖書和讀者信息后,返回到子界面5)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)程序中考慮到圖書信息和讀者信息中都包含有不同類型的數(shù)據(jù),故分別建立圖書和讀者兩種類型的結(jié)構(gòu)體;由于圖書和讀者的數(shù)量非固定,因此采用動(dòng)態(tài)鏈?zhǔn)酱鎯?chǔ)來實(shí)現(xiàn)。圖書類型:typedefstructbk{charbook_num[11];/*書號(hào)采用10位編碼最后1位為字符串結(jié)束標(biāo)志(下同).*/charbook_name[41];/*書名規(guī)定不超過40個(gè)字母(20個(gè)漢字)*/unsignedbook_kc,book_xc;/*book_kc代表庫(kù)存梁,book_xc代表現(xiàn)存量*/structbk*next;}book;讀者類型:typedefstructrd{charreader_num[11];/*讀者編號(hào)采用10位編碼*/charreader_name[11];/*讀者姓名*/charreader_book_num[11];/*表示所借書號(hào),初始值為“0”*/structbk*next;}reader;主要功能程序結(jié)構(gòu)設(shè)計(jì)1、系統(tǒng)主要結(jié)構(gòu)流程圖:開始開始否已做初始化否已做初始化初始化初始化是是退出系統(tǒng)退出系統(tǒng)0功能選擇功能選擇145132圖書查詢圖書查詢還書借書登記新書入庫(kù)還書借書登記新書入庫(kù)是入庫(kù)完否是入庫(kù)完否5152輸出讀者信息輸出圖書信息輸出讀者信息輸出圖書信息否(注:功能模塊2,3,4,5都類似功能模塊1,細(xì)節(jié)見下面?zhèn)€功能程序流程圖)2、新書入庫(kù)功能程序結(jié)構(gòu)圖開始開始輸入新書名、新書號(hào)和新書數(shù)量輸入新書名、新書號(hào)和新書數(shù)量是if(還有新書)if(還有新書)根據(jù)數(shù)量修改庫(kù)存已存在此新書是已存在此新書否結(jié)束(即返回主菜單)結(jié)束(即返回主菜單)否book.dat中增加此新書,根據(jù)數(shù)量設(shè)置庫(kù)存量3、圖書查詢程序結(jié)構(gòu)圖:輸入要查詢的書號(hào)開始輸入要查詢的書號(hào)開始是否存在此書是否存在此書輸入信息:此書不存在否輸入信息:此書不存在是輸入此書的全部信息輸入此書的全部信息結(jié)束(即返回主菜單)是否繼續(xù)查詢否是結(jié)束(即返回主菜單)是否繼續(xù)查詢4、借書登記程序結(jié)構(gòu)流程圖:是是否重輸否滿輸出出錯(cuò)信息否否是否重輸否滿輸出出錯(cuò)信息是否存在編號(hào)輸入讀者編號(hào)開始是否存在編號(hào)輸入讀者編號(hào)開始是是否還書借書卡是否滿是否還書借書卡是否滿提示不能借書是否提示不能借書否是進(jìn)入還書模塊進(jìn)入還書模塊輸入需要借的書號(hào)輸入需要借的書號(hào)結(jié)束(即返回主菜單)結(jié)束(即返回主菜單)書號(hào)存在否書號(hào)存在否否是否還有讀者借書借書登記,修改book.dat還有讀者借書中的現(xiàn)存信息,reader.dat中的借書卡信息是還書管理程序結(jié)構(gòu)圖:是否否是輸入還書的書的編號(hào)輸入還書的書的編號(hào)是否重輸否是否重輸核對(duì)書號(hào)錯(cuò)誤核對(duì)書號(hào)進(jìn)入查詢模塊輸出出錯(cuò)信息是否存在編號(hào)輸入讀者編號(hào)開始是否重輸否滿正確進(jìn)入查詢模塊輸出出錯(cuò)信息是否存在編號(hào)輸入讀者編號(hào)開始是否重輸否滿還書將讀者信息借書卡清0修改book.dat現(xiàn)存信息還有讀者還書否還有讀者還書結(jié)束(即返回主菜單)是結(jié)束(即返回主菜單)6、輸出讀者和圖書信息開始開始選擇輸出圖書還是讀者信息選擇輸出圖書還是讀者信息輸出全部讀者信息圖書輸出全部讀者信息圖書結(jié)束(即返回主菜單)結(jié)束(即返回主菜單)輸出全部圖書信息輸出全部圖書信息四、文件存儲(chǔ)路徑。 可執(zhí)行文件tsglxt.exe及book.dat、reader.dat,都存儲(chǔ)在c:\tsgl文件夾下。程序代碼:#include<stdio.h>#include<graphics.h>/*圖形函數(shù)頭文件*/#include<math.h>#include<string.h>typedefstructbk{charbook_num[11];charbook_name[41];intbook_kc;intbook_xc;structbk*next; }book;/*圖書信息*/typedefstructrd{charreader_num[11];charreader_name[11];charreader_book_num[11];structrd*next; }reader;/*讀者信息*/structbk*h_book,*h_reader;/*全局變量,分別為指向圖書信息鏈表和讀者信息鏈表的頭指針*/voidForm_Insert_New_Book();/*新書入庫(kù)菜單*/voidForm_Find_Book();/*查詢圖書菜單*/voidForm_Borrow_Book();/*借書菜單*/voidForm_Return_Book();/*還書菜單*/voidFind_Book(char*);/*查詢圖書*/voidInsert_New_Book(char*,char*,int);/*新書入庫(kù),即在鏈表中插入一個(gè)新節(jié)點(diǎn)*/voidBorrow_Book(char*,char*);/*借書,修改讀者借閱信息和圖書的現(xiàn)存信息*/voidReturn_Book(char*,char*);/*還書,修改讀者借閱信息和圖書的現(xiàn)存信息*/voidprint_book(structbk*);/*輸出全部圖書信息*/voidprint_reader(structrd*);/*輸出全部讀者信息*/voidload_data();/*從文件中讀取數(shù)據(jù),鏈表頭指針指向第一個(gè)節(jié)點(diǎn)*/voidinit_reader();/*第一次運(yùn)行程序時(shí)對(duì)三個(gè)讀者的初始化*/voidinit_book();/*第一次運(yùn)行程序時(shí)對(duì)三本圖書的初始化*/voidsave();/*將鏈表中的信息保存到文件中*/voidM_Form()/*主菜單*/{charch;printf("\n圖書管理系統(tǒng)主窗口");printf("\n0:退出系統(tǒng)");printf("\n1:新書入庫(kù)");printf("\n2:圖書查詢");printf("\n3:借書登記");printf("\n4:還書管理");printf("\n5:輸出全部信息");do{/*此循環(huán)用來保證選擇正確的數(shù)字鍵執(zhí)行相應(yīng)的功能*/printf("\n\n請(qǐng)選擇相應(yīng)的功能代碼:");scanf("%c",&ch);fflush(stdin);/*用于清楚鍵盤緩沖區(qū)中的多余字符*/}while(ch!='0'&&ch!='1'&&ch!='2'&&ch!='3'&&ch!='4'&&ch!='5');switch(ch)/*根據(jù)輸入的字符進(jìn)行選擇執(zhí)行相應(yīng)的模塊*/{case'0':exit(0);case'1':Form_Insert_New_Book();break;case'2':Form_Find_Book();break;case'3':Form_Borrow_Book();break;case'4':Form_Return_Book();break;case'5':load_data();print_book(h_book);print_reader(h_reader);M_Form();default:printf("error\n");exit(0);}}voidForm_Find_Book(){charch;charbook_num[11];printf("\n圖書查詢功能模塊,請(qǐng)選擇相應(yīng)的功能代碼:\n");printf("0:返回到主菜單\n");printf("1:圖書查詢");do{printf("\n\n請(qǐng)選擇相應(yīng)的功能代碼:");scanf("%c",&ch);fflush(stdin);}while(ch!='0'&&ch!='1');switch(ch){case'0':M_Form();break;/*選擇0,則返回到上一級(jí)目錄,即主菜單*/case'1':{printf("\n請(qǐng)輸入需要需要查詢的書的編號(hào):");scanf("%s",book_num);fflush(stdin);Find_Book(book_num);/*執(zhí)行查詢*/Form_Find_Book();/*查詢完畢后繼續(xù)返回到查詢窗口,執(zhí)行下一個(gè)查詢*/}default:printf("error\n");exit(0);}}voidFind_Book(charbook_num[])/*查詢圖書模塊,根據(jù)圖書編號(hào)查詢*/{structbk*p;p=h_book;while(p!=NULL&&strcmp(p->book_num,book_num)!=0)p=p->next;/*此循環(huán)用于查找,如果在中間找到,則p就不可能到末尾指向空*/if(p==NULL)printf("\n\t此編號(hào)對(duì)應(yīng)的圖書不存在!\n");else{printf("\n\t圖書編號(hào)\t圖書名\t庫(kù)存量\t現(xiàn)存量\n");printf("%10s\t%10s\t%d\t%d\t\n",p->book_num,p->book_name,p->book_kc,p->book_xc);}getch();}voidinit_book()/*初始化圖書模塊*/{bookba[3];FILE*fp;inti;printf("\n系統(tǒng)即將進(jìn)行初始化,圖書初始化模塊:\n");printf("\n請(qǐng)分別輸入三本書的書號(hào),書名,數(shù)量(以空格隔開):\n");for(i=0;i<3;i++)/*輸入3本圖書進(jìn)行初始化*/scanf("%s%s%d",ba[i].book_num,ba[i].book_name,&ba[i].book_kc);for(i=0;i<3;i++){ba[i].book_xc=ba[i].book_kc;}/*開始時(shí)庫(kù)存=現(xiàn)存*/if((fp=fopen("book.dat","wb"))==NULL)/*建立新文件book.dat準(zhǔn)備寫入數(shù)據(jù)*/{printf("不能建立圖書文件,初始化失?。≌?qǐng)重新啟動(dòng)系統(tǒng)!\n");return;}for(i=0;i<3;i++)/*將初始化的3本圖書寫入文件book.dat中*/{if(fwrite(&ba[i],sizeof(structbk),1,fp)!=1){printf("\寫數(shù)據(jù)錯(cuò)誤!\n");exit(0);}}fclose(fp);}voidinit()/*對(duì)圖形函數(shù)、圖書信息、讀者信息進(jìn)行初始化(本程序中暫且沒有用圖形函數(shù))*/{intdrive=DETECT,mode=0;initgraph(&drive,&mode,"");init_book();init_reader();}voidInsert_New_Book(charbook_num[],charbook_name[],intnumber)/*增加1本新書,讀入新書的名稱、編號(hào)和數(shù)量*/{structbk*book_fp;structbk*p,*q,*t;q=p=h_book;while(p!=NULL&&strcmp(p->book_num,book_num)!=0){q=p;p=p->next;}if(strcmp(p->book_num,book_num)==0){printf("\n\t\t此編號(hào)已經(jīng)存在,請(qǐng)重新輸入!\n");return;}t=(structbk*)malloc(sizeof(structbk));strcpy(t->book_num,book_num);strcpy(t->book_name,book_name);t->book_kc=t->book_xc=number;q->next=t;t->next=NULL;if((book_fp=fopen("book.dat","ab"))==NULL){printf("不能建立圖書文件,初始化失??!請(qǐng)重新啟動(dòng)系統(tǒng)!\n");return;}/*將新書信息添加到文件中*/fwrite(t,sizeof(structbk),1,book_fp);fclose(book_fp);}voidprint_book(structbk*h)/*輸出圖書信息*/{structbk*p;p=h;printf("\n\t圖書編號(hào)\t圖書名\t庫(kù)存量\t現(xiàn)存量\n");while(p!=NULL){printf("%10s\t%10s%10d\t%10d\n",p->book_num,p->book_name,p->book_kc,p->book_xc);p=p->next;}}voidprint_reader(structrd*h)/*輸出讀者信息*/{structrd*p;p=h;printf("\n\t讀者編號(hào)\t讀者姓名\t所借書號(hào)\n");while(p!=NULL){printf("%10s\t%10s%10s\n",p->reader_num,p->reader_name,p->reader_book_num);p=p->next;}getch();}voidForm_Borrow_Book()/*借書菜單界面*/{charch;charbook_num[11],reader_num[11];printf("\n圖書借閱功能模塊,請(qǐng)選擇相應(yīng)的功能代碼:\n");printf("0:返回到主菜單\n");printf("1:圖書借閱\n");do{printf("\n\n請(qǐng)選擇相應(yīng)的功能代碼:");scanf("%c",&ch);fflush(stdin);}while(ch!='0'&&ch!='1');switch(ch){case'0':M_Form();break;case'1':{printf("\n請(qǐng)輸入讀者編號(hào)與所借書編號(hào):(以空格分隔)");scanf("%s%s",reader_num,book_num);fflush(stdin);Borrow_Book(reader_num,book_num);/*調(diào)用借書函數(shù),執(zhí)行借書功能*/Form_Borrow_Book();/*借書完成后,程序返回到借書菜單*/}default:printf("error\n");exit(0);}}voidBorrow_Book(charreader_num[],charbook_num[])/*輸入讀者編號(hào),和需要借閱的書的編號(hào),執(zhí)行借書功能*/{structbk*book_p;structrd*reader_p;book_p=h_book;while(book_p!=NULL&&strcmp(book_p->book_num,book_num)!=0)book_p=book_p->next;if(book_p==NULL){printf("\n\t此編號(hào)對(duì)應(yīng)的圖書不存在!\n");Form_Borrow_Book();}reader_p=h_reader;while(reader_p!=NULL&&(strcmp(reader_p->reader_num,reader_num)!=0))reader_p=reader_p->next;if(reader_p==NULL){printf("\n\t此編號(hào)對(duì)應(yīng)的讀者不存在!\n");Form_Borrow_Book();}elseif(strcmp(reader_p->reader_book_num,"0")!=0){printf("\n\t已達(dá)到最大借閱數(shù),不能再借書!\n");Form_Borrow_Book();}else{book_p->book_xc=book_p->book_xc-1;/*借書完成后,修改現(xiàn)存量*/strcpy(reader_p->reader_book_num,book_p->book_num);/*修改讀者的借閱信息*/save();/*將修改后的信息保存到文件中*/load_data();/*讀入新文件中的數(shù)據(jù)*/}Form_Borrow_Book();/*程序執(zhí)行完畢后,返回到借書菜單界面*/}voidForm_Return_Book()/*還書菜單*/{charch;charbook_num[11],reader_num[11];printf("\n歸還圖書功能模塊,請(qǐng)選擇相應(yīng)的功能代碼:\n");printf("0:返回到主菜單\n");printf("1:歸還圖書\n");do{printf("\n\n請(qǐng)選擇相應(yīng)的功能代碼:");scanf("%c",&ch);fflush(stdin);}while(ch!='0'&&ch!='1');switch(ch){case'0':M_Form();break;case'1':{printf("\n請(qǐng)輸入讀者編號(hào)與所還書編號(hào):(以空格分隔)");scanf("%s%s",reader_num,book_num);fflush(stdin);Return_Book(reader_num,book_num);/*調(diào)用還書函數(shù)*/Form_Return_Book();}default:printf("error\n");exit(0);}}voidReturn_Book(charreader_num[],charbook_num[])/*輸入讀者編號(hào)和所還書編號(hào)執(zhí)行還書*/{structbk*book_p;structrd*reader_p;book_p=h_book;while(book_p!=NULL&&strcmp(book_p->book_num,book_num)!=0)book_p=book_p->next;if(book_p==NULL){printf("\n\t此編號(hào)對(duì)應(yīng)的圖書不存在!\n");Form_Return_Book();}reader_p=h_reader;while(reader_p!=NULL&&(strcmp(reader_p->reader_num,reader_num)!=0))reader_p=reader_p->next;if(reader_p==NULL){printf("\n\t此編號(hào)對(duì)應(yīng)的讀者不存在!\n");Form_Return_Book();}elseif(strcmp(reader_p->reader_book_num,book_num)!=0){printf("\n\t讀者沒有借閱此書\n");Form_Return_Book();}else{book_p->book_xc=book_p->book_xc+1;/*還書后,修改圖書庫(kù)存量*/strcpy(reader_p->reader_book_num,"0");/*還書后,修改讀者借閱信息*/save();/*保存到文件*/load_data();/*讀入文件中的數(shù)據(jù)*/}Form_Return_Book();}voidinit_reader()/*系統(tǒng)第一次運(yùn)行時(shí),初始化3位讀者信息,從鍵盤讀入*/{FILE*fp;readerra[3];inti;printf("\n系統(tǒng)即將進(jìn)行讀者初始化:\n");printf("\n請(qǐng)分別輸入三位讀者的編號(hào)和姓名(以空格隔開):\n");for(i=0;i<3;i++)scanf("%s%s",ra[i].reader_num,ra[i].reader_name);for(i=0;i<3;i++)strcpy(ra[i].reader_book_num,"0");if((fp=fopen("reader.dat","wb"))==NULL){printf("不能建立讀者文件,初始化失敗!請(qǐng)重新啟動(dòng)系統(tǒng)!\n");return;}for(i=0;i<3;i++)/*將3位讀者信息寫入文件*/{if(fwrite(&ra[i],sizeof(structrd),1,fp)!=1){printf("\寫數(shù)據(jù)錯(cuò)誤!\n");exit(0);}}}voidForm_Insert_New_Book()/*添加新書菜單*/{charch;structbkt;printf("\n新書入庫(kù)功能模塊,請(qǐng)選擇相應(yīng)的功能代碼:\n");printf("0:返回到主菜單\n");printf("1:新書入庫(kù)");do{printf("\n\n請(qǐng)選擇相應(yīng)的功能代碼:");scanf("%c",&ch);fflush(stdin);}while(ch!='0'&&ch!='1'&&ch!='2'&&ch!='3'&&ch!='4'&&ch!='5');switch(ch){case'0':M_Form();break;case'1':{printf("\n請(qǐng)按順序輸入新書的編號(hào)、名稱、數(shù)量(以空格隔開):");scanf("%s%s%d",t.book_num,t.book_name,&t.book_kc);fflush(stdin);Insert_New_Book(t.book_num,t.book_name,t.book_kc);Form_Insert_New_Book();}default:printf("error\n");exit(0);}}voidload_data()/*從文件book.dat和文件reader.dat中讀取數(shù)據(jù)到內(nèi)存*//*將讀取的數(shù)據(jù)存放到2個(gè)鏈表中*/{structbk*book_p1,*book_p2,*book_p3;structrd*reader_p1,*reader_p2,*reader_p3;FILE*fp_book,*fp_reader;fp_book=fopen("book.dat","rb");book_p1=(structbk*)malloc(sizeof(structbk));fread(book_p1,sizeof(structbk),1,fp_book);h_book=book_p3=book_p2=book_p1;while(!feof(fp_book)){book_p1=(structbk*)malloc(sizeof(structbk));fread(book_p1,sizeof(structbk),1,fp_book);book_p2->next=book_p1;book_p3=book_p2;book_p2=book_p1;}book_p3->next=NULL;free(book_p1);fclose(fp_book);fp_reader=fopen("reader.dat","r

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論