C语言图书管理系统实验报告书文档格式.docx
- 文档编号:17289351
- 上传时间:2022-11-30
- 格式:DOCX
- 页数:17
- 大小:49.06KB
C语言图书管理系统实验报告书文档格式.docx
《C语言图书管理系统实验报告书文档格式.docx》由会员分享,可在线阅读,更多相关《C语言图书管理系统实验报告书文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
charname[11];
//书名
charwriter[21];
//作者
charshuhao[10];
//书号
charfenlei[10];
//分类
charchuban[20];
//出版社
intchubantime;
//出版时间
floatprice;
//价格
fi_typetype;
structfi_info*next;
//结构体的指针域,用于存放链表的下个结点的地址
五、};
六、程序的函数设计
1.函数的功能描述
structfi_info*head=NULL,*head_=NULL;
//将图书信息写成链表,头指针分别为空
intBook_num;
//图书信息的统计数
voidmenu();
intReadinfoFromFile();
//读入数据
//函数申明
intchuangjian();
//创建新的图书信息
voidchazhao();
//查找图书
voidshanchu();
//删除图书
voidxiugai();
//修改图书
voidshow();
//查看图书
voidpaixu();
//图书排序
voidquit();
//退出
2.函数的调用关系
调用关系为主函数调用各功能函数。
七、源程序代码
#include<
stdio.h>
stdlib.h>
string.h>
conio.h>
//自定义枚举类型fi_type,用来表示图书信息
};
voidXG();
voidmain()
{//inti;
charch='
1'
;
ReadinfoFromFile();
system("
cls"
);
system("
while(ch!
='
5'
)
{printf("
\n\n\n\n\n"
printf("
\t\t图书管理系统\n\n\n"
\t\t**************MENU*************\n"
/*菜单的标题行*/
\t\t1----------------图书信息录入\n"
/*输入数据*/
\t\t2----------------显示图书信息\n"
/*显示所有记录*/
\t\t3----------------图书信息的查询\n"
/*要求采用书名、作者名进行查询*/
\t\t4----------------图书信息的修改\n"
/*实现图书信息的修改和删除*/
//printf("
\t\t5----------------系统初始化\n"
\t\t5-----------------退出\n"
\n\n"
\t请输入你的选择:
scanf("
%c"
&
ch);
switch(ch)
{
case'
:
chuangjian();
break;
2'
paixu();
show();
3'
chazhao();
4'
XG();
default:
}
\n\n\n\n\n\n\n\n\n\t\t\t\t谢谢使用!
"
getch();
intReadinfoFromFile()//读入数据
FILE*fp=NULL;
//文件指针
structfi_info*p=NULL;
//结构体指针
inti;
if((fp=fopen("
sun.txt"
"
r+"
))==NULL)
{
printf("
文件不存在!
\n"
fp=fopen("
w"
//为输出打开一个文件
文件建立成功!
}
fscanf(fp,"
%d"
Book_num);
////从文件中分别读入图书信息统计数,以便于下面for循环的条件控制
for(i=0;
i<
Book_num;
i++){
p=(structfi_info*)malloc(sizeof(structfi_info));
//P为动作指针,申请内存空间
fscanf(fp,"
%s"
p->
name);
writer);
fscanf(fp,"
shuhao);
p->
fenlei);
chuban);
chubantime);
%.2f"
price);
type);
if(p->
type==1)
{
if(head==NULL){
head=p;
p->
next=NULL;
}
else{
next=head;
else{
if(head_==NULL){
head_=p;
else{
next=head_;
fclose(fp);
return0;
}
fclose(fp);
return0;
}
intchuangjian()//创建图书信息
p=(structfi_info*)malloc(sizeof(structfi_info));
请输入书名:
请输入作者名:
请输入书号:
请输入分类:
请输入出版社:
请输入出版时间:
请输入价格:
%f"
p->
type=news;
Book_num+=1;
head=p;
voidchazhao()//查找图书信息
{
charname[10],writer[21];
intprice;
intb=1,i;
按书名查找请按1.\n按作者名查找请按2.\n按组合查询请按3.\n"
i);
if(i==1)
请输入要查找的书名:
name);
for(p=head;
p!
=NULL;
p=p->
next)//一个链表指针p的遍历,直到结尾p==NULL
{
if(strcmp(name,p->
name)==0)//字符串的比较函数,若前后相等则等于0
{b=0;
//若存在,则b=0
找到要查找的图书信息:
图书名称%s\n"
图书作者%s\n"
图书书号%s\n"
图书分类%s\n"
出版社%s\n"
出版时间%d\n"
图书价格%.2f\n"
if(head==NULL)printf("
<
查无此书>
if(b)printf("
查找的图书信息不存在!
>
//若b=1,则不存在
elseif(i==2)
请输入要查找的作者名:
writer);
if(strcmp(writer,p->
writer)==0)//字符串的比较函数,若前后相等则等于0
elseif(i==3)
请输入要查找的书名价格\n:
%s%d"
name,&
name)==0&
&
price==p->
price)//字符串的比较函数,若前后相等则等于0
查无此书\n"
}elseprintf("
没有该项功能,请重新选择:
system("
PAUSE"
//暂停
voidshanchu()//删除图书信息
//定义两个结构体指针
structfi_info*q=NULL;
charname[10];
intb=1;
inta;
请输入要删除的书名:
for(p=head,q=head;
next)
name)==0)
{
b=0;
确定删除?
0(是)or1(否)\n"
a);
if(a==0)
if(p==head)
head=head->
next;
else
q->
next=p->
printf("
删除成功!
}
elseq=p;
if(b)printf("
提示:
查无此书!
.\n"
voidxiugai()//修改图书信息
inta,b=1;
for(p=head;
if(strcmp(p->
name,name)==0){
b=0;
是否确定修改?
0(是)or1(否)>
if(a==0){
**********请重新输入信息*********\n"
请输入作者名:
\n\n<
提醒:
信息修改成功!
if(b==1)printf("
没有您要修改的信息!
voidshow()//显示图书信息
structfi_info*p=NULL;
for(p=head;
voidpaixu()//按出版时间排序
***********************************按出版时间排序如下***********************************"
structfi_info*a[1000],*p,*p1,*temp;
inti,k,index,n=0;
charb;
p1=head;
p;
n++;
for(i=0;
n;
a[i]=p1;
p1=p1->
for(k=0;
k<
n-1;
k++){
index=k;
for(i=k+1;
if(a[index]->
chubantime>
a[i]->
chubantime)
index=i;
temp=a[index];
a[index]=a[k];
a[k]=temp;
i++){
图书书名%s\n"
a[i]->
voidXG()
{inta=0;
---------图书信息查询-----------\n"
\t\t1-----------------修改\n"
\t\t2------------------删除\n"
请输入菜单前的数字:
switch(a)
case1:
xiugai();
case2:
shanchu();
八、调试及总结
通过这次亲自动手编写C语言图书管理系统,从中收获了很多。
很多学过的知识得以巩固,对链表、数组指针、结构体等知识有了更深一步的了解。
编写的过程中我也借鉴别人设计的一些程序,从中发现了自己的一些不足,在构建框架和编写源程序上面的一些问题。
在源程序编写好后,对源程序的检测花费了我很多时间,这也算是锻炼了我的耐心。
在检测中发现的一些细节上的毛病和粗心这个坏习惯都需要我加以改正。
同时同学对我的帮助也比较大,有些问题很感谢他们对我的帮助。
亲自编写了这个大型程序后,我领悟了“实践出真知”这个道理,体会到了C语言的巨大用处,对C语言有了更浓厚的兴趣。
在今后我也会更加深入的学习C语言,打好稳固的基础,努力掌握这门技术,能够编写出更多更好的程序。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 图书 管理 系统 实验 报告书
![提示](https://static.bdocx.com/images/bang_tan.gif)