1、ttt4 图书信息删除 nttt5 图书信息修改 nttt6 图书信息追加 nttt0 退出图书信息系统ntt* * prin tf(ttplease choose:scan f(%d,&a);switch(a)case 1:i nput();break;case 2:list();case 3:search();case 4:del();case 5:revise();case 6:appe nd();case 0:exit(0);default:n 序号不对 nwhile(a!=0);【定义图书信息结构体】#in cludestdlib.hstri ng.hc oni o.h void m
2、enu();#defi ne N 3 typedef struct system long num;char n ame20;char writer10;char sort10;char publisher20; long time;float price;BOOK;注:定义的BOOK结构体N为限定的录入图书个数(可依据不同要求变化范围) long num 为定义的登录号(长整形变量)char n ame20 为定义的书名的数组char writer10 为定义的作者的数组char sort10 定义的分类号数组char publisher20 定义的出版单位数组long time 定义的出版
3、时间长整形变量float price 价格为浮点型变量。2、【数据存储】整个程序没有利用保存 save函数,而是利用txt.txt tab.txt 两个文件录入存取数据信息,并通过文件的读取、写入进行图书信息的修改 /删除等功能。(fopen fwrite fread 写入及读取数据进行存储)。3【图书信息录入】开始输入用户要输入的录入的书的个数Ni从1到N调用输入函数 input(i)把信息存入txt.txt文件关闭录入信息的文件图书录入流程图【程序】void input() /* 定义录入函数*/int i;BOOK a;FILE *fp;if(fp=fope n(txt.txt,w)=N
4、ULL)error!for(i=1;i=N;i+)t 请输入您所需书籍的登陆号 :”);%lda.nu m);t 请输入书名:sca nf(%s,a .n ame);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【图书信息浏览】该模块的功能是显示所有录入的图书信息,流程图如下:图书浏览流程void list() /* 定义浏览函数*/rnnnnnnnn
5、n 登陆号t书名t作者名t分类号t出版单位t出版时间t价格nnwhile(fread(&a,sizeof(BOOK),1,fp)!=0)t%ldt%st%st%st%st%ldt%3.2fn,a .n um,a. name,a.writer,a.sort,a.publisher,a.time,a.price);nt press any key to continu e.getch();5【图书信息查询】需求分析用户需要查找的图书,调用函数:1、 按书名查找 search_by_ name2、 按作者名查找 search_by_write ,两种方式进行查询。输入查询方式,进入功能选项,1、 首
6、先打开源文件txt.txt ,则按照输入书名进行 for循环查找,若查到则显示图书信息。若无,则显示file open error! ”。按任意键结束。2、 与1、流程相同,按照作者名查询。图书信息查询按书名查询(1)按作者名查询(2)EXIT ( 0)查询功能流程图void search。/* 定义查询函数*/* n*开始查询 n”);按书名查询n按作者名查询nexitntttt 请选择你想要的查询方式:search_by_ name();search_by_writer(); case 0:retur n; void search_by_name() /* 定义按书名查询 */BOOK b
7、N;char s220;fp=fope n(if(fp=NULL)file ope n error!for(i=0;N& fp!=NULL;i+)/sha nchufread(&bi,sizeof(BOOK),1,fp); 请输入要查询的书名:”);,s2);N;if(strcmp(s2,bi. name)=0)printf(”书号书名作者种类出版商出版日期价格n”);,bi. num,bi. name, bi.writer,bi.sort,bi.publisher,bi.time,bi.price);void search_by_writer() /* 定义按作者名查询 */EOAA宀_go
8、soQ4-(。一d.三 qoaolu 一二二q03- llsznd-二 qeos.曰 q03匚 9一M.三 q(DEeu.曰 qunu.曰 q03-=uvcxl% 乍 P_%=S%AS% 乍 s%rs% 乍 p_%r=lu_d壬一 隸口竖耳W竖耳絲匡斗7申=)壬匸dou9匸 M.mqos)dluolsM(+Nv_o.!l)04Ds-=socxl%=ueos严-=u_dMg 1/2008=0 Ns-三 q03)PBMl)04 宀S)X9(=UWO u do QEtuud(nnNsd&c=cxnxr)u doTE xocxloselp -N 一 q 1008 a*山i匚6【图书信息删除】需求分析该
9、模块功能是,先输入需要删除的图登陆号,打开存储文件 for循环查找该图书信息,然后利用bk=bk+1 语句进行删除,即将要删除的一列用后一列进行替换完成删除功能, 最后将改后的信息在写入结构体存入文件,关闭文件夹。图书信息删除流程void del() /* 定义删除函数*/long book num; /* 按登陆号查询*/int i=0,k;门)=NULL)n Please type in the nu mber of the book you want to delete: scan f(book nu m);if(book num=bi. num) break;if(iN)for(k=i
10、;k(N-1);k+)bk=bk+1;else prin tf(n cannot foun d! fp=fope n( if(fp=NULL) prin tf(n error! ); N-1;7【图书信息修改】该模块实现按照用户需求,将需要修改的图书名输入,进行for循环查找是否有此书,若无,则显示未找到,退出,若有,则显示输入新的图书信息,开始输入修改的信息,进行 for循环开始录入,替换原文件信息,结束显示“修改成功”void revise。/* 定义修改函数*/int i,j,k;char s120;FILE *fp,*fq;if(fq=fope n( tab.txt exit(0);f
11、eof(fp)& N;tt 欢迎进入修改界面nnnntt 请输入所要修改的图书名: n,s1);for(j=0;ji|j=i)未找到! 价格ntt 请输入新登录号图书名作者分类号出版单位出版时间%ld%s%s%s%s%ld%fbk. nu m,bk. name,bk.writer,bk.sort,bk.publ isher,&bk.time, &bk.price);(j+1);bi,sizeof(BOOK),1,fq);fclose(fq); 修改成功!if(fq=fope n(feof(fq)&8【图书信息追加】该模块功能是用户需要增加新的图书信息, 打开源存储文件,按照需要追加的个数 n ,进行for循环,开始录入追加的信息,流程如下:将追加的图书写入txt.txt文件void即pend() /* 定义追加函数*/int i,n;annt 请输入追加图书的个数 :n);i x L、L 入入入入入入入入 瘡击IR土IR主F土R主冃主唁圭用. * 1 * Tt * T- * 11 1 * Tt 1 -L7 ? :?7:7牡即0 :1号名名口蚤时:7 数睪价 个登图零出出单 书书书书书书书书匱陆号书名出版单位岀版时间 价格3 2&-&77 7 70.00anj/ keyto continu最
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1