文件版图书馆管理系统5Word文件下载.docx
《文件版图书馆管理系统5Word文件下载.docx》由会员分享,可在线阅读,更多相关《文件版图书馆管理系统5Word文件下载.docx(35页珍藏版)》请在冰豆网上搜索。
charsnum[10];
//已借阅学生学号
charbnum[10];
//已借阅图书编号
}ji;
voidsavemima();
//保存密码
voidloadmima();
//读取密码
charmima[20]="
123456"
;
//设置初始密码
voidchangemima();
//修改密码
voidinput();
//输入图书信息
voidscan();
//浏览图书信息
voidcha1();
//查阅图书信息
voidxiugai();
//修改图书信息
voidlend();
//借阅图书
voidhuan();
//归还图书
voidlendcha();
//借阅查询
intmainmenu();
//主菜单
intmenu2();
//学生菜单
intmenu1();
//管理员菜单
voidsort();
//排序菜单
voiddel2();
//删除全部图书信息
voiddel1();
//按编号删除图书信息
voiddel();
//删除菜单
intmenu3();
//游客菜单
voidcha2();
//查询图书信息
voidsavemima()
FILE*fp;
fp=fopen("
c:
\\lib.txt"
"
w"
);
fputs(mima,fp);
fclose(fp);
}
voidloadmima()
if((fp=fopen("
r+"
))==NULL)
return;
else
fgets(mima,7,fp);
//因为还有一位字符串结束符
voidchangemima()
chartmima1[10],tmima2[10];
loadmima();
//读取密码到全局变量mima
printf("
\n\t\t请输入原密码\n"
getchar();
gets(tmima1);
if(strcmp(mima,tmima1)!
=0)
{
printf("
\n\t\t密码验证错误!
\n\t\t按任意键返回\n"
getch();
}
\n\t\t请输入6位新密码\n"
gets(tmima2);
\n\t\t请再次输入新密码\n"
gets(tmima1);
if(strcmp(tmima1,tmima2)==0)
{
strcpy(mima,tmima1);
savemima();
printf("
\n\t\t密码修改成功\n\t\t按任意键返回\n"
getch();
//从键盘吸收任意键,不显示在屏幕,无缓冲流
return;
}
else
\n\t\t两次密码输入不一致\n\t\t修改失败\n\t\t按任意键返回\n"
//查询图书
voidcha2()
{
charhao[10];
intbian=1;
//记录图书序号
boboo;
fseek(fp,0,0);
\n请选择查询类型:
\n\n\t\t1-按图书书名查询\n\n\n\t\t2-按图书编号查询\n\n\n\t\t3-返回主菜单\n"
scanf("
%d"
&
xuan);
if(xuan==1)
{
请输入图书名(最多十个字符):
"
scanf("
%s"
hao);
序号书名编号作者价格出版社类别原始库存借出\n"
while(!
feof(fp))
{
if(strcmp(hao,boo.name)==0)
%-5d%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4d\n"
bian,boo.name,boo.num,boo.writer,boo.price,boo.press,boo.leibie,boo.kucun,boo.jiechu);
fread(&
boo,sizeof(bo),1,fp);
bian++;
}
}
elseif(xuan==2)
请输入图书编号(最多十个字符):
while(!
if(strcmp(hao,boo.num)==0)
fread(&
\n\t\t按任意键返回!
\n"
system("
pause"
\n查询图书完毕!
"
//图书信息输入
voidinput()
boboo,booq;
boo.name);
do
i=1;
boo.num);
booq,sizeof(bo),1,fp);
feof(fp))//验证是否存在图书编号重复现象
if(strcmp(booq.num,boo.num)==0)
{
printf("
\n该编号已存在请重新输入\n\n"
i=0;
//标记为图书编号重复
break;
}
rewind(fp);
}while(i==0);
请输入图书作者(最多十个字符):
boo.writer);
请输入图书出版日期(例如2001年5月3日出版则输入20010503):
boo.date);
请输入图书价格:
%f"
boo.price);
请输入图书出版社(最多十个字符):
boo.press);
请输入图书类别(最多十个字符):
boo.leibie);
请输入图书入库数:
boo.kucun);
boo.jiechu=0;
//标记借出图书量为0
fseek(fp,0,2);
//将文件指针移到末尾
fwrite(&
\n录入成功!
回到主菜单"
//调用dos命令,相当于按任意键返回
//浏览图书
voidscan()
//移动文件指针到开端
书名编号作者价格出版社类别原始库存借出\n"
fread(&
while(feof(fp)==0)
%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4d\n"
boo.name,boo.num,boo.writer,boo.price,boo.press,boo.leibie,boo.kucun,boo.jiechu);
\n浏览图书完毕!
voidcha1()
\n\n\t\t1-按图书书名查询\n\n\n\t\t2-按图书编号查询\n\n\n\t\t3-借阅信息查看\n\n\n\t\t4-返回主菜单\n"
elseif(xuan==3)
lendcha();
//调用函数借阅查询
//修改图书
voidxiugai()
{
FILE*p;
jijie;
intj=0;
intxu;
charor;
charchakan[10];
\n\t\t是否调用图书浏览功能来查看你要修改的图书编号(Y/N)\n"
//吸收换行符
%c"
or);
if(or=='
Y'
||or=='
y'
)
scan();
//调用浏览功能
}
\n请输入你要修改的图书的编号:
chakan);
fseek(fpj,0,0);
jie,sizeof(ji),1,fpj);
feof(fpj))//判断是否该书已经借阅
{
if(strcmp(jie.bnum,chakan)==0)//已借阅图书的编号与所要修改编号相同
{
\n这本书已有人借阅,不能操作!
\n正在退出"
system("
}
p=fopen("
\\books1.txt"
wb+"
feof(fp))
if(strcmp(boo.num,chakan)==0)
{
\n\n1-书名2-编号3-作者4-价格5-出版社6-类别7-库存\n\n"
请选择要修改的项目:
scanf("
xu);
if(xu==1)
{
你要把%s改为:
scanf("
elseif(xu==2)
do
{
i=1;
num);
rewind(fp);
fread(&
while(!
if(strcmp(booq.num,num)==0)
{
printf("
i=0;
break;
}
fread(&
}
}while(i==0);
rewind(fp);
for(i=0;
i<
j;
i++)
strcpy(boo.num,num);
elseif(xu==3)
elseif(xu==4)
你要把%.2f改为:
boo.price);
elseif(xu==5)
elseif(xu==6)
elseif(xu==7)
你要把%d改为:
fwrite(&
boo,sizeof(bo),1,p);
//将修改后图书信息写入新创建文件暂时保存
else
fwrite(&
//将不需要修改的图书信息保存入新创建的文件
fclose(p);
rb+"
\\book.txt"
feof(p))//将新创建的文件内容重新写入目标文件
//重新以读写模式打开,以便继续执行其他操作
操作成功回到主菜单"
voidlend()
ststu;
intj=0,shu;
charor,num[10],xnum[10];
\n借阅图书只能通过图书编号完成!
\n是否调用图书查询来查询你要操作的图书编号(Y/N)\n"
//吸收换行符
)
cha2();
\n请输入你要借阅的图书的编号:
feof(fp))//判断该书是否存在
if(strcmp(num,boo.num)==0)
j=1;
//作为标记
}
if(j==0)
{
\n书库没有该图书正在退出\n"
system("
\n你需要借阅的图书是:
if(boo.kucun-boo.jiechu>
0)
\n该书库存剩余量为%d,请输入您要借阅该书的数量:
boo.kucun-boo.jiechu);
while(scanf("
shu),shu>
(boo.kucun-boo.jiechu))
\n\t该书库存不足,借书失败,请重新输入你要接该书的数量:
if(boo.kucun==boo.jiechu)//如果图书原始库存量=图书借出量
\n该册图书已全部借出!
正在退出\n"
\n请输入你的学号:
xnum);
j=0;
feof(fpj))
if((strcmp(jie.bnum,num)==0)&
&
(strcmp(jie.snum,xnum)==0))//已借阅学生学号与输入学号相同,借阅系统中学生学号存在
{
//作为标记,判断该书是否已经被该学生借阅
if(j==1)
\n你已经借阅过该书正在退出\n"
fseek(fps,0,0);
//移动借阅文件指针到开端
stu,sizeof(st),1,fps);
feof(fps))//在学生结构中先判断是否存在该学生信息
if(strcmp(xnum,stu.num)==0)
j=1;
//标记为存在该学生信息
break;
\n你是第一次借阅图书,为了方便管理请输入你的姓名:
stu.name);
strcpy(stu.num,xnum);
stu.jie=1;
//标记该学生已经借阅此书
fseek(fps,0,2);
//移动文件指针到末尾
//存