基于c语言的图书管理系统毕业设计论文.docx
- 文档编号:26892866
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:26
- 大小:24.05KB
基于c语言的图书管理系统毕业设计论文.docx
《基于c语言的图书管理系统毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于c语言的图书管理系统毕业设计论文.docx(26页珍藏版)》请在冰豆网上搜索。
基于c语言的图书管理系统毕业设计论文
基于c语言的图书管理系统毕业(设计)论文
图书分类号:
密级:
毕业设计论文
基于C语言的图书管理系统DesignandImplementationofBooksManagementSystemBasedonCLanguage
学生姓名学院名称专业名称指导教师
2012年5月日
摘要
人类已经跨入了新世纪,正在进入信息化时代。
信息化浪潮、网络革命在给社会带来冲击的同时,也使图书馆业务受到了强烈的冲击,图书馆传统的管理和服务方式已不能适应读者对日益增长的文献信息的需求。
随着馆藏量的不断增加,图书资料的录入和查询的难度也就相应增加,数据处理手工操作,工作量大,出错率高,出错后不易更改的手工方式,已经不能满足要求。
基于此问题,建立一个规范化,系统化,程序化的图书管理系统迫不急待。
为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特编写程序以提高图书馆的管理效率。
使用程序之后,工作人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,以便全面掌握图书的流通情况等等。
关键词:
C语言;图书管理;数据处理;信息技术
Abstract
Mankindhasenteredthenewcentury,whichisenteringtheinformationage.Waveofinformationtechnology,thenetworkrevolutionhasbroughtabouttheimpact,butalsomakethelibraryservicehasbeenbadlyhit,andlibrarymanagementandservicesoftraditionalmethodscannotmeetthegrowingliteratureontheinformationthereaderneeds.Withthecontinuousincreaseinthecollections,books,dataentryandalsoacorrespondingincreaseinthedifficultyofqueries,dataprocessingmanualoperation,heavyworkload,errorrate,errorisnoteasytochangeafterthemanualmodecannolongermeettherequirements.
Basedonthisproblem,theestablishmentofastandardized,systematic,process-orientedlibrarymanagementsystemcannotwait.Fortheconvenienceoflibrarybooks,readersinformation,suchasborrowingandreturningbooksforefficientmanagement,especiallythepreparationofthemanagementprocedurestoenhancetheefficiencyofthelibrary.Afterusingtheprogram,staffcansearchforcertainreaders,borrowsomebooks,canalsoborrowbooksonthecurrentsituationofsomestatisticsinordertofullygrasptheflowofbooks.
KEYWORDS:
Clanguage,LibraryManagement,DataProcessing,InformationTechnology
摘要I
AbstractII
1绪论1
1.1选题的背景和选题的意义1
选题的背景1
选题的意义1
1.2系统的特点2
1.3需求分析2
2系统的总体设计3
2.1系统总体设计3
2.2运行环境和开发工具3
具3
境4
2.3系统流程图4
3系统的详细设计6
3.1主体界面设计6
6
块7
块8
块9
块10
块11
块12
块14
数15
4系统调试16
5系统运行17
结论21
致谢22
参考文献23
附录程序源代码24
1绪论
1.1选题的背景和选题的意义
选题的背景
随着社会,信息系统。
在高校的图书管理中避免了手工操作。
图书管理系统是图书馆的重要组成部分,图书是我们最好的获取信息的方式,但由于图书馆图书收藏量大大增加,使传统的图书管理员的工作日益繁重起来,迫使人们起用新的管理方法来管理图书。
本文通过设计和开发图书馆管理系统的实践,阐述了图书管理软件中所应具有的功能、设计、实现。
介绍了图书管理系统的设计和系统功能的实现过程。
该系统可以运用于高校的图书管理,由图书,图书,,,等多个组成,实现了图书资料的计算机网络管理。
一般通用的图书馆管理系统通常包括系统管理、读者管理、编目、图书流通、统计、查询等功能。
比较先进的系统能够在一个界面下实现图书、音像、期刊的管理,设置假期、设置暂离锁、暂停某些读者的借阅权、导入导出读者资料、交换MARCMachineReadableCatalogue数据、升级辅助编目库、征订图书等。
此外,随着工Internet应用的发展,一个完善的系统还应提供无缝接入Internet的功能,通过IE浏览器让读者使用借阅资料查询、更换密码、预约、资料检索等功能。
有些系统还能提供读者自助服务,可以开放一些客户机让读者自行管理密码、查询自己的借阅史、预约资料、检索资料等。
通过对中小型图书馆的调查、分析发现,用户的需求可分为4个方面:
第一是图书馆的工作人员通过计算机来管理各类图书,分类编号、调整图书结构、增加图书库存,适应读者的需求。
第二是读者能通过计算机来查询浏览图书馆中的图书,来确定自己需要的书籍,为借阅做好准备。
第三是工作人员对读者的借书情况能够作好全面掌握,能及时得到每个读者的当前借阅状态和历史借阅记录。
第四也是图书馆的核心工作,对图书的借阅管理。
在软、硬件方面对系统的需求是软件要易学,容易掌握,可以很简单方便地管理各种图书信息。
硬件的配置要求不能太高,这样可以适应中小型图书馆的经济条件。
中小型图书馆管理信息系统旨在提供一个可以操作的,方便查询的,易于修改的辅助管理系统。
同时提供了系统智能辅助与用户自主选择的两种方式,提高查询效率C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作
因为c语言的各种优点,所以本系统使用c语言作为开发环境,简化了编写过程,简化了系统界面。
C语言是一种计算机程序设计语言。
它既具有高级语言的特点,又具有汇编语言的特点。
它由美国贝尔研hie于1972年推出。
1978后,C语言已先后被移植到大、中、小及微型机上。
它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。
具体应用比如单片机以及嵌入式系统开发。
指针是C语言的一大特色,可以说是C语言优于其它高级语言的一个重要原因。
就是因为它有指针,可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。
C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。
Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。
一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。
境
MicrosoftVisualC++是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。
它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。
它以拥有“语法高亮”,IntelliSense(自动编译功能)以及高级除错功能而著称。
比如,它允许用户进行远程调试,单步执行等。
还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。
其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。
这些特征明显缩短程式编辑、编译及连结的时间花费,在大型软件计划上尤其显著。
系统使用VisualC++作为程序开发工具。
VisualC++是基于对象的快速应用程序开发工具,是当今最强大、最灵活的应用程序开发工具之一,具有良好的可视化应用程序开发环境和强大的可扩展数据库功能。
利用VisualC++提供的可视化组件库进行编程,可以快速、高效地开发出基于Windows环境的各类应用程序。
VisualC++语言的特点是面向对象设计的程序语言,VisualC++的基础编程语言是具有面向对象特性的语言,具有代码稳定、可读性好、编译速度快等优点,并将面向对象的概念移植到了C语言中,使这种基础语言有了新的发展空间。
与其它编程软件相比,特别是在数据库和网络应用方面,VisualC++具有简便易用、灵活高效的特点。
图1总体设计流程图
设计时应该先设计出主题框架,采用自顶而下、由粗到细的设计方法,主题框架设计完成之后,我们可以再其基础上进行扩充和进一步的改进,从而满足基本的设计要求,这样的设计可以避免模块的相互冲突。
3系统的详细设计
主体函数要求设计比较简洁,只提供设输入,处理和输出部分的函数调用。
其中各功能模块用菜单方式选择。
主体函数决定着系统的外观和效果,简洁的外观有助于人们更快的理解各项功能的作用,提高使用效率。
流程图如下图2:
图2主函数流程图
对应的主函数程序如下:
voidmainvoid
menu:
page_title"操作选单";
printf"请用数字键选择操作\n\n";
printf"\t\t\t1注册新书\t\t\t2借阅图书\n";
printf"\t\t\t3查询图书信息\t\t\t4修改图书信息\n";
printf"\t\t\t5归还图书\t\t\t6删除图书\n";
printf"\t\t\t7显示图书\t\t\t8退出系统\n";
printf"请按数字键:
\n";
switchgetch
case'1':
book_add;break;
case'2':
book_out;break;
case'3':
book_search;break;
case'4':
book_change;break;
case'5':
book_in;break;
case'6':
book_del;break;
case'7':
book_show;break;
case'8':
exit0;
gotomenu;
块
该模块的功能是假如用户需要新加入新的图书信息,通过键盘输入将新信息逐条加在原来输入文件上但不能覆盖原有信息。
输入功能可以扩充图书管理系统的图数量,在实际中,这个是必备的功能,增加了该系统的使用性。
流程图如下图3:
图3输入模块流程图
对应的程序如下:
voidbook_addvoid
intn;
system"cls";
page_title"注册新书";
forn0;n100;n++
ifbooks[n].id0break;
printf"序号:
";
scanf"%d",&books[n].id;
printf"书名:
";
scanf"%s",&books[n].name;
printf"作者:
";
scanf"%s",&books[n].author;
printf"出版社:
";
scanf"%s",&books[n].publish;
printf"数量:
";
scanf"%d",&books[n].total;
books[n].storebooks[n].total;
return_confirm;
块
该模块用于显示所有图书信息,由于记录较多,故而采取分屏显示。
显示完所有纪录后,用户需输入图书编号进而查找图书信息。
流程图如下图4:
图4删除模块流程图
相关程序如下:
intbook_delvoid
intn,num,i;
system"cls";
page_title"删除图书";
printf"请输入所要删除的书的编号:
";
scanf"%d",#
forn0;n100;n++
ifbooks[n].idnum
forin;i100;i++
books[i].idbooks[i+1].id;
strcpybooks[i].name,books[i+1].name;
strcpybooks[i].publish,books[i+1].publish;
printf"该书已删除.\n";
returnn;
printf"没有找到相关记录\n";
return-1;
块
该模块功能应体现为用户输入图书书名,若有书则查询出来。
查询模块式使用最多的功能之一,查找功能的好坏一定程度上决定了系统的好坏,好的查找模块和算法可以简化人们查找的时间并且增加查找的准确率,所以查询模块必须设计得简洁并且有较快的响应速度
流程图如下图5:
图5查询模块流程图
intbook_searchvoid
intn,i1;
charnam[30];
system"cls";
printf"请输入书名:
";
scanf"%s",&nam;
forn0;n100;n++
ifstrcmpbooks[n].name,nam0
printf"序号:
%d\t",books[n].id;
printf"书名:
%s\t",books[n].name;
printf"作者:
%s\t",books[n].author;
printf"出版社:
%s\t",books[n].publish;
printf"存数:
%d\t",books[n].store;
printf"总数:
%d\n",books[n].total;i0;
ifi1
printf"\n没有找到相关记录.\n";
return-1;
块
该模块功能应体现为用户修改图书信息,若有记录则修改信息。
流程图如下图6:
图6修改模块流程图
相关程序如下:
intbook_changevoid
intn,i;
system"cls";
page_title"修改图书信息";
printf"请输入要修改的图书编号:
";
scanf"%d",&i;
forn0;n100;n++
ifbooks[n].idi
printf"修改书名:
";
scanf"%s",books[n].name;
printf"修改";
scanf"%s",books[n].author;
printf"修改出版社名:
";
scanf"%s",books[n].publish;
printf"修改总数:
";
scanf"%d",&books[n].total;
printf"修改图书信息成功.\n";
books[n].storebooks[n].total;
returnn;
printf"\n没有找到相关记录.\n";
return-1;
块
该模块功能应体现为显示全部的图书信息。
流程图如下图7:
图7显示模块流程图
相关程序如下:
intbook_showvoid
intn,i1;
system"cls";
forn0;n100;n++
ifstrlenbooks[n].name!
0
printf"序号:
%d\t",books[n].id;
printf"书名:
%s\t",books[n].name;
printf"作者:
%s\t",books[n].author;
printf"出版社:
%s\t",books[n].publish;
printf"存数:
%d\t",books[n].store;
printf"总数:
%d\n",books[n].total;
i0;
ifi1
printf"\n没有找到相关记录.\n";
return-1;
块
该模块功能应体现为用户输入图书序号,若有书则要求输入账号。
流程图如下图8:
图8借书模块流程图
相关程序如下:
voidbook_outvoid
intn,s,l,d;
system"cls";
page_title"借阅图书";
ifnsearch_book!
-1&&books[n].store0
printf"请输入借书证序号:
";
scanf"%d",&s;
printf"请输入可借天数:
";
scanf"%d",&d;
forl0;l10;l++
ifbooks[n].usr[l]0
books[n].usr[l]s;
books[n].days[l]d;
break;
books[n].store--;
ifn!
-1&&books[n].store0printf"此书已经全部借出.\n";
return_confirm;
块
该模块功能应体现为方便用户归还图书。
归还模块主要的对书籍的数量进行更新,为下一位借阅的用户提供了借阅的可能性,由于计算机无法准确的识别书籍的破损程度,所以破损程度有图书管理员决定,并且应该制定相应的赔偿条款。
流程图如下图9:
图9归还图书模块
相关程序如下:
voidbook_invoid
intn,s,l;
page_title"归还图书";
ifnsearch_book!
-1&&books[n].storebooks[n].total
printf"借阅者图书证列表:
\n";
forl0;l10;l++
ifbooks[n].usr[l]!
0
printf"[%d]-%d天\n",books[n].usr[l],books[n].days[l];
printf"请输入借书证序号:
";
scanf"%d",&s;
forl0;l10;l++
ifbooks[n].usr[l]s
books[n].usr[l]0;
books[n].days[l]0;
break;
books[n].store++;
ifn!
-1&&books[n].storebooks[n].total
printf"全部入藏.\n";
return_confirm;
数
定义结构体:
structBOOK
intid,usr[10],total,store,days[10],zt;
charname[31],author[21];
books[100];
voidpage_titlechar*menu_item
printf"\t\t\t************欢迎使用图书馆管理系统**********\n\n-%s-\n\n",menu_item;
voidreturn_confirmvoid
printf"\n按任意键返回……\n";
getch;
用一组简单的数据对程序进行调试各函数有出错现象然后用复杂数据对程序进行调试
数据测试时程序错误,要首先找到出错的函数对函数中各个变量进行观察,有时变量很多循环多重不要急对各个数据的观察对程序的调试有很大的帮助你也可以先对几个变量熟悉后,在多重循环里,确定正确的数据将其跳过调试对有疑问的数据循环进行仔细观察虽然这是比较省力气的活但对复杂的数据错误并不是很有效所以仔细观察每个数据的变化对调试的成功与否有决定性作用
测试时根本的错误并不一定在运行错误的函数内或许在前面的函数内已经奠定了这些错误数据的基础需要反过头来对所有的的函数进行一项项的调试!
从程序运行的第一个函数开始调试按照程序运行的步骤下去一个个的确定函数的正确性每确定一个函数在以后的调试中可以减少对该函数的调试次数,或者直接跳到下一个函数所谓的各个击破便是如此对头文件中的各个函数的返回值和它所要传入的参变量及其功能更是需要注意调试时,需要对错误缩小范围,从整个程序到指定函数,再到指定区域,再到指定行,在对程序缩小范围或对编译没通过的程序缩小错误范围时可以用"/**/"来进行调试,确定正常范围,缩小错误范围
图10主界面
观察各个界面的实际效果,注册新书的界面如图11所示
图11新书注册
借阅界面如图12所示
图12图书借阅
归还界面如图13所示
图13图书归还
查询界面如图14所示
图14图书查询
修改界面如图15所示
图15修改图书
删除界面如图16所示
图16删除界面
结论
经过以上各章节的,已经完成了图书馆管理系统的开发,图书馆系统是一套实用性非常强的系统,从小学、中学直到大学,很多人一直与图书馆打交道,图书馆的发展从手工管理、手工管理和计算机管理并行,直到现在的完全计算机管理。
图书馆管理系统不仅需要灵活的交互功能,还需要经常与数据库进行联系,要求具有操作简单和功能强大的数据库访问能力。
界面尽量美观友好、多彩多姿,完全的图形化设计,操作者易于上手,同时多种媒体技术的集成利用,可以方便的完成用户乐于接受的各种界面设计。
[4]高维春.C语言程序设计项目教程.北京:
人民邮电出版社,2010[5]魏海新,李燕主编.C语言程序设计实用教程.北京:
机械工业
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 语言 图书 管理 系统 毕业设计 论文