欢迎来到天天文库
浏览记录
ID:40184330
大小:1.03 MB
页数:158页
时间:2019-07-24
《大学计算机程序设计基础(c语言4)ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、程序设计基础(国家级精品课)张长海程序设计基础(国家级精品课)第十章外部数据组织—文件第十一章程序开发第十二章动态数据组织第十章外部数据组织—文件重新考虑图书卡管理问题-文件文件概述打开、关闭文件程序参数字符读写字符串读写格式化读写数据块读写文件定位本章小结作业:11.111.6习题集:P113—17练习:11.211.311.411.511.7--11.14§10.1重新考虑图书卡管理问题回顾例8.1,图书管理程序当时把图书卡片保存在数组中,仅保存100张卡片,而且每次执行程序都要重新输入所有卡片,这显然不合理。应该把所有图书卡片保存在磁盘上,
2、每次运行程序时不必都重新输入!应该可以管理大量的卡片,不能限制数量!因为任何图书馆,其藏书数量都是极大的。使用文件可以解决这个问题。【例11.1】使用文件保存图书检索卡数据,重新编写例8.1程序的函数。解:设全部卡片存放在文件card.dat中。检索函数对欲检索的书号采用顺序检索方式检索;检索到后输出;最后输出提示信息“searchend!”。程序如下。voidout_answer(structbookcard*);//输出检索结果函数,略voidsearchbook(structbookno);//检索函数原型voidinputbookno(s
3、tructbookno*);//输入书号//书号结构体、日期结构体、检索卡结构体同例8.1#include"stdio.h"enumclass_language{Chinese,English,Japanese,Spaish,Russian};//语种枚举类型structdate{//日期结构体类型intyear,month,day;};structbookno{//书号结构体类型charcatalogue;intorder;};structbookcard{//检索卡结构体类型charname[32],author[16];enumclass_
4、languagelanguge;structdatepublishingdate;structbooknono;charabstract[256];}card;FILE*cardpointer;/*文件指针*//*主程序*/voidmain(){structbooknono1;cardpointer=fopen("card.dat","r");//打开了文件card.dat//输入部分:不用输入,数据在文件中printf("startsearch:");//检索部分inputbookno(&no1);//输入欲检索的第一个书号while(no
5、1.catalogue!='#'){searchbook(no1);inputbookno(&no1);//输入欲检索的下一个书号}fclose(cardpointer);//关闭文件}//主程序结束/*检索函数*/voidsearchbook(structcardnono2){structbookcardcard;rewind(cardpointer);while(!feof(cardpointer)){fread(&card,sizeof(structbookcard),1,cardpointer);if((card.no.catalogue
6、==no2.catalogue)&&(card.no.order==no2.order))out_anser(&card);}printf(“searchend!”);}//输入一个书号函数voidinputbookno(structbookno*no){printf("startsearch:pleaseinputbookno.catalogue:");scanf("%c",&(no->catalogue));while(no->catalogue<='')scanf("%c",&(no->catalogue));printf("
7、npleaseinputbookno.order:");scanf("%d",&(no->order));}/*输出检索结果函数*/voidout_answer(structbookcard*card0){printf("NAME:%s",card0->name);printf("AUTHOR:%s",card0->author);printf("LANGUGE:");switch(card0->languge){caseChinese:printf("Chinese");break;caseJapanese:printf("Japa
8、nese");break;caseEnglish:printf("English");break;caseSpaish:prin
此文档下载收益归作者所有