C语言图书信息管理系统Word格式.docx
《C语言图书信息管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《C语言图书信息管理系统Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
主函数流程图结束
《1》、主函数:
成立menu()函数将主函数功能提拿出来,主函数main调用menu()函数便简捷。
voidmain()
{
menu();
}
voidmenu()
inta;
do
Word专业资料
printf("
******毅******\n"
);
\n"
******中国地质大学******\n"
\n\n\n\n\n\t\t\t\t图书信息管理系统\t\t\t\t\n"
\t\t********************************************\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\t0----------------退出图书信息系统\n"
\t\tpleasechoose:
"
scanf("
%d"
&
a);
switch(a)
case1:
input();
break;
case2:
list();
case3:
search();
case4:
del();
case5:
revise();
case6:
append();
case0:
exit(0);
default:
\n序号不对\n"
while(a!
=0);
【定义图书信息构造体】
#include<
stdio.h>
stdlib.h>
string.h>
conio.h>
voidmenu();
#defineN3
typedefstructsystem
longnum;
charname[20];
charwriter[10];
charsort[10];
charpublisher[20];
longtime;
floatprice;
BOOK;
注:
定义的BOOK构造体
N为限制的录入图书个数(可依照不一样要求变化围)
longnum为定义的登录号(长整形变量)
charname[20]为定义的书名的数组
charwriter[10]为定义的作者的数组
charsort[10]定义的分类号数组
charpublisher[20]定义的第一版单位数组
longtime定义的第一版时间长整形变量
floatprice价钱为浮点型变量。
《2》、【数据储存】
整个程序没有益用保留save函数,而是利用txt.txt\tab.txt两个文件录入存取数据信息,
并经过文件的读取、写入进行图书信息的改正/删除等功能。
(fopenfwritefread写入及读取
数据进行储存)。
《3》【图书信息录入】
图书信息
录入
输入输入输入输入输入输入输入
书本登录号书名作者名分类号第一版单位第一版时间书的价钱
输入用户要输入的录
入的书的个数N
i从1到N调用输入函
数input(i)
把信息存入txt.txt文件
封闭录入信息的文件
结束
图书录入流程图
【程序】
voidinput()/*定义录入函数*/
inti;
BOOKa;
FILE*fp;
if((fp=fopen("
txt.txt"
"
w"
))==NULL)
error!
for(i=1;
i<
=N;
i++)
\t请输入您所需书本的登岸号:
"
%ld"
a.num);
\t请输入书名:
%s"
a.name);
\t请输入作者名:
a.writer);
\t请输入分类号:
a.sort);
\t请输入第一版单位:
a.publisher);
\t请输入第一版时间:
a.time);
\t请输入该书的价钱:
%f"
a.price);
fwrite(&
a,sizeof(BOOK),1,fp);
fclose(fp);
《4》【图书信息阅读】
阅读
显示显示显示显示显示显示显示
该模块的功能是显示全部录入的图书信息,流程图以下:
翻开存入信息的txt.txt文件
显示图书有关信息
按随意键返回主菜单
图书阅读流程
voidlist()/*定义阅读函数*/
r"
\n\n\n\n\n\n\n\n\n登岸号\t书名\t作者名\t分类号\t第一版单位\t
第一版时间\t价钱\n\n"
while(fread(&
a,sizeof(BOOK),1,fp)!
=0)printf("
\t%ld\t%s\t%s\t%s\t%s\t%ld\t%3.2f\n"
a.num,a.name,a.writer,a.sort,a.publisher,a.time,a.price);
\n\tpressanykeytocontinue..."
getch();
《5》【图书信息查问】
[需求剖析]
用户需要查找的图书,调用函数:
1、按书名查找search_by_name
2、按作者名查找search_by_write,两种式进行查问。
输入查问式,进入功能选项,
1、第一翻开源文件txt.txt,则依照输入书名进行for循环查找,若查到则显示图书信息。
若无,则
显示“fileopenerror!
!
”。
按随意键结束。
2、与1、流程同样,依照作者名查问。
图书信息查问
按书名查问
(1)按作者名查问
(2)EXIT(0)
输入a,判断a
能否为1~2?
a=1,则调用
a=2,则调用
search_by_name按书名
a=0
按作者
search_by_writer
查问
名查问
退出回到主
菜单
输入书名,如有此书
输入作者名,如有此书
则输出此书信息,若
则输出此书信息,若没
没有,则输出file
有,则输出file
open
openerror!
查问功能流程图
voidsearch()/*定义查问函数*/
\t\t******************************\n"
开始查问\n"
\t\t\t1
---------------按书名查问\n"
\t\t\t2
---------------按作者名查问\n"
\t\t\t0
---------------exit\n"
);
\t\t
请选择你想要的查问式:
search_by_name();
search_by_writer();
return;
voidsearch_by_name()/*定义按书名查问*/
BOOKb[N];
chars2[20];
fp=fopen("
if(fp==NULL)
fileopenerror!
for(i=0;
N&
&
fp!
=NULL;
i++)//shanchu
fread(&
b[i],sizeof(BOOK),1,fp);
请输入要查问的书名:
s2);
N;
if(strcmp(s2,b[i].name)==0)
书号书名作者种类第一版商第一版日期价钱\n"
printf("
b[i].num,b[i].name,
b[i].writer,b[i].sort,b[i].publisher,b[i].time,b[i].price);