山東科技大學(xué)大作業(yè)-圖書管理系統(tǒng)_第1頁
山東科技大學(xué)大作業(yè)-圖書管理系統(tǒng)_第2頁
山東科技大學(xué)大作業(yè)-圖書管理系統(tǒng)_第3頁
山東科技大學(xué)大作業(yè)-圖書管理系統(tǒng)_第4頁
山東科技大學(xué)大作業(yè)-圖書管理系統(tǒng)_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

課程設(shè)計(jì)說明書課程名稱:數(shù)據(jù)結(jié)構(gòu)專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班級(jí):2023級(jí)2班設(shè)計(jì)人:山東科技大學(xué)2023年12月14日山東科技大學(xué)課程設(shè)計(jì)任務(wù)書課程設(shè)計(jì)題目:圖書管理系統(tǒng)設(shè)計(jì)原始資料:主要分為兩大功能:1〕圖書管理〔增加圖書、查詢圖書、刪除圖書、圖書借閱、還書〕;2〕會(huì)員管理〔增加會(huì)員、查詢會(huì)員、刪除會(huì)員、借書信息〕。設(shè)計(jì)應(yīng)解決以下各主要問題:能完成增加圖書、查詢圖書、刪除圖書、圖書借閱、還書;能完成增加會(huì)員、查詢會(huì)員、刪除會(huì)員、借書信息。設(shè)計(jì)說明書應(yīng)附有以下圖紙:1〕模塊調(diào)用圖;2〕程序流程圖;3〕調(diào)試分析結(jié)果。小組分工說明:算法思想:黃、李長江;程序代碼:圖書管理模塊:黃會(huì)員管理模塊:李設(shè)計(jì)報(bào)告:六、命題發(fā)出日期:2023-9-1設(shè)計(jì)完成日期:2023-12-14指導(dǎo)教師評(píng)語成績:指導(dǎo)教師〔簽章〕:年月日目錄需求分析說明…………21.1主函數(shù)模塊…………21.2兩種添加模塊………21.3兩種查詢模塊…………21.4兩種刪除模塊……………21.5圖書借閱模塊……………21.6還書模塊…………………21.7借書信息模塊……………21.8菜單函數(shù)模塊…………2概要設(shè)計(jì)說明…………42.1模塊調(diào)用圖……………42.2主要函數(shù)及其功能……………………4詳細(xì)設(shè)計(jì)說明…………63.1.1主函數(shù)模塊………63.1.2兩種添加模塊………63.1.3各種查詢模塊…………63.1.4兩種刪除模塊…………63.1.5圖書借閱模塊…………6

3.1.6還書模塊…………73.1.7借書信息模塊…………73.1.8菜單函數(shù)模塊…………73.1.9具體代碼見附錄………73.2程序流程圖………………8調(diào)試分析…………94.1遇到的問題……………………94.2測(cè)試結(jié)果………………9用戶使用說明………17課程設(shè)計(jì)總結(jié)……………………177附錄………………………181需求分析說明問題分析:在codeblocks的開發(fā)環(huán)境下,利用所學(xué)C語言和數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí),開發(fā)一個(gè)具有良好界面的圖書管理系統(tǒng),主要能夠?qū)崿F(xiàn)圖書館理和會(huì)員管理兩大功能。根本功能如下:〔1〕圖書管理〔增加圖書、查詢圖書、刪除圖書、圖書借閱、還書〕?!?〕會(huì)員管理〔增加會(huì)員、查詢會(huì)員、刪除會(huì)員、借書信息〕。以下是各功能模塊的功能描述:1.1主函數(shù)模塊本模塊的主要功能是初始化圖形界面,調(diào)用各模塊,實(shí)現(xiàn)軟件功能。1.2兩種添加模塊本模塊的主要功能是完成圖書或會(huì)員信息的輸入并將其錄入特定txt文件。1.3兩種查詢模塊本模塊的主要功能是能在特定查詢條件下找到已經(jīng)錄入的會(huì)員的信息或圖書的信息并將信息打印在屏幕上。1.4兩種刪除模塊本模塊的主要功能是刪除已經(jīng)錄入的圖書或會(huì)員信息。1.5圖書借閱模塊本模塊的主要功能是使會(huì)員借閱圖書并將借書信息錄入特定txt文件。1.6還書模塊本模塊的主要功能是使已經(jīng)借書的的會(huì)員還書并且消除借書信息。1.7借書信息模塊本模塊的主要功能是在屏幕上打印出已經(jīng)借出的書籍的信息。1.8菜單函數(shù)模塊本模塊的主要功能是根據(jù)用戶的不同選擇執(zhí)行不同命令,完成各種功能要求。測(cè)試數(shù)據(jù):1):符合要求的輸入數(shù)據(jù);2):符合要求的執(zhí)行數(shù)據(jù);3):不符合要求的執(zhí)行數(shù)據(jù)。

2概要設(shè)計(jì)說明2.1模塊調(diào)用圖模塊調(diào)用圖如圖1所示。主函數(shù)模塊主函數(shù)模塊界面函數(shù)模塊界面函數(shù)模塊圖書管理模塊會(huì)員管理模塊圖書管理模塊會(huì)員管理模塊2.2模主要函數(shù)及其功能voidmanagement();//圖書管理界面voidinfor_vip();//借書信息boolfindvip1();//按卡號(hào)查找會(huì)員boolfindvip();//按姓名超找會(huì)員boolchavip();//vip查詢voidvipmanagement();//vip總頁面voidAdd_books();//添加書籍voidAdd_vip();//添加vipvoidhuanbook();//還書函數(shù)voiduser_interface();//總界面boolchabook();//查找書籍boolfindbook1();//按作者查找書boolfindbook();//按書名查找voidlendbook();//借書boolfindname();//按書名刪除書籍voiddelete_book();//刪除書籍voiddelete_vip();//刪除會(huì)員boolfindnum();//按書號(hào)刪除書籍

3詳細(xì)設(shè)計(jì)說明3.1.1主函數(shù)模塊首先調(diào)用user_interface()函數(shù)按照提示進(jìn)行菜單項(xiàng)選擇擇,程序按照所選擇的菜單進(jìn)行執(zhí)行會(huì)員管理vipmanagement()模塊或者圖書管理management()模塊,最后結(jié)束運(yùn)行。3.1.2兩種添加模塊圖書添加Add_books()模塊是按照提示輸入添加的圖書書號(hào),添加的圖書名稱,添加的圖書作者,程序?qū)⑿畔⒋嫒胩囟ㄎ募?按照不同操作執(zhí)行繼續(xù)添加或返回上級(jí)。會(huì)員添加Add_vip()模塊是按照提示輸入所添加的會(huì)員卡號(hào),會(huì)員名稱,會(huì)員所在班級(jí),程序?qū)?huì)員信息存入特定文件,程序?qū)⑿畔⒋嫒胩囟ㄎ募?按照不同操作執(zhí)行繼續(xù)添加或返回上級(jí)。3.1.3兩種查詢模塊圖書查詢chabook()模塊是可以按照提示可以分別用書名查詢findbook(),作者查詢findbook1()查找分別調(diào)用兩個(gè)不同的函數(shù)進(jìn)行查找不同的書籍。會(huì)員查詢chavip()模塊可以按照提示可以分別用卡號(hào)查詢findvip1模式或姓名查詢findvip()模式分別調(diào)用兩個(gè)不同的函數(shù)查找查找會(huì)員。3.1.4兩種刪除模塊圖書刪除delete_book()模塊可以按照系統(tǒng)提示分別用調(diào)用書名刪除findname()或者最按照書號(hào)刪除findnum()兩個(gè)函數(shù)分別刪除特定文件文件中已經(jīng)錄入的書籍記錄并將有關(guān)的借書記錄一并刪除或者提示圖書不存在返回上一目錄。Vip刪除delete_vip()模塊可以按照系統(tǒng)提示輸入要?jiǎng)h除的會(huì)員的卡號(hào),之后程序會(huì)找到已經(jīng)錄入到特定文件的vip信息,然后提示輸入y/n來決定是否刪除,假設(shè)卡號(hào)不存在會(huì)提示“沒有你要查詢的vip〞。3.1.5圖書借閱模塊圖書借閱lendbook()模塊可以按照系統(tǒng)提示先輸入你的卡號(hào),如果卡號(hào)存在那么系統(tǒng)會(huì)提示輸入要借的書籍的名稱,如果書籍不存或者書籍已經(jīng)被借出在會(huì)提示錯(cuò)誤并直接結(jié)束程序,假設(shè)書籍存在系統(tǒng)會(huì)將所借書的信息和借書人信息存入制定文件然后提示借書成功并直接借書程序。3.1.6還書模塊還書huanbook()模塊是會(huì)員還書功能的模塊,進(jìn)入模塊后按照提示輸入卡號(hào),如果卡號(hào)不存在會(huì)提示錯(cuò)誤,存在會(huì)提示輸入想要還的書籍,系統(tǒng)會(huì)匹配已經(jīng)錄入的借書信息,如果此書未借出會(huì)提述錯(cuò)誤并借書程序,假設(shè)能容匹配正確,圖書確實(shí)借出刪除所借圖書的已經(jīng)錄入信息之后提示還書成功。3.1.7借書信息模塊借書信息infor_vip()模塊是用來顯示所有已經(jīng)被借出的書的信息的模塊。本模塊執(zhí)行后直接將已經(jīng)錄入的借書信息打印在屏幕上。3.1.8菜單函數(shù)模塊本模塊user_interface()的主要功能是根據(jù)用戶的不同選擇執(zhí)行不同命令,完成各種功能要求。3.1.9具體代碼見附錄3.2程序流程圖開始執(zhí)行開始執(zhí)行圖書管理系統(tǒng)主界面圖書管理系統(tǒng)主界面輸入返回上級(jí)輸入返回上級(jí)圖書添加返回上級(jí)VIP管理系統(tǒng)圖書添加返回上級(jí)VIP管理系統(tǒng)圖書歸還會(huì)員查詢會(huì)員添加會(huì)員刪除借書信息圖書刪除圖書借閱圖書查詢圖書歸還會(huì)員查詢會(huì)員添加會(huì)員刪除借書信息圖書刪除圖書借閱圖書查詢輸出借書信息輸入并執(zhí)行會(huì)員操作信息輸出借書信息輸入并執(zhí)行會(huì)員操作信息輸入并執(zhí)行圖書操作信息輸入并執(zhí)行圖書操作信息結(jié)束程序是否繼續(xù)是否繼續(xù)4調(diào)試分析結(jié)束程序是否繼續(xù)是否繼續(xù)4.1遇到的問題:忽略不合法數(shù)據(jù)的判斷4.2測(cè)試結(jié)果4.2.1所有輸入數(shù)據(jù)都合法時(shí)主界面顯示用戶選擇需要的操作序號(hào)選擇1——進(jìn)入會(huì)員管理系統(tǒng)會(huì)員管理系統(tǒng)選擇2添加會(huì)員根據(jù)提示添加會(huì)員會(huì)員管理系統(tǒng)選擇1查詢會(huì)員根據(jù)提示查詢會(huì)員會(huì)員查詢系統(tǒng)選擇1姓名查詢根據(jù)提示查詢會(huì)員會(huì)員查詢系統(tǒng)選擇2卡號(hào)查詢根據(jù)提示查詢會(huì)員會(huì)員管理系統(tǒng)選擇3刪除會(huì)員根據(jù)提示刪除會(huì)員選擇2——進(jìn)入圖書管理系統(tǒng)圖書管理系統(tǒng)選擇2添加圖書根據(jù)提示添加圖書圖書管理系統(tǒng)選擇1查詢圖書根據(jù)提示查詢圖書圖書查詢系統(tǒng)選擇1按書名查詢根據(jù)提示查詢圖書圖書查詢系統(tǒng)選擇2按作者查詢根據(jù)提示查詢圖書圖書管理系統(tǒng)選擇4圖書借閱根據(jù)提示借閱圖書圖書查詢系統(tǒng)選擇2按作者查詢根據(jù)提示查詢圖書圖書管理系統(tǒng)選擇5圖書歸還根據(jù)提示歸還圖書圖書查詢系統(tǒng)選擇2按作者查詢根據(jù)提示查詢圖書選擇1——再次進(jìn)入會(huì)員管理系統(tǒng)會(huì)員管理系統(tǒng)選擇4借書信息查看借書信息4.2.1所有輸入數(shù)據(jù)有誤時(shí)主界面結(jié)束程序會(huì)員管理系統(tǒng)會(huì)員管理系統(tǒng)會(huì)員查詢系統(tǒng)圖書管理系統(tǒng)圖書管理系統(tǒng)圖書查詢系統(tǒng)5用戶使用說明用戶翻開程序后,按照程序提示執(zhí)行所需操作即可。6課程設(shè)計(jì)總結(jié)本程序是一個(gè)圖書管理系統(tǒng),其中最主要的是文件儲(chǔ)存和文件輸出等文件操作。在本次作業(yè)中我學(xué)習(xí)到了如何更好的搭配代碼各個(gè)局部之間的位置,在操作過程中有很屢次的錯(cuò)誤,我發(fā)現(xiàn)在輸入過程中輸入和存儲(chǔ)的格式對(duì)于代碼來說十分重要一旦輸入或者存儲(chǔ)格式錯(cuò)誤會(huì)造成各種意想不到的錯(cuò)誤,十分令人頭疼。其次通過這次的作業(yè)我也學(xué)會(huì)了如何編寫一個(gè)比擬大的程序,首先應(yīng)該在編寫之前應(yīng)該構(gòu)思好整體思路,否那么很難下手,之后在編寫代碼的時(shí)候一定要分塊來編寫這樣編寫為我調(diào)試程序提供了很大的幫助。通過這次的作業(yè)我學(xué)會(huì)了如何使代碼各局部之間協(xié)調(diào)工作。了解了軟件編寫的一般步驟和調(diào)試程序的一般方法收獲很大。附錄:1.參考文獻(xiàn)參考文獻(xiàn)參考文獻(xiàn):〔1〕孫承愛,趙衛(wèi)東.程序設(shè)計(jì)根底——基于C語言.第2版.北京:科學(xué)出版社,2023〔2〕嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)〔C語言版〕.北京:清華大學(xué)出版社,2007〔3〕[美]StephenPrata.CPrimerPlus〔第五版〕人民郵電出版社,20052.源程序代碼:#include<string.h>#include<conio.h>#include<stdlib.h>#include<ctype.h>#include<stdio.h>#defineSTACK_INIT_SIZE10#defineOK1#defineTRUE1#defineFALSE0#defineERROR0#defineboolintvoidmanagement();//圖書管理界面voidinfor_vip();//借書信息boolfindvip1();//按卡號(hào)查找會(huì)員boolfindvip();//按姓名超找會(huì)員boolchavip();//vip查詢voidvipmanagement();//vip總頁面voidAdd_books();//添加書籍voidAdd_vip();//添加vipvoidhuanbook();//還書函數(shù)voiduser_interface();//總界面boolchabook();//查找書籍boolfindbook1();//按作者查找書boolfindbook();//按書名查找voidlendbook();//借書boolfindname();//按書名刪除書籍voiddelete_book();//刪除書籍voiddelete_vip();//刪除會(huì)員boolfindnum();//按書號(hào)刪除書籍structvip//借書卡的數(shù)據(jù)類型{intcarnum;charstudentname[10];intstudentclass;}car[100];structbook/*定義書的類型*/{intbooknum;charbookname[20];charbookcreat[10];intturefalse;/*用于借書和還書模塊判斷一本書是否借出的條件*/}book[1000];structstudent/*定義學(xué)生類型,用于存放借出的書籍*/{intcarnum;charlendbook[40];}student[1000];intmain(){user_interface();return0;}voiduser_interface(){system("cls");charcho;printf("歡送進(jìn)入用戶界面\n");printf("\n\n\n\n\n\n###############################################################################\n\n\n\n");printf("1.VIP管理系統(tǒng)2.圖書管理系統(tǒng)任意其他鍵結(jié)束程序\n");printf("\n\n\n################################################################################\n");scanf("%s",&cho);switch(cho){case'2':management();break;case'1':vipmanagement();break;default:printf("無此操作\n");break;}}voidvipmanagement(){system("cls");charcho;printf("歡送進(jìn)入vip管理系統(tǒng)\n");printf("\n\n\n\n\n\n###############################################################################\n\n\n\n");printf("1.vip查詢2.vip添加3.vip刪除4.借書信息\n");printf("0.返回\n");printf("\n\n\n################################################################################\n");scanf("%s",&cho);switch(cho){case'1':chavip();break;case'2':Add_vip();break;case'3':delete_vip();break;case'4':infor_vip();break;case'0':user_interface();break;default:printf("無此操作\n");break;}}voiddelete_vip(){FILE*fp1,*fp2;intvipnum;ints=0,i;fp1=fopen("vip.txt","r");fp2=fopen("vip1.txt","w");printf("請(qǐng)輸入你要?jiǎng)h除的卡號(hào)\n");scanf("%d",&vipnum);for(i=0;fread(&car[i],sizeof(structvip),1,fp1)!=0;i++){if(vipnum!=car[i].carnum){fwrite(&car[i],sizeof(structvip),1,fp2);}elseif(vipnum==car[i].carnum){printf("vip的詳細(xì)資料是:卡號(hào):%d姓名:%s班級(jí):%d\n",car[i].carnum,car[i].studentname,car[i].studentclass);s=1;}}fclose(fp1);fclose(fp2);if(s==0){charcho;printf("沒有你要查詢的vip\n");fp1=fopen("vip.txt","w");fclose(fp1);printf("0.返回其他任意鍵結(jié)束\n");scanf("%s",&cho);switch(cho){case'0':vipmanagement();default:printf("無此操作\n");break;}}else{charcho1;printf("是否刪除此卡號(hào)?〔y/n〕\n");scanf("%s",&cho1);if(cho1=='y'||cho1=='Y'){charcho;fp1=fopen("vip.txt","w");fp2=fopen("vip1.txt","r");for(i=0;fread(&car[i],sizeof(structvip),1,fp2)!=0;i++){fwrite(&car[i],sizeof(structvip),1,fp1);}printf("已經(jīng)刪除!\n");fclose(fp1);fclose(fp1);fp1=fopen("vip1.txt","w");fclose(fp1);printf("0.返回其他任意鍵結(jié)束\n");scanf("%s",&cho);switch(cho){case'0':vipmanagement();default:printf("無此操作\n");break;}}else{charcho;printf("按任意鍵返回\n");fclose(fp1);fclose(fp2);printf("0.返回其他任意鍵結(jié)束\n");scanf("%s",&cho);switch(cho){case'0':vipmanagement();default:printf("無此操作\n");break;}}}}voidAdd_vip(){intp=0;structvipcar[100];charcho='1';inti=-1;while(cho=='1'){system("cls");i++;printf("------------------------歡送進(jìn)入會(huì)員添加系統(tǒng)!------------------------\n");printf("請(qǐng)輸入所添加的會(huì)員卡號(hào):");scanf("%d",&car[i].carnum);getchar();//回車鍵printf("請(qǐng)輸入所添加的會(huì)員名稱:");scanf("%s",&car[i].studentname);printf("請(qǐng)輸入所添加的會(huì)員的所在班級(jí):");scanf("%d",&car[i].studentclass);getchar();//回車鍵printf("1:<繼續(xù)添加>0<反回>\n");scanf("%c",&cho);}p=i;FILE*fp;fp=fopen("vip.txt","a+");i=0;for(i=0;i<=p;i++){fwrite(&car[i],sizeof(structvip),1,fp);}fclose(fp);if(cho=='0'){vipmanagement();}}voidlendbook(){FILE*fp,*fp2;inti,n;intcarnum;printf("請(qǐng)你輸入你的卡號(hào)\n");scanf("%d",&carnum);fp=fopen("vip.txt","r");for(i=0;fread(&car[i],sizeof(structvip),1,fp)!=0;i++){if(car[i].carnum==carnum){n=i;fclose(fp);printf("請(qǐng)輸入你要借閱的書的名字\n");scanf("%s",&student[n].lendbook);fp=fopen("book.txt","r");for(i=0;fread(&book[i],sizeof(structbook),1,fp)!=0;i++){if(strcmp(book[i].bookname,student[n].lendbook)==0){if(book[i].turefalse==0){printf("對(duì)不起,此書有人借出,請(qǐng)借其他書\n");fclose(fp);getch();return;}elsefclose(fp);fp=fopen("record.txt","a+");student[n].carnum=carnum;fwrite(&student[n],sizeof(structstudent),1,fp);fclose(fp);fp=fopen("book.txt","r");fp2=fopen("book1.txt","w");for(i=0;fread(&book[i],sizeof(structbook),1,fp)!=0;i++){if(strcmp(book[i].bookname,student[n].lendbook)==0){book[i].turefalse=0;fwrite(&book[i],sizeof(structbook),1,fp2);continue;}fwrite(&book[i],sizeof(structbook),1,fp2);}fclose(fp);fclose(fp2);fp=fopen("book.txt","w");fp2=fopen("book1.txt","r");for(i=0;fread(&book[i],sizeof(structbook),1,fp2)!=0;i++){fwrite(&book[i],sizeof(structbook),1,fp);}fclose(fp);fclose(fp2);fopen("book1.txt","w");fclose(fp2);printf("借書完畢,按任意鍵返回\n");getch();return;}}printf("不存在這樣的書,任意鍵返回\n");fclose(fp);getch();return;}}printf("你的卡號(hào)不存在,請(qǐng)申請(qǐng)新卡,按任意鍵結(jié)束\n");fclose(fp);getch();}voidmanagement(){system("cls");charcho;printf("歡送進(jìn)入圖書管理系統(tǒng)\n系統(tǒng)中可按任意字母鍵退出");printf("\n\n\n\n\n\n###############################################################################\n\n\n\n");printf("1.圖書查詢2.圖書添加3.圖書刪除4.圖書借閱5.還書\n");printf("0.返回\n");printf("\n\n\n################################################################################\n");scanf("%s",&cho);switch(cho){case'1':chabook();break;case'2':Add_books();break;case'3':delete_book();break;case'4':lendbook();break;case'5':huanbook();break;case'0':user_interface();break;default:printf("無此操作\n");break;}}boolchabook(){charch5;do{system("cls");printf("---------------歡送進(jìn)入圖書查詢系統(tǒng)!--------------\n");printf("1:<按書名查找>\n");printf("2:<按作者查找>\n");printf("0:<返回>\n");printf("請(qǐng)輸入0--2,其他輸入非法!\n");scanf("%s",&ch5);switch(ch5){case'1':findbook();getch();break;case'2':findbook1();getch();break;case'0':management();break;default:printf("無此操作\n");getch();break;}}while(ch5!='0');returnFALSE;}boolfindbook(){FILE*fp;charbookname[20];intture,i;fp=fopen("book.txt","r");printf("請(qǐng)輸入你要查找的書名\n");scanf("%s",bookname);for(i=0;fread(&book[i],sizeof(structbook),1,fp)!=0;i++){if(strcmp(bookname,book[i].bookname)==0){if(book[i].turefalse==1){printf("這本書的詳細(xì)資料是:書號(hào):%d書名:%s作者名:%s此書現(xiàn)在無人借閱\n按任意鍵返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat);}else{printf("這本書已經(jīng)有人借出\n");fclose(fp);return0;}fclose(fp);returnFALSE;}}printf("沒有你要查詢的書籍\n");fclose(fp);returnFALSE;}boolfindbook1(){FILE*fp;charbookcreat[10];intture,i;fp=fopen("book.txt","r");printf("請(qǐng)輸入你要查找的作者名\n");scanf("%s",bookcreat);for(i=0;fread(&book[i],sizeof(structbook),1,fp)!=0;i++){if(strcmp(bookcreat,book[i].bookcreat)==0){if(book[i].turefalse==1){printf("這本書的詳細(xì)資料是:書號(hào):%d書名:%s作者名:%s此書現(xiàn)在無人借閱\n按任意鍵返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat);}else{printf("這本書已經(jīng)有人借出\n");fclose(fp);return0;}fclose(fp);returnFALSE;}}printf("沒有你要查詢的書籍\n");fclose(fp);returnFALSE;}voidhuanbook()/*還書函數(shù)*/{FILE*fp,*fp2;/*定義兩個(gè)文件指針,fp2用于修改數(shù)據(jù)時(shí)設(shè)立臨時(shí)文件用,防止數(shù)據(jù)遭破壞*/inti,n;intcarnum;charlendbook[10];printf("請(qǐng)你輸入你的卡號(hào)\n");scanf("%d",&carnum);fp=fopen("vip.txt","r");/*讀取卡號(hào)記錄*/for(i=0;fread(&car[i],sizeof(structvip),1,fp)!=0;i++)/*for循環(huán)判斷卡號(hào)是否存在*/{if(car[i].carnum==carnum)/*卡號(hào)存在,進(jìn)入下一循環(huán)*/{n=i;fclose(fp);printf("請(qǐng)輸入你要還的書的名字\n");scanf("%s",lendbook);fp=fopen("record.txt","r");for(i=0;fread(&student[i],sizeof(structstudent),1,fp)!=0;i++)/*判斷是否借閱了輸入的書*/{if(strcmp(student[i].lendbook,lendbook)==0)/*借閱了該書,進(jìn)入下一循環(huán),否那么出錯(cuò)顯示*/{fclose(fp);fp=fopen("record.txt","r");fp2=fopen("book1.txt","w");for(i=0;fread(&student[i],sizeof(structstudent),1,fp)!=0;i++){if(strcmp(student[i].lendbook,lendbook)==0){continue;/*刪除還掉的書的借書記錄*/}fwrite(&student[i],sizeof(structstudent),1,fp2);/*寫入原來沒還的書的記錄*/}fclose(fp);fclose(fp2);fp=fopen("record.txt","w");fp2=fopen("book1.txt","r");for(i=0;fread(&student[i],sizeof(structstudent),1,fp2)!=0;i++){fwrite(&student[i],sizeof(structstudent),1,fp);/*將借書記錄信息寫回*/}fclose(fp);fclose(fp2);fp2=fopen("book1.txt","w");/*清臨時(shí)文件的記錄*/fclose(fp2);fp=fopen("book.txt","r");fp2=fopen("book1.txt","w");for(i=0;fread(&book[i],sizeof(structbook),1,fp)!=0;i++)/*將書的記錄寫入臨時(shí)文件,防止因?yàn)樾薷男畔⑵茐囊郧暗挠涗?/{if(strcmp(lendbook,book[i].bookname)==0){book[i].turefalse=1;fwrite(&book[i],sizeof(structbook),1,fp2);/*將還的書的原來狀態(tài)設(shè)為無人借閱的*/continue;}fwrite(&book[i],sizeof(structbook),1,fp2);}fclose(fp);fclose(fp2);fp=fopen("book.txt","w");fp2=fopen("book1.txt","r");for(i=0;fread(&book[i],sizeof(structbook),1,fp2)!=0;i++){fwrite(&book[i],sizeof(structbook),1,fp);/*將臨時(shí)文件寫回*/}fclose(fp);fclose(fp2);fopen("book1.txt","w");/*清臨時(shí)文件*/fclose(fp2);printf("還書完畢,按任意鍵返回\n");getch();management();return0;}}printf("你沒有借這樣的書,任意鍵返回\n");/*出錯(cuò)提示*/fclose(fp);getch();return0;}}printf("系統(tǒng)沒這樣的卡,和管理員聯(lián)系,按任意鍵返回\n");/*出錯(cuò)提示*/fclose(fp);getch();}voidAdd_books(){intp=0;charcho='1';inti=-1;while(cho=='1'){system("cls");i++;printf("------------------------歡送進(jìn)入圖書添加系統(tǒng)!------------------------\n");printf("請(qǐng)輸入所添加的圖書的書號(hào):");scanf("%d",&book[i].booknum);getchar();printf("請(qǐng)輸入所添加的圖書的名稱:");scanf("%s",&book[i].bookname);getch();printf("請(qǐng)輸入所添加的圖書的作者:");scanf("%s",&book[i].bookcreat);getchar();//回車鍵book[i].turefalse=1;printf("1:<繼續(xù)添加>0<反回>\n");scanf("%s",&cho);}p=i;FILE*fp;fp=fopen("book.txt","a+");i=0;for(i=0;i<=p;i++){fwrite(&book[i],sizeof(structbook),1,fp);}fclose(fp);if(cho=='0'){management();}}voiddelete_book(){charcho;do{system("cls");printf("---------------歡送進(jìn)入圖書刪除系統(tǒng)!--------------\n");printf("1:<按書名刪除圖書>\n");printf("2:<按書號(hào)刪除圖書>\n");printf("0:<返回>\n");printf("請(qǐng)輸入0--2,其他輸入非法!\n");scanf("%s",&cho);switch(cho){case'1':findname();getch();break;case'2':findnum();getch();break;case'0':management();break;default:printf("無此操作\n");getch();break;}}while(cho!='0');}boolfindname(){FILE*fp1,*fp2;charbookname[10];ints=0,i;fp1=fopen("book.txt","r");fp2=fopen("book1.txt","w");printf("請(qǐng)輸入你要?jiǎng)h除的書名\n");scanf("%s",bookname);for(i=0;fread(&book[i],sizeof(structbook),1,fp1)!=0;i++){if(strcmp(bookname,book[i].bookname)!=0){fwrite(&book[i],sizeof(structbook),1,fp2);}elseif(strcmp(bookname,book[i].bookname)==0){printf("這本書的詳細(xì)資料是:書號(hào):%d書名:%s作者名:%s\n",book[i].booknum,book[i].bookname,book[i].bookcreat);s=1;}}fclose(fp1);fclose(fp2);if(s==0){printf("沒有你要查詢的書籍\n");fp1=fopen("book1.txt","w");fclose(fp1);returnFALSE;}else{charcho1;printf("是否刪除本書?〔y/n〕\n");scanf("%s",&cho1);if(cho1=='y'||cho1=='Y'){fp1=fopen("book.txt","w");fp2=fopen("book1.txt","r");for(i=0;fread(&book[i],sizeof(structbook),1,fp2)!=0;i++){fwrite(&book[i],sizeof(structbook),1,fp1);}printf("已經(jīng)刪除!\n");fclose(fp1);fclose(fp2);fp1=fopen("book1.txt","w");fclose(fp1);returnFALSE;}else{printf("按任意鍵返回\n");fclose(fp1);fclose(fp2);fp1=fopen("book1.txt","w");fclose(fp1);getch();returnFALSE;}}}boolfindnum(){FILE*fp1,*fp2;intbooknum;ints=0,i;fp1=fopen("book.txt","r");fp2=fopen("book1.txt","w");printf("請(qǐng)輸入你要?jiǎng)h除的書的書號(hào)\n");scanf("%d",&booknum);for(i=0;fread(&book[i],sizeof(structbook),1,fp1)!=0;i++){if(booknum!=book[i].booknum){fwrite(&book[i],sizeof(structbook),1,fp2);}elseif(booknum==book[i].booknum){printf("這本書的詳細(xì)資料是:書號(hào):%d書名:%s作者名:%s\n",book[i].booknum,book[i].bookname,book[i].bookcreat);s=1;}}fclose(fp1);fclose(fp2);if(s==0){printf("沒有你要查詢的書籍\n");fp1=fopen("book1.txt","w");fclose(fp1);returnFALSE;}else{charcho1;printf("是否刪除本書?〔y/n〕\n");scanf("%s",&cho1);if(cho1=='y'||cho1=='Y'){fp1=fopen("book.txt","w");fp2=fopen("book1.txt","r");for(i=0;fread(&book[i],sizeof(structbook),1,fp2)!=0;i++){fwrite(&book[i],sizeof(structbook),1,fp1);}printf("已經(jīng)刪除!\n");fclose(fp1);fclose(fp2);fp1=fopen("book1.txt","w");fclose(fp1);returnFALSE;}else{printf("按任意鍵返回\n");fclose(fp1);fclose(fp2);getch();returnFALSE;}}}voidcarcount()//vip添加{voidAdd_vip(){intp=0;structvipcar[100];charcho='1';inti=-1;while(cho=='1'){system("cls");i++;printf("------------------------歡送進(jìn)入會(huì)員添加系統(tǒng)!------------------------\n");printf("請(qǐng)輸入所添加的會(huì)員卡號(hào):");scanf("%d",&car[i].carnum);printf("請(qǐng)輸入所添加的會(huì)員名稱:");scanf("%s",&car[i].studentname);printf("請(qǐng)輸入所添加的會(huì)員的所在班級(jí):");scanf("%s",&car[i].studentclass);getchar();//回車鍵printf("1:<繼續(xù)添加>0<反回>\n");scanf("%c",&cho);}p=i;FILE

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論