版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、忏由/本次存课程报告课程名称:程序设计实践专业班级:计算机类1504学生姓名:学号:任课教师:许伟涛学期:学15-2016学年第二学期课程报告任务书题 目图书信息管理系统主要内容开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量 等)。使之能提供以下 基本功能:(1)图书信息录入功能(图书信息用文件保存)一一输入(2)图书信息浏览功能一一输出(3)查询功能(至少一种查询方式 卜排序功能(壬少一种排序方式):按书名查询按作者名查询按照价钱排序按出版时间排序等等(4)图书信息的删除与修改扩展功能:可
2、以按照自己的程度进行扩展。比如(1)简单的权限处理(2)报表打印功能(3)甚至根据自己情况,可以加上学生信息和借阅信息的管理,并扩充为图 书借阅系统。(4)模糊查询 (5)综合查询(6)统计功能 比如统计处某一类别的图书信息 或 筛选出小于指定数量库存的图书信息等等,总之,可以根据自己需 求进行分析功能。任务要求一、提交材料应包括:(1)系统源代码 (2)课程报告二、整个设计过程具体要求(1)需求分析要求学生对案例系统进行分析,设计出需要完成的功能,完善各个模块的调用关系;(2)设计过程要求学生进一步明确各模块调用关系,进一步完善模块函数细节(函数名、参数、返回值等)(3)实现过程 要求学生养
3、成良好的编码习惯、完成各个模块并进行测试,最终 完成系统整体测试;(4)总结阶段 按照要求完成系统设计和实现报告,并进行总结、答辩。成绩评定报告撰写情况(30分)系统完成情况(30分)答辩情况(40分)总分内容20分规范程度5分程序测试5分基本功能20分扩展功能10分自述情况10分答辩情况30分成绩评定教师:目录 TOC o 1-5 h z HYPERLINK l bookmark8 o Current Document 需求分析 4.概要设计 4. HYPERLINK l bookmark19 o Current Document 详细设计 5 HYPERLINK l bookmark21
4、o Current Document 1、输入新进图书信息 5 HYPERLINK l bookmark25 o Current Document 2、显示全部记录信息 7 HYPERLINK l bookmark29 o Current Document 3、根据图书的名称查询图书信息 9. HYPERLINK l bookmark33 o Current Document 4、给图书进行排序 1.1. HYPERLINK l bookmark37 o Current Document 5、根据图书名称对图书进行删除1.2 HYPERLINK l bookmark41 o Current D
5、ocument 6、统计某价格以上的图书库存1.5. HYPERLINK l bookmark45 o Current Document 7、显示全部的图书信息 1.7. HYPERLINK l bookmark49 o Current Document 8、修改图书信息 1.8. HYPERLINK l bookmark51 o Current Document 主程序代码2.2.调试分析 2.6.测试结果 2.6.课程心得总结3.1.1需求分析经过大一上学期的理论学习,在基础实验的基础上,本学期我们继续开设了C语言程序设计实践课。课程要求我们对已经学习的基础实验进行整合与衔接处理,并最终形
6、成一个系 统性质的规模较大的程序。本次课程设计要求我们达到能独立完成一个图书管理系统,完成后要求实现的功能有对 图书信息的录入、删除、修改,浏览(即输出),按某种方式查询(要求至少一种查询方式): 按某种方式排序(要求至少一种排序方式)。当然,我们可以根据自己的能力对系统进行完 善性的拓展,例如自己加入简单的权限处理,统计功能,模糊查询等。通过整个程序的开发过程,最终使我们掌握利用计算机解决实际问题的基本方法,熟悉C语言开发的全过程,提高综合应用C语言的能力、编程和调试能力,为学习计算机和通信专业的后续课程打好专业基础。在该部分中叙述:对题目中要求的功能进行的简单的叙述分析,把题目内容给介绍一
7、下。2概要设计(1)数据结构创建了一个结构(BOONINFO,用来存储图书的基本信息。(2)模块划分1、输入图书信息:void choice_1_input_new();2、显示图书信息:void choice_2_display_all() ;3、按名称查询图书信息: void choice_3_search_according_name() ;4、按名称删除图书信息:void choice_4_delete_according_name() ;5、按图书名称排序图书: void choice_5_sort_according_name() ;6、按价格区间查询图书:void choice_
8、6_display_high_price() ;7、按图书状态显示图书:void choice_6_display_high_price() ;8、按图书名称修改图书信息:void choice_8_change_book();9、按照图书库存排序:void choice_9_sort_according_list() ;10、排序:void choice_();(3)程序总体框架登陆界面面新进图书的输入3详细设计1、输入新进图书信息void choice_1_input_new()用文件实现和向书信输入系统文件并保存。代码如下:void choice_1_input_new()/*输入新进的
9、图书信息 */ char choice;FILE *p;BOOKINFO newbook;system(cls);while(1)printf(输入图书编号:);scanf(%s,newbook.number);printf(输入图书名称:);scanf(%s,); TOC o 1-5 h z printf( 输入图书类别: );scanf(%s,newbook.list);printf( 输入图书单价: );scanf(%f,&newbook.price);printf( 输入出版社: );scanf(%s,newbook.boss);printf( 输入图书的作者:
10、 );scanf(%s,newbook.auther);printf( 输入出版时间 : );scanf(%s,newbook.time);printf( 请输入需要添加的图书书目 : );scanf(%d,&newbook.isExit);printf( 是否保存该条书目?(Y/N)n);choice=getchar();while(choice!=Y&choice!=y&choice!=N&choice!=n)choice=getchar();if(choice=Y|choice=y)p=fopen(e:bookinfo.txt,ab);fwrite(&newbook,sizeof(BOO
11、KINFO),1,p);fclose(p);printf(n 该条书目已添加到 e:bookinfo.txt 文件中 !n);elseprintf(n 本条书目未保存!n);printf(n 是否继续添加书目?(Y/N)n);choice=getchar();while(choice!=Y&choice!=y&choice!=N&choice!=n) choice=getchar();if(choice=Y|choice=y)continue;elsebreak;2、显示全部记录信息void choice_2_display_all()将信息从文件中读写出来。代码如下:void choice_
12、2_display_all()/*显示全部图书信息 */FILE *p;int n;BOOKINFO bookinfoM;int booknumber=0;system(cls);p=fopen(e:bookinfo.txt,rb);while(!feof(p)fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p);booknumber+;使书目的/*booknumber-;使用feof()函数会多读一行,因此需要 booknumber自减一次,数量正确 */fclose(p);booknumber-;if(booknumber=0)printf( 没有
13、任何图书信息 !nn);elsen=0;printf( 图书信息如下 n);printf(printf( 编号 名称图书类别 n);while(nbooknumber)图书信息单价 作者n);出版社出版时%sn,printf(%-6s%-12s%-8.1f%s%-9d %s%sbookinfon.number,,bookinfon.price, bookinfon.auther,bookinfon.isExit,bookinfon.boss,bookinfon.time,bookinfon.list);n+;printf(nn 按任意键回到主菜单!n);getch(
14、);3、根据图书的名称查询图书信息void choice_3_search_according_name() 根据图书的名称将信息从文件中读出。代码如下:void choice_3_search_according_name()/*M据图书名称显示图书的信息 */ char search20;/*search用来存放要查询的书名*/int n;FILE *p;char choice;BOOKINFO bookinfoM;int booknumber=0;system(cls);p=fopen(e:bookinfo.txt,rb);while(!feof(p)fread(&bookinfoboo
15、knumber,sizeof(BOOKINFO),1,p);booknumber+;booknumber-;fclose(p);while(1)printf(输入要查询白书本名称:);scanf(%s,&search);if(booknumber=0)printf( 书库中没有任何信息!nn);printf( 按任意键回到主菜单!nn);getch();break;elsefor(n=0;n=booknumber)printf( 没有查找该书的任何信息 !n);printf(nn 是否继续查询 ?(Y/N)n);choice=getchar();while(choice!=Y&choice!=
16、y&choice!=N&choice!=n)choice=getchar();if(choice=Y|choice=y)continue;elsebreak;4、根据图书价格进行排序void choice_5_sort_according_name()按图书价格从低到稿对图书进行排序代码如下:void choice_5_sort_according_name()/*艮据图书价格排序 */FILE *p;int m,n;BOOKINFO temp;BOOKINFO bookinfoM;int booknumber;p=fopen(e:bookinfo.txt,rb);booknumber=0;s
17、ystem(cls);while(!feof(p)fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p);booknumber+;booknumber-;fclose(p);if(booknumber=0)printf( 没有任何图书信息 !nn);for(m=0;mbooknumber-1;m+)for(n=m+1;nbookinfon.price)temp=bookinfom;bookinfom=bookinfon;bookinfon=temp;p=fopen(e:bookinfo.txt,wb);for(m=0;mbooknumber;m+)fwr
18、ite(&bookinfom,sizeof(BOOKINFO),1,p);fclose(p);printf(nn 完成排序 !nn);printf(按任意键回到主菜单!n);getch();5、根据图书名称对图书进行删除void choice_4_delete_according_name()根据图书名称定为图书在文件中的位置,从而删除有关图书的所有信息。代码如下:void choice_4_delete_according_name()/根据图书名称对图书信息进行删除 */ char search20;/*search用来存放要删除的书名*/int n,i;FILE *p;char choi
19、ce;BOOKINFO bookinfoM;int booknumber;system(cls);while(1)printf( 输入要删除的书本名称:);scanf(%s,&search);p=fopen(e:bookinfo.txt,rb);booknumber=0;while(!feof(p)fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p);booknumber+;booknumber-;fclose(p);if(booknumber=0)printf( 书库中没有任何信息!nn);printf( 按任意键回到主菜单!nn);getch();
20、break;elsefor(n=0;n=booknumber)printf( 没有查找该书的任何信息 !n);elseprintf( 是否确认需要删除该条书目 ?(Y/N);choice=getchar();while(choice!=Y&choice!=y&choice!=N&choice!=n) choice=getchar();if(choice=Y|choice=y)for(i=n;ibooknumber-1;i+)bookinfoi=bookinfoi+1;booknumber-;p=fopen(e:bookinfo.txt,wb);for(n=0;nbooknumber;n+)fw
21、rite(&bookinfon,sizeof(BOOKINFO),1,p);fclose(p);printf( 删除成功 !n);elseprintf(nn 该条书目没有被删除!);printf(nn 是否继续进行删除操作?(Y/N)n);choice=getchar();while(choice!=Y&choice!=y&choice!=N&choice!=n)choice=getchar();continue;elsebreak;/*else 结束 */6、统计某价格以上的图书库存void choice_6_display_high_price()设定一个下限的价格,以此为起点,显示该价格
22、以上的所有图书信息。代码如下:void choice_6_display_high_price()/*根据价格歹!J出图书信息 */ float price;FILE *p;int n;int count=0;BOOKINFO bookinfoM;int booknumber;system(cls);printf( 请输入价格 :);scanf(%f,&price);p=fopen(e:bookinfo.txt,rb);booknumber=0;while(!feof(p)fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p);booknumber+;b
23、ooknumber-;fclose(p);if(booknumber=0)printf( 没有任何图书信息 !nn);elsefor(n=0;n=price)count+;if(count=0)printf(书库中没有比.1f$价格高的图书匚price);elseprintf(价格高于 %.1f的图书信息如下n,price);printf( 图书信息n);printf( 编号 名称单价作者 图书库存 出版社出版时间 图书类别 n);for(n=0;n=price)printf(%-6s%-12s%-8.1f%s%-9d %s%s%sn,bookinfon.number,bookinfon.na
24、me,bookinfon.price,bookinfon.auther,bookinfon.isExit,bookinfon.boss,bookinfon.time,bookinfon.list);printf(nn 按任意键回到主菜单!n);getch();7、显示全部的图书信息void choice_7_display_according_exitflag() 显示出文件中存入的所有图书信息。代码如下:void choice_7_display_according_exitflag()/*根据存在状态歹!J出图书信息 */ FILE *p;int n;int count=0;BOOKINF
25、O bookinfoM;int booknumber;system(cls);booknumber=0;p=fopen(e:bookinfo.txt,rb);while(!feof(p)fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p);booknumber+;booknumber-;fclose(p);if(booknumber=0)printf( 书库中没有任何书目存在!n);for(n=0;nbooknumber;n+)if(bookinfon.isExit!=0)count+;if(count=0)printf( 书库中的书籍全部借出 !n)
26、;elseprintf( 书库中的图书信息如下 :nn);printf( 图书信息n);出版社%sn,printf( 编号 名称单价作者 图书库存出版时间 图书类别 n);for(n=0;nbooknumber;n+)if(bookinfon.isExit!=0)printf(%-6s%-12s%-8.1f%s%-9d %s %sbookinfon.number,,bookinfon.price,bookinfon.auther,bookinfon.isExit,bookinfon.boss,bookinfon.time,bookinfon.list);printf
27、(n 按任意键返回主菜单!n);getch();8、修改图书信息void choice_8_change_book()从文件中按名称读出图书信息,再进行全部修改。代码如下:void choice_8_change_book()char search20;/*search用来存放要修改的书名*/int n,i;FILE *p;char choice;BOOKINFO newbook;BOOKINFO bookinfoM;int booknumber;system(cls);while(1)printf( 输入要修改的书本名称:);scanf(%s,&search);p=fopen(e:booki
28、nfo.txt,rb);booknumber=0;while(!feof(p)fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p);booknumber+;booknumber-;fclose(p);if(booknumber=0)printf( 书库中没有任何信息!nn);printf( 按任意键回到主菜单!nn);getch();break;for(n=0;n=booknumber)printf( 没有查找该书的任何信息 !n);elseprintf( 是否确认需要修改该条书目 ?(Y/N);choice=getch();while(choice!
29、=Y&choice!=y&choice!=N&choice!=n) choice=getch();if(choice=Y|choice=y)for(i=n;ibooknumber-1;i+)bookinfoi=bookinfoi+1;booknumber-;p=fopen(e:bookinfo.txt,wb);for(n=0;nbooknumber;n+)fwrite(&bookinfon,sizeof(BOOKINFO),1,p);fclose(p);printf(n);printf( 输入图书编号: );scanf(%s,newbook.number);printf( 输入图书名称: );
30、scanf(%s,); TOC o 1-5 h z printf( 输入图书类别: );scanf(%s,newbook.list);printf( 输入图书单价: );scanf(%f,&newbook.price);printf( 输入出版社: );scanf(%s,newbook.boss);printf( 输入图书的作者: );scanf(%s,newbook.auther);printf( 输入出版时间 : );scanf(%s,newbook.time);printf( 是否保存该条书目信息 ?(Y/N)n);choice=getchar();while(c
31、hoice!=Y&choice!=y&choice!=N&choice!=n)choice=getchar();if(choice=Y|choice=y)p=fopen(e:bookinfo.txt,ab);fwrite(&newbook,sizeof(BOOKINFO),1,p);fclose(p);printf(n 该条书目已添加到 c:bookinfo.txt 文件中 !n);elseprintf(n 本条书目未保存!n);printf(n 是否继续添加书目?(Y/N)n);choice=getchar();while(choice!=Y&choice!=y&choice!=N&choi
32、ce!=n)choice=getchar();if(choice=Y|choice=y)continue;elsebreak;elseprintf(nn 该条书目没有被删除!);printf(nn 是否继续进行删除操作?(Y/N)n);choice=getchar();while(choice!=Y&choice!=y&choice!=N&choice!=n) choice=getchar();if(choice=Y|choice=y)continue;elsebreak;9、主程序代码int main()char choice;int pass,i=3;FILE *p;if(p=fopen(
33、e:bookinfo.data,rb)=NULL)p=fopen(e:bookinfo.data,wb);fclose(p);printf(nnnnn);printf(ttt 欢迎使用河南工业大学图书信息管理系统 nn);printf(ttt 请输入您的学号(123456): );while(pass!=123456)scanf(%d,&pass);if(pass!=123456)printf(ttt 对不起!您输入的学号是错误的,您还有%d 次机会 na,-i);if(i=0)printf(nnn);printf(ttt 您的学号不存在!请联系图书馆管理员! na);exit(0);if(p
34、ass=123456)printf(tt1: 新进图书基本信息的输入printf(tt3: 根据图书名称查询图书printf(tt5: 按照图书价格排序printf(tt7: 列出所有的图书信息printf(tt9:退出系统nn);printf(tt*nn);printf(nn);printf(ttt 学号正确,进入系统中。 nnn);getchar();system(cls);printf(nn);printf(tt 欢迎进入河南工业大学图书信息管理系统nn);printf(ttt 按 enter进入系统 n);getchar();system(cls);while(1)printf(nnn
35、nnnn);printf(ttt 欢迎使用河南工业大学图书管理系统nnn);printf(tt*nn);2:显示全部记录nn);4:根据图书名称对进行删除nn);6:统计某价格以上的图书数量nn);8:修改图书信息nn);printf(tt 请输入您的选择 : );scanf(%s,&choice);system(cls);switch(choice)case 1:choice_1_input_new();break;/*输入新进的图书信息*/case 2:choice_2_display_all();break;/*显示全部图书信息*/case 3:choice_3_search_accor
36、ding_name();break;/*根据图书名称显示图书的信息*/case 4:choice_4_delete_according_name();break;/*根据图书名称对图书信息进行删除*/case 5:choice_5_sort_according_name();break;/*根据图书价格排序*/case 6:choice_6_display_high_price();break;/*根据价格列出图书信息*/case 7:choice_7_display_according_exitflag();break;case 8:choice_8_change_book();break;
37、case 9:exit(0);break;default:printf(nnttt 输入错误!请输入(1-9)之间的数字na);break;return 0;4调试分析程序在编写过程中遇到的问题及解决方法问题1:竖直界面,丰富度单一,画面不够充实。解决方法:在意识到界面问题后,结合同学们的意见,我将主界面的选项模块调整为中 心横排界面,这样可以让人们在使用系统时简单明了的观看程序界面,增加界面的可观度。问题2:输入图书信息时,想随意的改变图书库存量。解决方法:很显然,如果单一的改变库存,就让程序的操作难度大大增加,所以在修改图书的同时,增加修改库存量的功能,这样就让程序在操作起来省事儿不少。问
38、题3:按图书价格排序时,stmcpy函数的使用不当。解决方法:起初编写程序时,我的思路是用strcmpy ()函数来比较价格,最后在调试时总是问题不断,上网查资料得知,strcmpy()函数是比较字符串的,于是果断放弃了该函数。问题4:输入三次错误密码后任然进入系统。解决方法:最初的代码是这样的if(i=0)printf(nnn);printf(ttt您的学号不存在!请联系图书馆管理员!na);break;但若将break ;修改为exit(0);就可以解决这个问题。问题5:显示图书信息时总会多读一行解决方法:在feof()函数后,在其语句后在用相应变量自减一次,如 booknumber-;。
39、5测试结果文件信息编号名称单价作者图书库存出版社出版时间图书类别01C 语百45.0韩金池75黄河出版社2016-04-05教育02高等数学:45.0士丽65高等教育出版社2013-01-03教育03英语32.0免局32宁夏出版社2011-02-11教育期过使用河南工业卡手左书隹总管塔挈统 请就入您的学号:123456):.微救济有半: 5.1登陆界面欢迎使用河南工业大学图书管理系毓才*才* *先本生存*本*本# *宇卒今参*率*丰*幸小字*丰丰*亭* *本*亭小才出L行遥图书基本信息的置人3:根据图书名痂查曲图书5;给医书排序列出所有的图节信三9:退出斜纤21显示全邰记录4:根据图书名称对迸
40、行以除代鸵W某馀柘以上的图书数器文桂段明行信息*岬申*申*1申*岬申注*1|14*:1|#市*1|0|11|#申*岬申*1|0|1谓输入您的选抨:.5.3主界面潟号030201学L -. 秋唐看相 名英高博图书信息加F图书信慧单侨 作者型一 D梵高45.0王丽45.0戟金也匡书库存3275出版社 出段时间 层书类别 宁夏出林社 2011-02-11 数省 庭等教育出.我社2QL3&L-03 教育黄河出版社 2016 04-05 教育里士点足三到土案军.诙书的详细信息如下:编号名称 单阶 1荏者国书库存出版社出版时间图书类即口 1匚语言 45.0 韩金池 75黄河出版社2016-M-05 林育
41、悬香怒号查询?立如做书相音半:5.5按书名查询图书信息书室中的图书信息如下;图书信息名称单价作者图书庠存出版社巳航灯间匡书类别英语32.0死嗝32宁夏出夜社211一02-11教育京等数学45.0丁65台善鞘育出匕衽2013-01-03料诧匚语言45.075黄河出版社2016-04-0教育法旺三亭源.三一芝工号沟032M班格高于Y40O的图书信息如下编号名称 单价 作者 图书库存 出板社 出版时间 图书类别fl高等数学C语言干展 65祷金他 而高筹教育出版社黄河出版社2012-01-03?ni6-04-0教育 教育接任点键回到主菜单!5.7以某价格为起点之上的图书悬百速认需要删除该条书目?( Y
42、/ # v删除成功!是否泄续进,划除铅诈Y *酸社护有半.6 课程心得总结经历了几个星期的课程设计, 从设计前期的不知如何下手到开始设计时的各种错误的困扰再到一个个的攻破各个问题,最后到对程序的进一步完善与课程报告的撰写。这一段时间我们由被程序困扰到几乎崩溃到最后成就感的油然而生;从一整天的坐在电脑屏幕面前到现在的带着喜悦一遍一遍运行着程序;一遍遍的互相探讨解决大家遇到的问题到越来越发现编程的有意思,我到现在真的感觉认真自己做完这样一个系统收获颇大:( 1) 对结构化程序设计与函数的嵌套调用有了更清晰具体的认识。( 2) 引入了文件知识可以对电脑硬盘上的数据操作,改变了对 C 语言的狭义认识,
43、认识到C语言实际上还可以实现更复杂丰富的功能来利用开发的软件来进一步实现 对现实中的问题的解决。(3)学习到C语言的学习一定不不能忽视一个很小很小的细节,因为完全会导致不同 的结果。(4)对如何用C语言来完成一个较大的系统的整体思路有清晰的认识。( 5) 不过说实话,写大程序真的很吃力。#include #include #include #define M 1000typedef struct bookinfochar number15;/* 产品编号 */char name30;/* 产品名称 */char auther30;/* 作者 */char list20;/* 类别 */floa
44、t price;/* 单价 */char boss15; /* 出版社信息 */char time10;/* 出版时间 */int isExit;/* 库存存在状态*/BOOKINFO;void choice_1_input_new()/* 输入新进的图书信息*/char choice;FILE *p;BOOKINFO newbook;system(cls);while(1)printf( 输入图书编号 : );scanf(%s,newbook.number);printf( 输入图书名称: );scanf(%s,);printf( 输入图书类别: );scanf(%s
45、,newbook.list);printf( 输入图书单价: );scanf(%f,&newbook.price);printf( 输入出版社 : );scanf(%s,newbook.boss);printf( 输入图书的作者 : );scanf(%s,newbook.auther);printf( 输入出版时间 : );scanf(%s,newbook.time);printf( 请输入需要添加的图书书目 : );scanf(%d,&newbook.isExit);printf( 是否保存该条书目 ?(Y/N)n);choice=getchar();while(choice!=Y&choi
46、ce!=y&choice!=N&choice!=n)choice=getchar();if(choice=Y|choice=y)p=fopen(e:bookinfo.txt,ab);fwrite(&newbook,sizeof(BOOKINFO),1,p);fclose(p);printf(n 该条书目已添加到 e:bookinfo.txt 文件中 !n);elseprintf(n 本条书目未保存!n);printf(n 是否继续添加书目?(Y/N)n);choice=getchar();while(choice!=Y&choice!=y&choice!=N&choice!=n)choice=
47、getchar();if(choice=Y|choice=y)continue;elsebreak;void choice_2_display_all()/* 显示全部图书信息*/FILE *p;int n;BOOKINFO bookinfoM;int booknumber=0;system(cls);p=fopen(e:bookinfo.txt,rb);while(!feof(p)fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p);booknumber+;fclose(p);booknumber-;if(booknumber=0)printf( 没
48、有任何图书信息!nn);elsen=0;printf( 图书信息如下n);n);出版社 出版时间图书printf( 图书信息printf( 编号 名称单价 作者类别 n);while(nbooknumber)printf(%-6s%-12s%-8.1f%s%-9d %s%s%sn,bookinfon.number,,bookinfon.price,bookinfon.auther,bookinfon.isExit,bookinfon.boss,bookinfon.time,bookinfon.list);n+;printf(nn 按任意键回到主菜单!n);getch
49、();void choice_3_search_according_name()/* 根据图书名称显示图书的信息*/char search20;int n;FILE *p;char choice;BOOKINFO bookinfoM;int booknumber=0;system(cls);p=fopen(e:bookinfo.txt,rb);while(!feof(p)fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p);booknumber+;booknumber-;fclose(p);while(1)printf( 输入要查询的书本名称:);sc
50、anf(%s,&search);if(booknumber=0)printf( 书库中没有任何信息!nn);printf( 按任意键回到主菜单!nn);getch();break;elsefor(n=0;n=booknumber)printf( 没有查找该书的任何信息!n);printf(nn 是否继续查询 ?(Y/N)n);choice=getchar();while(choice!=Y&choice!=y&choice!=N&choice!=n)choice=getchar();if(choice=Y|choice=y)continue;elsebreak;void choice_4_de
51、lete_according_name()/* 根据图书名称对图书信息进行删除*/char search20;int n,i;FILE *p;char choice;BOOKINFO bookinfoM;int booknumber;system(cls);while(1)printf( 输入要删除的书本名称:);scanf(%s,&search);p=fopen(e:bookinfo.txt,rb);booknumber=0;while(!feof(p)fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p);booknumber+;booknumber
52、-;fclose(p);if(booknumber=0)printf( 书库中没有任何信息!nn);printf( 按任意键回到主菜单!nn);getch();break;elsefor(n=0;n=booknumber)printf( 没有查找该书的任何信息 !n);elseprintf( 是否确认需要删除该条书目 ?(Y/N);choice=getchar();while(choice!=Y&choice!=y&choice!=N&choice!=n)choice=getchar();if(choice=Y|choice=y)for(i=n;ibooknumber-1;i+)bookinf
53、oi=bookinfoi+1;booknumber-;p=fopen(e:bookinfo.txt,wb);for(n=0;nbooknumber;n+)fwrite(&bookinfon,sizeof(BOOKINFO),1,p);fclose(p);printf( 删除成功 !n);elseprintf(nn 该条书目没有被删除!);printf(nn 是否继续进行删除操作?(Y/N)n);choice=getchar();while(choice!=Y&choice!=y&choice!=N&choice!=n)choice=getchar();if(choice=Y|choice=y)
54、continue;elsebreak;void choice_9_sort_according_list()/ 根据图书库存排序FILE *p;int m,n;BOOKINFO temp;BOOKINFO bookinfoM;int booknumber;p=fopen(e:bookinfo.txt,rb);booknumber=0;system(cls);while(!feof(p)fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p);booknumber+;booknumber-;fclose(p);if(booknumber=0)printf(
55、没有任何图书信息!nn);elsefor(m=0;mbooknumber-1;m+)for(n=m+1;nbooknumber;n+)if(bookinfom.isExitbookinfon.isExit)temp=bookinfom;bookinfom=bookinfon;p=fopen(e:bookinfo.txt,wb);for(m=0;mbooknumber;m+)fwrite(&bookinfom,sizeof(BOOKINFO),1,p);fclose(p);printf(nn 完成排序 !nn);if(booknumber=0)printf( 没有任何图书信息!nn);elsen
56、=0;printf( 图书信息如下n);printf( 图书信息printf( 编号 名称单价 作者类别 n);while(nbooknumber)n);出版社 出版时间图书printf(%-6s%-12s%-8.1f%s%-9d %s%sbookinfon.number,,bookinfon.price,%sn,bookinfon.auther,bookinfon.isExit,bookinfon.boss,bookinfon.time,bookinfon.list);n+;fclose(p);printf( 按任意键回到主菜单!n);getch();void c
57、hoice_5_sort_according_name()/ 根据图书价格排序FILE *p;int m,n;BOOKINFO temp;BOOKINFO bookinfoM;int booknumber;p=fopen(e:bookinfo.txt,rb);booknumber=0;system(cls);while(!feof(p)fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p);booknumber+;booknumber-;fclose(p);if(booknumber=0)printf( 没有任何图书信息!nn);elsefor(m=0;
58、mbooknumber-1;m+)for(n=m+1;nbookinfon.price) temp=bookinfom;bookinfom=bookinfon;bookinfon=temp;p=fopen(e:bookinfo.txt,wb);for(m=0;mbooknumber;m+)fwrite(&bookinfom,sizeof(BOOKINFO),1,p);fclose(p);printf(nn 完成排序 !nn);if(booknumber=0)printf( 没有任何图书信息!nn);elsen=0;printf( 图书信息如下n);n);出版社 出版时间图书printf( 图书
59、信息printf( 编号 名称单价 作者类别 n);while(nbooknumber)printf(%-6s%-12s%-8.1f%s%-9d %s%s%sn,bookinfon.number,,bookinfon.price,bookinfon.auther,bookinfon.isExit,bookinfon.boss,bookinfon.time,bookinfon.list);n+;fclose(p);printf( 按任意键回到主菜单!n);getch();*/void choice_6_display_high_price()/* 根据价格范围列出图书
60、信息float price;FILE *p;int n;int count=0;BOOKINFO bookinfoM;int booknumber;system(cls);printf( 请输入价格 :);scanf(%f,&price);p=fopen(e:bookinfo.txt,rb);booknumber=0;while(!feof(p)fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p);booknumber+;booknumber-;fclose(p);if(booknumber=0)printf( 没有任何图书信息!nn);for(n=0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年甘肃省嘉峪关市事业单位引进高层次和急需紧缺人才111人笔试备考题库及答案解析
- 2026年甘肃武威古浪县泗水镇招聘大学生村文书笔试备考试题及答案解析
- 混凝土施工现场秩序维护方案
- 钢结构焊接质量检验方案
- 2026福建泉州惠安高级中学春季自聘教师招聘1人(四)笔试备考试题及答案解析
- 2026中武(福建)跨境电子商务有限责任公司招聘1人笔试备考试题及答案解析
- 2026浙江事业单位统考嘉兴市招聘107人笔试备考试题及答案解析
- 2026年福建龙岩市市属中学招聘新任教师40人笔试备考试题及答案解析
- 加油站地下水位监测及管理方案
- 《东北三省》地理授课课件
- 2024年常州信息职业技术学院单招职业适应性测试题库及答案一套
- 康复医学人体运动学
- 电梯维保服务投标方案
- 学生心理问题转介处置制度
- 贵州源鑫矿业有限公司煤矸石洗选综合利用项目环评报告
- 八年级下册音乐复习题及答案(湘艺版)
- 高中地理(湘教版2019版)必修二 全册知识点
- 1993年物理高考试卷与答案
- GB/T 19326-2012锻制承插焊、螺纹和对焊支管座
- 福彩3D历史开奖数据2002-2016(174)全部数据
- 门诊用药咨询与指导PPT课件
评论
0/150
提交评论