




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
HUNANUNIVERSITYC語(yǔ)言程序訓(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)圖書信息錄入,瀏覽,查詢,刪除和修改等功能的操作,所以需要建立相應(yīng)的模塊來實(shí)現(xiàn):另外還需提供選擇菜單實(shí)現(xiàn)功能,在運(yùn)行時(shí)到達(dá)所要求的目的;管理員和讀者登錄界面及各自功能應(yīng)有不同的實(shí)現(xiàn)。【總體設(shè)計(jì)】圖書館管理系統(tǒng)圖書館管理系統(tǒng)讀者注冊(cè)、登陸及密碼修改修改圖書信息刪除圖書信息管理員登陸查找圖書信息瀏覽圖書信息【詳細(xì)設(shè)計(jì)】1.主函數(shù)主函數(shù)設(shè)計(jì)要求簡(jiǎn)潔,只提供局部提示語(yǔ)和函數(shù)的調(diào)用顯示一系列功能選項(xiàng)顯示一系列功能選項(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.h>#include"head.h"#include"fuc.h"#include"picture.h"#include"jiangzhuo1.h"#include"output.h"main(){inti=setup();switch(i){case0:while(n<50){conects(n);}default:eros(i);}system("pause");}2.程序中全局變量聲明定義,以及所有函數(shù)聲明源代碼為structbook//圖書結(jié)構(gòu)體聲明{ charname[50],classic[10],writer[20];//書名,類別,作者 intjn;//借出數(shù)量intzn;//在館數(shù)量intbh;//圖書編號(hào)};structinformation//管理員和讀者結(jié)構(gòu)體聲明{ charname[10],no[12],key[10];//姓名,賬號(hào),密碼};structshow//圖書借閱記錄的結(jié)構(gòu)體聲明{charname1[10],name2[50],writer[20],no[12];//書名,讀者姓名,書的作者,讀者賬號(hào)intbh,o;//圖書編號(hào),借閱狀況(未還,已還)};//以下為用到的全局變量structbookbk;structinformationaa,rr;structinformationstu[100];structbookbb[100];structinformationad[100];structshowss[100];inti,j,k,s;intn=0;intx;FILE*fp;//以下函數(shù)主要功能:方便窗口與用戶之間交換信息intregst();voidpassword(char*a,intb,intj);//登陸時(shí)的輸入函數(shù)voidexamine(int*a,intb); //保證鍵入的數(shù)據(jù)是數(shù)字voidchangepaw(inta,intb); //修改密碼用到的提示函數(shù)voidinputs0(); //輸出圖書類別以供用戶選擇voidinputs1(inta,intb,intc,intd,inte); //方便用戶輸入圖書各項(xiàng)信息(如書名,編號(hào))voidinputs2(inta,intb,intc); //方便用戶輸入管理員的信息(如賬號(hào)姓名)voidinputs3(inta,intb,intc); //方便用戶輸入讀者的信息(如賬號(hào)姓名)voideros(inti);//錯(cuò)誤顯示函數(shù),操作一旦出錯(cuò),那么會(huì)出現(xiàn)相應(yīng)的錯(cuò)誤信息voidconects(intj); //連接函數(shù),選擇界面//一下函數(shù)主要用于改變文件的內(nèi)容并保存intsetup();//數(shù)據(jù)初始化函數(shù)intxzc(charno[12],charkey1[10],charkey2[10],charname[10]);//讀者注冊(cè)函數(shù)intexam(charno[10],charkey[10],intn);//密碼賬號(hào)檢驗(yàn)函數(shù)intmp(charno[12],charkey1[10],charkey2[10],charkey3[10],intn);//密碼修改函數(shù)voidpaixu();//對(duì)圖書按照編號(hào)從小到大的順序進(jìn)行排列intsc(intbh);//管理員刪除圖書信息函數(shù)intzj(structbookbb);//管理員增加圖書信息函數(shù)intxg(structbookbb);//管理員修改圖書信息函數(shù)intjs(intbh,charno[12]);//借書函數(shù)inths(intbh,charno[12]);//還書函數(shù)intbh1(intbh);//判斷該編號(hào)的圖書信息是否存在函數(shù)voidbh2(intbh);//按照?qǐng)D書編號(hào)顯示圖書信息函數(shù)intsm1(charname[50]);//判斷是否存在該名字的圖書信息函數(shù)voidsm2(charname[50]);//按照?qǐng)D書名字顯示圖書信息函數(shù)intzz1(charwriter[20]);//判斷是否存在該作者的圖書信息函數(shù)voidzz2(charwriter[20]);//按照?qǐng)D書作者顯示圖書信息函數(shù)voidlb(charclassic[10]);//按類別顯示圖書信息intrck1(intbh);//判斷該編號(hào)的圖書的借書記錄是否存在voidrck2(intbh);//按編號(hào)顯示圖書借書情況intgck21(charno[12]);//判斷該賬號(hào)讀者的借書記錄是否存在voidgck22(charno[12]);//按讀者顯示借書情況2voidgck12();//顯示全部借書情況voidgck23();//管理員查看所有書的信息voidcopy(intbh);//按編圖書編號(hào)將圖書信息暫時(shí)保存在另外一個(gè)結(jié)構(gòu)體里面voidcopy2(charno[12]);//按管理員賬號(hào)將管理員信息暫時(shí)保存在另外一個(gè)結(jié)構(gòu)體里面voidcopy3(charno[12]);//按讀者賬號(hào)將讀者信息暫時(shí)保存在另外一個(gè)結(jié)構(gòu)體里面//pic()函數(shù):每個(gè)函數(shù)表示一個(gè)界面,conects函數(shù)將它們連接起來voidpic0(); voidpic1(); voidpic2(); voidpic3();voidpic4(); voidpic5();voidpic6();voidpic7();voidpic8(); voidpic9();voidpic10();voidpic11();voidpic12();voidpic13();voidpic14();voidpic15(); voidpic16();voidpic17();voidpic18();voidpic19();voidpic20();voidpic21(); voidpic22();voidpic23();voidpic24();voidpic25(); voidpic26();voidpic27(); voidpic29();voidpic30();voidpic31(); voidpic32();voidpic33();voidpic34();voidpic35();voidpic36();voidpic37(); voidpic38();voidpic39();voidpic40(); voidpic41(); voidpic42();voidpic43();voidpic44();voidpic45(); voidpic46();voidpic47();voidpicc();用戶輸入以及界面反應(yīng)用到的功能函數(shù)源代碼為intregst(){charnum[12],paw1[10],paw2[10],name[10];inti;printf("請(qǐng)輸入賬號(hào)\n(11字符以內(nèi),不能含有中文字符):\n");password(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);returni;}voidpassword(char*a,intb,intj){charc;inti=0;while((c=getch())!='\r'){if(c==8){printf("\b\b");if(i>0)i--;}elseif(i<j){if(b)printf("*");elseprintf("%c",c);a[i]=c;i++;}if(i==j){printf("\a");}}a[i]='\0';printf("\n");}voidexamine(int*a,intb){while(!scanf("%d",a)){while(getchar()!='\n');printf("請(qǐng)輸入數(shù)字!!\n");}rewind(stdin);if(b)system("cls");}voidchangepaw(inta,intb){inti;charc1[10],c2[10],c3[10];printf("請(qǐng)輸入原密碼\n");password(c1,1,9);printf("請(qǐng)輸入新密碼\n");password(c2,1,9);printf("請(qǐng)?jiān)俅屋斎胄旅艽a\n");password(c3,1,9);system("cls");if(b){i=mp(aa.no,c1,c2,c3,b);if(i){eros(i);n=27;}elsen=26;}else{i=mp(rr.no,c1,c2,c3,b);if(i){eros(i);n=44;}elsen=43;}}voidinputs0(){inti=1;while(i==1){printf("1.A類\n2.B類\n3.C類\n4.D類\n5.E類\n6.F類\n");examine(&i,1);switch(i){case1:strcpy(bk.classic,"A類");i=0;break;case2:strcpy(bk.classic,"B類");i=0;break;case3:strcpy(bk.classic,"C類");i=0;break;case4:strcpy(bk.classic,"D類");i=0;break;case5:strcpy(bk.classic,"E類");i=0;break;case6:strcpy(bk.classic,"F類");i=0;break;default:i=1;}}}voidinputs1(inta,intb,intc,intd,inte){inti;switch(a){case1:printf("請(qǐng)輸入圖書編號(hào):\n");examine(&bk.bh,1);default:;}switch(b){case1:printf("請(qǐng)輸入圖書名稱:\n");gets();default:;}switch(c){case1:printf("請(qǐng)輸入圖書的\n");gets(bk.writer);default:;}switch(d){case1:printf("請(qǐng)輸入該圖書的庫(kù)存:\n");examine(&bk.zn,1);default:;}system("cls");switch(e){case1:printf("請(qǐng)選擇圖書類別:\n");inputs0();default:;}}voidinputs2(inta,intb,intc){switch(a){case1:printf("請(qǐng)輸入賬號(hào):\n");password(aa.no,0,11);default:;}switch(b){case1:printf("請(qǐng)輸入密碼:\n");password(aa.key,1,9);default:;}switch(c){case1:printf("請(qǐng)輸入姓名:\n");gets();default:;}system("cls");}voidinputs3(inta,intb,intc){switch(a){case1:printf("請(qǐng)輸入賬號(hào):\n");password(rr.no,0,11);default:;}switch(b){case1:printf("請(qǐng)輸入密碼:\n");password(rr.key,1,9);default:;}switch(c){case1:printf("請(qǐng)輸入姓名:\n");gets();default:;}system("cls");}voideros(inti)//錯(cuò)誤函數(shù){switch(i){case-1:printf("error1!初始化失敗\n\n");break; case-2:printf("error2!賬號(hào)不存在\n\n");break;case-3:printf("error3!賬號(hào)不存在\n\n");break;case-4:printf("error4!密碼錯(cuò)誤\n\n");break;case-5:printf("error5!輸入的密碼不一致\n\n");break;case-6:printf("error6!編號(hào)不存在\n\n");break;case-7:printf("error7!書名不能為空\(chéng)n\n");break;case-8:printf("error8!作者名字不能為空\(chéng)n\n");break;case-9:printf("error9!無此圖書編號(hào)的記錄\n\n");break;case-10:printf("error10!無此賬號(hào)的記錄\n\n");break;case-11:printf("error11!原始密碼輸入錯(cuò)誤\n\n");break;case-12:printf("error12!您已經(jīng)歸還此書\n\n");break;case-13:printf("error13!您所增加的圖書編號(hào)已存在\n\n");break;case-14:printf("error14!搜索不到此書的相關(guān)信息\n\n");break;case-15:printf("error15!搜索不到該作者的信息\n\n");break;case-16:printf("error16!打不開文件,保存失敗\n\n");break;case-17:printf("error17!該圖書信息已存在\n\n");break;case-18:printf("error18!您沒有借過這本書\n\n");break;case-19:printf("error19!您已經(jīng)借閱了這本書,不能再借\n\n");break;;case-20:printf("error20!抱歉,圖書已經(jīng)借完了\n\n");break;case-21:printf("error21!賬號(hào)已存在\n\n");break;case-22:printf("error22!還有圖書未還,不能刪除該條信息\n\n");break;default:;}}voidconects(intj){switch(j){case0:pic0();break;case1:pic1();break;case2:pic2();break;case3:pic3();break;case4:pic4();break;case5:pic5();break;case6:pic6();break;case7:pic7();break;case8:pic8();break;case9:pic9();break;case10:pic10();break;case11:pic11();break;case12:pic12();break;case13:pic13();break;case14:pic14();break;case15:pic15();break;case16:pic16();break;case17:pic17();break;case18:pic18();break;case19:pic19();break;case20:pic20();break;case21:pic21();break;case22:pic22();break;case23:pic23();break;case24:pic24();break;case25:pic25();break;case26:pic26();break;case27:pic27();break;case29:pic29();break;case30:pic30();break;case31:pic31();break;case32:pic32();break;case33:pic33();break;case34:pic34();break;case35:pic35();break;case36:pic36();break;case37:pic37();break;case38:pic38();break;case39:pic39();break;case40:pic40();break;case41:pic41();break;case42:pic42();break;case43:pic43();break; case44:pic44();break; case45:pic45();break;case46:pic46();break;case47:pic47();break;default:;}}4.文件操作各種函數(shù)源代碼為// jiangzhuo1.h 文件操作各種函數(shù)intsetup()//數(shù)據(jù)初始化函數(shù){FILE*fp;fp=fopen("reader.txt","r");//對(duì)文檔以只讀的方式進(jìn)行操作if(fp==NULL){return-1;//當(dāng)文件打不開時(shí)返回-1}else{ i=0;while(!feof(fp)) { fscanf(fp,"%s%s%s",stu[i].name,stu[i].no,stu[i].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[j].name,ad[j].no,ad[j].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}else{ k=0;while(!feof(fp)) { fscanf(fp,"%d%s%s%s%d%d",&bb[k].bh,bb[k].name,bb[k].classic,bb[k].writer,&bb[k].zn,&bb[k].jn);//將文檔里面的數(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}else{ s=0;while(!feof(fp)) { fscanf(fp,"%s%s%d%s%s%d",ss[s].name1,ss[s].no,&ss[s].bh,ss[s].name2,ss[s].writer,&ss[s].o);//將文檔里面的數(shù)據(jù)格式化讀取到結(jié)構(gòu)體數(shù)組里面 s++; } s=s-1;}fclose(fp);return0;//當(dāng)操作全部正確時(shí)返回0}intxzc(charno[12],charkey1[10],charkey2[10],charname[10])//讀者注冊(cè)函數(shù){intx=0;for(x=0;x<=i;x++){if(!strcmp(no,stu[x].no))//判斷讀者輸入的賬號(hào)與結(jié)構(gòu)體里面的賬號(hào)是否相同{return-21;break;}if(x==i&&strcmp(no,stu[x].no))//判斷讀者輸入的賬號(hào)與結(jié)構(gòu)體里面的賬號(hào)是否相同{if(!strcmp(key1,key2))//判斷讀者兩次輸入的密碼是否一致{i=i+1;strcpy(stu[i].name,name);strcpy(stu[i].no,no);strcpy(stu[i].key,key1);fp=fopen("reader.txt","a");//對(duì)文件以寫的方式將注冊(cè)的信息保存到文件里面if(fp==NULL)return-16;else{fprintf(fp,"%s\t\t%s\t\t%s\n",stu[i].name,stu[i].no,stu[i].key);}fclose(fp);return0;}else{return-5;}}}}intexam(charno[10],charkey[10],intn)//密碼賬號(hào)檢驗(yàn)函數(shù){intx;if(n==0)//對(duì)讀者的密碼和賬號(hào)信息進(jìn)行檢驗(yàn){ for(x=0;x<=i;x++) { if(!strcmp(no,stu[x].no))//判斷該賬號(hào)是否存在 { if(!strcmp(key,stu[x].key))//當(dāng)賬號(hào)存在時(shí)判斷與之相應(yīng)的密碼是否相同 { return0; break; } else { return-4; break; }}if(x==i&&strcmp(no,stu[x].no)){return-3;}}}if(n==1)//對(duì)管理員的密碼賬號(hào)信息進(jìn)行檢驗(yàn){ for(x=0;x<=i;x++) { if(!strcmp(no,ad[x].no))//判斷該賬號(hào)是否存在 { if(!strcmp(key,ad[x].key))//判斷與之相應(yīng)的密碼是否存在 { return0; break; } else { return-4; break; }}if(x==j&&strcmp(no,ad[x].no)){return-3;}}}}intzj(structbookb)//管理員增加圖書信息函數(shù){intx;for(x=0;x<=k;x++){if(bb[x].bh==b.bh)//判斷所增加的圖書編號(hào)是否已存在{return-13;break;}if(!strcmp(,bb[x].name)&&!strcmp(b.writer,bb[x].writer))//判斷所增加的圖書是否存在{return-17;break;}if(x==k){if(strlen(bb[0].name)==0)//判斷文檔的第一行是否為空k=k;elsek=k+1;bb[k].bh=b.bh;//將所增加的圖書信息添加到結(jié)構(gòu)體里面strcpy(bb[k].name,);strcpy(bb[k].classic,b.classic);strcpy(bb[k].writer,b.writer);bb[k].zn=b.zn;bb[k].jn=b.jn;fp=fopen("book.txt","a");//將增加的圖書信息追加到文件里面if(fp==NULL)return-16;else{fprintf(fp,"%d\t%-30s\t%-30s\t%-10s\t%d\t%d\n",bb[k].bh,bb[k].name,bb[k].classic,bb[k].writer,bb[k].zn,bb[k].jn);}fclose(fp);return0;}}}intsc(intbh)//管理員刪除圖書信息函數(shù){intx;for(x=0;x<=k;x++){if(bb[x].bh==bh)//判斷所刪除圖書的編號(hào)是否存在{if(bb[x].jn!=0)return-22;for(x=x;x<=k-1;x++){bb[x]=bb[x+1];//刪除圖書信息后將該圖書信息后面的圖書信息依次前移}k--;fp=fopen("book.txt","w+");//將刪除后的所有圖書信息重新寫入文檔if(fp==NULL)return-16;else{for(x=0;x<=k;x++){fprintf(fp,"%d\t%-30s\t%-30s\t%-10s\t%d\t%d\n",bb[x].bh,bb[x].name,bb[x].classic,bb[x].writer,bb[x].zn,bb[x].jn);}}fclose(fp);return0;break;}}}intmp(charno[12],charkey1[10],charkey2[10],charkey3[10],intn)//密碼修改函數(shù){intx;if(n==0)//讀者密碼修改{for(x=0;x<=i;x++){if(!strcmp(no,stu[x].no))//定位讀者賬號(hào)位置{if(!strcmp(stu[x].key,key1))//判斷輸入的原密碼是否正確{if(!strcmp(key2,key3))//判斷兩次輸入的新密碼是否一致{strcpy(stu[x].key,key3);fp=fopen("reader.txt","w+");//將修改后的信息保存在文件里面if(fp==NULL)return-16;else{for(x=0;x<=i;x++)fprintf(fp,"%s\t\t%s\t\t%s\n",stu[x].name,stu[x].no,stu[x].key);}fclose(fp);return0;}else{return-5;}}elsereturn-11;}}}if(n==1)//管理員密碼修改{for(x=0;x<=j;x++){if(!strcmp(no,ad[x].no))//定位管理員賬號(hào)位置{if(!strcmp(key1,ad[x].key))//判斷輸入的原密碼是否正確{if(!strcmp(key2,key3))//判斷兩次輸入的新密碼是否一致{strcpy(ad[x].key,key3);fp=fopen("ad.txt","w+");//將修改后的信息保存在文件里面if(fp==NULL)return-16;else{for(x=0;x<=j;x++)fprintf(fp,"%s\t\t%s\t\t%s\n",ad[x].name,ad[x].no,ad[x].key);}fclose(fp);return0;}else{return-5;}}elsereturn-11;}}}}intxg(structbookb)//管理員修改圖書信息函數(shù){intx;if(strlen()==0)//判斷所輸入的要修改的圖書名字是否為空{(diào)return-7;}else{if(strlen(b.writer)==0)//判斷所輸入的要修改的圖書作者是否為空{(diào)return-8;}else{for(x=0;x<=k;x++){if((bb[x].bh==b.bh))//定位要修改的圖書編號(hào)位置{strcpy(bb[x].name,);//將修改后的信息保存在結(jié)構(gòu)體里strcpy(bb[x].classic,b.classic);strcpy(bb[x].writer,b.writer);bb[x].zn=b.zn;bb[x].jn=b.jn;fp=fopen("book.txt","w+");//將修改后的所有信息保存在文件里if(fp==NULL)return-16;else{for(x=0;x<=k;x++){fprintf(fp,"%d\t%-30s\t%-30s\t%-10s\t%d\t%d\n",bb[x].bh,bb[x].name,bb[x].classic,bb[x].writer,bb[x].zn,bb[x].jn);}}fclose(fp);return0;}}}}}voidcopy(intbh)//按編圖書編號(hào)將圖書信息暫時(shí)保存在另外一個(gè)結(jié)構(gòu)體里面{intx;for(x=0;x<=k;x++){if(bb[x].bh==bh){strcpy(,bb[x].name);strcpy(bk.classic,bb[x].classic);strcpy(bk.writer,bb[x].writer);bk.zn=bb[x].zn;bk.jn=bb[x].jn;bk.bh=bb[x].bh;}}}voidcopy2(charno[12])//按管理員賬號(hào)將管理員信息暫時(shí)保存在另外一個(gè)結(jié)構(gòu)體里面{intx;for(x=0;x<=j;x++){if(!strcmp(ad[x].no,no)){strcpy(,ad[x].name);strcpy(aa.key,ad[x].key);}}}voidcopy3(charno[12])//按讀者賬號(hào)將讀者信息暫時(shí)保存在另外一個(gè)結(jié)構(gòu)體里面{intx;for(x=0;x<=i;x++){if(!strcmp(stu[x].no,no)){strcpy(,stu[x].name);strcpy(rr.key,stu[x].key);}}}intjs(intbh,charno[12])//借書函數(shù){intx,y,z;for(x=0;x<=k;x++){if(bb[x].bh==bh)//判斷借書編號(hào)是否存在{if(bb[x].zn>0)//判斷在館數(shù)是否為0{if(strlen(ss[0].name1)==0)//判斷文件里面的第一行信息是否存在{for(y=0;y<=i;y++){if(!strcmp(stu[y].no,no)){--bb[x].zn;//修改借書后的信息++bb[x].jn;ss[0].o=2;strcpy(ss[0].name1,stu[y].name);//將借書后的信息保存在結(jié)構(gòu)體數(shù)組里面strcpy(ss[0].no,no);strcpy(ss[0].writer,bb[x].writer);strcpy(ss[0].name2,bb[x].name);ss[0].bh=bh;}}}else{for(y=0;y<=s;y++){if((ss[y].bh==bh)&&!strcmp(ss[y].no,no))//定位與輸入的編號(hào)和賬號(hào)一致的借書記錄{if(ss[y].o==2)//判斷是否已借過該書return-19;else{--bb[x].zn;//修改借書后的信息++bb[x].jn;ss[y].o=2;}break;}else{if(y==s){s++;for(z=0;z<=i;z++){if(!strcmp(stu[z].no,no))//定位讀者信息{bb[x].zn--;//修改借書后的信息bb[x].jn++;strcpy(ss[s].name1,stu[z].name);strcpy(ss[s].name2,bb[x].name);strcpy(ss[s].no,no);strcpy(ss[s].writer,bb[x].writer);ss[s].bh=bb[x].bh;ss[s].o=2;}}break;}}}}fp=fopen("book.txt","w+");//將借書后的圖書信息寫入文件if(fp==NULL)return-16;else{for(y=0;y<=k;y++){fprintf(fp,"%d\t%-30s\t%-30s\t%-10s\t%d\t%d\n",bb[y].bh,bb[y].name,bb[y].classic,bb[y].writer,bb[y].zn,bb[y].jn);}}fclose(fp);fp=fopen("show.txt","w+");//將借書記錄寫入文件if(fp==NULL)return-16;else{for(y=0;y<=s;y++){fprintf(fp,"%-20s\t%s\t%d\t%-30s\t%-10s\t%d\n",ss[y].name1,ss[y].no,ss[y].bh,ss[y].name2,ss[y].writer,ss[y].o);}}fclose(fp);return0;}elsereturn-20;}}}inths(intbh,charno[12])//還書函數(shù){intx,p;for(x=0;x<=s;x++){if(ss[x].bh==bh&&!strcmp(ss[x].no,no))//判斷其借書記錄是否存在{if(ss[x].o==2)//判斷該書是否被借過{for(p=0;p<=k;p++){if(bb[p].bh==bh)//修改還書后的圖書信息{++bb[p].zn;--bb[p].jn;}}ss[x].o=1;fp=fopen("book.txt","w+");//將還書后的所有圖書信息重新寫入文件if(fp==NULL)return-16;else{for(p=0;p<=k;p++){fprintf(fp,"%d\t%-30s\t%-30s\t%-10s\t%d\t%d\n",bb[p].bh,bb[p].name,bb[p].classic,bb[p].writer,bb[p].zn,bb[p].jn);}}fclose(fp);fp=fopen("show.txt","w+");//將還書后的所有借書記錄重新寫入文件if(fp==NULL)return-16;else{for(p=0;p<=s;p++){fprintf(fp,"%-20s\t%s\t%d\t%-30s\t%-10s\t%d\n",ss[p].name1,ss[p].no,ss[p].bh,ss[p].name2,ss[p].writer,ss[p].o);}}fclose(fp);return0;}else{return-12;}}elseif(x==s)return-18;}}voidpaixu()//對(duì)圖書按照編號(hào)從小到大的順序進(jìn)行排列{intx,flag;structbooka;do//用冒泡法排序{flag=1;for(x=0;x<=k-1;x++){if(bb[x].bh>bb[x+1].bh){a=bb[x+1];bb[x+1]=bb[x];bb[x]=a;flag=0;}}}while(flag==0);fp=fopen("book.txt","w+");//將排序后的信息重新寫入文件for(x=0;x<=k;x++)fprintf(fp,"%d\t%-30s\t%-30s\t%-10s\t%d\t%d\n",bb[x].bh,bb[x].name,bb[x].classic,bb[x].writer,bb[x].zn,bb[x].jn);fclose(fp);}5.登陸界面所有函數(shù)源代碼為//picture.h登陸界面所有函數(shù)voidpica(){printf("\n登陸用戶:%-16s登陸者:%-16s權(quán)限:管理員\n",aa.no,);printf("------------------------------------------------------------------------\n\n");}voidpicb(){printf("\n登陸用戶:%-16s登陸者:%-16s權(quán)限:讀者\(yùn)n",rr.no,);printf("------------------------------------------------------------------------\n\n");}voidpic0()//登陸界面{printf("\n\t\t\t歡送登陸湖南大學(xué)圖書管理系統(tǒng)\n");printf("------------------------------------------------------------------------\n\n");printf("1.登陸\n2.讀者注冊(cè)\n3.退出系統(tǒng)\n\n");printf("------------------------------------------------------------------------\n\n");examine(&x,1);switch(x){case1:n=1;break;case2:n=45;break;case3:n=50;break;default:;}}voidpic1()//管理員登陸界面{inti;printf("\n\t\t\t\t登陸\n");printf("------------------------------------------------------------------------\n\n");printf("1.管理員登陸\n2.讀者登陸\n3.返回系統(tǒng)界面\n\n");printf("------------------------------------------------------------------------\n\n");examine(&x,1);switch(x){case1:inputs2(1,1,0);i=exam(aa.no,aa.key,1);if(i){eros(i);n=3;}elsen=2;break;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代電商物流配送的效率提升策略
- 2025至2030年中國(guó)熱水自動(dòng)增壓泵數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 科技教育背景下學(xué)生表現(xiàn)的評(píng)價(jià)方法
- 社區(qū)服務(wù)人員與公眾關(guān)系處理技巧
- 2025至2030年中國(guó)液化氣瓶封口機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 交通設(shè)施承包合同
- 組織活動(dòng)合同范本
- 社交電商在旅游行業(yè)的應(yīng)用與發(fā)展
- 2025年02月迪慶州事業(yè)單位工作人員(291人)筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 創(chuàng)業(yè)扶持借款協(xié)議
- 2025年02月貴州省司法廳所屬事業(yè)單位公開招聘2人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025年01月福建省福利彩票發(fā)行中心片區(qū)管理員招考筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025至2030年中國(guó)單板電磁制動(dòng)器數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024年07月國(guó)新國(guó)證期貨有限責(zé)任公司(海南)2024年招考2名工作人員筆試歷年參考題庫(kù)附帶答案詳解
- 人教版數(shù)學(xué)八年級(jí)下冊(cè) 第17章 勾股定理 單元測(cè)試(含答案)
- 國(guó)網(wǎng)標(biāo)書制作流程
- 健身新人直播流程
- 六年級(jí)語(yǔ)文教學(xué)學(xué)情分析提高六語(yǔ)文質(zhì)量的措施
- 中醫(yī)藥臨床適宜技術(shù)
- 工業(yè)廠房水電安裝施工方案
- 城鄉(xiāng)規(guī)劃管理與法規(guī)系列講座課件-城市規(guī)劃依法行政案例
評(píng)論
0/150
提交評(píng)論