




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上HUNAN UNIVERSITYC語言程序訓(xùn)練報(bào) 告【設(shè)計(jì)目的】圖書信息包括:讀者登錄號(hào)、管理員登錄號(hào)、圖書編號(hào)、作者名、種類、出版社、圖書庫(kù)存、圖書借出數(shù)目等.圖書信息管理系統(tǒng),使之能提供以下功能:1)系統(tǒng)以菜單方式工作2)讀者注冊(cè)功能3)讀者登錄功能4)讀者借書還書功能5)查詢讀者借閱記錄6)查詢?cè)诠軋D書信息功能7)修改密碼功能8)管理員登錄功能9)增加、修改、刪除圖書功能10)查看圖書信息功能【設(shè)計(jì)思路】根據(jù)題目要求,應(yīng)當(dāng)把圖書信息用結(jié)構(gòu)體形式輸入,應(yīng)該提供以下結(jié)構(gòu)體和文件的輸入等操作:在程序中需要實(shí)現(xiàn)圖書信息錄入,瀏覽,查詢,刪除和修改等功能的操作,所以需要建
2、立相應(yīng)的模塊來實(shí)現(xiàn):另外還需提供選擇菜單實(shí)現(xiàn)功能,在運(yùn)行時(shí)達(dá)到所要求的目的;管理員和讀者登錄界面及各自功能應(yīng)有不同的實(shí)現(xiàn)。 【總體設(shè)計(jì)】圖書館管理系統(tǒng)讀者注冊(cè)、登陸及密碼修改修改圖書信息刪除圖書信息管理員登陸查找圖書信息 瀏覽圖書信息 【詳細(xì)設(shè)計(jì)】1.主函數(shù)主函數(shù)設(shè)計(jì)要求簡(jiǎn)潔,只提供部分提示語和函數(shù)的調(diào)用 顯示一系列功能選項(xiàng)輸入n,n為1,2或3根據(jù)n的值調(diào)用各功能模塊函數(shù)結(jié)束開始n源代碼為/rkou.c 程序的入口 #include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.
3、h>#include"head.h"#include"fuc.h"#include"picture.h"#include"jiangzhuo1.h"#include"output.h" main() int i=setup(); switch (i) case 0: while(n<50) conects(n); default: eros(i); system("pause");2.程序中全局變量聲明定義,以及所有函數(shù)聲明 源代碼為struct book /圖書
4、結(jié)構(gòu)體聲明 char name50,classic10,writer20; /書名,類別,作者 int jn; /借出數(shù)量 int zn; /在館數(shù)量 int bh; /圖書編號(hào) ;struct information /管理員和讀者結(jié)構(gòu)體聲明 char name10,no12,key10; /姓名,賬號(hào),密碼 ;struct show /圖書借閱記錄的結(jié)構(gòu)體聲明 char name110,name250,writer20,no12; /書名,讀者姓名,書的作者,讀者賬號(hào) int bh,o; /圖書編號(hào),借閱狀況(未還,已還) ; /以下為用到的全局變量 struct book bk;stru
5、ct information aa,rr; struct information stu100;struct book bb100;struct information ad100;struct show ss100; int i,j,k,s;int n=0;int x;FILE *fp;/以下函數(shù)主要功能:方便窗口與用戶之間交換信息 int regst(); void password(char *a,int b,int j); /登陸時(shí)的輸入函數(shù) void examine(int *a,int b); /保證鍵入的數(shù)據(jù)是數(shù)字void changepaw(int a,int b); /修改密
6、碼用到的提示函數(shù)void inputs0(); /輸出圖書類別以供用戶選擇void inputs1(int a,int b,int c,int d,int e); /方便用戶輸入圖書各項(xiàng)信息(如書名,編號(hào)) void inputs2(int a,int b,int c); /方便用戶輸入管理員的信息(如賬號(hào)姓名) void inputs3(int a,int b,int c); /方便用戶輸入讀者的信息(如賬號(hào)姓名) void eros(int i) ; /錯(cuò)誤顯示函數(shù),操作一旦出錯(cuò),則會(huì)出現(xiàn)相應(yīng)的錯(cuò)誤信息 void conects(int j); /連接函數(shù),選擇界面 /一下函數(shù)主要用于改變
7、文件的內(nèi)容并保存 int setup() ; /數(shù)據(jù)初始化函數(shù)int xzc(char no12,char key110,char key210,char name10); /讀者注冊(cè)函數(shù)int exam(char no10,char key10,int n); /密碼賬號(hào)檢驗(yàn)函數(shù) int mp(char no12,char key110,char key210,char key310,int n); /密碼修改函數(shù) void paixu(); /對(duì)圖書按照編號(hào)從小到大的順序進(jìn)行排列 int sc(int bh); /管理員刪除圖書信息函數(shù) int zj(struct book bb); /管
8、理員增加圖書信息函數(shù) int xg(struct book bb); /管理員修改圖書信息函數(shù) int js(int bh,char no12); /借書函數(shù) int hs(int bh,char no12); /還書函數(shù) int bh1(int bh); /判斷該編號(hào)的圖書信息是否存在函數(shù) void bh2(int bh); /按照?qǐng)D書編號(hào)顯示圖書信息函數(shù) int sm1(char name50); /判斷是否存在該名字的圖書信息函數(shù)void sm2(char name50); /按照?qǐng)D書名字顯示圖書信息函數(shù) int zz1(char writer20); /判斷是否存在該作者的圖書信息函數(shù)
9、 void zz2(char writer20); /按照?qǐng)D書作者顯示圖書信息函數(shù) void lb(char classic10); /按類別顯示圖書信息 int rck1(int bh); /判斷該編號(hào)的圖書的借書記錄是否存在 void rck2(int bh); /按編號(hào)顯示圖書借書情況int gck21(char no12); /判斷該賬號(hào)讀者的借書記錄是否存在 void gck22(char no12); /按讀者顯示借書情況2 void gck12(); /顯示全部借書情況 void gck23(); /管理員查看所有書的信息void copy(int bh); / 按編圖書編號(hào)將圖
10、書信息暫時(shí)保存在另外一個(gè)結(jié)構(gòu)體里面 void copy2(char no12); /按管理員賬號(hào)將管理員信息暫時(shí)保存在另外一個(gè)結(jié)構(gòu)體里面void copy3(char no12); /按讀者賬號(hào)將讀者信息暫時(shí)保存在另外一個(gè)結(jié)構(gòu)體里面/pic() 函數(shù):每個(gè)函數(shù)表示一個(gè)界面,conects函數(shù)將它們連接起來void pic0();void pic1();void pic2();void pic3();void pic4();void pic5();void pic6();void pic7();void pic8();void pic9();void pic10();void pic11();v
11、oid pic12();void pic13();void pic14();void pic15();void pic16();void pic17();void pic18();void pic19();void pic20();void pic21();void pic22();void pic23(); void pic24();void pic25();void pic26();void pic27();void pic29();void pic30();void pic31();void pic32();void pic33();void pic34();void pic35();v
12、oid pic36();void pic37();void pic38();void pic39();void pic40();void pic41();void pic42();void pic43();void pic44(); void pic45();void pic46();void pic47();void picc(); 3. 用戶輸入以及界面反饋用到的功能函數(shù) 源代碼為int regst() char num12,paw110,paw210,name10; int i; printf("請(qǐng)輸入賬號(hào)n(11字符以內(nèi),不能含有中文字符):n"); passwor
13、d(num,0,11); printf("輸入您的密碼n(9字符以內(nèi),不能含有中文字符):n"); password(paw1,1,9); printf("請(qǐng)?jiān)俅屋斎朊艽a:n"); password(paw2,1,9); printf("輸入您的姓名:n"); gets(name); system("cls"); i=xzc(num,paw1,paw2,name); return i; void password(char *a,int b,int j) char c; int i=0; while(c=getch
14、()!='r') if(c=8) printf("b b"); if(i>0) i-; else if(i<j) 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()!='
15、n'); printf("請(qǐng)輸入數(shù)字!n"); rewind(stdin); if(b) system("cls");void changepaw(int a,int b) int i; char c110,c210,c310; printf("請(qǐng)輸入原密碼n"); password(c1,1,9); printf("請(qǐng)輸入新密碼n"); password(c2,1,9); printf("請(qǐng)?jiān)俅屋斎胄旅艽an"); password(c3,1,9); system("cls&q
16、uot;); 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; cas
17、e 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
18、,int c,int d,int e) int i; switch(a) case 1: printf("請(qǐng)輸入圖書編號(hào):n");examine(&bk.bh,1); default: ; switch(b) case 1: printf("請(qǐng)輸入圖書名稱:n");gets(); default: ; switch(c) case 1: printf("請(qǐng)輸入圖書的作者:n");gets(bk.writer); default: ; switch(d) case 1: printf("請(qǐng)輸入該圖書的庫(kù)存
19、:n");examine(&bk.zn,1); default: ; system("cls"); switch(e) case 1: printf("請(qǐng)選擇圖書類別:n");inputs0(); default: ; void inputs2(int a,int b,int c) switch(a) case 1: printf("請(qǐng)輸入賬號(hào):n");password(aa.no,0,11); default: ; switch(b) case 1: printf("請(qǐng)輸入密碼:n"); pas
20、sword(aa.key,1,9); default: ; switch(c) case 1: printf("請(qǐng)輸入姓名:n");gets(); default: ; system("cls"); void inputs3(int a,int b,int c) switch(a) case 1: printf("請(qǐng)輸入賬號(hào):n");password(rr.no,0,11); default: ; switch(b) case 1: printf("請(qǐng)輸入密碼:n"); password(rr.key
21、,1,9); default: ; switch(c) case 1: printf("請(qǐng)輸入姓名:n");gets(); default: ; system("cls");void eros(int i) /錯(cuò)誤函數(shù) switch (i) case -1: printf("error1 !初始化失敗nn");break; case -2: printf("error2 !賬號(hào)不存在nn");break; case -3: printf("error3 !賬號(hào)不存在nn");bre
22、ak; case -4: printf("error4 !密碼錯(cuò)誤nn");break; case -5: printf("error5 !輸入的密碼不一致nn");break; case -6: printf("error6 !編號(hào)不存在nn");break; case -7: printf("error7 !書名不能為空nn");break; case -8: printf("error8 !作者名字不能為空nn");break; case -9: printf("error9 !
23、無此圖書編號(hào)的記錄nn");break; case -10: printf("error10 !無此賬號(hào)的記錄nn");break; case -11: printf("error11 !原始密碼輸入錯(cuò)誤nn");break; case -12: printf("error12 !您已經(jīng)歸還此書nn");break; case -13: printf("error13 !您所增加的圖書編號(hào)已存在nn");break; case -14: printf("error14 !搜索不到此書的相關(guān)信息n
24、n");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&quo
25、t;);break; case -20: printf("error20 !抱歉,圖書已經(jīng)借完了nn");break; case -21: printf("error21 !賬號(hào)已存在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; ca
26、se 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
27、 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()
28、;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
29、 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"); /對(duì)文檔以只讀的方式進(jìn)行操作 if(fp=NULL) return -
30、1; /當(dāng)文件打不開時(shí)返回-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"); /對(duì)文檔以只讀的方式進(jìn)行操作 if(fp=NULL) return -1; /當(dāng)文件打不開時(shí)返回-1 else j=0; while(!feof(fp) fscanf(fp,"%s %s %s",ad
31、,adj.no,adj.key); /將文檔里面的數(shù)據(jù)格式化讀取到結(jié)構(gòu)體數(shù)組里面 j+;j=j-1; fclose(fp); fp=fopen("book.txt","r"); /對(duì)文檔以只讀的方式進(jìn)行操作 if(fp=NULL) return -1; /當(dāng)文件打不開時(shí)返回-1 elsek=0; while(!feof(fp) fscanf(fp,"%d %s %s %s %d %d ",&bbk.bh,,bbk.classic,bbk.writer,&bbk.zn,&bbk.jn)
32、; /將文檔里面的數(shù)據(jù)格式化讀取到結(jié)構(gòu)體數(shù)組里面 k+;k=k-1; fclose(fp); fp=fopen("show.txt","r"); /對(duì)文檔以只讀的方式進(jìn)行操作 if(fp=NULL) return -1; /當(dāng)文件打不開時(shí)返回-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
33、=s-1; fclose(fp);return 0; /當(dāng)操作全部正確時(shí)返回0 int xzc(char no12,char key110,char key210,char name10) /讀者注冊(cè)函數(shù) int x=0; for(x=0;x<=i;x+) if(!strcmp(no,stux.no) /判斷讀者輸入的賬號(hào)與結(jié)構(gòu)體里面的賬號(hào)是否相同 return -21; break; if(x=i && strcmp(no,stux.no)/判斷讀者輸入的賬號(hào)與結(jié)構(gòu)體里面的賬號(hào)是否相同 if(!strcmp(key1,key2) /判斷讀者兩次輸入的密碼是否一致 i=i
34、+1; strcpy(,name); strcpy(stui.no,no); strcpy(stui.key,key1); fp=fopen("reader.txt","a"); /對(duì)文件以寫的方式將注冊(cè)的信息保存到文件里面 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 key
35、10,int n) /密碼賬號(hào)檢驗(yàn)函數(shù) int x; if(n=0) /對(duì)讀者的 密碼和賬號(hào)信息進(jìn)行檢驗(yàn) for(x=0;x<=i;x+) if(!strcmp(no,stux.no) /判斷該賬號(hào)是否存在 if(!strcmp(key,stux.key) /當(dāng)賬號(hào)存在時(shí)判斷與之相應(yīng)的密碼是否相同 return 0; break; else return -4;break; if(x=i && strcmp(no,stux.no) return -3; if(n=1) /對(duì)管理員的密碼賬號(hào)信息進(jìn)行檢驗(yàn) for(x=0;x<=i;x+) if(!strcmp(no,a
36、dx.no) /判斷該賬號(hào)是否存在 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) /判斷所增加的圖書編號(hào)是否已存在 return -13; break; if(!strcmp(,)&&!strcm
37、p(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&q
38、uot;); /將增加的圖書信息追加到文件里面 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) /判斷所刪除圖書的編號(hào)是否存在 if(bbx.jn!=0) return -22; for(x=x;x<=k-1;x+) bbx=bbx+1; /刪除圖書信息后將該圖書
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 胃癌患者春節(jié)護(hù)理常規(guī)
- 自然教育大樹小班課程體系構(gòu)建
- 糖尿病足壞疽個(gè)案護(hù)理
- 醫(yī)美咨詢師接診技巧培訓(xùn)
- 學(xué)習(xí)方式訓(xùn)練培訓(xùn)
- 施工測(cè)量培訓(xùn)課件
- 餐飲店加盟權(quán)轉(zhuǎn)讓及接手合同范本
- 邴蕾離婚協(xié)議書全面考量子女教育與財(cái)產(chǎn)分配方案
- 桉樹種植基地土地流轉(zhuǎn)與種植合同
- 股票市場(chǎng)動(dòng)態(tài)分析及投資策略咨詢協(xié)議
- 天津工業(yè)大學(xué)2023級(jí)本科學(xué)生轉(zhuǎn)專業(yè)名額及條件等相關(guān)情況一
- 新護(hù)士五年規(guī)范化培訓(xùn)手冊(cè)
- 醫(yī)學(xué)免疫學(xué)和病原生物學(xué)理論知識(shí)考核試題及答案
- 勝保養(yǎng)操作手冊(cè)江鈴馭
- 疫苗及其制備技術(shù)課件
- 阿里巴巴公司價(jià)值觀實(shí)施細(xì)則
- 安全防范系統(tǒng)設(shè)計(jì)方案
- 人教版PEP初中八年級(jí)下冊(cè)英語全冊(cè)課件
- 《人衛(wèi)版第九版內(nèi)科學(xué)心力衰竭》課件PPT
- 中國(guó)監(jiān)察制度史
- 竣工驗(yàn)收證書(模板)
評(píng)論
0/150
提交評(píng)論