收藏 分销(赏)

C语言图书标准管理系统实验报告.doc

上传人:快乐****生活 文档编号:2993181 上传时间:2024-06-12 格式:DOC 页数:25 大小:516.04KB
下载 相关 举报
C语言图书标准管理系统实验报告.doc_第1页
第1页 / 共25页
C语言图书标准管理系统实验报告.doc_第2页
第2页 / 共25页
C语言图书标准管理系统实验报告.doc_第3页
第3页 / 共25页
C语言图书标准管理系统实验报告.doc_第4页
第4页 / 共25页
C语言图书标准管理系统实验报告.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、课 程 报 告课 程 名 称: 程序设计实践 专 业 班 级 : 信息类1110 学 生 姓 名 : 学 号 : 任 课 教 师 : 学 期 :1-第二学期 课程汇报任务书题 目图书信息管理系统关键内容开发一个图书信息管理系统,图书信息包含:图书编号、书名、作者、出版社、类别、出版时间、价格等基础信息(也能够依据自己情况进行扩充,比如是否借出、库存量等)。使之能提供以下基础功效:(1)图书信息录入功效(图书信息用文件保留)输入v(2)图书信息浏览功效输出(3)查询功效(最少一个查询方法)、排序功效(最少一个排序方法): l 按书名查询 按作者名查询 根据价钱排序 按出版时间排序等等(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分成绩评定老师: 1 需求分析这是一个能简单管理图书小型图书管理系统,其中图书信息包含:书名,作者名,书编号,分类,出版单位,出版时间,价格等。经过这些信息使之提供以下功效: (1)图书信息创建功效。其中图书信息包含:书名,作者名,书编号,分类,出版单位,出版时间,价格等。(图书信息用文件保留)。(2)图书信

4、息查看功效。用来查看各项图书信息。(3)图书信息查找功效。经过已知信息来查找想要图书。(4)图书信息删除。能够删除特定图书。(5)图书信息修改。能够修改图书各项信息。(6)图书信息排序功效。按图书信息对录入图书进行排序。(7)菜单选择功效,此功效也是图书信息信息管理系统入口,用户所要进行多种操作均需在此模块中进行选择并进而调用其它模块实现对应功效2 概要设计 数据结构图书管理系统中关键数据结构包含书名、图书书号、作者名、分类、出版社、出版时间、价格等;在处理过程中各项能够作为一本图书不一样属性来进行处理。/自定义枚举类型fi_type,用来表示图书信息 typedef enum _fi_typ

5、e news=1, /图书信息 fi_type;/图书信息结构体 struct fi_info char name11; /书名 char writer21; /作者 char shuhao10; /书号 char fenlei10; /分类 char chuban20; /出版社 int chubantime; /出版时间 float price; /价格 fi_type type; struct fi_info* next; /结构体指针域,用于存放链表下个结点地址; 模块划分本系统关键有创建新图书、查找图书、删除图书、修改图书、查看图书和图书排序多个基础功效。 2struct fi_in

6、fo *head=NULL,*head_=NULL ; /将图书信息写成链表,头指针分别为空 int Book_num; /图书信息统计数 void menu();int ReadinfoFromFile(); /读入数据 /函数申明 int chuangjian(); /创建新图书信息void chazhao(); /查找图书void shanchu(); /删除图书void xiugai(); /修改图书void show(); /查看图书void paixu() ; /图书排序void quit(); /退出书名查找作者查找组合查找(3)程序结构主菜单 开始输入创建图书查找书名查找作者查

7、找组合查找删除图书修改图书显示图书 退出3 具体设计1.主菜单函数原型:void menu()函数功效:调用菜单,使用各项功效程序:void menu() printf(nn*n); printf(-主菜单- n); printf(ttt n);printf(ttt n);printf(ttt n);printf(ttt n);printf(ttt n);printf(ttt n);printf(ttt n);printf(- n);2.新建文件函数原型:int ReadinfoFromFile()函数功效:建立文件储存数据程序int ReadinfoFromFile() /读入数据 FILE

8、 *fp=NULL; /文件指针 struct fi_info *p=NULL; /结构体指针 int i; if(fp=fopen(sun.txt,r+)=NULL) printf(文件不存在!n); fp=fopen(sun.txt,w); /为输出打开一个文件 printf(文件建立成功!n); fscanf(fp,%d,&Book_num); /从文件中分别读入图书信息统计数,方便于下面for循环条件控制for(i=0;iname);fscanf(fp,%s,p-writer); fscanf(fp,%s,p-shuhao);fscanf(fp,%s,&p-fenlei);fscanf

9、(fp,%s,p-chuban);fscanf(fp,%d,&p-chubantime); fscanf(fp,%.2f,&p-price);fscanf(fp,%d,&p-type);if(p-type=1) if(head=NULL) head=p; p-next=NULL; else p-next=head; head=p; else if(head_=NULL) head_=p; p-next=NULL; else p-next=head_; head_=p; fclose(fp);return 0;3.创建图书信息函数原型:int chuangjian()函数功效:统计图书各项信息程

10、序:int chuangjian() /创建图书信息 struct fi_info *p=NULL; p=(struct fi_info*)malloc(sizeof(struct fi_info); 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

11、(%d,&p-chubantime);printf(请输入价格:); scanf(%f,&p-price); p-type=news; Book_num+=1; p-next=head; head=p;return 0;4.查找图书信息函数原型:void chazhao()函数功效:经过书名查找、作者查找、组合查找三种方法查找图书信息。程序:void chazhao() /查找图书信息 struct fi_info *p=NULL; char name10,writer21; int price; int b=1,i; printf(按书名查找请按1.n按作者名查找请按2.n按组合查询请按3.

12、n); scanf(%d,&i); if(i=1) printf(请输入要查找书名:); scanf(%s,name); for(p=head;p!=NULL;p=p-next) /一个链表指针p遍历,直到结尾p=NULL if(strcmp(name,p-name)=0) /字符串比较函数,若前后相等则等于0 b=0; /若存在,则b=0 printf(找到要查找图书信息:n);printf(图书名称 %sn,p-name);printf(图书作者 %sn,p-writer); printf(图书书号 %sn,p-shuhao);printf(图书分类 %sn,p-fenlei);print

13、f(出版社 %sn,p-chuban);printf(出版时间 %dn,p-chubantime);printf(图书价格 %.2fn,p-price); if(head=NULL) printf(n); if(b) printf(n); /若b=1,则不存在 else if(i=2) printf(请输入要查找作者名:); scanf(%s,writer); for(p=head;p!=NULL;p=p-next) /一个链表指针p遍历,直到结尾p=NULL if(strcmp(writer,p-writer)=0) /字符串比较函数,若前后相等则等于0 b=0; /若存在,则b=0 pri

14、ntf(找到要查找图书信息: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(图书价格 %.2fn,p-price); if(head=NULL) printf(n); if(b) printf(n); /若b=1,则不存在 else if(i=3) printf(请输入要查找 书名 价格n:); scanf(

15、%s %d,name,&price); for(p=head;p!=NULL;p=p-next) /一个链表指针p遍历,直到结尾p=NULL if(strcmp(name,p-name)=0&price=p-price) /字符串比较函数,若前后相等则等于0 b=0; /若存在,则b=0 printf(找到要查找图书信息:n);printf(图书名称 %sn,p-name);printf(图书作者 %sn,p-writer); printf(图书书号 %sn,p-shuhao);printf(图书分类 %sn,p-fenlei);printf(出版社 %sn,p-chuban);printf(

16、出版时间 %dn,p-chubantime);printf(图书价格 %.2fn,p-price); if(head=NULL) printf(查无此书n); if(b) printf(n); /若b=1,则不存在 else printf(n); system(PAUSE); /暂停 5.删除图书信息函数原型:void shanchu()函数功效:经过书名确定图书,进而删除该书程序:void shanchu() /删除图书信息 struct fi_info *p=NULL; /定义两个结构体指针 struct fi_info *q=NULL; char name10; int b=1; int

17、 a; printf(请输入要删除书名:n); scanf(%s,name); for(p=head,q=head;p!=NULL;p=p-next) if(strcmp(name,p-name)=0) b=0; printf(确定删除? 0(是) or 1(否)n); scanf(%d,&a); if(a=0) if(p=head) head=head-next; else q-next=p-next; printf(删除成功!n); else q=p; if(b) printf(next) if(strcmp(p-name,name)=0) b=0; printf(图书名称 %sn,p-n

18、ame); printf(图书作者 %sn,p-writer); printf(图书书号 %sn,p-shuhao); printf(图书分类 %sn,p-fenlei); printf(出版社 %sn,p-chuban); printf(出版时间 %dn,p-chubantime); printf(图书价格 %.2fn,p-price); printf(n); scanf(%d,&a); if(a=0) printf(*请重新输入信息*n); printf(请输入书名:); scanf(%s,p-name);printf(请输入作者名:); scanf(%s,p-writer);printf

19、(请输入书号:); 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=news; printf(nn nn); if(b=1) printf(n); system(PAUSE);7.显示图书信息 函数原型:void show()函数功效:显示已存图书各项信息程序:void show() /显

20、示图书信息 struct fi_info *p=NULL;system(cls); for(p=head;p!=NULL;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(图书价格 %.2fn,p-price); system(PAUSE);8.图书排序函数原型:void paixu()函数功效:按

21、出版时间不一样将统计图书排序程序:void paixu() /按出版时间排序struct fi_info *a1000,*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p-next)n+;for(i=0;inext;for(k=0;kn-1;k+)index=k;for(i=k+1;ichubantimeai-chubantime)index=i; temp=aindex;aindex=ak;ak=temp;for(i=0;iname); printf(图书作者 %sn,ai-writer); printf(图书书号 %

22、sn,ai-shuhao);printf(图书分类 %sn,ai-fenlei);printf(出版社 %sn,ai-chuban);printf(出版时间 %dn,ai-chubantime);printf(图书价格 %.2fn,ai-price); system(PAUSE);4 调试分析此次编写图书管理系统,相对于以前学到程序,它要大得多,也要复杂多。包含到多个模块调用,每个模块全部给我带来部分迷惑。其中感觉图书查找和排序这两个最为麻烦。查找模块包含到指针和链表问题以后在同学帮助下得以处理,我就模拟按书名查找方法另外设计出了两种查找方法。排序中for循环刚开始不是太熟练,出了很多错误。程

23、序设计好后,数据输出格式不太规范,而且各模块也出现了部分小问题,经过修改最终运行结果基础上达成了预期目标。因为准备有点仓促,没能把部分细节优化好,而且没能加入部分其它功效,比图书借阅模块,那样程序将会比较完美。5测试结果测试部分数据 书名作者书号分类出版社出版时间价格大学物理罗益民a1教科类北京邮电大学出版社030358时间简史霍金b2科普类湖南科学技术出版社040445仰视饶雪漫c3文学类海南出版社090915登录号任意输入下面为测试部分结果截图 。6 课程心得总结 经过这次亲自动手编写C语言图书管理系统,从中收获了很多。很多学过知识得以巩固,对链表、数组指针、结构体等知识有了更深一步了解。编写过程中我也借鉴她人设计部分程序,从中发觉了自己部分不足,在构建框架和编写源程序上面部分问题。在源程序编写好后,对源程序检测花费了我很多时间,这也算是锻炼了我耐心。在检测中发觉部分细节上毛病和粗心这个坏习惯全部需要我加以更正。同时同学对我帮助也比较大,有些问题很感谢她们对我帮助。亲自编写了这个大型程序后,我领悟了“实践出真知”这个道理,体会到了C语言巨大用处,对C语言有了更浓厚爱好。在以后我也会愈加深入学习C语言,打好稳固基础,努力掌握这门技术,能够编写出更多愈加好程序。

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服