最新C语言图书信息管理系统.doc

上传人:1595****071 文档编号:34715939 上传时间:2022-08-18 格式:DOC 页数:80 大小:203KB
返回 下载 相关 举报
最新C语言图书信息管理系统.doc_第1页
第1页 / 共80页
最新C语言图书信息管理系统.doc_第2页
第2页 / 共80页
点击查看更多>>
资源描述

《最新C语言图书信息管理系统.doc》由会员分享,可在线阅读,更多相关《最新C语言图书信息管理系统.doc(80页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC语言图书信息管理系统苏州科技学院苏州科技大学二一六 二一七学年第一学期电子与信息工程系课程设计报告书课程名称: 图书信息系统 班 级: _ 电子1612班_ 学 号: 16200106231_ 姓 名: 张立进_ 指导教师: 任建平_ 二一七年三月1. 题目:图书信息系统的设计与实现2.功能:(1)每一条记录包括一个图书编号,图书名,作者名,出版社等。(2)图书信息

2、浏览功能:完成全部图书信息记录的显示和浏览,包括排序后、修改后、插入后、删除后信息改变的浏览。(3)图书信息录入功能:完成对“图书编号,图书名,作者名,出版社”信息的录入。(4)图书信息修改功能:对图书信息进行修改并保存。(5)图书信息查询功能:通过输入图书编号查找该图书,并显示该图书所有信息。(6)图书信息插入功能:通过输入某本图书编号进行图书信息的插入并保存。(7)图书信息删除功能:完成删除图书的信息的功能。(8)图书信息排序功能:按图书编号对图书进行从小到大重新排序。 (9)图书信息帮助功能:能够给用户提供所有函数的帮助功能,并作相应得介绍。 3.要求:(1)整个系统均用C语言实现;(2

3、)利用指针、链表来实现图书信息的数据结构设计;(3)系统具有输入、显示、查询、删除、排序、插入,保存、读取基本功能;(4)系统的各个功能模块都用函数的形式来实现;(5)可以将图书信息保存在文件中。(6)可以将图书信息从文件中读取出来。4.设计内容:整个系统除了主函数外,另外还有13个函数,包括主函数在内,以实现9大功能:图书信息浏览功能,图书信息录入功能,图书信息修改功能,图书信息查询功能, 图书信息插入功能,图书信息删除功能,图书信息排序功能,图书信息帮助功能,退出系统功能。其功能流程图如下所示:stuct book结构体void help()帮助void allinformation()图

4、书信息浏 览主函数mainmainmenuvoidinput()图书信息录入void editbook()图书信息修改void querybook()图书信息查询void deletebook()图书信息删除void insertbook() 图书信息插入void sortbook() 图书信息排序 图1 主菜单选择功能流程图各个函数的详细设计说明分别如下:4.1创建主函数void main()该函数通过选择各选项,完成相应的功能,当选择退出选项时,退出循环,具体的选择项有:【1】图书信息浏览功能,【2】图书信息录入功能,【3】图书信息修改功能,【4】图书信息查询功能, 【5】图书信息插入功能

5、,【6】图书信息删除功能,【7】图书信息排序功能,【8】图书信息帮助功能,【9】退出系统功能。4.2结构体struct定义了一个图书信息的结构体,包括 char author20;char bookname20;char publisher20;int num;等。操作流程: 1进入主界面选择图书信息浏览 2输出所有已存储的所有图书信息 3退回主界面 4.3编写浏览数据记录函数 void allinformation()该函数可以通过选择相应的功能对已经输入并保存的所有的图书信息进行浏览,并且退出后还能保存记录,以备下次浏览时信息没有丢失。操作流程: 1进入主界面选择图书信息浏览 2输出所有已

6、存储的所有图书信息 4.4编写录入数据记录函数inputbook()该函数可以添加新的图书信息,并且在退出后可以自动保存,当重新浏览所有图书信息时,新添加的图书信息也在其中,且通过if (y!=1)来判别是1录入,0不录入,来实现是否继续录入的功能。操作流程: 1进入录入界面 2输入相关信息(图书编号、名字、作者名、出版单位)保存退出。 4.5编写修改数据记录函数editbook()该函数可以完成对已有的图书信息“图书编号,图书名,作者名,出版社”进行重新修改并加以保存,实现图书信息的修改,为以后的保存函数,浏览函数,查询函数,排序函数,删除函数,修改函数等功能的实现提供了基础。操作流程: 1

7、进入修改界面 2修改所要修改的图书的编号、作者名等相关信息。 4.6编写查询数据记录函数querybook()该函数运用for语句实现对图书编号信息的查找输出,并显示到屏幕上,实现图书信息的查找功能。操作流程: 1进入查询界面 2通过输入图书编号输出显示指定图书匹配信息 4.7编写插入数据记录函数insertbook()通过void insertbook()插入函数来实现插入,先清屏system(cls);然后通过输入插入前图书编号后进行新图书信息的输入最终图书信息插入功能,退出后自动保存可以再次浏览。操作流程: 1进入删除界面 2输入所要删除的图书编号后自动删除。 4.8编写删除数据记录函数

8、deletebook() 该函数通过void deletebook()删除函数来实现图书信息的删除,通过输入图书编号查找到该图书之后删除。退出后再次浏览所有图书信息时便看不到已删除的图书信息。操作流程: 1进入插入界面 2输入所要插入位置的图书编号,然后插入新图书的相关信息。 4.9编写数据记录排序函数 void sortbook()该函数定义了i,j运用冒泡法对图书信息进行排序,对图书的编号按照从小到大的顺序来排序的。最好显示已排序好的的图书信息。操作流程: 1进入插入界面 2输入所要插入位置的图书编号,然后插入新图书的相关信息。 3退回主界面4.10编写帮助函数void help()该函数

9、是简单的帮助功能,介绍了各个模块的功能,使用户快速了解该系统的功能作用。具体代码如下:void help()printf(t|帮助|n); printf( 下方显示的是您所需的帮助信息:n);printf( n); printf( 如果选择1,则进入第一个选项(1).图 书 信 息 浏 览:完成全部图书信息记录的显示和浏览,包括排序后、修改后、插入后、删除后信息改变的浏览。n);printf( 如果选择2,则进入第二个选项(2).图 书 信 息 录 入:完成对图书号,图书名,作者名,出版社信息的录入。n);printf( 如果选择3,则进入第三个选项(3).图 书 信 息 修 改:对图书信息进

10、行修改并保存。n); printf( 如果选择4,则进入第四个选项(4).图 书 信 息 查 询:通过输入图书编号查找该图书,并显示该图书所有信息。n);printf( 如果选择5,则进入第五个选项(5).图 书 信 息 插 入:通过输入某本图书编号进行图书信息的插入并保存。n);printf( 如果选择6,则进入第六个选项(6).图 书 信 息 删 除:完成删除图书的信息的功能n); printf( 如果选择7,则进入第八个选项(7).图 书 文 件 排 序:按图书编号对图书进行从小到大重新排序。n);printf( 如果选择9,则进入第九个选项(8).帮 助 功 能:提供一些帮助给用户使用

11、,以备更好的使用。n);printf( 如果选择0,则进入第零个选项(9).退 出 系 统:用来退出系统,以备下次再使用。n);printf(nn 请按任何键返回,谢谢!n);fflush(stdin); getchar();5. 调试分析 在此次的C语言程序设计中,我的程序开始有很多的错误,例如error C2440: = : cannot convert from int to int 10,是我忽略不能把整型转换成数组。插入功能出现插入信息后却浏览不到,后来在插入后面加了一段保存文件的代码后,插入功能才得以实现,还有因为我的粗心把写文件写成了读文件导致删除功能无法实现。经过我和其他同学反

12、复的检查反复的修改,最终完成了。6. 源程序#include #include #include#include #define NULL 0#define a 100int now=0;struct book char author20; /*作者名*/ char bookname20; /*图书名*/ char publisher20; /*出版单位*/char day100;/*出版时间*/float money;/*价格*/ int num; /*图书编号*/;struct book ba; /*系统主菜单*/void mainmenu() FILE *fp1,*fp2; int i;

13、 system(cls); printf (n温馨提示:为保证您的操作得到保存,请按正常顺序退出系统_n); printf(nn); printf(tt +n); printf(tt | | 欢迎使用图书信息管理系统 | | n); printf(tt | | n); printf(tt | | n); printf(tt | 1图书信息浏览 | n); printf(tt | | n); printf(tt | 2图书信息录入 | n); printf(tt | | n); printf(tt | 3图书信息修改 | n); printf(tt | | n); printf(tt | 4图书

14、信息查询 | n); printf(tt | | n); printf(tt | 5图书信息插入 | n); printf(tt | | n); printf(tt | 6图书信息删除 | n); printf(tt | | n); printf(tt | 7图书信息排序 | n); printf(tt | | n); printf(tt | 8帮助 | n); printf(tt | | n); printf(tt | 9退出系统 | n); printf(tt | | n); printf(tt +n); printf (请输入您的选择:);/*library.txt里面读出now的值*/

15、 if(fp2=fopen(D:library.txt,rb)!=NULL) fscanf(fp2,%d,&now); fclose(fp2); /*b.txt里面读出一组数据的值*/ if(fp1=fopen(D:b.txt,rb)!=NULL) for(i=0;inow;i+) fread(&bi,sizeof(struct book),1,fp1); fclose(fp1); /*图书信息浏览*/void allinformation() int i; char turn;printf(t|图书信息浏览|n); printf(浏览所有图书信息n); printf(图书编号t图书名tt作者

16、名tt出版单位tt出版时间tt价格nn); for(i=0;inow;i+) printf(%d tt%s tt%s tt%s tt%s tt%s nn,bi.num,bi.bookname,bi.author,bi.publisher bi.day bi.money); printf(t按任意键返回主菜单.); /*返回主菜单*/ turn=getch(); mainmenu();/*图书信息录入*/void inputbook() printf(t|图书信息录入|n);int i=now; FILE *fp1,*fp2; char turn,judge;doprintf(请输入添加第%d本

17、图书的信息:n,i+1);printf (n请输入图书名:n); scanf(%s,bi.bookname); printf (n请输入图书编号:n); scanf(%d,&bi.num); printf (n请输入作者名:n); scanf(%s,bi.author); printf (n请输入出版单位:n); scanf(%s,bi.publisher); printf (n请输入出版时间:n); scanf(%s,bi.day);printf (n请输入价格:n); scanf(%s,bi.money);i+; now=i;/*library.txt里面写入now的值*/ if(fp2=

18、fopen(D:library.txt,wb)!=NULL) fprintf(fp2,%d,now); fclose(fp2); printf(是否继续添加?(y/n)n); judge=getch(); while(judge!=n);/*book.txt里面写入一组数据的值*/ if(fp1=fopen(D:b.txt,wb)!=NULL) for(i=0;inow;i+) fwrite(&bi,sizeof(struct book),1,fp1); fclose(fp1); elseprintf(can not open the filen); printf(t请按任意键返回.); /*

19、返回主菜单*/ turn=getch(); mainmenu();/*图书信息修改*/ void editbook() FILE *fp1; int i,e_num,j;char e_author10,e_publisher10,e_bookname10,judge,turn;struct book ebook;printf(t|图书信息修改|n);doprintf(请输入需要修改的图书编号n); scanf(%d,&ebook.num); for(i=0;inow;i+) if(ebook.num=bi.num)/*如果编号相同,说明图书存在,可以进行修改*/ printf(n图书编号:n)

20、; scanf(%d,&e_num); printf(n图书名:n); scanf(%s,e_bookname); printf(n作者名:n); scanf(%s,e_author); printf(n出版单位:n); scanf(%s,e_publisher);printf(n出版时间:n); scanf(%s,e_day);printf(n价格:n); scanf(%s,e_money); bi.num=e_num; strcpy(bi.bookname,e_bookname); strcpy(bi.author,e_author); strcpy(bi.publisher,e_publ

21、isher);strcpy(bi.publisher,e_day);strcpy(bi.publisher,e_mony); printf(n 图书信息修改成功,请继续选择!n); printf(nn); break; if(i=now)printf(没有此图书n);printf(是否继续修改下本图书?(y/n)n);judge=getch(); /*b.txt里面写入一组数据的值*/ if(fp1=fopen(D:b.txt,wb)!=NULL) for(j=0;jnow;j+) fwrite(&bj,sizeof(struct book),1,fp1); fclose(fp1); else

22、 printf(can not open the filen); while(judge!=n);printf(t按任意键返回主菜单.); turn=getch();mainmenu(); /*图书信息查询*/void querybook() int number,flag=1,i;char judge,turn;printf(t|图书信息查询|n);printf(请输入要查询的图书编号: );scanf(%d,&number);for(i=0;inow;i+)if(number=bi.num) flag=0;printf(图书编号t图书名tt作者名tt出版单位tt出版时间tt价格nn);pr

23、intf(%d tt%s tt%s tt%s tt%s t%s nn,bi.num,bi.bookname,bi.author,bi.publisher .bi.day .bi.money );break; if (flag!=0)printf(不能找到该图书信息!);printf(t按任意键返回主菜单.); turn=getch();mainmenu();/*图书信息插入*/void insertbook() FILE *fp2,*fp1;int i,j,h;char turn,judge;struct book ib;printf(t|图书信息插入|n);do h=now;printf(请

24、输入插入之前的图书编号n);scanf(%d,&ib.num);for(i=0;i=i;j-)bj+1=bj;printf (n请输入图书名:n); scanf(%s,bi.bookname); printf (n请输入图书编号:n); scanf(%d,&bi.num); printf (n请输入作者名:n); scanf(%s,bi.author); printf (n请输入出版单位:n); scanf(%s,bi.publisher); printf (n请输入出版时间n); scanf(%s,bi.day); printf (n请输入价格:n); scanf(%s,bi.money);

25、 break;if(i=h) printf(没有本图书n); printf(是否继续插入?(y/n)n);judge=getch(); while(judge!=n);/*library.txt里面读出now的值*/ if(fp2=fopen(D:library.txt,wb)!=NULL) fprintf(fp2,%d,now); fclose(fp2); /*b.txt里面读出一组数据的值*/ if(fp1=fopen(D:b.txt,wb)!=NULL) for(i=0;inow;i+) fwrite(&bi,sizeof(struct book),1,fp1); fclose(fp1)

26、; printf(t按任意键返回主菜单.); turn=getch(); mainmenu();/*图书信息删除*/ void deletebook() int number;char turn;int t=now;int i;FILE *fp2,*fp1;system(cls); /*清屏*/printf(t|图书信息删除|n);printf(n 请输入要删除的图书编号: );scanf(%d,&number);for (i=0;inow;i+)if(number=bi.num)for(;inow-1;i+)strcpy(bi.bookname,bi+1.bookname);bi.num=b

27、i+1.num;strcpy(bi.publisher,bi+1.publisher);strcpy(bi.author,bi+1.author);printf(n 删除图书文件成功!n);now-;break;if(i=t)printf(n 对不起!文件不能找到!n);/*library.txt里面读出now的值*/ if(fp2=fopen(D:library.txt,wb)!=NULL) fprintf(fp2,%d,now); fclose(fp2); /*b.txt里面读出一组数据的值*/ if(fp1=fopen(D:b.txt,wb)!=NULL) for(i=0;inow;i+

28、) fwrite(&bi,sizeof(struct book),1,fp1); fclose(fp1); elseprintf(can not open the filen);printf(t按任意键返回主菜单.); turn=getch(); mainmenu();/*图书信息排序*/void sortbook() int i,j; char turn; struct book cb;printf(t|图书信息排序|n); for(j=0;jnow-1;j+) for(i=0;ibi+1.num) cb=bi; bi=bi+1; bi+1=cb; printf(图书排序(按照图书编号从小到

29、大排序)n); printf( 编号tt图书名称tt图书作者tt图书出版社tt出版时间tt价格n); for(i=0;inow;i+) printf( %dtt%sttt%sttt%sttt%sttt%snn,bi.num,bi.bookname,bi.author,bi.publisher,bi.day ,bi.money); printf(t按任意键返回主菜单.); turn=getch(); mainmenu();/*帮助*/void help()printf(t|帮助|n); printf( 下方显示的是您所需的帮助信息:n);printf( n); printf( 如果选择1,则进入

30、第一个选项(1).图 书 信 息 浏 览:完成全部图书信息记录的显示和浏览,包括排序后、修改后、插入后、删除后信息改变的浏览。n);printf( 如果选择2,则进入第二个选项(2).图 书 信 息 录 入:完成对图书号,图书名,作者名,出版社信息的录入。n);printf( 如果选择3,则进入第三个选项(3).图 书 信 息 修 改:对图书信息进行修改并保存。n); printf( 如果选择4,则进入第四个选项(4).图 书 信 息 查 询:通过输入图书编号查找该图书,并显示该图书所有信息。n);printf( 如果选择5,则进入第五个选项(5).图 书 信 息 插 入:通过输入某本图书编号

31、进行图书信息的插入并保存。n);printf( 如果选择6,则进入第六个选项(6).图 书 信 息 删 除:完成删除图书的信息的功能n); printf( 如果选择7,则进入第八个选项(7).图 书 文 件 排 序:按图书编号对图书进行从小到大重新排序。n);printf( 如果选择9,则进入第九个选项(8).帮 助 功 能:提供一些帮助给用户使用,以备更好的使用。n);printf( 如果选择0,则进入第零个选项(9).退 出 系 统:用来退出系统,以备下次再使用。n);printf(nn 请按任何键返回主菜单,谢谢!n); getchar();/*结束*/*主程序*/void main()

32、 int n;mainmenu();scanf(%d,&n);while(n)switch(n)case 1:system(cls);allinformation();break;case 2:system(cls);inputbook();break;case 3:system(cls);editbook(); break;case 4:system(cls);querybook();break;case 5:system(cls);insertbook();break;case 6:system(cls);deletebook();break;case 7:system(cls);sortbook();break;case 8:system(cls);help();break;case 9:printf( 欢迎您再次使用图书信息系统! n); exit(9);default:printf(输入有误n);break;scanf(%d,&n);7. 心得体会在这之前,我已经对c语言这门课程学习了一年,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东还是很陌生,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 成人自考

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁