C语言图书管理系统实验报告.docx

上传人:李司机 文档编号:6173574 上传时间:2023-10-02 格式:DOCX 页数:26 大小:164.93KB
返回 下载 相关 举报
C语言图书管理系统实验报告.docx_第1页
第1页 / 共26页
C语言图书管理系统实验报告.docx_第2页
第2页 / 共26页
C语言图书管理系统实验报告.docx_第3页
第3页 / 共26页
C语言图书管理系统实验报告.docx_第4页
第4页 / 共26页
C语言图书管理系统实验报告.docx_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《C语言图书管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《C语言图书管理系统实验报告.docx(26页珍藏版)》请在三一办公上搜索。

1、课程报告课程名称:专业班级:学生姓名:学号:任课教师:程序设计实践信息类HlO期:20221-2022学年第二学期题目图书信息管理系统主要内容开辟一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。使之能提供以下基本功能:(1)图书信息录入功能(图书信息用文件保存)一一输入(2)图书信息浏览功能一一输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):按书名查询按作者名查询按照价钱排序按出版时间排序等等(4)图书信息的删除与修改扩展功能:可以按照自己的程度进行扩展。比如(1)简单

2、的权限处理(2)报表打印功能(3)甚至根据自己情况,可以加之学生信息,并扩充为图书借阅系统。(4)含糊查询(5)综合查询(6)统计功能比如统计处某一类别的图书信息或者筛任务要求必山JJ匕牛里J牛1十口U因IJl一、提交材料应包括:(二、整个设计过程具体要:(1)需求分析要求学目各个模块的调用关系;(2)设计过程要求学生进(函数名、参数、返回值等)(3)实现过程要求学生?完成系统整体测试;(4)总结阶段按照要求3口心寸寸,心,JKAIKWHJ11J刁NA4L7J八171A八日匕。1)系统源代码(2)课程报告匚对案例系统进行分析,设计出需要完成的功能,完善一步明确各模块调用关系,进一步完善模块函数

3、细节,成良好的编码习惯、完成各个模块并进行测试,最终己成系统设计和实现报告,并进行总结、答辩。成绩评定总分报告内容规范程度程序测试东新元址11基本功能扩展功能音辩情仇自述情况4U廿)答辩情况20分b分b分20分10分IU分30分成绩评定教师:1需求分析这是一个能简单管理图书的小型图书管理系统,其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。通过这些信息使之提供以下功能:(1)图书信息创建功能。其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。(图书信息用文件保存)。(2)图书信息查看功能。用来查看各项图书信息。(3)图书信息查找功能。通过已知信

4、息来查找想要的图书。(4)图书信息的删除。可以删除特定图书。(5)图书信息的修改。可以修改图书的各项信息。(6)图书信息的排序功能。按图书信息对录入的图书进行排序。(7)菜单选择功能,此功能也是图书信息信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能2概要设计数据结构图书管理系统中主要的数据结构包含书名、图书书号、作者名、分类、出版社、出版时间、价格等;在处理过程中各项可以作为一本图书的不同属性来进行处理。自定义枚举类型fi-type,用来表示图书信息typedefenum_fi_type(news=l,图书信息fi_type;图书信息结构体st

5、ructfi_infocharname11;书名charwriter21;作者charshuhao10;书号charfenlei10;分类charchuban20;出版社intchubantime;出版时间floatprice;价格fi_typetype;structfiinfo*next;结构体的指针域,用于存放链表的下个结点的地址);模块划分本系统主要有创建新的图书、查找图书、删除图书、修改图书、查看图书和图书排序几个基本功能。2structfi_info*head=NULL,*head_=NULL;将图书信息写成链表,头指针分别为空intBookjum;图书信息的统计数voidmenuO

6、;intReadinfoFromFileO;读入数据函数申明intChUangjian();/创建新的图书信息voidchazhao();查找图书voidshanchu();删除图书voidxiugai();修改图书voidshow();查看图书voidpaixu();图书排序voidquit();退出(3)程序结构3详细设计1主菜单函数的原型:voidmenu()函数的功能:调用菜单,使用各项功能程序:voidmenu()Printf(“nn*Printf(printf(zztttn);主菜息1;创建图书信n);printf(,ztttnzz);printf(tttn);printf(,zt

7、ttn);printf(,ztttnzz);printf(,ztttn);n);printf(,tttprintf(r);)2.新建文件函数的原型:intReadinfoFromFi1e()函数的功能:建立文件储存数据程序intReadinfoFromFile()读入数据(FILE*fp=NULL;文件指针structfi_info*p=NULL;结构体指针inti;if(fp=fopenC,sun.txtz,zzr+z,)-NULL)(printf(文件不存在!n);fp=fopen(zzsun.txt,w);为输出打开一个文件printf(文件建立成功!n);fscanf(fp,zz%dz

8、z,&Book_num);从文件中分别读入图书信息统计数,以便于下面for循环的条件控制for(i=0;iname);fscanf(fp,%s”,p-writer);fscanf(fp,z%s,z,p-shuhao);fscanf(fp,zz%szz,&p-fenlei);fscanf(fp,%s,p-chuban);fscanf(fp,%c1zz,-chubantime);fscanf(fp,%.2f”,fcp-price);fscanf(fp,zz%dzz,p-type);if(p-type=l)if(head=NULL)head=p;p-next=NULL;)elsep-next=hea

9、d;head-p;)elseif(head_=NULL)head_-p;p-next=NULL;elsep-next=head_;head_=P;)fclose(fp);return0;J3 .创建图书信息函数的原型:intChuangjianO函数的功能:记录图书的各项信息程序:intChuangjian0创建图书信息structfi_info*p=NULL;p-(structfi_info*)malIoc(sizeof(structfi-info);printf(请输入书名:”);scanf(zz%szz,p-name);printf(请输入作者名:);scanf(z,%szz,p-wri

10、ter);Printf(请输入书号:);scanf(z,%szz,p-shuhao);Printf(请输入分类:);scanfp-fenlei);Printf(请输入出版社:);scanfp-chuban);Printf(请输入出版时间:);scanf(z,%dzz,&p-chubantime);Printf(请输入价格:);scanf(z,%fzz,p-price);p-type=news;Book_num+=1;p-next=head;head=p;return0;4 .查找图书信息函数的原型:voidchazhao()函数的功能:通过书名查找、作者查找、组合查找三种方式查找图书信息。程序

11、:voidchazhao()查找图书信息structfi_info*p=NULL;charname10,writer21;intprice;intb=l,i;Printf(按书名查找请按l.n按作者名查找请按2.n按组合查询请按3.n);scanf(zz%dz,&i);if(i=l)Printf(请输入要查找的书名:);scanf(zz%szz,name);for(p=head;p!=NULL;p=p-next)一个链表指针P的遍历,直到结尾P=NULL(if(strcmp(name,p-name)=0)字符串的比较函数,若先后相等则等于0b=0;若存在,则b=0Printf(找到要查找的图书

12、信息:n);Printf(图书名称 Printf (图书作者 Printf(图书书号 Printf(图书分类Printf (出版社 Printf (出版时间 Printf (图书价格%snz,p-name);%sn,p-writer);%sn”,p-shuhao);%snzz,p-fenlei);%snyz,p-chuban);%dn7z,p-chubantime)%.2fnzz,p-price);if(head-NULL)Printf(“n);if(b)Printf(n);若b=l,则不存在)elseif(i=2)(printf(请输入要查找的作者名:);scanf(%s”,writer);

13、for(p=head;p!=NULL;p=p-next)一个链表指针P的遍历,直到结尾P=NULLif(strcmp(writer,p-writer)-0)字符串的比较函数,若先后相等则等于0b=0;若存在,则b=0Printf(找到要查找的图书信息、:n);Printf(图书名称Printf(图书作者Printf(图书书号Printf (图书分类Printf (出版社 Printf (出版时间Printf (图书价格%sn, p-name);%sn,p-writer);%sn”, p-shuhao);%snz, p-fenlei);%snyz, p-chuban);%dn7z, p-chub

14、antime) %. 2fnz, p-price);if(head=NULL)Printf(“n);if(b)Printf(n);若b=l,则不存在)elseif(i=3)(Printf(请输入要查找的书名价格n:);scanf(sname,&price);for(p=head;p!=NULL;p=p-next)一个链表指针p的遍历,直到结尾P=NULL(if(strcmp(name,p-name)-0&price-p-price)字符串的比较函数,若先后相等则等于0b=0;若存在,则b=0Printf(找到要查找的图书信息:n);Printf(图书名称%sn,/,p-name);Printf

15、(图书作者%snzp-writer);Printf(图书书号%snzz,p-shuhao);Printf(图书分类%sn,z,p-fenlei);Printf(出版社%snz,p-chuban);Printf(出版时间%dnz,p-chubantime);Printf(图书价格%.2fn”,p-price);)if(head=NULL)Printf(查无此书n);if(b)Printf(查找的图书信息不存在!n);若b=l,则不存在elseprintf(“n);system(z,PAUSE,);暂停)5 .删除图书信息函数的原型:voidshanchu()函数的功能:通过书名确定图书,进而删除

16、该书程序:voidshanchu()删除图书信息(structfi_info*p=NULL;定义两个结构体指针structfi_info*q=NULL;charname10;intb=l;inta;Printf(请输入要删除的书名:n);scanf(zz%szz,name);for(p=head,q=head;p!=NULL;p=p-next)(if(strcmp(name,p-name)=0)b=0;Printf(确定删除?0(是)or1(否)n);scanf(%d,&a);if(a=0)(if(p=head)head=head-next;elseq-next=p-next;Printf(删

17、除成功!n);elseq=p;if(b)printf(next)if(strcmp(p-name,name)=-0)b=0;Printf(图书名称 Printf(图书作者 Printf(图书书号 Printf(图书分类Printf (出版社 Printf (出版时间Printf(图书价格%snz,p-name);%snz,p-writer);%s11z,p-shuhao);%snz,p-fenlei);%snzz,p-chuban);ln”,p-chubantime)%.2fnzz,p-price);Printf(n);scanf(%c,&a);if(a=0)printf(*请重新输入信息*)

18、;Printf(请输入书名:);scanfp-name);Printf(请输入作者名:);SCanfp-writer);Printf(请输入书号:);scanf(z,%szz,p-shuhao);printf(请输入分类:);SCanf&p-fenlei);printf(请输入出版社:);scanf(s”,&p-chuban);Printf(请输入出版时间:);scanf(d,&p-chubantime);Printf(请输入价格:);scanf&p-price);p-type-news;printf(z,nnnn);)if(b=l)Printf(“n);SySteln(PAUSE);7 .显

19、示图书信息函数的原型:voidshow()函数的功能:显示已存图书的各项信息程序:voidshow()显示图书信息(structfi_info*p=NULL;system(zzclszz);for(p=head;p!=NULL;p=p-next)%sn”, p-name);%snz, p-writer);%snzz, p-shuhao);%snz, p-fenlei);%snzz, p-chuban);%dnzz, p-chubantime);%. 2fn, p-price);Printf(图书名称Printf(图书作者printf(图书书号Printf(图书分类Printf(出版社Print

20、f(出版时间Printf(图书价格system(z,PUSEzz);8 .图书排序函数的原型:voidpaixuO函数的功能:按出版时间的不同将记录的图书排序程序:voidpaixu()按出版时间排序structfi_info*a1000,*p,*pl,*temp;inti,k,index,n=0;charb;pl=head;for(p-head;p;p-p-next)n+;for(i=0;inext;)for(k=Ojkn-l;k+)index=k;for(i=k+l;ichubantimeai-chubantime)index=i;temp=aindex;aindex=ak;ak=temp

21、;)for(i=0;iname);Printf(图书作者%snz,ai-writer);Printf(图书书号%sn/z,ai-shuhao);printf(图书分类%sn,z,ai-fenlei);Printf(出版社%snz,ai-chuban);Printf(”出版时间%dnzz,ai-chubantime);Printf(图书价格%.2fnzz,ai-price);system(,PAUSE,z);4调试分析此次编写的图书管理系统,相对于以前学到的程序,它要大得多,也要复杂的多。涉及到多个模块的调用,每一个模块都给我带来一些困惑。其中感觉图书查找和排序这两个最为麻烦。查找模块涉及到指针

22、和链表问题后来在同学的匡助下得以解决,我就摹仿按书名查找的方法此外设计出了两种查找方法。排序中的for循环刚开始不是太熟练,出了不少错误。程序设计好后,数据的输出格式不太规范,而且各模块也浮现了一些小问题,经过修改最后运行的结果基本上达到了预期的目的。由于准备的有点仓促,没能把一些细节优化好,而且没能加入一些其他功能,比如图书借阅模块,那样程序将会比较完美。5测试结果测试的部份数据书名作者书号分类出版社出版时间价格大学物理罗益民al教科类北京邮电大学出版社2022030358时间简史霍金b2科普类湖南科学技术出版社2022040445仰望饶雪漫c3文学类海南出版社2022090915登录号任意

23、输入下面为测试的部份结果截图lDebugffi书告差统exw图书信息管理系统*主菜单一创建图书信息查找图书信息删除图书信息修改图书信息显示图书信息按出版时间排序退出0请选择要进行的操作。一6:HDebugS毛首理至於exb0E0口理民邮11钊物益类京时瞥千罗科北而大:al教.间5841Sij;:-4T-B!书&和入入入入入入4;修改图书信息:按出版时间排序口眠2望按3.钳按请按击至请弱斗t一?-名堂M名者合请输入要蟹的书名,时间简史5,显示图书信息)技出版时间排序请选择费进行的操作0_6):2搜干与查找谛按1报作者名查正清按2.技组CJ.J1Ty3.史简即IJ-:B息青简的阖金类科40音声f续

24、2科湖20-45继人三建弘要否称者OlP类间:宗余书八盒时也雪frw按6;按出版时间排序6:技出版时间排序0假漂hj113尊请按相三?清三li雷塞合二二二*KrrI?名息s作书物民电03类邮03:益科京115S大罗Al教北20杳我.0续58继修要查称者号类间畲隶书&时如雪按HDebug三毛卷rd翳查询学名查m合息社但瓶09书漫共出M9助图詈HKe续的,C3文海2015继三找锣斗杳称者J间:要京书八时如到F技Ms找图图图图出出图请1)C0简类科4她?间金京100”瞿b2科函20三者号类间格艇面奉书八在时价独用书率书7u到图因出出入史出n.0城间会类民201Mx重联H2科.间4S请名;社时:-Hi

25、iI聿I入木A入18三s土主Z-+pt11全口十IL三i:信息修改成功,)青按任意键继续.HDebug三书SM栋e占3W6,按出版时间排序操史苴间金1.ZJ电03Z:由0Ie土人10进EWb2科人2B-4S大罗al教北2058修半短名者号类间号类间:5gz-八整时时悔F投:11到到到到出土到到到到到出上追青二7k=lALLL_J【U1【二一二IIl=LlLLLL,二、fk社版04理类出咏M隅普民l.M学益H:Debug3B毛苔理施exwPressanykeytocontinuel感谢使用图书信息管理系统*欢迎下次使用,再见,一*6课程心得总结通过这次亲自动手编写c语言图书管理系统,从中收获了不少。不少学过的知识得以巩固,对链表、数组指针、结构体等知识有了更深一步的了解。编写的过程中我也借鉴别人设计的一些程序,从中发现了自己的一些不足,在构建框架和编写源程序上面的一些问题。在源程序编写好后,对源程序的检测花费了我不少时间,这也算是锻炼了我的耐心。在检测中发现的一些细节上的毛病和粗心这个坏习惯都需要我加以改正。同时同学对我的匡助也比较大,有些问题很感谢他们对我的匡助。亲自编写了这个大型程序后,我领悟了“实践出真知”这个道理,体味到了C语言的巨大用处,对C语言有了更浓厚的兴趣。在今后我也会更加深入的学习C语言,打好稳固的基础,努力掌握这门技术,能够编写出更多更好的程序。

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号