




已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
#include#include#include#include#include#include#include/*這是時間結(jié)構(gòu)體定義*/struct timeint year;int mon;int day;/*這是已借書籍結(jié)構(gòu)體定義*/struct borrbklong int bkid;/*書籍編號*/char name20;/*書籍名字*/char remark50;/*書籍簡介*/int bknum;/*書籍數(shù)量*/int ifb;/*書籍借閱與否標志*/int bornum;/*借閱書籍所在數(shù)組下標*/struct time botm;/*借書時間*/struct time retm;/*還書時間*/;/*這是學(xué)生結(jié)構(gòu)體定義*/struct studentlong int stunum;/*學(xué)號*/char name18;/*名字*/char pawo10;/*密碼*/struct borrbk bobk12;/*借閱書籍結(jié)構(gòu)體數(shù)組*/;/*這是所有書結(jié)構(gòu)體定義*/struct booklong int bkid;/*書籍編號*/char name20;/*書籍名字*/char remark50;/*書籍簡介*/int bknum;/*書籍數(shù)量*/int rebknum;/*書籍剩余數(shù)量*/;struct student stu99;struct book bk999;FILE *st,*bok;/*這里是內(nèi)層調(diào)用的函數(shù)*/*函數(shù)名:void save()函數(shù)功能:把所有書籍和學(xué)生記錄保存到文件 函數(shù)參數(shù): 無函數(shù)編制者:馬瑞宜*/void save() int i; bok=fopen(book.txt,w+);/*打開文件*/ for(i=0;i999;i+) if(bki.bknum!=0)/*判斷是否存在內(nèi)容*/fwrite(&bki,sizeof(struct book),1,bok); fflush(bok);/*寫入磁盤*/ fclose(bok);/*關(guān)閉文件*/ st=fopen(student.txt,w+); for(i=0;i99;i+) if(stui.stunum!=0)fwrite(&stui,sizeof(struct student),1,st); fflush(st); fclose(st);/*函數(shù)名:void load()函數(shù)功能:把所有書籍和學(xué)生記錄讀取到數(shù)組 函數(shù)參數(shù): 無函數(shù)編制者:馬瑞宜*/void load() int i; bok=fopen(book.txt,r); for(i=0;i999;i+) fread(&bki,sizeof(struct book),1,bok); fclose(bok);st=fopen(student.txt,r); for(i=0;i99;i+) fread(&stui,sizeof(struct student),1,st); fclose(st); /*函數(shù)名:void haborbks (int n)函數(shù)功能:輸出某學(xué)生已借書籍 函數(shù)參數(shù): 傳遞學(xué)生所在數(shù)組下標給形參函數(shù)編制者:馬瑞宜*/void haborbks (int n)int i;printf(編號 名字 介紹 借閱日期 應(yīng)還日期n);for(i=0;i12;i+)if (stun.bobki.ifb=1)/*判斷該數(shù)組是否存有已借書內(nèi)容既存在標志*/printf(%ld %-15s %-24s %d-%d-%d %d-%d-%dn,stun.bobki.bkid,,stun.bobki.remark,stun.bobki.botm.year,stun.bobki.botm.mon,stun.bobki.botm.day,stun.bobki.retm.year,stun.bobki.retm.mon,stun.bobki.retm.day);/*函數(shù)名:void allbooks()函數(shù)功能:輸出所有書籍函數(shù)參數(shù): 無函數(shù)編制者:馬瑞宜*/void allbooks()int i;printf(編號 名字 介紹 數(shù)量 剩余數(shù)量n);for(i=0;i999;i+)if(bki.bkid!=0)/*判斷該數(shù)組是否存有書籍編號既存在標志*/printf(%ld %-15s %-32s %-4d %dn,bki.bkid,,bki.remark,bki.bknum,bki.rebknum);/*這里開始是學(xué)生的管理系統(tǒng)*/*函數(shù)名:int login()函數(shù)功能:用于學(xué)生登錄 函數(shù)參數(shù): 返回學(xué)生數(shù)組下標函數(shù)編制者:馬瑞宜*/int login()long int loginnum;int i,j,pac;char pawod10;printf(請輸入學(xué)號:);scanf(%ld,&loginnum);for(i=0;i99;i+)if (loginnum=stui.stunum)/*判斷學(xué)號是否存在*/j=i;goto loginpawo2;printf(n不存在該學(xué)號!請重新登錄!n);getch();return -1;loginpawo2:pac=0;loginpawo:printf(請輸入密碼:);scanf(%s,pawod);if (pac2)/*密碼錯誤計數(shù)器*/if (strcmp(pawod,stuj.pawo)=0)/*判斷密碼是否正確*/return j;elseprintf(n密碼錯誤,請重新輸入!n);pac+;goto loginpawo;elseprintf(n連續(xù)三次密碼輸入錯誤,請重新登錄!n);getch();return -1;/*函數(shù)名:void borrbook(int n)函數(shù)功能:借閱用函數(shù) 函數(shù)參數(shù): 傳遞學(xué)生所在數(shù)組下標給形參函數(shù)編制者:馬瑞宜*/void borrbook(int n)long int fdbknum;int choice,i,con,j,bbk;char confi;struct tm *local;time_t t;fdbk:j=0;printf(請輸入所要借閱的圖書編號:);scanf(%ld,&fdbknum);printf(編號 名字 介紹 借閱日期 應(yīng)還日期n);for(i=0;i999;i+)if (fdbknum=bki.bkid)/*判斷書籍號是否存在*/printf(%ld %-15s %-40s %d %dn,bki.bkid,,bki.remark,bki.bknum,bki.rebknum);if(bki.rebknum=0)/*書籍剩余數(shù)量是否為零*/printf(剩余館藏為零!n);goto againchoice;elsej=1;/*存在此書可借*/con=i;/*確定該數(shù)組下標*/break;if (j=1)againchoice2:printf(確定借閱本書(y/n)?);scanf(%s,&confi);if(confi=y|confi=Y)for(bbk=0;bbktm_mday;stun.bobkbbk.botm.mon=local-tm_mon+1;stun.bobkbbk.botm.year=local-tm_year+1900;stun.bobkbbk.retm.day=local-tm_mday;if (stun.bobkbbk.botm.mon=12)stun.bobkbbk.retm.mon=1;stun.bobkbbk.retm.year=stun.bobkbbk.botm.year+1;elsestun.bobkbbk.retm.year=local-tm_year+1900;stun.bobkbbk.retm.mon=local-tm_mon+2;bkcon.rebknum=bkcon.rebknum-1;/*館藏數(shù)量-1*/stun.bobkbbk.ifb=1;/*書籍借閱與否標志置為1既已借*/stun.bobkbbk.bornum=con;/*已借書籍在書籍數(shù)組的下標*/printf(借閱成功!n);goto againchoice;printf(你已借滿12本書,無法繼續(xù)借閱!);else if(confi=n|confi=N)printf(未借閱本書!n);elseprintf(輸入錯誤,請重新輸入!);goto againchoice2;else printf(不存在該編號的書!n);againchoice:printf(1、重新查詢借閱tt2、退出借閱n);printf(請輸入你的選擇:);scanf(%d,&choice);switch(choice)case 1: system(cls);goto fdbk;case 2:break;save();printf(n請按任意鍵退出。n);/*函數(shù)名:void retubook (int n)函數(shù)功能:歸還書籍用函數(shù) 函數(shù)參數(shù): 傳遞學(xué)生所在數(shù)組下標給形參函數(shù)編制者:馬瑞宜*/void retubook (int n)long int fdbknum;int choice,con,i,j;char confi;haborbks(n);/*調(diào)用借閱歷史函數(shù)*/fdbk:j=0;printf(請輸入所要歸還的圖書編號:);scanf(%ld,&fdbknum);printf(編號 名字 介紹 借閱日期 應(yīng)還日期n);for(i=0;i12;i+)if (stun.bobki.ifb=1)/*書籍已借*/if (stun.bobki.bkid=fdbknum)printf(%ld %-15s %-24s %d-%d-%d %d-%d-%dn,stun.bobki.bkid,,stun.bobki.remark,stun.bobki.botm.year,stun.bobki.botm.mon,stun.bobki.botm.day,stun.bobki.retm.year,stun.bobki.retm.mon,stun.bobki.retm.day);j=1;/*存在此書可還*/con=i;/*確定該數(shù)組下標*/break;if (j=1)againchoice2:printf(確定歸還本書(y/n)?);scanf(%s,&confi);if(confi=y|confi=Y)bkstun.bobkcon.bornum.rebknum=bkstun.bobkcon.bornum.rebknum+1;/*館藏數(shù)量+1*/for(i=con;i12;i+)/*將后一個數(shù)組成員的值賦給前一個數(shù)組*/stun.bobki.bkid=stun.bobki+1.bkid;stun.bobki.bknum=stun.bobki+1.bknum;strcpy(,stun.bobki+1.name);strcpy(stun.bobki.remark,stun.bobki+1.remark);stun.bobki.botm.year=stun.bobki+1.botm.year;stun.bobki.botm.mon=stun.bobki+1.botm.mon;stun.bobki.botm.day=stun.bobki+1.botm.day;stun.bobki.retm.year=stun.bobki+1.retm.year;stun.bobki.retm.mon=stun.bobki+1.retm.mon;stun.bobki.retm.day=stun.bobki+1.retm.day;stun.bobki.ifb=stun.bobki+1.ifb;stun.bobki.bornum=stun.bobki+1.bornum;/*置空最后的數(shù)組*/stun.bobk11.bkid=0;stun.bobk11.bknum=0;strcpy(,);strcpy(stun.bobk11.remark,);stun.bobk11.botm.year=0;stun.bobk11.botm.mon=0;stun.bobk11.botm.day=0;stun.bobk11.retm.year=0;stun.bobk11.retm.mon=0;stun.bobk11.retm.day=0;stun.bobk11.ifb=0;stun.bobk11.bornum=0;printf(歸還成功!n);else if(confi=n|confi=N)printf(不歸還本書!n);elseprintf(輸入錯誤,請重新輸入!);goto againchoice2;elseprintf(你未借閱該書!n);printf(1、重新查詢歸還tt2、退出歸還n);printf(請輸入你的選擇:);scanf(%d,&choice);switch(choice)case 1:goto fdbk;case 2: break;save();printf(n請按任意鍵退出。n);/*函數(shù)名:altpassword(int n)函數(shù)功能:用于學(xué)生修改密碼 函數(shù)參數(shù): 傳遞學(xué)生下標給形參函數(shù)編制者:馬瑞宜*/void altpassword(int n)int pac;char pawod,newpass110,newpass210;pac=0;loginpawo2:printf(請輸入你的舊密碼:);scanf(%s,&pawod);if (pac2)if(strcmp(&pawod,stun.pawo)=0)/*舊密碼是否正確*/printf(請輸入你的新密碼:);scanf(%s,newpass1);printf(請再次輸入你的新密碼:);scanf(%s,newpass2);if (strcmp(newpass1,newpass2)=0)/*兩次密碼輸入是否一樣*/strcpy(stun.pawo,newpass2);save();printf(修改密碼成功!請記住新密碼!n);elseprintf(輸入的兩次密碼不一樣!n按任意鍵退出修改!);elseprintf(密碼錯誤,請重新輸入!);pac=pac+1;goto loginpawo2;elseprintf(連續(xù)三次密碼輸入錯誤!n按任意鍵退出修改!);/*這里開始是管理員的管理系統(tǒng)*/*函數(shù)名:int adminlogin()函數(shù)功能:用于管理員登錄 函數(shù)參數(shù): 無函數(shù)編制者:馬瑞宜*/int adminlogin()long int pac,p;char adminname26=admin,pawod26=admin,adminname16,pawod16;printf(請輸入賬號:);scanf(%s,adminname1);if (strcmp(adminname1,adminname2)=0)goto loginpawo;elseprintf(n賬號錯誤!請重新登錄!n);getch();return p=0;loginpawo:pac=0;loginpawo2:printf(請輸入密碼:);scanf(%s,&pawod1);if (pac2)if(strcmp(pawod1,pawod2)=0)p=1;return p;elseprintf(n密碼錯誤,請重新輸入!n);pac=pac+1;goto loginpawo2;elseprintf(n連續(xù)三次密碼輸入錯誤,請重新登錄!n);getch();p=0;return p;/*函數(shù)名:void findbooknum()函數(shù)功能:查詢書籍 函數(shù)參數(shù):無函數(shù)編制者:馬瑞宜*/void findbooknum()long int i,fdbknum;int choice,j;allbooks();/*調(diào)用輸出所有圖書函數(shù)*/fdbk:printf(請輸入所要查詢的圖書編號:);scanf(%ld,&fdbknum);printf(編號 名字 介紹 數(shù)量 剩余數(shù)量n);for(i=0;i999;i+)if (fdbknum=bki.bkid)printf(%ld %-15s %-32s %-4d %dn,bki.bkid,,bki.remark,bki.bknum,bki.rebknum);j=1;break;if (j=1)printf(查詢完畢。n);elseprintf(不存在該編號的書!n);printf(1、重新查詢tt2、退出查詢n);printf(請輸入你的選擇:);scanf(%d,&choice);switch(choice)case 1:goto fdbk;case 2: break;printf(n請按任意鍵退出。n);/*函數(shù)名:void booksave()函數(shù)功能:用于管理員添加新書 函數(shù)參數(shù): 無函數(shù)編制者:馬瑞宜*/void booksave()long int idnum;char name,remark;int i,num;printagain:printf(請輸入書的編號:);scanf(%ld,&idnum);for (i=0;i999;i+)if (bki.bkid=idnum)printf(此編號已存在,請重新輸入!n);goto printagain;for (i=0;i999;i+)if (bki.bkid=0)/*找到未存內(nèi)容的數(shù)組下標*/break;bki.bkid=idnum;printf(請輸入書的名字:);scanf(%s,&name);strcpy(,&name);printf(請輸入書的簡介:);scanf(%s,&remark);strcpy(bki.remark,&remark);printf(請輸入書的數(shù)量:);scanf(%d,&num);bki.bknum=num;bki.rebknum=num;save();printf(添加成功!請輸入任意鍵退出!n);getch();/*函數(shù)名:void bookalter()函數(shù)功能:用于管理員修改書籍 函數(shù)參數(shù): 無函數(shù)編制者:馬瑞宜*/void bookalter()long int fdbknum,altbkid;int choice,altcho,j,altbknum,i,con;char confi,altname,altremark;fdbk:printf(請輸入所要修改的圖書編號:);scanf(%ld,&fdbknum);printf(編號 名字 介紹 數(shù)量 剩余數(shù)量n);for(i=0;i999;i+)if (fdbknum=bki.bkid)con=i;printf(%ld %-15s %-32s %-4d %dn,bki.bkid,,bki.remark,bki.bknum,bki.rebknum);j=1;break;if (j=1)againchoice:printf(確定修改本書(y/n)?);scanf(%s,&confi);if (confi=y|confi=Y)altercho:printf(請選擇修改選項:n1、編號n2、書名n3、簡介n4、數(shù)量n5、退出修改n);scanf(%d,&altcho);switch(altcho)printagain:case 1: printf(請輸入編號:);scanf(%ld,&altbkid);for (i=0;i999;i+)if (bki.bkid=altbkid)printf(此編號已存在,請重新輸入!n);goto printagain;bkcon.bkid=altbkid;case 2:printf(請輸入書名:);scanf(%s,&altname);strcpy(,&altname);case 3:printf(請輸入書的簡介:);scanf(%s,&altremark);strcpy(bkcon.remark,&altremark);printnumagain:case 4:printf(請輸入書的數(shù)量:);scanf(%d,&altbknum);if (altbknum(bkcon.bknum-bkcon.rebknum)printf(有%d本書被借出,修改數(shù)量應(yīng)該大于或等于%d,n請重新輸入。,bkcon.bknum-bkcon.rebknum,bkcon.bknum-bkcon.rebknum);goto printnumagain;bkcon.bknum=altbknum;case 5:goto againchoice2;default:printf(輸入錯誤,請重新輸入!n);goto altercho;else if (confi=n|confi=N)printf(未修改本書!n);goto againchoice2;elseprintf(輸入錯誤,請重新輸入!);goto againchoice;printf(修改成功!n);getch();goto altercho;else printf(不存在該編號的書!n);againchoice2:printf(1、重新查詢修改tt2、退出修改n);printf(請輸入你的選擇:);scanf(%d,&choice);switch(choice)case 1: system(cls);goto fdbk;case 2: break;save();printf(請輸入任意鍵退出!n);/*函數(shù)名:void bookdel()函數(shù)功能:用于管理員刪除書籍 函數(shù)參數(shù): 無函數(shù)編制者:馬瑞宜*/void bookdel()long int fdbknum;int choice,i,con,j;char confi;fdbk:printf(請輸入所要刪除的圖書編號:);scanf(%ld,&fdbknum);printf(編號 名字 介紹 數(shù)量 剩余數(shù)量n);for(i=0;ibki.rebknum)printf(該書已有%d本被借出,無法刪除!n,bki.bknum-bki.rebknum);goto againchoice2;elsecon=i;j=1;break;if (j=1)againchoice:printf(確定刪除本書(y/n)?);scanf(%s,&confi);if (confi=y|confi=Y)for(i=con;i999;i+)/*將后一個數(shù)組成員的值賦給前一個數(shù)組*/bki.bkid=bki+1.bkid;bki.bknum=bki+1.bknum;strcpy(,bki+1.name);strcpy(bki.remark,bki+1.remark);/*置空最后的數(shù)組*/bk998.bkid=0;bk998.bknum=0;strcpy(,);strcpy(bk998.remark,);save();printf(刪除成功!);else if (confi=n|confi=N)printf(未刪除本書!n);elseprintf(輸入錯誤,請重新輸入!);goto againchoice;else printf(不存在該編號的書!n);againchoice2:printf(1、重新查詢刪除tt2、退出刪除n);printf(請輸入你的選擇:);scanf(%d,&choice);switch(choice)case 1: system(cls);goto fdbk;case 2: break;printf(請輸入任意鍵退出!n);getch();/*函數(shù)名:void stusave()函數(shù)功能:用于管理員注冊新生 函數(shù)參數(shù): 無函數(shù)編制者:馬瑞宜*/void stusave()long int num;char name;int i;printagain:printf(請輸入學(xué)生的學(xué)號:);scanf(%ld,&num);for (i=0;i99;i+)if (stui.stunum=num)printf(此賬號已存在,請重新輸入!n);goto printagain;for (i=0;i99;i+)/*找到未存內(nèi)容的數(shù)組下標*/if (stui.stunum=0)break;stui.stunum=num;printf(請輸入學(xué)生的名字:);scanf(%s,&name);strcpy(,&name);strcpy(stui.pawo,888888);save();printf(添加成功!默認密碼為888888,請及時修改密碼!n按任意鍵退出!n);getch();/*函數(shù)名:void main()函數(shù)功能:主函數(shù) 函數(shù)參數(shù): 無函數(shù)編制者:馬瑞宜*/void main()int choice;printf(=nn);printf( 廣東工業(yè)大學(xué)自動化學(xué)院電子信息科學(xué)與技術(shù)1班圖書管理系統(tǒng)nn);printf( 注意事項nn);printf(=nnn);printf(請保證student.txt和book.txt該兩文件(在初始文檔文件夾里面)在可執(zhí)行文件exe的目錄和工程文件.c的目錄下,否則運行會出錯。nn按任意鍵進入系統(tǒng)。nn);getch();system(cls);load();inbegin:system(cls);printf(=nn);print
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物第十章浮力單元試卷 2024-2025學(xué)年人教版物理八年級下冊
- 2024年紡織品檢驗員考試注意事項試題及答案
- 土壤普查試題答案及解析
- 山東會計綜評試題及答案
- 社區(qū)建設(shè)考試試題及答案
- 必修四 測試題及答案
- 助理廣告師考試中廣告交流策略的深入分析試題及答案
- 廣告設(shè)計師廣告效果測評試題及答案
- 管理會計試題卷及答案
- 強化實踐國際商業(yè)美術(shù)設(shè)計師考試試題及答案
- 2024年研發(fā)部規(guī)劃
- 《冠心病》課件(完整版)
- 失業(yè)保險待遇申領(lǐng)表
- 銷售提成及職能部門員工利潤分紅方案
- 藥用植物學(xué)智慧樹知到答案2024年浙江中醫(yī)藥大學(xué)
- 評職稱業(yè)績合同協(xié)議書
- 廣東省佛山2022-2023學(xué)年外研版八年級下學(xué)期英語期末模擬試卷(二)
- 四年級《爺爺?shù)臓敔攺哪睦飦怼烽喿x測評題
- 2020-2024年安徽省初中學(xué)業(yè)水平考試中考英語試卷(5年真題+答案解析)
- 2024年福建省泉州市中考二模地理試題
- 2024年重慶八中中考數(shù)學(xué)一模試卷
評論
0/150
提交評論