图书馆管理系统C语言程序设计Word文档下载推荐.docx
《图书馆管理系统C语言程序设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统C语言程序设计Word文档下载推荐.docx(61页珍藏版)》请在冰豆网上搜索。
}
2.程序中全局变量声明定义,以及所有函数声明
structbook//图书结构体声明
{charname[50],classic[10],writer[20];
//书名,类别,作者
intjn;
//借出数量
intzn;
//在馆数量
intbh;
//图书编号
};
structinformation//管理员和读者结构体声明
{charname[10],no[12],key[10];
//姓名,账号,密码
structshow//图书借阅记录的结构体声明
{
charname1[10],name2[50],writer[20],no[12];
//书名,读者姓名,书的作者,读者账号
intbh,o;
//图书编号,借阅状况(未还,已还)
//以下为用到的全局变量
structbookbk;
structinformationaa,rr;
structinformationstu[100];
structbookbb[100];
structinformationad[100];
structshowss[100];
inti,j,k,s;
intn=0;
intx;
FILE*fp;
//以下函数主要功能:
方便窗口与用户之间交换信息
intregst();
voidpassword(char*a,intb,intj);
//登陆时的输入函数
voidexamine(int*a,intb);
//保证键入的数据是数字
voidchangepaw(inta,intb);
//修改密码用到的提示函数
voidinputs0();
//输出图书类别以供用户选择
voidinputs1(inta,intb,intc,intd,inte);
//方便用户输入图书各项信息(如书名,编号)
voidinputs2(inta,intb,intc);
//方便用户输入管理员的信息(如账号姓名)
voidinputs3(inta,intb,intc);
//方便用户输入读者的信息(如账号姓名)
voideros(inti);
//错误显示函数,操作一旦出错,则会出现相应的错误信息
voidconects(intj);
//连接函数,选择界面
//一下函数主要用于改变文件的内容并保存
intsetup();
//数据初始化函数
intxzc(charno[12],charkey1[10],charkey2[10],charname[10]);
//读者注册函数
intexam(charno[10],charkey[10],intn);
//密码账号检验函数
intmp(charno[12],charkey1[10],charkey2[10],charkey3[10],intn);
//密码修改函数
voidpaixu();
//对图书按照编号从小到大的顺序进行排列
intsc(intbh);
//管理员删除图书信息函数
intzj(structbookbb);
//管理员增加图书信息函数
intxg(structbookbb);
//管理员修改图书信息函数
intjs(intbh,charno[12]);
//借书函数
inths(intbh,charno[12]);
//还书函数
intbh1(intbh);
//判断该编号的图书信息是否存在函数
voidbh2(intbh);
//按照图书编号显示图书信息函数
intsm1(charname[50]);
//判断是否存在该名字的图书信息函数
voidsm2(charname[50]);
//按照图书名字显示图书信息函数
intzz1(charwriter[20]);
//判断是否存在该作者的图书信息函数
voidzz2(charwriter[20]);
//按照图书作者显示图书信息函数
voidlb(charclassic[10]);
//按类别显示图书信息
intrck1(intbh);
//判断该编号的图书的借书记录是否存在
voidrck2(intbh);
//按编号显示图书借书情况
intgck21(charno[12]);
//判断该账号读者的借书记录是否存在
voidgck22(charno[12]);
//按读者显示借书情况2
voidgck12();
//显示全部借书情况
voidgck23();
//管理员查看所有书的信息
voidcopy(intbh);
//按编图书编号将图书信息暂时保存在另外一个结构体里面
voidcopy2(charno[12]);
//按管理员账号将管理员信息暂时保存在另外一个结构体里面
voidcopy3(charno[12]);
//按读者账号将读者信息暂时保存在另外一个结构体里面
//pic()函数:
每个函数表示一个界面,conects函数将它们连接起来
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();
3.用户输入以及界面反馈用到的功能函数
intregst()
{charnum[12],paw1[10],paw2[10],name[10];
inti;
printf("
请输入账号\n(11字符以内,不能含有中文字符):
\n"
password(num,0,11);
输入您的密码\n(9字符以内,不能含有中文字符):
password(paw1,1,9);
请再次输入密码:
password(paw2,1,9);
输入您的姓名:
gets(name);
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)
\a"
a[i]='
\0'
;
voidexamine(int*a,intb)
{while(!
scanf("
%d"
a))
{while(getchar()!
\n'
请输入数字!
!
rewind(stdin);
if(b)system("
voidchangepaw(inta,intb)
{inti;
charc1[10],c2[10],c3[10];
请输入原密码\n"
password(c1,1,9);
请输入新密码\n"
password(c2,1,9);
请再次输入新密码\n"
password(c3,1,9);
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);
n=44;
elsen=43;
}
voidinputs0()
{inti=1;
while(i==1)
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:
B类"
case3:
C类"
case4:
D类"
case5:
E类"
case6:
F类"
i=1;
voidinputs1(inta,intb,intc,intd,inte)
switch(a)
请输入图书编号:
examine(&
bk.bh,1);
;
switch(b)
请输入图书名称:
gets(bk.name);
switch(c)
请输入图书的作者:
gets(bk.writer);
switch(d)
请输入该图书的库存:
bk.zn,1);
switch(e)
请选择图书类别:
inputs0();
voidinputs2(inta,intb,intc)
{switch(a)
请输入账号:
password(aa.no,0,11);
请输入密码:
password(aa.key,1,9);
请输入姓名:
gets(aa.name);
voidinputs3(inta,intb,intc)
password(rr.no,0,11);
password(rr.key,1,9);
gets(rr.name);
voideros(inti)//错误函数
{switch(i)
{case-1:
error1!
初始化失败\n\n"
case-2:
error2!
账号不存在\n\n"
case-3:
error3!
case-4:
error4!
密码错误\n\n"
case-5:
error5!
输入的密码不一致\n\n"
case-6:
error6!
编号不存在\n\n"
case-7:
error7!
书名不能为空\n\n"
case-8:
error8!
作者名字不能为空\n\n"
case-9:
error9!
无此图书编号的记录\n\n"
case-10:
error10!
无此账号的记录\n\n"
case-11:
error11!
原始密码输入错误\n\n"
case-12:
error12!
您已经归还此书\n\n"
case-13:
error13!
您所增加的图书编号已存在\n\n"
case-14:
error14!
搜索不到此书的相关信息\n\n"
case-15:
error15!
搜索不到该作者的信息\n\n"
case-16:
error16!
打不开文件,保存失败\n\n"
case-17:
error17!
该图书信息已存在\n\n"
case-18:
error18!
您没有借过这本书\n\n"
case-19:
error19!
您已经借阅了这本书,不能再借\n\n"
case-20:
error20!
抱歉,图书已经借完了\n\n"
case-21:
error21!
账号已存在\n\n"
);
break;
case-22:
error22!
还有图书未还,不能删除该条信息\n\n"
default:
voidconects(intj)
{switch(j)
pic0();
case1:
pic1();
pic2();
pic3();
pic4();
pic5();
pic6();
case7:
pic7();
case8:
pic8();
case9:
pic9();
case10:
pic10();
case11:
pic11();
case12:
pic12();
case13:
pic13();
case14:
pic14();
case15:
pic15();
case16:
pic16();
case17:
pic17();
case18:
pic18();
case19:
pic19();
case20:
pic20();
case21:
pic21();
case22:
pic22();
case23:
pic23();
case24:
pic24();
case25:
pic25();
case26:
pic26();
case27:
pic27();
case29:
pic29();
case30:
pic30();
case31:
pic31();
case32:
pic32();
case33:
pic33();
case34:
pic34();
case35:
pic35();
case36:
pic36();
case37:
pic37();
case38:
pic38();
case39:
pic39();
case40:
pic40();
case41:
pic41();
case42:
pic42();
case43:
pic43();
case44:
pic44();
case45:
pic45();
case46:
pic46();
case47:
pic47();
4.文件操作各种函数
//jiangzhuo1.h文件操作各种函数
intsetup()//数据初始化函数
fp=fopen("
reader.txt"
"
r"
//对文档以只读的方式进行操作
if(fp==NULL)
return-1;
//当文件打不开时返回-1
else
i=0;
while(!
feof(fp))
{
fscanf(fp,"
%s%s%s"
stu[i].name,stu[i].no,stu[i].key);
//将文档里面的数据格式化读取到结构体数组里面
i=i-1;
fclose(fp);
ad.txt"
j=0;
ad[j].name,ad[j].no,ad[j].key);
j++;
j=j-1;
book.txt"
k=0;
{
%d%s%s%s%d%d"
&
bb[k].bh,bb[k].name,bb[k].classic,bb[k].writer,&
bb[k].zn,&
bb[k].jn);
k++;
k=k-1;
show.txt"
s=0;
%s%s%d%s%s%d"
ss[s