图书管理系统说明书Word文件下载.docx
- 文档编号:18978509
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:28
- 大小:225.37KB
图书管理系统说明书Word文件下载.docx
《图书管理系统说明书Word文件下载.docx》由会员分享,可在线阅读,更多相关《图书管理系统说明书Word文件下载.docx(28页珍藏版)》请在冰豆网上搜索。
4.2浏览函数Print_Book_Doc()10
4.3保存函数save()11
5测试与调试12
5.1图书录入测试12
5.2图书浏览测试13
6个人设计小结与心得体会13
参考文献14
附件1程序源代码14
摘要
图书信息管理系统能够提供充足的信息和快捷的查询手段,使用计算机对图书进行信息管理,有着手工管理所无法比拟的优点。
这个系统能录入图书信息并以磁盘文件形式保存,能够浏览全部图书信息,根据书名查找,以及删除、插入、修改和保存图书的信息。
充分应用结构体数组和对文件的操作是该系统取得的最重要的成果。
关键词:
浏览;
查询修改;
录入图书;
结构体数组
前言
二十一世纪是信息的社会,信息作为社会最主要的资源,将成为战略资源引起人们广泛的关注。
现在信息技术的应用越来越普及,不但促进了社会的高速发展,也改变着人们的工作、学习、生活和娱乐的方式以及思想观念。
随着计算机的日益普及,计算机软件无处不在。
软件在计算机的发展和应用中至关重要,在人类进入信息化社会时成为新兴信息产业的支柱
计算机技术的迅猛发展,特别是随着网络技术的出现标志着信息时代已经来临。
信息化浪潮、网络革命在给社会带来冲击的同时,也使图书馆业务受到了强烈的冲击,图书馆传统的管理和服务方式已不能适应读者对日益增长的文献信息的需求。
随着馆藏量的不断增加,图书资料的著录和查询的难度也就相应增加,数据处理手工操作,工作量大,出错率高,出错后不易更改的手工方式,已经不能满足要求。
本设计主要研究的是用C语言开发图书馆管理功能,其具体体现在图书的录入、查询、浏览、删除功能,更要优化了图书馆管理系统设计。
1需求分析
(1)问题
登录号,书名,作者名,分类号,出版单位,出版时间,价格等。
使之提供以下功能:
菜单选择模块。
图书信息录入功能。
(图书信息用文件保存)。
图书信息浏览功能。
图书信息查询功能。
图书信息的删除和修改。
(2)系统
采用C语言实现,开发环境为VC,可以运行在操作系统windows98及以上皆可。
(3)运行要求
能不受限制的录入和删除图书信息
界面友好,操作方便,例如删除前需要提示用户是否删除
容错性强,例如数据导出时,如果文件不存在需要提示用户。
2总体设计
2.1程序的总体设计
图1图书管理系统功能模块图
根据需求描述,本人按照结构化程序设计的原则将整个系统划分若干个功能模块。
系统各子模块的设计如下:
(1)输入记录模块
输入记录模块主要功能描述
(2)更新记录模块
更新记录模块主要功能描述
(3)查询记录模块
模块主要功能描述
(4)输出记录模块
2.2数据结构
根据系统要求,系统中需要保存的数据有通讯录的信息,其结构如下:
数据项名称
数据项系统表示
数据类型
数据长度
备注
登陆号
loginnum
字符串
20
书名
bookname
作者名
author
出版单位
publisher
出版时间
pbtime
15
分类号
classfy
10
价格
price
浮点
使用C语言创建的结构体如下:
#include<
stdio.h>
math.h>
string.h>
stdlib.h>
structbooks_list/*定义数据结构*/
{
charauthor[20];
/*作者名*/
charbookname[20];
/*书名*/
charpublisher[20];
/*出版单位*/
charpbtime[15];
/*出版时间*/
charloginnum[10];
/*登录号*/
floatprice;
/*价格*/
charclassfy[10];
/*分类号*/
structbooks_list*next;
};
3详细设计
3.1主控模块设计
主函数控制各子函数的调用流程如图2
图2主控制程序流程图
3.2图书录入模块
图3图书录入流程图
3.3图书浏览模块
图4图书浏览流程图
3.4图书保存模块
图5图书保存流程图
4主要函数功能描述
4.1录入函数InsertDoc()
函数原型:
voidInsertDoc(structbooks_list*head)
功能描述:
寻找下一个未放入图书的位置录入图书信息,最后判断是否继续录入,若输入Y则继续录入,即回到前面寻找下一个未放入图书的位置;
若输入N则退出此函数。
函数流程图如图3所示
主要代码为:
voidInsertDoc(structbooks_list*head)/*图书录入子函数*/
structbooks_list*s,*p;
charflag='
Y'
;
p=head;
while(p->
next!
=NULL)
p=p->
next;
/*寻找下一个还未放书的位置*/
}
while(flag=='
||flag=='
y'
)
s=(structbooks_list*)malloc(sizeof(structbooks_list));
/*分配字节数*/
printf("
\n请输入图书登陆号:
"
);
fflush(stdin);
/*清空缓存*/
scanf("
%s"
s->
loginnum);
\n请输入图书书名:
bookname);
\n请输入图书作者名:
author);
\n请输入图书出版社:
publisher);
\n请输入图书出版时间:
pbtime);
\n请输入图书分类号:
classfy);
\n请输入图书价格:
%f"
&
s->
price);
\n"
p->
next=s;
p=s;
s->
next=NULL;
━━━━添加成功!
━━━━"
\n继续添加?
(Y/N):
%c"
flag);
if(flag=='
N'
n'
)/*判断是否继续添加*/
{break;
}/*退出循环*/
elseif(flag=='
{continue;
}/*继续添加*/
}
save(head);
/*保存文件*/
return;
4.2浏览函数Print_Book_Doc()
voidPrint_Book_Doc(structbooks_list*head)
先判断是否存在图书,存在则输出所有图书信息,不存在则输出没有图书记录。
函数流程图如图4所示
voidPrint_Book_Doc(structbooks_list*head)/*图书浏览子函数*/
structbooks_list*p;
if(head==NULL||head->
next==NULL)
\n━━━━没有图书记录!
━━━━\n\n"
return;
printf("
┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┳━━━┳━━━━┓\n"
┃登录号┃书名┃作者┃出版单位┃出版时间┃分类号┃价格┃\n"
┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━╋━━━━┫\n"
┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-6.6s┃%.2f┃\n"
p->
loginnum,p->
bookname,p->
author,p->
publisher,p->
pbtime,p->
classfy,p->
┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━┻━━━━┛\n"
4.3保存函数save()
voidsave(structbooks_list*head)
先打开data.txt文档,把图书信息写入该文档里,保存好后关闭文档。
函数流程图如图5所示
voidsave(structbooks_list*head)/*图书保存子函数*/
structbooks_list*p;
FILE*fp;
fp=fopen("
data.txt"
"
w+"
/*打开data。
txt文件*/
fprintf(fp,"
fprintf(fp,"
=NULL)/*寻找存在图书的位置*/
fclose(fp);
/*关闭文件*/
已将图书数据保存到data.txt文件\n"
5测试与调试
5.1图书录入测试
系统菜单选择界面如下:
图6
图7
输入登录号:
12540236书名:
数学分析作者:
华东师范大学数学系
出版社:
高等教育出版社出版时间:
2010年7月分类号:
10001
图书价格:
33.20元
图8
5.2图书浏览测试
输入2进行浏览
图9
6个人设计小结与心得体会
通过这次课程设计,我对复杂程序的开发有了一个深刻的认识,使我进一步明白了模块化思想在程序开发中的重要性。
也是我明白了在平时的学习生活中一定要努力才能在真正用到时运用自如。
本程序具有输入、输出、插入、删除、查找和保存等功能。
这次课程设计中还深入学习了优化算法的各种思想,加深了对指针概念的理解,也较好的掌握了指针的使用方法。
通过这次课程设计学会了在实践中运用所学的知识,并通过翻阅资料增加了自己的知识面,对C语言调用其他可执行文件和图形界面的设计有了新的识和了解,并运用在这次课程设计中,使我受到了锻炼,受益匪浅,同时也深入学习了算法的思想,指针的使用方法,为我以后的应用打下了坚实的基础,相信有因为这次课程设计,会使我对C语言有更深入的认知,以及能较好的掌握它,在以后的实践中能运用自如。
在这次课程设计中学会了贯通运用所学的知识,通过翻阅大量资料学习了新的知识。
在这次课程设计中对C语言中调用其他可执行文件和图形界面的设计思路有了新的认识和了解,并运用在其中,发现C语言作用的强大。
参考文献
[1]严蔚敏,吴伟民.数据结构(C语言版).北京:
清华大学出版社,2007
[2]张长海.C语言程设计[M].北京:
高等教育出版社,2006
[3]陈建新,李志敏.数据结构实验指导与课程设计教程.北京:
科学出版社,2010
[4]吴玉蓉,李劲.数据结构(C语言版).北京:
中国水利水电出版社,2008
[5]谭浩强.C语言程设计.北京:
清华大学出版社,2005
[6]王为青,刘变红.C语言高级编程及实例剖析.北京:
人民邮电出版社,2007
附件1程序源代码
structbooks_list*Create_Books_Doc();
voidInsertDoc(structbooks_list*head);
voidDeleteDoc(structbooks_list*head,intnum);
voidPrint_Book_Doc(structbooks_list*head);
voidsearch_book(structbooks_list*head);
voidinfo_change(structbooks_list*head);
voidsave(structbooks_list*head);
structbooks_list*Create_Books_Doc()
structbooks_list*head;
head=(structbooks_list*)malloc(sizeof(structbooks_list));
head->
returnhead;
/*创建并打开文件*/
=NULL)/*寻找一个未放入图书的位置*/
voidInsertDoc(structbooks_list*head)/*图书录入子函数*/
{
/*清空缓存*/
voidsearch_book(structbooks_list*head)/*图书查询子函数*/
chartemp[20];
next==NULL)/*判断图书是否存在*/
━━━━图书库为空!
━━━━\n"
else
请输入您要查找的书名:
"
temp);
while(p->
if(strcmp(p->
bookname,temp)==0)/*寻找要查找的图书*/
\n图书已找到!
登录号:
%s\t\n"
书名:
作者名:
出版单位:
出版时间:
分类号:
价格:
%.2f\t\n"
}
if(p->
next==NULL)
\n查询完毕!
voidinfo_change(structbooks_list*head
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 说明书
