图书图书管理系统查询模块的设计与实现C语言.docx
《图书图书管理系统查询模块的设计与实现C语言.docx》由会员分享,可在线阅读,更多相关《图书图书管理系统查询模块的设计与实现C语言.docx(13页珍藏版)》请在冰豆网上搜索。
图书图书管理系统查询模块的设计与实现C语言
摘要
数据结构(C语言版)将C语言的功能又提高到了一个新的层次。
C语言是一种计算机程序设计语言,它既有高级语言的特点,又有汇编语言的特点。
它可以做为系统设计语言编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序,因此它的应用范围广阔。
我这次的课程设计是利用C语言源的数据结构知识编写一个图书信息管理系统,本系统是根据学校图书管理工作的需要,实现对图书信息进行有效、准确的管理。
整个系统从简便、实用的要求出发,完成图书管理的全过程,包括图书的采集、插入、查询、删除、借阅、归还、显示、输出等功能。
本说明书主要介绍本课题的开发背景,所要完成的功能和开发的过程。
重点说明了设计思路、总体设计、各个功能模块的设计与实现方法。
关键词:
图书管理系统,C语言,查询模块
目录
1需求分析1
1.1数据需求分析1
1.2功能需求分析1
2系统总体设计2
2.1系统模块划分2
2.2系统模块结构图2
3系统详细设计3
3.1系统主界面设计3
3.2查询模块设计与分析5
4系统调试与运行7
4.1查询模块的调试与运行7
总结10
参考文献11
1需求分析
随着社会的发展,计算机的普及,以往书面记载进行图书管理的方法已经不能适应实际的需要,且容易出错和浪费大量时间。
因此,很有必要来开发一个图书管理系统来管理图书,这样可以节省人力物力且准确率高。
本系统的开发正是适应这一需求,本系统可以提高图书管理的工作效率,减少工作人员的工作量,使图书管理工作真正的达到科学合理、准确高效。
1.1数据需求分析
本系统的主要信息为图书信息。
图书信息主要包括书名、编号、作者、库存量等。
1.2功能需求分析
本系统主要实现对图书信息信息进行管理,需要实现以下几个方面的管理功能:
(1)采集图书信息。
(2)插入新图书。
(3)查询图书信息。
(4)删除图书。
(5)图书的显示。
(6)借阅图书。
(7)归还图书。
2系统总体设计
2.1系统模块划分
本系统主要是对图书信息进行的管理,包括了图书的采集、新图书的插入、图书信息的查询、图书的删除、图书的显示、图书的借阅、图书的归还等功能。
整个系统分为以下几个模块:
图书信息的采集、新图书的插入、图书信息的查询、图书的删除、图书的显示、图书的借阅、图书的归还。
我负责的是图书的插入模块的编写与实现。
2.2系统模块结构图
根据系统功能设计,对应的系统模块结构图如图1所示。
图2.1系统模块结构图界面
3系统详细设计设计
3.1系统主界面设计
首先创建图书管理系统界面,由用户选择所需的命令进入相应的功能界面。
为实现此功能本程序由以下模块设计,定义一个图书结构体,存放图书的基本信息,然后设计定义各个模块的主函数,再定义一个住递归函数对各个模块的主函数进行调用,其次在main主函数中调用主递归函数,最后由功能菜单函数实现显示,其程序代码如下:
/*********************/
/*图书结构体*/
/*********************/
typedefstruct
{
charnum[10];/*书号*/
charname[9];/*书名*/
charaddr[31];/*作者*/
intNowcounter;/*现存量*/
intAllcounter;/*总库存量*/
}datatype;
datatype*x[max];/*定义两个指针数组*/
datatype*p;
/*****************************/
/*图书功能函数列表*/
/*****************************/
voidredo();/*主递归函数*/
voidcreatlist(datatype*x[]);/*图书建立函数*/
voidcharu(datatype*x[]);/*图书插入函数*/
intmenu_select();/*功能菜单函数*/
voidfind(datatype*x[],intn);/*查找函数*/
voiddelnode(datatype*x[]);/*删除函数*/
voidprintlist(datatype*x[]);/*显示函数*/
voidjieyue(datatype*x[],intn);/*借阅函数*/
voidguihuan(datatype*x[],intn);/*归还函数*/
/*****************************/
/*主递归函数程序*/
/*****************************/
voidredo()
{for(;;)
switch(menu_select())
{
case1:
/*选项1的实现*/
printf("***********************\n");
printf("*图书的建立*\n");
printf("***********************\n");
creatlist(x);
break;
case2:
/*选项2的实现*/
printf("***********************\n");
printf("*新图书信息的添加*\n");
printf("***********************\n");
charu(x);
break;
case3:
printf("***********************\n");
printf("*图书信息的查询*\n");
printf("***********************\n");
find(x,n);
break;
case4:
printf("************************\n");
printf("*图书信息的删除*\n");
printf("************************\n");
delnode(x);
break;
case5:
printf("************************\n");
printf("*图书信息的显示*\n");
printf("************************\n");
printlist(x);
break;
case6:
printf("************************\n");
printf("图书的借阅\n");
printf("************************\n");
jieyue(x,n);
break;
case7:
printf("************************\n");
printf("图书的归还\n");
printf("************************\n");
guihuan(x,n);
break;
case0:
printf("\t谢谢使用,再见!
\n");
return;
}
}
/*************************
/*主函数程序*/
/*************************
voidmain()
{
redo();/*调用主递归函数*/
}
/*************************
/*功能菜单函数*/
/*************************
intmenu_select()
{
inti;
printf("欢迎进入图书管理系统!
\n");
printf("===========================\n");
printf("1.图书信息的采集\n");
printf("2.新图书的插入\n");
printf("3.图书信息的查询\n");
printf("4.图书的删除\n");
printf("5.图书的显示\n");
printf("6.图书的借阅\n");
printf("7.图书的归还\n");
printf("0.退出管理系统\n");
printf("===========================\n");
printf("请选择0-7:
");
scanf("%d",&i);
while(i<0||i>7)
{
printf("\n\t输入出错,重选0-7:
");
scanf("%d",&i);
}
returni;
}
3.2查询模块的设计与分析
查询是图书管理系统的重要组成部分,查询可以由两种方法实现:
一,按编号查询二,按书名查询。
其分析如下:
首先按编号查询。
按编号查询就是根据图书馆里每本数唯一的编号进行寻找。
输入你要查找的书的编号即可在图书库中找出其具体位置。
其源代码如下:
{
printf("请输入要查找者的编号:
");
scanf("%s",num);/*输入书号*/
for(i=0;i{
if(strcmp(x[i]->num,num)==0)/*调用strcmp函数*/
{
printf("编号书名作者现库存量总库存量\n");
/*输出要查询书的信息*/
printf("%-10s%-10s%-10s%-10d%-10d\n",x[i]->num,x[i]->name,x[i]-
>addr,x[i]->Nowcounter,x[i]->Allcounter);
}
else
continue;
}
}
其次按书名查询。
按书名查询就是根据你所要找的书的名字进行搜索。
输入书的名字得到此数的相应信息。
其源程序代码如下:
{
printf("请输入要查询的书名:
");
scanf("%s",name);/*输入书名*/
for(i=0;i{
if(strcmp(x[i]->name,name)==0)
{
printf("编号书名作者现库存量总库存量\n");
/*输出要查询书的信息*/
printf("%-10s%-10s%-10s%-10d%-10d\n",x[i]->num,x[i]->name,x[i]
>addr,x[i]->Nowcounter,x[i]->Allcounter);
}
else
continue;
}
}
4系统调试与运行
4.1查询模块的调试与运行
将查询模块放在主程序中,当调试运行成功后就会进入图书信息管理系统的主界面,选择3进行图书查询,将出现如下界面:
首先进行图书管理系统程序前期工作。
分为以下步骤:
1.打开运行软件输入图书管理系统程序源代码
2.调试,运行
3输入图书信息建库
图4.1图书管理系统主界面
按编号查询:
输入111
其运行效果如图所示:
图4.2按编号查询界面
按书名查询
输入wuli
其运行效果如图所示:
图4.3按书名查询界面
对于查询我们两种方法可以选其一。
查询函数程序头文件的源程序代码如下:
voidfind(datatype*x[],intn)
{
charnum[10];
charname[9];
intt,i;
printf("=================\n");/*输出查找方式*/
printf("1.按编号查询\n");
printf("2.按书名查询\n");
printf("=================\n");
printf("请选择:
");
scanf("%d",&t);/*输入选择信息*/
通过以上步骤我们可以实现对图书的查找。
总结
通过这个系统的制作,我们对于C语言有了更深一步的了解。
理解了它应用性好,可移植性强,功能丰富。
一周的课程设计也让我们对数据结构加深了认识,数据结构原来是也是十分实用,数据结构对于解决实际问题也是很有用的。
在课程设计中也看到了自身的不足,巩固了所学知识。
我们做的这个系统可以对图书进行有效的管理,它做到了对图书的查询、借阅、归还,图书信息的采集、删除、显示等功能。
它可以很大的减轻图书管理人员的工作量,节省工作时间,提高图书管理效率和准确率。
当然,由于我们接触到数据结构这门课的时间有限,在我们编写程序的过程中遇到了很大困难,我们感觉到了数据结构的博大精深,在这么短的时间内我们是不可能将其融会贯通的,相信我们会在以后时间里更加深入的学习它,这次课程设计的成功设计,也增加了我们能够掌握好这门课的信心。
在这次课程设计中我们也体会到了团队合作的重要性,很好的分工是我们能够在这么短的时间内完成任务的保障,在我们将各自的模块做好后,还需要我们整个小组的全部成员在一起商讨个别模块的不足,以使我们的整体设计达到天衣无缝,这在一定程度上也提高了我们的整合能力。
在这次课程设计中,我们得到了指导老师很大的帮助。
在这里,我们由衷的感谢指导老师!
参考文献
[1]曹衍龙等.C语言实例解析精粹(第二版).北京:
人民邮电出版社,2007.8.
[2]谭浩强.C程序设计(第三版).北京:
清华大学出版社,2005.7.
[3]张磊等.C语言程序设计教程.北京:
中国铁道出版社,2007.8.
[4]严蔚敏等.数据结构(C语言版).北京:
清华大学出版社,1997.4.
[5]余苏宁等.C++课程设计.北京:
高等教育出版社,2004.1.
[6]黄梯云.管理信息系统(修订版)[M].北京:
高等教育出版社,2000年.