版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
HUNANUNIVERSITY
c語(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)行而在管圖書信息功能
7)修改密碼功能
8)管理員登錄功能
9)增長(zhǎng)、修改、刪除圖書功能
10)查看圖書信息功能
【設(shè)計(jì)思緒】
根據(jù)題目規(guī)定,應(yīng)當(dāng)杷圖書信息用構(gòu)造體形式輸入,應(yīng)當(dāng)提供如下構(gòu)造體和文獻(xiàn)的輸入等操作:在程序中
需要實(shí)現(xiàn)圖書信息錄入,瀏覽,查詢,刪除和修改等功能的操作,因此需要建立對(duì)應(yīng)的模塊來(lái)實(shí)現(xiàn):此外
還需提供選擇菜單實(shí)現(xiàn)功能,在運(yùn)行時(shí)到達(dá)所規(guī)定的目的:管理員和讀者登錄界面和各自功能應(yīng)有不一樣
的實(shí)現(xiàn)。
【總體設(shè)計(jì)】
【詳細(xì)設(shè)計(jì)】
1.主函數(shù)
主函數(shù)設(shè)計(jì)規(guī)定簡(jiǎn)潔,只提供部分提醒語(yǔ)和函數(shù)的調(diào)用
源代碼為
//rkou.c程序的入口
#include<stdio.h>
#include<stdlib.h>
ttinclude<string.h>
ftinclude<conio.h>
Uinclude*head,h*
#include*fuc.h*
#include*picture.h"
Uinclude*jiangzhuol.h"
ttinclude~output.h"
main()
(inti=setup();
switch(i)
{case0:while(n<53)
{conects(n);
default:eros(i):
syslem("pause");
2.程序中全局變量申明定義,以和所有函數(shù)申明
源代碼為
structbook〃圖書構(gòu)造體申明
charname[50],classic[10].writer[20];//書名,類別,作者
intjn://借出數(shù)量
intzn;〃在館數(shù)量
intbh;〃圖書編號(hào)
structinformation〃管理員和讀者構(gòu)造體申明
(charnamc[10],no[12],key[10];〃姓名,賬號(hào),密碼
structshow〃圖書借閱記錄的I構(gòu)造體申明
charnamel[10],name2[50],writer[20],no[12];〃書名,讀者姓名,書的作者,讀
者賬號(hào)
intbh,o:〃圖書編號(hào),借閱狀況(未還,己
還)
〃如下為用到的全局變量
structbookbk:
structinformationaa,rr;
structinformationstu[100]:
structbookbb[100J;
structinformationad[100];
structshowss[100];
inti,j,k,s;
intn=0:
intx:
FILE*fp;
〃如下函數(shù)重要功能:以便窗口與顧客之間互換信息
intregstO:
voidpassword(char*a,intb,intj);//登陸時(shí)的輸入函數(shù)
voidexamine(int*b);〃保證鉞入H勺數(shù)據(jù)是數(shù)字
voidchangepaw(inta,intb);〃修改密碼用到的提醒函數(shù)
voidinputsOO:〃輸出圖書類別以供顧客選擇
voidinputsl(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)
對(duì)應(yīng)1句錯(cuò)誤信息
voidconects(intj);〃連接函數(shù),選擇界面
〃?下函數(shù)重要用于變化文獻(xiàn)的內(nèi)容并保留
intsetupO;〃數(shù)據(jù)初始化函
數(shù)
intxzc(charno[12],charkey1[10],charkey2[10],charname[10]);〃讀者注冊(cè)函數(shù)
intexam(charno「101.charkeyF101,intn):〃密碼賬號(hào)蛤杳
函數(shù)
intmp(charno[12],charkeyl[10],charkey2[10],charkey3[10],intn);〃密碼修改函數(shù)
voidpaixuO;〃對(duì)圖書按照編號(hào)從小到大的次
序進(jìn)行排列
intsc(intbh);〃管理員刪除圖書信息函數(shù)
intzj(structbookbb):〃管理員增長(zhǎng)圖H信息函數(shù)
intxg(structbookbb);〃管理員修改圖書信息函數(shù)
intjs(intbh,charno[12]);〃借書函數(shù)
inths(intbh,charno[12]);〃還書函數(shù)
intbhl(intbh);〃判斷該編號(hào)的圖H信息與否存在函數(shù)
voidbh2(intbh):〃按照?qǐng)DH編號(hào)顯示圖竹信息函數(shù)
intsml(charname[50]):〃判斷與否存在該名字口勺圖書信息函數(shù)
voidsm2(charname[50]);〃按照?qǐng)D書名字顯示圖書信息函數(shù)
intzzKcharwriter[20]):〃判斷與否存在該作者的圖書信息函數(shù)
voidzz2(charwriter[20]);//按照?qǐng)D書作者顯示圖書信息函數(shù)
voidlb(charclassic[1。]);〃按類別顯示圖書信息
intrckl(intbh);〃判斷該編號(hào)的圖書的借書記錄與否存在
voidrck2(intbh);〃按編號(hào)顯示圖書借書狀況
intgck21(charnot12]):〃判斷該賬號(hào)讀者的借書記錄與否存在
voidgck22(charno[12]);〃按讀者顯示借書狀況2
voidgckl2():〃他示所有借書狀況
voidgck230;〃管理員查看所有書的信息
voidcopy(intbh)://按編圖書編號(hào)將圖書信息臨時(shí)保留在此外一種構(gòu)造
體里面
voidcopy2(charno[12]);〃按管理員賬號(hào)將管理員信息臨時(shí)保留在此外一?種構(gòu)造
體里面
voidcopy3(charno[12]);〃按讀者賬號(hào)將讀者信息臨時(shí)保留在此外一種構(gòu)造體里
面
//pic()函數(shù):每個(gè)函數(shù)表達(dá)一種界面,conecis函數(shù)將它們連接起來(lái)
voidpicOO;
voidpicl():
voidpic2();
voidpic3();
voidpic4():
voidpic5();
voidpic6();
voidpic7();
voidpic8();
voidpic9():
voidpiclOO:
voidpicl1();
voidpicl2():
voidpicl3():
voidpic!4();
voidpicl5();
voidpic16();
voidpic!7();
voidpic18();
voidpic!9();
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();
voidpiccO;
3?顧客輸入以和界面反饋用到的功能函數(shù)
源代碼為
intregst0
{charnum[12]>pawl[10],paw2[10],name[10]:
inti:
printfT請(qǐng)輸入賬號(hào)\n(U字符以內(nèi),不能具有中文字符):\n");
password(num.0.11):
printf("輸入您的密碼\n(9字符以內(nèi),不能具有中文字符):\n");
password(pawl,1,9);
printf("請(qǐng)?jiān)俅屋斎朊艽a:\n"):
password(paw2,1,9);
printf("輸入您的姓名:\n*);
gets(name);
systcm("cls");
i=xzc(num,pawl,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)prinlf("*");
elseprintfc);
afil=c:
i++;
if(i=j)
printf
a[i]=\0';
printf(*,\n*):
voidexamine(int*b)
(whilc(!scanfa))
{while(getchar()!=,\n);
printf("請(qǐng)輸入數(shù)字??!\n");
rewind(stdin);
if(b)system(*cls*);
voidchangepaw(inta,intb)
(inti;
charcl[10],c2[10],c3[10]:
printf("請(qǐng)輸入原密碼、n");
password(cl,1,9);
printf(”請(qǐng)輸入新密碼\n");
password(c2,1,9):
prinlf("請(qǐng)?jiān)俅屋斎胄旅艽a\n"):
password(c3,1,9);
syslem("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⑴
{eros(i);n=44;
elsen=43;
voidinputsOO
{inti=l;
while(i==l)
{printf(*1.A類\n2.B類\n3.C類一4.D類\n5.E類\(16.F類\n");
examine(&i,1);
switch(i)
{casei:strcpy(bk.classic,"A類");i=0;break;
case2:strcpy(bk.classic,;i=0;break;
case3:strcpy(bk.classic,"C類");i=0;break;
case4:strcpy(bk.classic,"D類");i=0;brcak;
case5:strcpy(bk.classic,*E:i=0:break:
case6:strcpy(bk.classic,"F類");i=0;break;
default:i=l;
voidinputs!(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(bk.name);
default:;
switch(c)
{caseI:printf("請(qǐng)輸入圖書II勺\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");inputs。();
default:;
voidinputs2(inta.intb.intc)
(switch(a)
case1:printf("請(qǐng)輸入賬號(hào):\n*);password(aa.no,0,11);
default:;
switch(b)
{case1:prinlf("請(qǐng)輸入密碼:\n");password(aa.key,1,9);
default:;
switch(c)
{case1:prinlf("諳輸入姓名:\n");gels(aa.name);
default:;
system(^cls*);
voidinputs3(inta,intb,intc)
{switch(a)
{case1:prinlf("請(qǐng)輸入賬號(hào):\n");password(rr.no,0,11);
default:;
switch(b)
{case1:prinlf("請(qǐng)輸入密碼:\n");password(rr.key,1,9):
default:;
switch(c)
{case1:printf(”請(qǐng)輸入姓名:\n");gels(rr.name);
default:;
system(^cls^):
voideros(inti)〃錯(cuò)誤函數(shù)
switch(i)
case-1:printf("error]!初始化失敗、n\n");break;
case-2:printf(*error2!賬號(hào)不存在'n'n");break;
case-3:printf(*error3!賬號(hào)不存在\n\n"):break;
caseprintf(*error4!密碼錯(cuò)誤\n\n");break:
caseprintf(*error5!輸入的密碼不一致\n'n");break:
caseprintf(*error6!編號(hào)不存在\n\n");break;
case-7printf("error7!書名不能為空\(chéng)n\n");break;
caseprintf(*errorS!作者名字不能為空\(chéng)n'n");break;
caseprintf(*error9!無(wú)此圖書編號(hào)的記錄\n\n");break;
case-10:printf("errorlO!無(wú)此賬號(hào)口勺記錄\n\n");break;
case-11:printf(*errorl1!原始密碼輸入^^\n\n");break;
caseprintf(*errorl2!您已經(jīng)償還此書'n'n");break:
case-13:printf(^errorlB!您所增長(zhǎng)的圖書編號(hào)已存在[n\n");break;
case-14:printf("errorl4!搜索不到此書的有關(guān)信息break;
case-15:printf(*errorl5!搜索不到該作者的信息\n'n'):break;
case-16:prinlf("error16!打不開文獻(xiàn),保留失敗\n\n");break;
caseprintf(*errorl7!該圖書信息己存在\n'n"):break;
case-18:printf(*errorl8!您沒(méi)有借過(guò)這本書\n'n");break;
caseprintf(^errorlO!您已經(jīng)借閱了這本書,不能花借\n'n"):break::
case-20:printf(werror20!抱敝,圖書已經(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:picl():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:piclO();break;
case11:picl1();break:
case12:picl2():break;
case13:pic13();break:
case14:pic14():break:
case15:picl5();break:
case16:picl6();break;
case17:picl7();break:
case18:picl8();break:
case19:pic19();break;
case20:pic200;break:
case21:pic21();break;
case22:pic22();break;
case23:pic23();break:
case24:pic24():break;
case25:pic250;break:
case26:pic26();break:
case27:pic27();break;
case29:pic29();break:
case30:pic30();break:
case31:pic31();break;
case32:pic32();break;
case33:pic33();break;
case34:pic340: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.文獻(xiàn)操作多種函數(shù)
源代碼為
//jiangzhuol.h文獻(xiàn)操作多種函數(shù)
intsetupO//數(shù)據(jù)初始化函數(shù)
FILE*fp;
fp=fopen(*reader.txC,*1*);//對(duì)文檔以只讀方式進(jìn)行操作
if(fp=NULL)
return-1;〃當(dāng)文獻(xiàn)打不開時(shí)返回T
else
i=0;
while(!feof(fp))
fscanf(fp,*%s%s%s",stu[i].name,stu[i].no,stu[i].key):〃將文檔里面的數(shù)據(jù)格式化讀取
到構(gòu)造體數(shù)組里面
i++;
i=i-l;
fclosc(fp);
fp=fopCnrad.txt*/r*);〃對(duì)文檔以只讀的方式進(jìn)行操作
if(fp=NULL)
return-1://當(dāng)文獻(xiàn)打不開時(shí)返回T
else
j=0;
while(!feof(fp))
fscanf(fp,"%s%s%s",ad[j].name,ad[j].no,ad[j].key);//將文檔里面的數(shù)據(jù)格式化讀取到
構(gòu)造體數(shù)組里面
j++;
j=j-l;
fclose(fp);
fp=fopenCbook.txt*,*r*):〃對(duì)文檔以只讀的方式進(jìn)行操作
if(fp=NULL)
return-1:〃當(dāng)文獻(xiàn)打不開時(shí)返回T
else
k=0;
whiledfeof(fp))
fscanf(fp,"%d%s%s%s%d%d
”,&bb[k].bh,bb[k].name,bb[k].classic,bblk].writer,&bb[k].zn,&bb[k].jn)://將文檔里面的數(shù)據(jù)
格式化讀取到構(gòu)造體數(shù)組里面
k++;
k=k-l;
fclose(fp);
fp=fopen(*show.txt*,*r*);〃對(duì)文檔以只讀的方式進(jìn)行操作
if(fp=NULL)
return-I;〃當(dāng)文獻(xiàn)打不開時(shí)返向-1
else
s=0:
while(!feof(fp))
fscanf(fp,*%s%s%s%s%d
”,ss[s].nameI,ss[s].no,&ss[s].bh,ss[s].name2,ss[s].writer,&ss[s'.o);〃將文檔里面口勺數(shù)據(jù)格式
化讀取到構(gòu)造體數(shù)組里而
s++;
s=s-l;
fclose(fp):
return0;〃當(dāng)操作所有對(duì)時(shí)時(shí)返回0
intxzc(charno[12],charkey1[10],charkey2[10],charname[10])//讀者注冊(cè)函數(shù)
intx=0;
for(x=0;x<=i;x++)
if(istrcmp(no,stu[x].no))〃判斷讀者輸入的賬號(hào)與構(gòu)造體里面的賬號(hào)與否相似
return-21;
break;
if(x==i&&strcmp(n。,slu[x].no))〃判斷讀者輸入的賬號(hào)與構(gòu)造體里面的賬號(hào)與否相似
if(!strcmp(keyl,key2))〃判斷讀者兩次輸入的密碼與否一致
i=i+l;
strcpy(stu[i].name,name):
strcpy(stu[i].no,no);
strcpy(stu[i].key,keyl):
fp=fopen("reader.;//時(shí)文獻(xiàn)以寫的方式將注冊(cè)的信息保留到文獻(xiàn)里面
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)檢查函數(shù)
(intx:
if(n==O)〃對(duì)讀者的密碼和賬號(hào)信息進(jìn)行檢查
for(x=0:x<=i;x++)
if(!strcmp(no,stu[x].no))〃判斷該賬號(hào)與否存在
if(!strcmp(kcy,stufx].key))〃當(dāng)賬號(hào)存在時(shí)判斷與之對(duì)應(yīng)I向密碼與否相似
return0;
break;
else
return一4;
break:
if(x==i&&strcmp(no,stu[x].no))
return-3;
if(n==l)〃對(duì)管理員的密碼賬號(hào)信息進(jìn)行檢查
for(x=0;x<=i;x++)
if(!strcmp(no,ad[x].no))//判斷該賬號(hào)與否存在
if(!strcmp(key,ad[x].key))//判斷與之對(duì)應(yīng)的密碼與否存在
return0;
break;
else
return-4:
break;
if(x==j&&strcmp(no,ad[x].no))
return-3;
intzj(structbookb)//管理員增長(zhǎng)圖書信息函數(shù)
{intx;
for(x=0;x<=k;x++)
{if(bb[x].bh=b.bh)〃判斷所增長(zhǎng)的圖書編號(hào)與否已存在
return-13;
break;
if(!strcmp(b.name,bb[x].name)&&!strcmp(b.writer,bb[x].writer))//判斷所增長(zhǎng)的J圖書
與否存在
{return-17;
break:
if(x=k)
{if(strlen(bb[O].nane)==O)〃判斷文檔的第一行與否為空
k=k;
else
k=k+l:
bb[k].bh=b.bh;〃將所增長(zhǎng)的圖書信息添加到構(gòu)造體里面
strcpy(bbFkl.name.b.name):
strcpy(bb[k].classic,b.classic):
strcpy(bbCkl.writer,b.writer);
bb[k].zn=b.zn:
bb[k].jn=b.jn:
fp=fopen("book.txl"Ja");〃將增長(zhǎng)的圖書信息追加到文獻(xiàn)里面
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].write
r,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-l;x++)
bb「xl=bb-x+ll:〃刪除圖書信息后將該圖書信息背面的圖書信息依次前移
k—;
fp=fopen("book,txt","w+”);〃將刪除后的所有圖書信息亙新寫入文檔
if(fp==Nl-LL)
return-16;
else
for(x=0:x<=k;x++)
fprintf(fp,*%d\t%-30s\t%-30s\tV10s\t%d\t%d\n*,bb[x].bh,bb[x].name,bb[x].classic,bb[x].write
r,bb[x].zn,bb[x].jn):
fclose(fp);
return0;
break;
intmp(charnot12],charkeyl[13]?charkey2[10],charkey3[10],intn)〃密碼修改函數(shù)
(intx:
if(n==0)〃讀者密碼修改
for(x=0:x<=i;x++)
if(Istrcmp(no,stu[x].no))〃定位讀者賬號(hào)位置
if(!strcmp(stu[x].key,key1))//判斷輸入的原密碼與否對(duì)小J
{if(!strcmp(key2fkey3))〃判斷兩次輸入的新密碼與否一致
strcpy(stu[x].key,key3);
fp=fopen("reader.Ixl"."w+"):〃將修改后的信息保留在文獻(xiàn)里面
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;
else
return-11:
if(n==l)〃管理員密碼修改
for(x=0;x<=j;x++)
if(Istrcmp(no,ad[x].no))〃定位管理員賬號(hào)位置
if(!strcmp(keyl,adCxl.key))〃判斷輸入l內(nèi)原窘碼與否時(shí)的
if(!strcmp(key2,key3))〃判斷兩次輸入的新密碼與否一致
strcpy(ad[x].key,key3);
fp=fopen("ad.txt","w+”);〃將修改后的信息保留在文獻(xiàn)里面
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:
else
return-11;
intxg(structbookb)〃管理員修改圖書信息函數(shù)
(intx;
if(strlen(b.name)==0)〃判斷所輸入的要修改的圖M名字與否為空
return-7;
else
if(strlen(b.writer)==0)//判斷所輸入的要修改的圖書作者與否為空
return-8;
else
for(x=0;x<=k;x++)
if((bb[x].bh=b.bh))〃定位要修改的圖書編號(hào)位置
strepy(bb[x].name,b.name):〃將修改后的信息保留在構(gòu)造體里
strepy(bb[x].classic,b.classic);
strepy(bb「xl.writer,b.writer):
bb[x].zn=b.zn;
bb[x].jn=b.jn:
fp=fopen("b〉ok.ixi","w+”);〃將修改后的所有信息保留在文獻(xiàn)里
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].write
r,bb[x].zn,bb[x].jn);
fclose(fp);
return0;
voidcopy(intbh)//按編圖書編號(hào)將圖書信息臨時(shí)保留在此外一種構(gòu)造體里面
(intx;
for(x=0;x<=k:x++)
if(bb[x].bh==bh)
strcpy(bk.name,bb[x].name);
strepy(bk.classic,bb[x].classic);
strcpy(bk.writer,bb[x].writer):
bk.zn=bbfx].zn;
bk.jn=bb「xl.jn:
bk.bh=bb[x].bh;
voidcopy2(charno[12])〃按管理員賬號(hào)將管理員信息臨時(shí)保留在此外一種構(gòu)造體里面
intx:
for(x=0;x<=j;x++)
if(!strcmp(ad[x].no,no))
strcpy(aa.name,ad[x].name):
strcpy(aa.key,ad[x].key);
voidcopy3(charno[12])〃按讀者賬號(hào)將讀者信息臨時(shí)保留在此外一沖構(gòu)造體里面
(intx:
for(x=0;x<=i:x++)
if(!strcmp(stutxj.no,no))
strcpy(rr.name,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[O].namel)==0)〃判斷文獻(xiàn)里面的第一廳信息與否存在
for(y=0;y<=i;y++)
if(Jstrcnpfsturyl.no.no))
(-bb[x].zn:〃修改借書后的信息
++bb[x].jn;
ss[O].o=2;
strcpy(ss[O].name1,stu[y].name);〃將借書后的信息保留在構(gòu)造體數(shù)組
里而
strcpy(ss[O].no,no);
strcpy(ssfO].writer,bbfxl.writer);
slrcpy(ss[O].name2,bb[x].name):
ss[O].bh=bh;
else
for(y=0:y<=s;y++)
if((ss[y].bh=bh)&&!stremp(ss[y].no,no))〃定位與輸入的編號(hào)和賬號(hào)?
致的借書記錄
if(ss[y].o=2)//判斷與否已借過(guò)該書
return-19;
else
-bbW.zn:〃修改借書后的信息
++bb[x].jn;
ss[y].0=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,stufz].name);
strcpy(ss[s].namc2,bb[x].name);
strcpy(ss[s].no,no);
strcpy(ss[s].writer,bb[x].writer);
ss[s].bh=bb[x].bh;
ss[s].0=2;
break;
fp=fopen("book.txi","w+");〃將借書后的圖書信息寫入文獻(xiàn)
if(fp=NULL)
return-16:
else
for(y=0;y<=k;y++)
fprintf(fp,A,%d\t%-30s\t%-30s\t%-10s\t%d\t%d\nA',bb[y].bh,bb[y].name,bb[y].classic,bb[y].write
r.bbfyl.zn.bbTyl.jn):
fclose(fp);
fp=fopen("show.txt","w+")://將借書記錄寫入文獻(xiàn)
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;
else
return-20;
inths(intbh,charno[12])〃還書函數(shù)
(intx,p;
for(x=0;x<=s:x++)
if(ss[x].bh=bh&&!stremp(ss[x].no,no))〃判斷其借書記錄與否存在
{if(ss[x].o==2)〃判斷該書與否被借過(guò)
{for(p=0;p<=k;p++-)
if(bb[p].bh==bh)〃修改還書后的圖書信息
f++bbTpl.zn:
—bb[p].jn;
ss[x].0=1;
fp=fopen(*book.txt*,*w+*):〃將還書后的所有圖書自息重新寫入文獻(xiàn)
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].write
r,bb[p].zn,bb[p].jn);
fclose(fp);
fp=fopen("show,txtW);〃將還書后的所有借書記錄重新寫入文獻(xiàn)
if(fp==NULL)
return-16:
else
for(p=0:p<=s;p++)
fprintf(fp,*%-20s\t%s\t%d\t%-33s\t%-1Os\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:
else
if(x=s)
return-18:
voidpaixuO//對(duì)圖書按照編號(hào)從小到大的次序進(jìn)行排列
(intx,flag;
structbooka:
do〃用冒泡法排序
flag=l:
for(x=0;x<=k-l;x++)
if(bb[x].bh>bb[x+l].bh)
a=bb[x+l]:
bb[x+l]=bb[x];
bb[x]=a;
flag=0:
}while(flag=0):
fp=fopen("book.txt*/w+*)://將排序后的信息重新寫入文獻(xiàn)
for(x=0;x<=k:x++)
fprintf(fp.*%d\t%-30s\t%-30s\t%-10s\t%d\t%d\n*.bbFxl.bh..bbTxl.classic.bbFxl.write
r,bb[x].zn,bb[x].jn);
fclose(fp);
5.登陸界面所有函數(shù)
源代碼為
//picture.h登陸界面所有函數(shù)
voidpicaO
(printf(*\n登陸顧客,T6s登陸者:%T6s權(quán)限:管理員\n”,aa.no,aa.name);
printf(*------------------------------------------------------------------------\n\n*);
voidpicbO
(printfC\n登陸顧客:%T6s登陸者:%-16s權(quán)限:讀者、n”,rr.no,rr.name);
printfC------------------------------------------------------------------------\n\n*):
voidpicOO〃登陸界面
(PrintfC\n\t\t\t歡迎登陸湖南大學(xué)圖書管理系統(tǒng)\n"):
printfC-----------------------------------------------------------------------\n\n");
printfCl.登陸\n2.讀者注卅\n3.退出系統(tǒng)\n\n");
printf(*-----------------------------------------------------------------------\n\n*);
examine(&x,1);
switch(x)
{case1:n=l;break:
case2:n=45;break;
case3:n=50:break:
default:;
voidpiclO〃管理員登陸界面
inti:
printfC\n\t\t\t\t登陸\iT);
printf(*--------------------------------------------------------------------------------\n\n*);
prinifCl.管理員登陸\n2.讀者登陸\n3.返回系統(tǒng)界面\n'n");
printf(*--------------------------------------------------------------------------------\n\n*):
examine(&x,1):
switch(x)
{case1:inputs2(l,1,0);
i=exam(aa.no,aa.key,1);
if⑴
{eros(i):n=3;
elsen=2:break;
case2:inputs3(l,1,0);
i=exam(rr.no,rr.key,0);
i
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年上海三毛資產(chǎn)管理有限公司招聘?jìng)淇碱}庫(kù)完整參考答案詳解
- 武漢市第六醫(yī)院120急救站醫(yī)生、護(hù)士招聘?jìng)淇碱}庫(kù)及1套參考答案詳解
- 2025年武漢音樂(lè)學(xué)院鋼琴系非事業(yè)編人員招聘?jìng)淇碱}庫(kù)及完整答案詳解1套
- 華能新能源股份有限公司陜西分公司2026年應(yīng)屆畢業(yè)生招聘?jìng)淇碱}庫(kù)及答案詳解一套
- 2025年廣東省樂(lè)昌市校園公開招聘專任教師89人備考題庫(kù)附答案詳解
- 2025年中共寧德市委黨校招聘勞務(wù)派遣人員7人備考題庫(kù)及完整答案詳解一套
- 2025年金城江區(qū)南橋社區(qū)衛(wèi)生服務(wù)中心招聘中醫(yī)醫(yī)師的備考題庫(kù)及答案詳解參考
- 2025四川鐵道職業(yè)學(xué)院選調(diào)2人筆試備考重點(diǎn)試題及答案解析
- 2025年泰順縣中醫(yī)院醫(yī)共體總院招聘編外工作人員(醫(yī)學(xué)檢驗(yàn)技術(shù)專業(yè))備考題庫(kù)及答案詳解參考
- 2026遼寧大連海事大學(xué)招聘事業(yè)編制非教學(xué)科研人員(第一批)23人筆試備考重點(diǎn)題庫(kù)及答案解析
- 轉(zhuǎn)讓煙酒店帶煙證合同
- 走向世界的中國(guó)文學(xué)智慧樹知到答案2024年哈爾濱工業(yè)大學(xué)
- 特殊教育概論-期末大作業(yè)-國(guó)開-參考資料
- JBT 7387-2014 工業(yè)過(guò)程控制系統(tǒng)用電動(dòng)控制閥
- 小品劇本《鍘美案》臺(tái)詞完整版遼寧民間藝術(shù)團(tuán)宋小寶
- 電子合同取證流程規(guī)范
- 張家界航空工業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試參考試題庫(kù)(含答案)
- 醫(yī)藥代表如何成功拜訪客戶
- 科研倫理與學(xué)術(shù)規(guī)范-課后作業(yè)答案
- 交通銀行跨境人民幣業(yè)務(wù)介紹
- GB/T 33636-2023氣動(dòng)用于塑料管的插入式管接頭
評(píng)論
0/150
提交評(píng)論