
爱问共享资料拥有大量关于C语言图书管理系统实验报告书.doc的实用类文档资料c语言图书管理系统实验报告,所有文档由资深合作机构或者作者提供c语言图书管理系统实验报告,线上总资料达到两个亿,保证满足您的需求。

高级语言(C语言)课程设计说明书起止日期:年月日至年月日题目图书管理系统学员姓名班级学号成绩通信与信息工程学院说明书撰写讲稿课程设计规定具体要求如下:在程序中必须推动图书信息录入浏览查询删除和设置等用途的操作程序主菜单如下:"**************MENU*************",*菜单的标题行*图书信息录入*输入数据*显示图书信息*显示所有记录*图书信息查询*要求采取书名、作者名进行查询*图书信息的更改*实现图书信息的更改和删除*退出程序的用途设计这部分主要对程序进行平台设计给出总体的设计框图。程序的数据结构这部分主要写本设计所使用的数据结构比如结构体的定义单向链表或者数据输入输出方式(如运用文件的方法调用或储存数据)自定义枚举类型fitype用来表示图书信息typedefenumfitype{news=,图书信息}fitype图书信息结构体structfiinfo{charname书名charwriter作者charshuhao书号charfenlei分类charchuban出版社intchubantime出版时间floatprice价格fitypetypestructfiinfo*next结构体的指针域用于储存键值的下个节点的地址}程序的变量设计方程的功能表述structfiinfo*head=,*head=将图书信息写成链表头指针分别为空intBooknum图书信息的统计数voidmenu()intReadinfoFromFile()读入数据变量申明intchuangjian()创建新的图书信息voidchazhao()查找图书voidshanchu()删除图书voidxiugai()修改图书voidshow()查看图书voidpaixu()图书排序voidquit()退出函数的调用关系调用关系为主函数调用各功能函数。

源程序代码#include<stdioh>#include<stdlibh>#include<stringh>#include<conioh>自定义枚举类型fitype用来表示图书信息typedefenumfitype{news=,图书信息}fitype图书信息结构体structfiinfo{charname书名charwriter作者charshuhao书号charfenlei分类charchuban出版社intchubantime出版时间floatprice价格fitypetypestructfiinfo*next结构体的指针域用于储存键值的下个节点的地址}structfiinfo*head=,*head=将图书信息写成链表头指针分别为空intBooknum图书信息的统计数intReadinfoFromFile()读入数据变量申明intchuangjian()创建新的图书信息voidchazhao()查找图书voidshanchu()删除图书voidxiugai()修改图书voidshow()查看图书voidpaixu()图书排序voidXG()voidmain(){inticharch=''ReadinfoFromFile()system("cls")system("cls")while(ch!=''){printf("nnnnn")printf("tt图书管理系统nnn")printf("tt**************MENU*************n")*菜单的标题行*printf("tt图书信息录入n")*输入数据*printf("tt显示图书信息n")*显示所有记录*printf("tt图书信息的查询n")*要求采取书名、作者名进行查询*printf("tt图书信息的设置n")*实现图书信息的更改和删除*printf("tt系统初始化n")printf("tt退出n")printf("nn")printf("t请输入你的选择:")scanf("c",ch)switch(ch){case'':chuangjian()breakcase'':paixu()show()breakcase'':chazhao()breakcase'':XG()breakdefault:break}system("cls")}system("cls")printf("nnnnnnnnntttt谢谢使用!")getch()}intReadinfoFromFile()读入数据{FILE*fp=文件指针structfiinfo*p=结构体指针intiif((fp=fopen("suntxt","r"))==){printf("文件不存在!n")fp=fopen("suntxt","w")为输出打开一个文件printf("文件建立成功!n")}fscanf(fp,"d",Booknum)从文件中分别调用图书信息统计数以便于以下for循环的条件控制for(i=i<Booknumi){p=(structfiinfo*)malloc(sizeof(structfiinfo))P为动作指针申请内存空间fscanf(fp,"s",p>name)fscanf(fp,"s",p>writer)fscanf(fp,"s",p>shuhao)fscanf(fp,"s",p>fenlei)fscanf(fp,"s",p>chuban)fscanf(fp,"d",p>chubantime)fscanf(fp,"f",p>price)fscanf(fp,"d",p>type)if(p>type==){if(head==){head=pp>next=}else{p>next=headhead=p}}else{if(head==){head=pp>next=}else{p>next=headhead=p}}fclose(fp)return}fclose(fp)return}intchuangjian()创建图书信息{structfiinfo*p=p=(structfiinfo*)malloc(sizeof(structfiinfo))printf("请输入书名:")scanf("s",p>name)printf("请输入作者名:")scanf("s",p>writer)printf("请输入书号:")scanf("s",p>shuhao)printf("请输入分类:")scanf("s",p>fenlei)printf("请输入出版社:")scanf("s",p>chuban)printf("请输入出版时间:")scanf("d",p>chubantime)printf("请输入价格:")scanf("f",p>price)p>type=newsBooknum=p>next=headhead=preturn}voidchazhao()查找图书信息{structfiinfo*p=charname,writerintpriceintb=,iprintf("按书名查找请按n按作者名查找请按n按组合查询请按n")scanf("d",i)if(i==){printf("请输入要查找的书名:")scanf("s",name)for(p=headp!=p=p>next)一个链表指针p的递归直到结尾p=={if(strcmp(name,p>name)==)字符串的相当变量若前后相同则等于{b=若存在则b=printf("找到要查找的图书信息:n")printf("图书名称sn",p>name)printf("图书作者sn",p>writer)printf("图书书号sn",p>shuhao)printf("图书分类sn",p>fenlei)printf("出版社sn",p>chuban)printf("出版时间dn",p>chubantime)printf("图书价格fn",p>price)}}if(head==)printf("<查无此书>n")if(b)printf("<查找的图书信息不存在!>n")若b=则不存在}elseif(i==){printf("请输入要查找的作者名:")scanf("s",writer)for(p=headp!=p=p>next)一个链表指针p的递归直到结尾p=={if(strcmp(writer,p>writer)==)字符串的相当变量若前后相同则等于{b=若存在则b=printf("找到要查找的图书信息:n")printf("图书名称sn",p>name)printf("图书作者sn",p>writer)printf("图书书号sn",p>shuhao)printf("图书分类sn",p>fenlei)printf("出版社sn",p>chuban)printf("出版时间dn",p>chubantime)printf("图书价格fn",p>price)}}if(head==)printf("<查无此书>n")if(b)printf("<查找的图书信息不存在!>n")若b=则不存在}elseif(i==){printf("请输入要查找的书名价格n:")scanf("sd",name,price)for(p=headp!=p=p>next)一个链表指针p的递归直到结尾p=={if(strcmp(name,p>name)==price==p>price)字符串的相当变量若前后相同则等于{b=若存在则b=printf("找到要查找的图书信息:n")printf("图书名称sn",p>name)printf("图书作者sn",p>writer)printf("图书书号sn",p>shuhao)printf("图书分类sn",p>fenlei)printf("出版社sn",p>chuban)printf("出版时间dn",p>chubantime)printf("图书价格fn",p>price)}}if(head==)printf("查无此书n")if(b)printf("<查找的图书信息不存在!>n")若b=则不存在}elseprintf("<没有该项功能请再次选择:>n")system("PAUSE")暂停}voidshanchu()删除图书信息{structfiinfo*p=定义两个结构体指针structfiinfo*q=charnameintb=intaprintf("请输入要删除的书名:n")scanf("s",name)for(p=head,q=headp!=p=p>next){if(strcmp(name,p>name)==){b=printf("确定删除(是)or(否)n")scanf("d",a)if(a==){if(p==head)head=head>nextelseq>next=p>nextprintf("删除成功!n")}}elseq=p}if(b)printf("<提示:查无此书!n")system("PAUSE")}voidxiugai()修改图书信息{structfiinfo*p=inta,b=charnameprintf("请输入书名:nn")scanf("s",name)for(p=headp!=p=p>next){if(strcmp(p>name,name)==){b=printf("图书名称sn",p>name)printf("图书作者sn",p>writer)printf("图书书号sn",p>shuhao)printf("图书分类sn",p>fenlei)printf("出版社sn",p>chuban)printf("出版时间dn",p>chubantime)printf("图书价格fn",p>price)printf("<是否确认修改?(是)or(否)>n")scanf("d",a)if(a==){printf("**********请重新输入信息*********n")printf("请输入书名:")scanf("s",p>name)printf("请输入作者名:")scanf("s",p>writer)printf("请输入书号:")scanf("s",p>shuhao)printf("请输入分类:")scanf("s",p>fenlei)printf("请输入出版社:")scanf("s",p>chuban)printf("请输入出版时间:")scanf("d",p>chubantime)printf("请输入价格:")scanf("f",p>price)p>type=newsprintf("nn<提醒:信息修改成功!>nn")}}if(b==)printf("<没有您应修改的信息!>n")}system("PAUSE")}voidshow()显示图书信息{structfiinfo*p=system("cls")for(p=headp!=p=p>next){printf("图书名称sn",p>name)printf("图书作者sn",p>writer)printf("图书书号sn",p>shuhao)printf("图书分类sn",p>fenlei)printf("出版社sn",p>chuban)printf("出版时间dn",p>chubantime)printf("图书价格fn",p>price)system("PAUSE")}}voidpaixu()按出版时间排序{printf("***********************************按出版时间顺序如下***********************************")structfiinfo*a,*p,*p,*tempinti,k,index,n=charbp=headfor(p=headpp=p>next)nfor(i=i<ni){ai=pp=p>next}for(k=k<nk){index=kfor(i=ki<ni){if(aindex>chubantime>ai>chubantime)index=i}temp=aindexaindex=akak=temp}for(i=i<ni){printf("图书书名sn",ai>name)printf("图书作者sn",ai>writer)printf("图书书号sn",ai>shuhao)printf("图书分类sn",ai>fenlei)printf("出版社sn",ai>chuban)printf("出版时间dn",ai>chubantime)printf("图书价格fn",ai>price)}system("PAUSE")}voidXG(){inta=printf("图书信息查询n")printf("tt修改n")printf("tt删除n")printf("请输入菜单前的数字:")scanf("d",a)switch(a){case:xiugai()breakcase:shanchu()breakdefault:break}}调试及总结通过此次亲自动手编写C语言图书管理系统从中收获了这些。

很多学过的常识得以巩固对泛型、数组指针、结构体等知识有了最深一步的知道。编写的过程中我也借鉴对方设计的一些程序从中发现了自己的一些不足在建立框架跟编写源程序上面的一些问题。在源程序编写好后对源程序的测试花费了我这些时间这也算是锻炼了我的细心。在检查中看到的一些细节上的弊病和疏忽这个坏习惯都必须我加以改正。同时老师对我的帮助也非常大有些问题更感谢你们对我的帮助。亲自编写了这个大型程序后我体会了“实践出真知”这个道理体会到了C语言的很大作用对C语言有了最独特的兴趣。在未来我也会变得深入的学习C语言打好稳定的基础努力把握这门科技无法编写出更多更好的程序。主菜单开始输入创建图书查找书名查找作者查找组合查找删除图书设置图书显示图书退出
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-138594-1.html
不断的去努力去追求