C语言图书管理系统实验报告完整版.docx
- 文档编号:4109846
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:14
- 大小:408.69KB
C语言图书管理系统实验报告完整版.docx
《C语言图书管理系统实验报告完整版.docx》由会员分享,可在线阅读,更多相关《C语言图书管理系统实验报告完整版.docx(14页珍藏版)》请在冰豆网上搜索。
C语言图书管理系统实验报告完整版
HENsystemofficeroom【HEN16H-HENS2AHENS8Q8-HENH1688】
C语言图书管理系统实验报告
课程报告
课程名称:
程序设计实践
专业班级:
信息类1110
学生姓名:
学号:
任课教师:
学期:
20101-2012学年第二学期
课程报告任务书
题目
图书信息管理系统
主要
内容
开发一个图书信息管理系统,图书信息包括:
图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。
使之能提供以下基本功能:
(1)图书信息录入功能(图书信息用文件保存)--输入
(2)图书信息浏览功能--输出
(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):
①按书名查询②按作者名查询③按照价钱排序④按出版时间排序等等
(4)图书信息的删除与修改
扩展功能:
可以按照自己的程度进行扩展。
比如
(1)简单的权限处理
(2)报表打印功能(3)甚至根据自己情况,可以加上学生信息,并扩充为图书借阅系统。
(4)模糊查询(5)综合查询(6)统计功能比如统计处某一类别的图书信息或筛选出小于指定数量库存的图书信息等等,总之,可以根据自己需求进行分析功能。
任务
要求
一、提交材料应包括:
(1)系统源代码
(2)课程报告
二、整个设计过程具体要求
(1)需求分析要求学生对案例系统进行分析,设计出需要完成的功能,完善各个模块的调用关系;
(2)设计过程要求学生进一步明确各模块调用关系,进一步完善模块函数细节(函数名、参数、返回值等)
(3)实现过程要求学生养成良好的编码习惯、完成各个模块并进行测试,最终完成系统整体测试;
(4)总结阶段按照要求完成系统设计和实现报告,并进行总结、答辩。
成绩
评定
报告撰写情况(30分)
系统完成情况(30分)
答辩情况(40分)
总分
内容
20分
规范程度
5分
程序测试
5分
基本功能20分
扩展功能10分
自述情况10分
答辩情况
30分
成绩评定教师:
1需求分析
这是一个能简单管理图书的小型图书管理系统,其中图书信息包括:
书名,作者名,书编号,分类,出版单位,出版时间,价格等。
通过这些信息使之提供以下功能:
(1)图书信息创建功能。
其中图书信息包括:
书名,作者名,书编号,分类,出版单位,出版时间,价格等。
(图书信息用文件保存)。
(2)图书信息查看功能。
用来查看各项图书信息。
(3)图书信息查找功能。
通过已知信息来查找想要的图书。
(4)图书信息的删除。
可以删除特定图书。
(5)图书信息的修改。
可以修改图书的各项信息。
(6)图书信息的排序功能。
按图书信息对录入的图书进行排序。
(7)菜单选择功能,此功能也是图书信息信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能
2概要设计
⑴数据结构
图书管理系统中主要的数据结构包含书名、图书书号、作者名、分类、出版社、出版时间、价格等;在处理过程中各项可以作为一本图书的不同属性来进行处理。
菜单
函数的原型:
voidmenu()
函数的功能:
调用菜单,使用各项功能
程序:
voidmenu(){
printf("\n\n*******************************<图书信息管理系统>*******************************\n");
printf("-------------------------------------主菜单-------------------------------------\n");
printf("\t\t\t<1;创建图书信息>\n");
printf("\t\t\t<2;查找图书信息>\n");
printf("\t\t\t<3;删除图书信息>\n");
printf("\t\t\t<4;修改图书信息>\n");
printf("\t\t\t<5;显示图书信息>\n");
printf("\t\t\t<6;按出版时间排序>\n");
printf("\t\t\t<0;退出>\n");
printf("--------------------------------------------------------------------------------\n");
}
2.新建文件
函数的原型:
intReadinfoFromFile()
函数的功能:
建立文件储存数据
程序
intReadinfoFromFile()f",&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);
return0;
}
3.创建图书信息
函数的原型:
intchuangjian()
函数的功能:
记录图书的各项信息
程序:
intchuangjian()找图书信息
函数的原型:
voidchazhao()
函数的功能:
通过书名查找、作者查找、组合查找三种方式查找图书信息。
程序:
voidchazhao()n按作者名查找请按2.\n按组合查询请按3.\n");
scanf("%d",&i);
if(i==1)
{
printf("请输入要查找的书名:
");
scanf("%s",name);
for(p=head;p!
=NULL;p=p->next)f\n",p->price);
}
}
if(head==NULL)printf("<查无此书>\n");
if(b)printf("<查找的图书信息不存在!
>\n");f\n",p->price);
}
}
if(head==NULL)printf("<查无此书>\n");
if(b)printf("<查找的图书信息不存在!
>\n");f\n",p->price);
}
}
if(head==NULL)printf("查无此书\n");
if(b)printf("<查找的图书信息不存在!
>\n");除图书信息
函数的原型:
voidshanchu()
函数的功能:
通过书名确定图书,进而删除该书
程序:
voidshanchu()n");
system("PAUSE");
}
6.修改图书信息
函数的原型:
voidxiugai()
函数的功能:
通过书名确定图书,进而修改该书的各项信息
程序:
voidxiugai()f\n",p->price);
printf("<是否确定修改0(是)or1(否)>\n");
scanf("%d",&a);
if(a==0){
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=news;
printf("\n\n<提醒:
信息修改成功!
>\n\n");
}
}
if(b==1)printf("<没有您要修改的信息!
>\n");
}
system("PAUSE");
}
7.显示图书信息
函数的原型:
voidshow()
函数的功能:
显示已存图书的各项信息
程序:
voidshow()f\n",p->price);
system("PAUSE");
}
}
8.图书排序
函数的原型:
voidpaixu()
函数的功能:
按出版时间的不同将记录的图书排序
程序:
voidpaixu()f\n",a[i]->price);
}
system("PAUSE");
}
4调试分析
此次编写的图书管理系统,相对于以前学到的程序,它要大得多,也要复杂的多。
涉及到多个模块的调用,每个模块都给我带来一些困惑。
其中感觉图书查找和排序这两个最为麻烦。
查找模块涉及到指针和链表问题后来在同学的帮助下得以解决,我就模仿按书名查找的方法另外设计出了两种查找方法。
排序中的for循环刚开始不是太熟练,出了很多错误。
程序设计好后,数据的输出格式不太规范,而且各模块也出现了一些小问题,经过修改最后运行的结果基本上达到了预期的目的。
由于准备的有点仓促,没能把一些细节优化好,而且没能加入一些其他功能,比如图书借阅模块,那样程序将会比较完美。
5测试结果
测试的部分数据
书名
作者
书号
分类
出版社
出版时间
价格
大学物理
罗益民
a1
教科类
北京邮电大学出版社
58
时间简史
霍金
b2
科普类
湖南科学技术出版社
45
仰望
饶雪漫
c3
文学类
海南出版社
15
登录号任意输入
下面为测试的部分结果截图
。
6课程心得总结
通过这次亲自动手编写C语言图书管理系统,从中收获了很多。
很多学过的知识得以巩固,对链表、数组指针、结构体等知识有了更深一步的了解。
编写的过程中我也借鉴别人设计的一些程序,从中发现了自己的一些不足,在构建框架和编写源程序上面的一些问题。
在源程序编写好后,对源程序的检测花费了我很多时间,这也算是锻炼了我的耐心。
在检测中发现的一些细节上的毛病和粗心这个坏习惯都需要我加以改正。
同时同学对我的帮助也比较大,有些问题很感谢他们对我的帮助。
亲自编写了这个大型程序后,我领悟了“实践出真知”这个道理,体会到了C语言的巨大用处,对C语言有了更浓厚的兴趣。
在今后我也会更加深入的学习C语言,打好稳固的基础,努力掌握这门技术,能够编写出更多更好的程序。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 图书 管理 系统 实验 报告 完整版