1、结束 主函数流程图1、主函数:建立menu( )函数将主函数功能提取出来,主函数main调用menu( )函数方便简捷。void main()menu();void menu() int a;doprintf( *赵 毅*n);n*中国地质大学*nnnnnntttt图书信息管理系统ttttntt*nttt1 -图书信息录入nttt2 -图书信息浏览nttt3 -图书信息查询nttt4 -图书信息删除nttt5 -图书信息修改nttt6 -图书信息追加nttt0 -退出图书信息系统nttplease choose: scanf(%d,&a);switch(a)case 1:input();bre
2、ak;case 2:list();case 3:search();case 4:del();case 5:revise();case 6:append();case 0:exit(0);default:printf(n序号不对nwhile(a!=0);【定义图书信息结构体】#includestdlib.hstring.hconio.hvoid menu();#define N 3typedef struct system long num; char name20;char writer10;char sort10;char publisher20;long time;float price;
3、BOOK;注:定义的BOOK结构体N为限定的录入图书个数(可依据不同要求变化范围)long num为定义的登录号(长整形变量)char name20为定义的书名的数组char writer10为定义的作者的数组char sort10定义的分类号数组char publisher20定义的出版单位数组long time定义的出版时间长整形变量float price价格为浮点型变量。2、【数据存储】整个程序没有利用保存save函数,而是利用txt.txt tab.txt 两个文件录入存取数据信息,并通过文件的读取、写入进行图书信息的修改/删除等功能。(fopen fwrite fread写入及读取数
4、据进行存储)。3【图书信息录入】输入书籍登录号书名作者名分类号出版单位出版时间书的价格输入用户要输入的录入的书的个数Ni从1到N调用输入函数input(i)把信息存入txt.txt文件关闭录入信息的文件 图书录入流程图【程序】void input() /*定义录入函数*/int i;BOOK a;FILE *fp;if(fp=fopen(txt.txt,w)=NULL) error!for(i=1;i=N;i+)t请输入您所需书籍的登陆号:scanf(%lda.num);t请输入书名:%s,a.name);t请输入作者名:,a.writer);t请输入分类号:,a.sort);t请输入出版单位
5、:,a.publisher);t请输入出版时间:a.time);t请输入该书的价格:%fa.price);fwrite(&a,sizeof(BOOK),1,fp);fclose(fp);4【图书信息浏览】显示该模块的功能是显示所有录入的图书信息,流程图如下:显示图书相关信息打开存入信息的txt.txt文件按任意键返回主菜单 图书浏览流程void list() /*定义浏览函数*/r printf(nnnnnnnnn登陆号t书名t作者名t分类号t出版单位t出版时间t价格nnwhile(fread(&a,sizeof(BOOK),1,fp)!=0)printf(t%ldt%st%st%st%st%
6、ldt%3.2fn,a.num,a.name,a.writer,a.sort,a.publisher,a.time,a.price);fclose(fp);nt press any key to continue.getch();5【图书信息查询】 需求分析用户需要查找的图书,调用函数:1、按书名查找 search_by_name2、按作者名查找 search_by_write,两种方式进行查询。输入查询方式,进入功能选项,1、 首先打开源文件txt.txt ,则按照输入书名进行for 循环查找,若查到则显示图书信息。若无,则显示“file open error!”。按任意键结束。2、 与1、
7、流程相同,按照作者名查询。图书信息查询按书名查询(1)按作者名查询(2)EXIT(0)输入a,判断a是否为12?a=1 ,则调用search_by_name按书名查询a=2,则调用search_by_writer按作者名查询输入书名,若有此书则输出此书信息,若没有,则输出file open error!输入作者名,若有此书则输出此书信息,若没有,则输出file open error!退出回到主菜单a=0查询功能流程图void search() /*定义查询函数*/tt*n开始查询nttt1-按书名查询nttt2-按作者名查询nttt0-exitn) ;tt请选择你想要的查询方式:switch(
8、a)case 1:search_by_name(); case 2:search_by_writer();case 0:return;void search_by_name() /*定义按书名查询*/BOOK bN;char s220;fp=fopen(if(fp=NULL)file open error!for(i=0;N&fp!=NULL;i+)/shanchufread(&bi,sizeof(BOOK),1,fp);请输入要查询的书名:,s2);N;if(strcmp(s2,bi.name)=0)书号 书名 作者 种类 出版商 出版日期 价格 n,bi.num,bi.name,bi.writer,bi.sort,bi.publisher,bi.time,bi.price);void search_by_writer() /*定义按作者名查询*/BOOK
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1