版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、图书信息管理系统设计一、【要求】图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。设计一图书信息 管理系统,使之能提供以下功能:(1) 系统以菜单方式工作(2) 图书信息录入功能(3) 图书信息浏览功能(4) 图书信息查询功能(5) 图书信息的删除与修改功能二、【各功能模块】1、菜单模块建立menu()函数将主函数功能提取出来,主函数 main调用menu()函数方便简捷。void main()menu();void menu()int a;doprintf(" * 赵毅*n");printf("n");printf("*
2、 中国地质大学*n");printf("n");printf("nnnnntttt 图书信息管理系统ttttn");printf("tt*n");printf("ttt1 图书信息录入n")printf("ttt2 图书信息浏览n")printf("ttt3 图书信息查询n")printf("ttt4 图书信息删除n")printf("ttt5 图书信息修改n")printf("ttt6 图书信息追加n")
3、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();break;case 4:del();break;case 5:revise();break;case 6:append();break;case 0:exit(0);default:printf("n 序
4、号不对 n");while(a!=0);【定义图书信息结构体】#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>void menu();#define N 3typedef struct systemlong num;char name20;char writer10;char sort10;char publisher20;long time;float price;BOOK;注:定义的BOOK吉构体N为限定的录入图书个数(可依据不同要求变化范围
5、)long num为定义的登录号(长整形变量)char name20为定义的书名的数组char writer10为定义的作者的数组char sort10定义的分类号数组char publisher20定义的出版单位数组long time 定义的出版时间长整形变量float price价格为浮点型变量。2、【数据存储】整个程序没有利用保存save函数,而是利用txt.txt tab.txt两个文件录入存取数据信息,并通过文件的读取、写入进行图书信息的修改/删除等功能。(fopen fwrite fread写入及读取数据进行存储)。3【图书信息录入】开始把信息存入txt.txt文件关闭录入信息的文
6、件结束图书录入流程图【程序】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",);printf(
7、"t请输入作者名:");scanf("%s",a.writer);printf("t请输入分类号:");scanf("%s",a.sort);printf("t请输入出版单位:");scanf("%s",a.publisher);printf("t请输入出版时间:");scanf("%ld",&a.time);printf("t请输入该书的价格:");scanf("%f",&a.p
8、rice);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分类号t出版单位tprintf("nnnnnnnnn出版时间t价格nn");while(fread(&a,sizeo
9、f(BOOK),1,fp)!=0)printf("t%ldt%st%st%st%st%ldt%3.2fn"anum,,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 ,两种方式进行查询。输入查询方式,进入功能选项,
10、1、首先打开源文件txt.txt ,则按照输入书名进行 for循环查找,若查到则显示图书信息。若无, 则显示“file open error! "。按任意键结束。2、与1、流程相同,按照作者名查询。查询功能流程图【程序】void search。/*定义查询函数*/int a;printf("皿 printf(",*n").开始查询n");printf("ttt1 printf("ttt2 printf("ttt0exit'n");printf("tt*按书名查询n");按作者名
11、查询n");*n");printf("皿请选择你想要的查询方式:");scanf("%d",&a);switch(a)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
12、("file open error!n");exit(0);for(i=0;i<N&&fp!=NULL;i+)/shanchufread(&bi,sizeof(BOOK),1,fp);printf(" 请输入要查询的书名 : ");scanf("%s",s2);for(i=0;i<N;i+) if(strcmp(s2,)=0)printf(" 书号 书名 作者 种类 出版商 出版日期 价格 n");printf("t%ldt%st%st%st%st%ldt
13、%3.2fn",bi.num,, 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("file open error!n");exit(0);for(i=0;i<N;i+)fread(&bi,sizeof(
14、BOOK),1,fp);printf(" 请输入要查询的书的作者 : ");scanf("%20s",s3);for(i=0;i<N;i+)if(strcmp(s3,bi.writer)=0)printf(" 书号书名作者种类出版商出版日期价格n");printf("t%ldt%st%st%st%st%ldt%3.2fn",&bi.num,, bi.writer,&bi.sort,bi.publisher,&bi.time,&bi.price);fclose(fp
15、);6【图书信息删除】需求分析该模块功能是,先输入需要删除的图登陆号,打开存储文件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
16、);for(i=0;i<N;i+)fread(&bi,sizeof(BOOK),1,fp);fclose(fp);printf("n Please type in the number of the book you want to delete:");scanf("%ld",&booknum);for(i=0;i<N;i+)if(booknum=bi.num) break;if(i<N)for(k=i;k<(N-1);k+)bk=bk+1;else printf("n cannot found!n&qu
17、ot;);fp=fopen("txt.txt","w");if(fp=NULL) printf("n error!n");return; for(i=0;i<N-1;i+)fwrite(&bi,sizeof(BOOK),1,fp);fclose(fp);getch(); 7 【图书信息修改】 需求分析 该模块实现按照用户需求, 将需要修改的图书名输入 , 进行 for 循环查找是否有此书,若无,则显示未找到,退出,若有,则显示输入新的图书信息,开始输入修改的信息,进行for 循环开始录入,替换原文件信息,结束显示“修改成
18、功” 。【程序】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")=NULL)printf("error!"); exit(0);for(i=0;!feof(fp)&&i<N;i+)fread(&bi
19、,sizeof(BOOK),1,fp);fclose(fp);printf("tt 欢迎进入修改界面n");printf("nnntt 请输入所要修改的图书名: n");scanf("%s",s1);for(j=0;j<i;j+)if(strcmp(,s1)=0) k=j;break;if (j>i|j=i)printf(" 未找到! ");getch(); exit(0);printf("tt 请输入新登录号 图书名 作者 分类号 出版单位 出版时间 价格 n");s
20、canf("%ld%s%s%s%s%ld%f",&bk.num,,bk.writer,bk.sort,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
21、(i=0;!feof(fq)&&i<N;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!
22、n");exit(0);printf("nnt请输入追加图书的个数:");scanf("%d",&n);for(i=0;i<n;i+)printf ("t请输入追加图书的登录号:");scanf("%ld",&a.num);printf("t请输入追加图书的图书名:");scanf("%20s",);printf("t请输入追加图书的作者名:");scanf("%10s",a.writer);
23、printf("t请输入追加图书的分类号:");scanf("%10s",a.sort);printf("t请输入追加图书的出版单位:");scanf("%20s",a.publisher);printf("t请输入追加图书的出版时间:");scanf("%d",&a.time);printf("t请输入追加图书的单价:");scanf("%f",&a.price);fwrite(&a,sizeof(BOOK),
24、1,fp);fclose(fp);【上机操作】1、录入函数2、编译连接、运行3、结果下面是各功能模块的界面图:(1) 主菜单MMMMM中国地质大学QHWWW图书信息管理系统一人览询除改加息 一薪查删修遁信 -自心自心自j.息自心自心 一信信自信信信却C 八 E【 口一 C E一 E-二 二 二二 二书书书书书书出R图图图图12 3 4 5 6 0二 二 二 二 二 X 二 二 二 二 二pleaise cJwose(2) 添加模块【录入模块】加的心籍号 号 号 陆 陆 陆0 3 :3:3榔:3:3位间价 ea需:1名口富时的需:2名口多时的需:3名口墓时的 您书3出出该您书*出出该您书E出出该 入A-入入入入入入入入入入A入入A-入入入入入 + r +- r +X- - 1r +_+X- - -+ r +4TI4-TT 4T4-hTI +/ r r-IP-TT-+Ur r + 4"T r +-¥T -+ i *+ r:1的:1:1篝:1:1位间价节:2:2篝:2:2位间价书【浏览模块】价格出版时间出版单位分类号作者名登陆号书名10.0020.0030.00to continue
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工现场机具配置与管理方案
- 储能电站工程施工方案
- 人防工程外部环境风险评估方案
- 2026年安徽林业职业技术学院单招职业技能考试参考题库带答案解析
- 2026江西萍乡市市直卫健系统引进高层次人才26人笔试参考题库及答案解析
- 2026年昆明民泰保安有限责任公司招聘安保人员(1人)笔试备考题库及答案解析
- 产品推广话术指南
- 未来五年短租公寓企业县域市场拓展与下沉战略分析研究报告
- 2025年陕西省事业单位招聘《职业能力测试》考试题库及答案解析
- 2025-2030新能源汽车行业产业前景预测市场发展评估规划研究报告
- GJB1406A-2021产品质量保证大纲要求
- JGJT46-2024《施工现场临时用电安全技术标准》条文解读
- 2023年广东学业水平考试物理常考知识点
- 房地产运营-项目代建及管理实务
- 中外政治思想史-复习资料
- GB/T 12385-2008管法兰用垫片密封性能试验方法
- 中国近代史期末复习(上)(第16-20课)【知识建构+备课精研】 高一历史上学期期末 复习 (中外历史纲要上)
- GB 11887-2008首饰贵金属纯度的规定及命名方法
- 《LED的基础知识》课件
- 需求导向式销售研讨课程课件
- DB13T 5603-2022 工贸行业非高危建设项目安全设施“三同时”报告编制导则
评论
0/150
提交评论