图书馆管理系统c语言Word格式文档下载.docx
- 文档编号:15972186
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:18
- 大小:353.11KB
图书馆管理系统c语言Word格式文档下载.docx
《图书馆管理系统c语言Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统c语言Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。
[流程图]
[程序]
main()
{intn,t;
/*变量保存选择菜单数字,判断输入的数字是否在功能人能够菜单所对应的数字范围内*/
do
{puts("
\t\t\t***欢迎使用图书馆管理系统***\n\n\n"
);
puts("
\t\t\t*************MENU************\n\n"
\t\t\t1.图书信息输入\n"
\t\t\t2.新图书信息录入\n"
\t\t\t3.图书信息浏览\n"
\t\t\t4.图书信息查找\n"
\t\t\t5.图书信息修改\n"
\t\t\t6.图书信息删除\n"
\t\t\t7.图书借阅\n"
\t\t\t8.图书归还\n"
\t\t\t9.退出系统\n"
\t\t\t\n\n\n*****************************\n\n"
/*对功能选项的显示*/
printf("
选择使用功能种类(1--9)[]\b\b"
scanf("
%d"
&
n);
if(n<
1||n>
9)
{t=1;
getchar();
}/*对选择的数字作判断*/
elset=0;
}
while(t==1);
/*实现选择功能*/
switch(n)
{case1:
enter();
break;
/*输入功能*/
case2:
add();
/*追加功能*/
case3:
browse();
/*浏览功能*/
case4:
search();
/*查找功能*/
case5:
modify();
/*修改功能*/
case6:
del();
/*删除功能*/
case7:
TSXX_out();
/*图书借出*/
case8:
TSXX_back();
/*归还功能*/
case9:
exit(0);
/*退出*/
}
/*以上完成了主函数计主菜单的构成*/
2输入模块
[数据结构]
根据题目中对数据结构的要求每一本图书包含的信息利用一个结构体来存放。
其中结构体需包含:
字符变量:
图书名称、作者、借书人姓名
实型变量:
图书编号、单价、学号
整型变量:
存在状态,、性别、库存
定义结构体如下
structTSXX
{chartsn[30];
/*图书名称*/
intbh[15];
/*图书编号*/
floatpri;
/*单价*/
charzzn[10];
/*作者*/
intzt;
/*存在状态*/
intkc/*库存*/
charjsn[10];
/*借书人姓名*/
intsex;
/*性别*/
intnum[15];
/*学号*/
}ts[N];
/*ts[N]中每个数组元素对应一本书的全部信息*/
/*以上完成了对于结构体的定义*/
[注意]
本程序ts[N]中的个数,采取宏定义的方式,可以随时在源程序宏定义中更改,本程序在此宏定义#defineN10000。
[流程图]
Y
voidenter()
{inti;
for(i=0;
i<
N;
i++)
{printf("
请输入图书信息\n\n"
input(i);
}/*调用输入函数*/
if(i!
=0)save();
/*/
printf_back();
/*一个任务结束时让用户选择是浏览还是返回*/
3。
追加模块
[需求分析]
该模块的功能是假如用户需要新加入新的图书信息,通过键盘输入将新信息逐条加在原来输入文件上但不能覆盖原有信息。
voidadd()
{inti,n,m,k;
n=()load;
printf(〝可添加信息个数(0-%d):
[]\b\b〝,N-n-1);
scanf(〝%d〝,&
m);
k=m+n;
for(i>
n;
=k;
input(i);
if(fp=fopen(〝ts.txt〝,〝a〝)==NULL)
{printf(〝文件无法打开\n〝);
for(i>
i++)
fclose(fp);
4.查找模块
[需求分析]
该模块的功能是根据输入的图书名称查找相应的记录找到以后,可继续进行删除和修改功能
YN
N
Search()
{inti,k,n,t1=1,t2,t3,t4;
structTSXXt;
n=load();
{do
{k=-1;
printf(〝\n\n输入你所要查询的图书名称:
〝);
scanf(〝%s〝,t.tsn);
print_show()
i++;
)
if(strcmp(t.tsn,ts[i].tsn)==0)
{k=i;
printf_one();
if(k==-1)
printf(〝对不起,您所查找的图书不存在〝);
printf(〝继续吗?
\n\t1).继续查找2)不,返回请选择[]\b\b〝);
t1);
while(k==-1&
&
wi==1);
t4=0;
t3=0;
if(k!
=-1)
{printf(〝\n\n您的下一步操作?
\n\n1)查找下一个2}修改图书信息3)删除图书信息4)回到主菜单请选择[]\b\b〝);
scanf(〝%d〝,&
t2);
switch(t2)
{case2:
w3=modify_data(k,n);
{print(〝\n\n你确定吗?
\n\t1)确定删除2}不,返回请选择[]\b\b〝);
t4);
if(t4==1)
ts[k].num=0;
if(t3==1||t4==1)
{save(n);
printf(〝\n\n信息修改成功〝);
printf(〝\n\您的下一步操作?
\n\t1)查找下一个2)返回请选择[]\b\b〝);
scanf(〝%d〝,&
}
while(t3==1);
mneu();
5、修改模块
该模块用于显示所有图书信息,由于记录较多,故而采取分屏显示。
显示完所有纪录后,用户需输入图书编号进而查找图书信息
Y
N
voidmodify()/*修改模块*/
{sructTSXXt;
;
inti,n,k,t0=1,t1,t2=0;
/*让用户查看全部记录以便确认要修改的记录*/
printf_show();
/*调用数据结构显示函数*/
{if((i!
=0)&
(i%10==0))/*用于分屏显示*/
{printf(“\n\n请记录需要修改的图书编号。
任意键继续……”);
getch();
puts(“\n\n”);
printf_one(i);
/*调用显示一个记录的函数*/
{printf(“\n\n请输入您需要修改的图书编号。
NO.:
”);
scanf(“%f”,&
t.bh);
/*输入需要修改的图书编号*/
i++)/*查找要修改的记录*/
if(strcmp(t.bh,ts.bh)==0)
/*找到许需修改的记录*/
t=ts[i];
/*将ts[i]中原有需修改的记录备份给t,以便用户反悔时恢复*/
if(k==-1)printf(“\n\n信息不存在!
再试一次”);
}while(k==-1);
/*当k=-1时表示没找到*/
print_show();
printf_one(k);
t1=modify_data(k,n);
/*修改学生记录并且返回保存控制值t1,t1=1则表示用户已确认修改*/
if(t1==1)/*t1=1时则表示用户确定此次修改*/
{printf(“\n成功修改,是否继续修改?
\n\n\t1).是2)返回并保存\t[]\b\b);
scanf(“%d”,&
t0);
t2=1;
/*来控制保存,使w2=1是标记已有过的记录*/
eles
{to=0;
if(t2==1)
ts[k]=s;
}
/*到此处由于用户没有确认这次修改。
使t0=0,为了终止循环,ts[k]=s;
则把备份的s恢复给ts[k],这样使得在此之前修改过的成功保存而本次不修改*/
if(t0!
=1&
t2==1)
/*t0不等于1则表示正常返回,t2=1则表示在此之前有过修改,这时就保存用户已确认的修改并返回*/
save(n);
/*t2不等于1表示在此之前没有修改过,而又反悔这次修改,则不保存返回*/
}while(t0==1);
menu();
6.删除模块
[需求模块]
显示完所有纪录后,用户需输入图书编号进而查找图书信息,
、、、
Y
voiddel()/*删除模块*/
/*让用户查看全部记录以便确认要删除的记录*/
printf_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 管理 系统 语言