圖書館管理系統(tǒng)C語言程序設(shè)計_第1頁
圖書館管理系統(tǒng)C語言程序設(shè)計_第2頁
圖書館管理系統(tǒng)C語言程序設(shè)計_第3頁
圖書館管理系統(tǒng)C語言程序設(shè)計_第4頁
圖書館管理系統(tǒng)C語言程序設(shè)計_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

HUNAN UNIVERSITYC語言程序訓(xùn)練報 告【設(shè)計目的】圖書信息包括:讀者登錄號、管理員登錄號、圖書編號、作者名、種類、出版社、圖書庫存、圖書借出數(shù)目等.圖書信息管理系統(tǒng),使之能提供以下功能:1)系統(tǒng)以菜單方式工作2)讀者注冊功能3)讀者登錄功能4)讀者借書還書功能5)查詢讀者借閱記錄6)查詢在管圖書信息功能7)修改密碼功能8)管理員登錄功能9)增加、修改、刪除圖書功能10)查看圖書信息功能【設(shè)計思路】根據(jù)題目要求,應(yīng)當(dāng)把圖書信息用結(jié)構(gòu)體形式輸入,應(yīng)該提供以下結(jié)構(gòu)體和文件的輸入等操作:在程序中需要實現(xiàn)圖書信息錄入,瀏覽,查詢,刪除和修改等功能的操作,所以需要建立相應(yīng)的模塊來實現(xiàn):另外還需提供選擇菜單實現(xiàn)功能,在運行時達(dá)到所要求的目的;管理員和讀者登錄界面及各自功能應(yīng)有不同的實現(xiàn)。 【總體設(shè)計】圖書館管理系統(tǒng)讀者注冊、登陸及密碼修改修改圖書信息刪除圖書信息管理員登陸查找圖書信息 瀏覽圖書信息 【詳細(xì)設(shè)計】1.主函數(shù)主函數(shù)設(shè)計要求簡潔,只提供部分提示語和函數(shù)的調(diào)用 顯示一系列功能選項輸入n,n為1,2或3根據(jù)n的值調(diào)用各功能模塊函數(shù)結(jié)束開始n源代碼為/rkou.c 程序的入口 #include#include#include#include#includehead.h#includefuc.h#includepicture.h#includejiangzhuo1.h#includeoutput.h main() int i=setup(); switch (i) case 0: while(n0) i-; else if(ij) if(b) printf(*); else printf(%c,c); ai=c; i+; if(i=j) printf(a); ai=0; printf(n); void examine(int *a,int b) while(!scanf(%d,a) while(getchar()!=n); printf(請輸入數(shù)字!n); rewind(stdin); if(b) system(cls);void changepaw(int a,int b) int i; char c110,c210,c310; printf(請輸入原密碼n); password(c1,1,9); printf(請輸入新密碼n); password(c2,1,9); printf(請再次輸入新密碼n); password(c3,1,9); system(cls); if(b) i=mp(aa.no,c1,c2,c3,b); if(i) eros(i);n=27; else n=26; else i=mp(rr.no,c1,c2,c3,b); if(i) eros(i);n=44; else n=43; void inputs0() int i=1; while(i=1) printf(1.A類n2.B類n3.C類n4.D類n5.E類n6.F類n); examine(&i,1); switch(i) case 1: strcpy(bk.classic,A類);i=0;break; case 2: strcpy(bk.classic,B類);i=0;break; case 3: strcpy(bk.classic,C類);i=0;break; case 4: strcpy(bk.classic,D類);i=0;break; case 5: strcpy(bk.classic,E類);i=0;break; case 6: strcpy(bk.classic,F類);i=0;break; default: i=1; void inputs1(int a,int b,int c,int d,int e) int i; switch(a) case 1: printf(請輸入圖書編號:n);examine(&bk.bh,1); default: ; switch(b) case 1: printf(請輸入圖書名稱:n);gets(); default: ; switch(c) case 1: printf(請輸入圖書的作者:n);gets(bk.writer); default: ; switch(d) case 1: printf(請輸入該圖書的庫存:n);examine(&bk.zn,1); default: ; system(cls); switch(e) case 1: printf(請選擇圖書類別:n);inputs0(); default: ; void inputs2(int a,int b,int c) switch(a) case 1: printf(請輸入賬號:n);password(aa.no,0,11); default: ; switch(b) case 1: printf(請輸入密碼:n); password(aa.key,1,9); default: ; switch(c) case 1: printf(請輸入姓名:n);gets(); default: ; system(cls); void inputs3(int a,int b,int c) switch(a) case 1: printf(請輸入賬號:n);password(rr.no,0,11); default: ; switch(b) case 1: printf(請輸入密碼:n); password(rr.key,1,9); default: ; switch(c) case 1: printf(請輸入姓名:n);gets(); default: ; system(cls);void eros(int i) /錯誤函數(shù) switch (i) case -1: printf(error1 !初始化失敗nn);break; case -2: printf(error2 !賬號不存在nn);break; case -3: printf(error3 !賬號不存在nn);break; case -4: printf(error4 !密碼錯誤nn);break; case -5: printf(error5 !輸入的密碼不一致nn);break; case -6: printf(error6 !編號不存在nn);break; case -7: printf(error7 !書名不能為空nn);break; case -8: printf(error8 !作者名字不能為空nn);break; case -9: printf(error9 !無此圖書編號的記錄nn);break; case -10: printf(error10 !無此賬號的記錄nn);break; case -11: printf(error11 !原始密碼輸入錯誤nn);break; case -12: printf(error12 !您已經(jīng)歸還此書nn);break; case -13: printf(error13 !您所增加的圖書編號已存在nn);break; case -14: printf(error14 !搜索不到此書的相關(guān)信息nn);break; case -15: printf(error15 !搜索不到該作者的信息nn);break; case -16: printf(error16 !打不開文件,保存失敗nn);break; case -17: printf(error17 !該圖書信息已存在nn);break; case -18: printf(error18 !您沒有借過這本書nn);break; case -19: printf(error19 !您已經(jīng)借閱了這本書,不能再借nn);break; case -20: printf(error20 !抱歉,圖書已經(jīng)借完了nn);break; case -21: printf(error21 !賬號已存在nn) ; break; case -22: printf(error22 !還有圖書未還,不能刪除該條信息nn);break; default : ; void conects(int j) switch(j) case 0: pic0();break; case 1: pic1();break; case 2: pic2();break; case 3: pic3();break; case 4: pic4();break; case 5: pic5();break; case 6: pic6();break; case 7: pic7();break; case 8: pic8();break; case 9: pic9();break; case 10: pic10();break; case 11: pic11();break; case 12: pic12();break; case 13: pic13();break; case 14: pic14();break; case 15: pic15();break; case 16: pic16();break; case 17: pic17();break; case 18: pic18();break; case 19: pic19();break; case 20: pic20();break; case 21: pic21();break; case 22: pic22();break; case 23: pic23();break; case 24: pic24();break; case 25: pic25();break; case 26: pic26();break; case 27: pic27();break; case 29: pic29();break; case 30: pic30();break; case 31: pic31();break; case 32: pic32();break; case 33: pic33();break; case 34: pic34();break; case 35: pic35();break; case 36: pic36();break; case 37: pic37();break; case 38: pic38();break; case 39: pic39();break; case 40: pic40();break; case 41: pic41();break; case 42: pic42();break; case 43: pic43();break; case 44: pic44();break; case 45: pic45();break; case 46: pic46();break; case 47: pic47();break; default: ; 4.文件操作各種函數(shù)源代碼為/jiangzhuo1.h文件操作各種函數(shù)int setup() /數(shù)據(jù)初始化函數(shù) FILE *fp; fp=fopen(reader.txt,r); /對文檔以只讀的方式進(jìn)行操作 if(fp=NULL) return -1; /當(dāng)文件打不開時返回-1 elsei=0; while(!feof(fp) fscanf(fp,%s %s %s,,stui.no,stui.key); /將文檔里面的數(shù)據(jù)格式化讀取到結(jié)構(gòu)體數(shù)組里面 i+;i=i-1; fclose(fp); fp=fopen(ad.txt,r); /對文檔以只讀的方式進(jìn)行操作 if(fp=NULL) return -1; /當(dāng)文件打不開時返回-1 else j=0; while(!feof(fp) fscanf(fp,%s %s %s,,adj.no,adj.key); /將文檔里面的數(shù)據(jù)格式化讀取到結(jié)構(gòu)體數(shù)組里面 j+;j=j-1; fclose(fp); fp=fopen(book.txt,r); /對文檔以只讀的方式進(jìn)行操作 if(fp=NULL) return -1; /當(dāng)文件打不開時返回-1 elsek=0; while(!feof(fp) fscanf(fp,%d %s %s %s %d %d ,&bbk.bh,,bbk.classic,bbk.writer,&bbk.zn,&bbk.jn); /將文檔里面的數(shù)據(jù)格式化讀取到結(jié)構(gòu)體數(shù)組里面 k+;k=k-1; fclose(fp); fp=fopen(show.txt,r); /對文檔以只讀的方式進(jìn)行操作 if(fp=NULL) return -1; /當(dāng)文件打不開時返回-1 elses=0; while(!feof(fp) fscanf(fp, %s %s %d %s %s %d ,1,sss.no,&sss.bh,2,sss.writer,&sss.o); /將文檔里面的數(shù)據(jù)格式化讀取到結(jié)構(gòu)體數(shù)組里面s+;s=s-1; fclose(fp);return 0; /當(dāng)操作全部正確時返回0 int xzc(char no12,char key110,char key210,char name10) /讀者注冊函數(shù) int x=0; for(x=0;x=i;x+) if(!strcmp(no,stux.no) /判斷讀者輸入的賬號與結(jié)構(gòu)體里面的賬號是否相同 return -21; break; if(x=i & strcmp(no,stux.no)/判斷讀者輸入的賬號與結(jié)構(gòu)體里面的賬號是否相同 if(!strcmp(key1,key2) /判斷讀者兩次輸入的密碼是否一致 i=i+1; strcpy(,name); strcpy(stui.no,no); strcpy(stui.key,key1); fp=fopen(reader.txt,a); /對文件以寫的方式將注冊的信息保存到文件里面 if(fp=NULL) return -16; else fprintf(fp,%stt%stt%sn,,stui.no,stui.key); fclose(fp); return 0; else return -5; int exam(char no10,char key10,int n) /密碼賬號檢驗函數(shù) int x; if(n=0) /對讀者的 密碼和賬號信息進(jìn)行檢驗 for(x=0;x=i;x+) if(!strcmp(no,stux.no) /判斷該賬號是否存在 if(!strcmp(key,stux.key) /當(dāng)賬號存在時判斷與之相應(yīng)的密碼是否相同 return 0; break; else return -4;break; if(x=i & strcmp(no,stux.no) return -3; if(n=1) /對管理員的密碼賬號信息進(jìn)行檢驗 for(x=0;x=i;x+) if(!strcmp(no,adx.no) /判斷該賬號是否存在 if(!strcmp(key,adx.key) /判斷與之相應(yīng)的密碼是否存在 return 0; break; else return -4;break; if(x=j & strcmp(no,adx.no) return -3; int zj(struct book b) /管理員增加圖書信息函數(shù) int x; for(x=0;x=k;x+) if(bbx.bh=b.bh) /判斷所增加的圖書編號是否已存在 return -13; break; if(!strcmp(,)&!strcmp(b.writer,bbx.writer) /判斷所增加的圖書是否存在 return -17; break; if(x=k) if(strlen()=0) /判斷文檔的第一行是否為空 k=k; else k=k+1; bbk.bh=b.bh; /將所增加的圖書信息添加到結(jié)構(gòu)體里面 strcpy(,); strcpy(bbk.classic,b.classic); strcpy(bbk.writer,b.writer); bbk.zn=b.zn; bbk.jn=b.jn; fp=fopen(book.txt,a); /將增加的圖書信息追加到文件里面 if(fp=NULL) return -16; else fprintf(fp,%dt%-30st%-30st%-10st%dt%dn,bbk.bh,,bbk.classic,bbk.writer,bbk.zn,bbk.jn); fclose(fp); return 0; int sc(int bh) /管理員刪除圖書信息函數(shù) int x; for(x=0;x=k;x+) if(bbx.bh=bh) /判斷所刪除圖書的編號是否存在 if(bbx.jn!=0) return -22; for(x=x;x=k-1;x+) bbx=bbx+1; /刪除圖書信息后將該圖書信息后面的圖書信息依次前移 k-; fp=fopen(book.txt,w+); /將刪除后的所有圖書信息重新寫入文檔 if(fp=NULL) return -16; else for(x=0;x=k;x+) fprintf(fp,%dt%-30st%-30st%-10st%dt%dn,bbx.bh,,bbx.classic,bbx.writer,bbx.zn,bbx.jn); fclose(fp); return 0; break; int mp(char no12,char key110,char key210,char key310,int n) /密碼修改函數(shù) int x; if(n=0) /讀者密碼修改 for(

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論