图书管理系统Word格式文档下载.docx
- 文档编号:276495
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:29
- 大小:280.38KB
图书管理系统Word格式文档下载.docx
《图书管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《图书管理系统Word格式文档下载.docx(29页珍藏版)》请在冰点文库上搜索。
4.6.清除库存10
5.调试分析12
5.1.主页面12
5.2.采编模块13
5.3.查询模块14
5.4.归还模块14
5.5.清除模块15
5.6.借阅模块15
6.总结16
7.参考文献17
8.答辩记录17
9.教师意见18
10.另附源代码:
18
摘要
图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,有很多的图书馆以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。
数据信息处理工作量大,容易出错;
由于数据繁多,容易丢失,且不易查找。
总的来说,缺乏系统,规范的信息管理手段。
图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况
图书管理系统是一个以菜单方式工作的信息管理系统,该系统用来反映登陆号、书名、作者名、出版单位、价格、库存量等信息,并实现采编入库、借阅、归还、清除库存以及查询等功能。
1.设计的目的与要求
建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。
(1)采编入库:
新购入一本书,经分类和确定书号后登记到图书账目中去,若该书已存在,这库存量增加
(2)借阅:
若一种书的现存量大于0,则借出一本,登记借阅者的图书证号和归还期限
(3)归还:
注销借阅者的登记,改变该书的现存量(过期罚款-选作)
(4)清除库存:
某书已无保留价值,将它从图书账目中注销
(5)查询功能:
按书名查询、按作者名查询
2.总体设计
2.1.系统构成框图
2.2.系统结构框图
3.详细设计
3.1.借阅图书
3.2.采编入库
3.3.查阅功能
3.4.归还图书
4.数据结构设计
4.1.头函数
#include<
stdio.h>
string.h>
stdlib.h>
conio.h>
structBOOK
{
intid,usr[100],total,store,days[100];
charname[100],author[100];
}books[100];
/*上面是结构体的定义,用于存放书籍及借书的信息。
*/
voidpage_title(char*menu_item)/*打印页眉的函数,同时通过参数menu_item,可以显示当前的状态。
printf("
>
>
欢迎进入图书管理系统<
<
\n\n-设计者-\n\n"
menu_item);
赵云鹏31001410<
\n\n-%s-\n\n"
}
intmain()
menu:
page_title("
操作选单"
);
请用数字键选择操作\n\n"
\t\t1采编入库\t2借阅图书\n"
\t\t3归还图书\t4清除库存\n"
\t\t5查询功能\n"
\t\t0退出\n"
switch(getch())
case'
1'
:
book_add();
break;
2'
book_out();
3'
book_in();
4'
book_del();
5'
book_search();
0'
exit(0);
gotomenu;
4.2.采编入库
voidbook_add()
intn,f;
page_title("
采编入库"
序号:
"
scanf("
%d"
&
f);
for(n=0;
n<
100;
n++)
if(books[n].id==0||books[n].id==f)break;
books[n].id=f;
书名:
%s"
books[n].name);
作者:
books[n].author);
数量:
books[n].total+=f;
books[n].store=books[n].total;
return_confirm();
4.3.图书借阅
voidbook_out()/*借阅图书*/
intn,s,l,d;
借阅图书"
if((n=book_search())!
=-1&
&
books[n].store>
0)
请输入借书证序号:
s);
可借10天,超过天数按每天0.5元罚款:
1for(l=0;
l<
10;
l++)
{
if(books[n].usr[l]==0)
books[n].usr[l]=s;
books[n].days[l]=d;
break;
}
books[n].store--;
if(n!
books[n].store==0)printf("
此书已经借出.\n"
4.4.查询功能
charbook_search()
intf,n,i;
charstr[100];
请选择>
1按书名查询\n>
2按作者查询\n>
3按书序号查询"
i);
if(i==1){
getchar();
scanf("
str);
if(strcmp(books[n].name,str)==0)
printf("
%s\n"
books[n].name);
books[n].author);
存数:
%d\n"
books[n].total);
returnn;
/*在数组中找到图书号匹配的记录,显示其信息并返回数组下标*/
\n输入错误或无效图书序号.\n"
return-1;
/*如果找不到相应记录则提示错误并返回-1*/
elseif(i==2){
if(strcmp(books[n].author,str)==0)
%dof"
books[n].store);
if(i==3){
if(books[n].id==f)
4.5.归还图书
voidbook_in()/*归还图书*/
intn,s,l;
归还图书"
books[n].store<
books[n].total)
借阅者图书证列表:
\n"
for(l=0;
if(books[n].usr[l]!
=0)
[%d]-%d天\n"
books[n].usr[l],books[n].days[l]);
if(books[n].usr[l]==s)
books[n].usr[l]=0;
books[n].days[l]=0;
books[n].store++;
books[n].store==books[n].total)
全部入藏.\n"
4.6.清除库存
voidbook_del()
intn;
清除库存"
=-1){
books[n].id=0;
books[n].total=0;
该书已注销.\n"
1.
getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回,getch返回值是用户输入的ASCII码,出错返回-1.输入的字符不会回显在屏幕上.getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行.
2
getch():
所在头文件:
conio.h。
函数用途:
从控制台读取一个字符,但不显示在屏幕上
函数原型:
intgetch(void)
返回值:
读取的字符
例如:
charch;
或intch;
getch();
或ch=getch();
用getch();
会等待你按下任意键,再继续执行下面的语句;
用ch=getch();
会等待你按下任意键之后,把该键字符所对应的ASCII码赋给ch,再执行下面的语句。
易错点:
1.所在头文件是conio.h。
而不是stdio.h.
2.在使用之前要调用initscr(),结束时要调用endwin()。
否则会出现不输入字符这个函数
也会返回的情况。
3.在不同平台,输入回车,getch()将返回不同数值,而getchar()统一返回10(即\n)
1)windows平台下ENTER键会产生两个转义字符\r\n,因此getch返回13(\r)。
2)unix、linux系统中ENTER键只产生\n,因此getch返回10(\n)。
3)MACOS中ENTER键将产生\r,因此getch返回13(\r)。
并非标准C中的函数,不存在C语言中。
所以在使用的时候要注意程序的可移植性。
国内C语言新手常常使用getch();
来暂停程序且不知道此函数来源,
3.
getchar():
从键盘上输入一个字符+回车才把该字符输进去
getch():
只要输入一个字符不需要输入回车就把该字符输进去了
此外getch()需要有头文件conio.h
5.调试分析
5.1.主页面
5.2.采编模块
5.3.查询模块
5.4.归还模块
5.5.清除模块
5.6.借阅模块
6.总结
经过一个星期的上机实践学习,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处。
本次实践设计对我来说是一次挑战,在这期间我遇到了很多困难。
通过上网查找资料、查看书籍、询问同学、请教老师等方法我终于完成了这次大作业。
通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好程序设计。
学到的新东西:
7.参考文献
1.谭浩强《c程序设计》清华大学出版社
2.颜晖《c语言程序设计》,高等教育出版社,2008
8.答辩记录
9.教师意见
intid,usr[100],total,store,days[100];
charname[100],author[100];
voidreturn_confirm()/*返回前请求确认的函数,以便在返回前观察结果*/
\n按任意键返回……\n"
getch();
charbook_search()/*图书查阅*/
intf,n,i;
/*f借书证号*/
charstr[100];
if(i==1){
for(n=0;
if(strcmp(books[n].name,str)==0)
return-1;
elseif(i==2){
if(strcmp(books[n].author,str)==0)
if(i==3){
scanf("
if(books[n].id==f)
intn,s,l,d;
if((n=book_search())!
for(l=0;
books[n].store--;
if(n!
return_confirm();
intn,s,l;
/*s是借书证号,l是天数*/
[%d]-10天之内\n"
books[n].store++;
voidbook_add()/*采编入库*/
intn,f;
if(books[n].id==0||books[n].id==f)break;
books[n].id=f;
sca
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统