C语言图书信息管理系统.docx

上传人:scccc 文档编号:13559605 上传时间:2022-01-16 格式:DOCX 页数:18 大小:244.30KB
返回 下载 相关 举报
C语言图书信息管理系统.docx_第1页
第1页 / 共18页
C语言图书信息管理系统.docx_第2页
第2页 / 共18页
C语言图书信息管理系统.docx_第3页
第3页 / 共18页
C语言图书信息管理系统.docx_第4页
第4页 / 共18页
C语言图书信息管理系统.docx_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《C语言图书信息管理系统.docx》由会员分享,可在线阅读,更多相关《C语言图书信息管理系统.docx(18页珍藏版)》请在三一文库上搜索。

1、图书信息管理系统设计一、【要求】图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。设计一图书信息 管理系统,使之能提供以下功能:(1) 系统以菜单方式工作(2) 图书信息录入功能(3) 图书信息浏览功能(4) 图书信息查询功能(5) 图书信息的删除与修改功能二、【各功能模块】1、菜单模块建立menu()函数将主函数功能提取出来,主函数 main调用menu()函数方便简捷。void main()menu();void menu()int a;doprintf( * 赵毅*n);printf(n);printf(* 中国地质大学*n);printf(n);printf(nn

2、nnntttt 图书信息管理系统ttttn);printf(tt*n);printf(ttt1 图书信息录入n)printf(ttt2 图书信息浏览n)printf(ttt3 图书信息查询n)printf(ttt4 图书信息删除n)printf(ttt5 图书信息修改n)printf(ttt6 图书信息追加n)printf(ttt0退出图书信息系统n);printf(tt*n);printf(ttplease choose: );scanf(%d,&a);switch(a)case 1:input();break;case 2:list();break;case 3:search();brea

3、k;case 4:del();break;case 5:revise();break;case 6:append();break;case 0:exit(0);default:printf(n 序号不对 n);while(a!=0);【定义图书信息结构体】#include#include#include#includevoid menu();#define N 3typedef struct systemlong num;char name20;char writer10;char sort10;char publisher20;long time;float price;BOOK;注:定义的

4、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写入及读取数据进行存储)。3【图

5、书信息录入】开始把信息存入txt.txt文件关闭录入信息的文件结束图书录入流程图【程序】void input() /* 定义录入函数*/int i;BOOK a;FILE *fp;if(fp=fopen(txt.txt,w)=NULL)printf(error!n);exit(0);for(i=1;i=N;i+)printf(t请输入您所需书籍的登陆号:);scanf(%ld,&a.num);printf(t请输入书名:);scanf(%s,a.name);printf(t请输入作者名:);scanf(%s,a.writer);printf(t请输入分类号:);scanf(%s,a.sort)

6、;printf(t请输入出版单位:);scanf(%s,a.publisher);printf(t请输入出版时间:);scanf(%ld,&a.time);printf(t请输入该书的价格:);scanf(%f,&a.price);fwrite(&a,sizeof(BOOK),1,fp);fclose(fp);4【图书信息浏览】该模块的功能是显示所有录入的图书信息,流程图如下:图书浏览流程void list() /*定义浏览函数*/BOOK a;FILE *fp;if(fp=fopen(txt.txt,r)=NULL) printf(error!n);exit(0);登陆号t书名t作者名t分类

7、号t出版单位tprintf(nnnnnnnnn出版时间t价格nn);while(fread(&a,sizeof(BOOK),1,fp)!=0)printf(t%ldt%st%st%st%st%ldt%3.2fnanum,a.name,a.writer, a.sort,a.publisher,a.time,a.price);fclose(fp);printf(nt press any key to continue.);getch();5【图书信息查询】需求分析用户需要查找的图书,调用函数:1、按书名查找 search_by_name2、按作者名查找 search_by_write ,两种方式进

8、行查询。输入查询方式,进入功能选项,1、首先打开源文件txt.txt ,则按照输入书名进行 for循环查找,若查到则显示图书信息。若无, 则显示“file open error! 。按任意键结束。2、与1、流程相同,按照作者名查询。查询功能流程图【程序】void search。/*定义查询函数*/int a;printf(皿 printf(,*n).开始查询n);printf(ttt1 printf(ttt2 printf(ttt0exitn);printf(tt*按书名查询n);按作者名查询n);*n);printf(皿请选择你想要的查询方式:);scanf(%d,&a);switch(a)

9、case 1:search_by_name();break;case 2:search_by_writer();break;case 0:return; void search_by_name() /* 定义按书名查询 */ FILE *fp;int i;BOOK bN;char s220;fp=fopen(txt.txt,r);if(fp=NULL)printf(file open error!n);exit(0);for(i=0;iN&fp!=NULL;i+)/shanchufread(&bi,sizeof(BOOK),1,fp);printf( 请输入要查询的书名 : );scanf(%

10、s,s2);for(i=0;iN;i+) if(strcmp(s2,bi.name)=0)printf( 书号 书名 作者 种类 出版商 出版日期 价格 n);printf(t%ldt%st%st%st%st%ldt%3.2fn,bi.num,bi.name, bi.writer,bi.sort,bi.publisher,bi.time,bi.price);fclose(fp);void search_by_writer() /* 定义按作者名查询 */int i;FILE *fp;BOOK bN;char s320;fp=fopen(txt.txt,r);if(fp=NULL)printf(

11、file open error!n);exit(0);for(i=0;iN;i+)fread(&bi,sizeof(BOOK),1,fp);printf( 请输入要查询的书的作者 : );scanf(%20s,s3);for(i=0;iN;i+)if(strcmp(s3,bi.writer)=0)printf( 书号书名作者种类出版商出版日期价格n);printf(t%ldt%st%st%st%st%ldt%3.2fn,&bi.num,bi.name, bi.writer,&bi.sort,bi.publisher,&bi.time,&bi.price);fclose(fp);6【图书信息删除

12、】需求分析该模块功能是,先输入需要删除的图登陆号,打开存储文件for循环查找该图书信息,然后利用bk=bk+1语句进行删除,即将要删除的一列用后一列进行替换完成删除功能,最后将改后的 信息在写入结构体存入文件,关闭文件夹。图书信息删除流程【程序】void del() /* 定义删除函数*/FILE *fp;long booknum; /*按登陆号查询*/int i=0,k;BOOK bN;if(fp=fopen(txt.txt,r)=NULL)printf(error!n);getch();exit(0);for(i=0;iN;i+)fread(&bi,sizeof(BOOK),1,fp);f

13、close(fp);printf(n Please type in the number of the book you want to delete:);scanf(%ld,&booknum);for(i=0;iN;i+)if(booknum=bi.num) break;if(iN)for(k=i;k(N-1);k+)bk=bk+1;else printf(n cannot found!n);fp=fopen(txt.txt,w);if(fp=NULL) printf(n error!n);return; for(i=0;iN-1;i+)fwrite(&bi,sizeof(BOOK),1,f

14、p);fclose(fp);getch(); 7 【图书信息修改】 需求分析 该模块实现按照用户需求, 将需要修改的图书名输入 , 进行 for 循环查找是否有此书,若无,则显示未找到,退出,若有,则显示输入新的图书信息,开始输入修改的信息,进行for 循环开始录入,替换原文件信息,结束显示“修改成功” 。【程序】void revise() /* 定义修改函数*/int i,j,k;char s120;BOOK bN;FILE *fp,*fq;if(fq=fopen(tab.txt,w)=NULL)printf(error!); exit(0);if(fp=fopen(txt.txt,r)=N

15、ULL)printf(error!); exit(0);for(i=0;!feof(fp)&iN;i+)fread(&bi,sizeof(BOOK),1,fp);fclose(fp);printf(tt 欢迎进入修改界面n);printf(nnntt 请输入所要修改的图书名: n);scanf(%s,s1);for(j=0;ji|j=i)printf( 未找到! );getch(); exit(0);printf(tt 请输入新登录号 图书名 作者 分类号 出版单位 出版时间 价格 n);scanf(%ld%s%s%s%s%ld%f,&bk.num,bk.name,bk.writer,bk.s

16、ort,bk.publisher ,&bk.time,&bk.price);for(i=0;i(j+1);i+)fwrite(&bi,sizeof(BOOK),1,fq);fclose(fq);printf( 修改成功! );if(fq=fopen(txt.txt,w)=NULL)printf(error!); exit(0);for(i=0;!feof(fq)&iN;i+)fwrite(&bi,sizeof(BOOK),1,fq);fclose(fq);getch();8【图书信息追加】需求分析该模块功能是用户需要增加新的图书信息,打开源存储文件,按照需要追加的个数 n,进彳T for循环,开始录入追加的信息,流程如下:【程序】void append() /* 定义追加函数*/int i,n;BOOK a;FILE *fp;if(fp=fopen(txt.txt,a)尸NULL)printf(error!n);exit(0);printf(nnt请输入追加图书的个数:);scanf(%d,&n);for(i=0;i L,x L,L 1 A入入1 A入1 A(1 AlA 请请请请请请请请登陆号 书名 作者名 分类号 出版单位出版时间价格23333320.0033333330.0077777?0. 00press an v kev to continuie.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1