基于C语言的图书管理系统程序设计_第1页
基于C语言的图书管理系统程序设计_第2页
基于C语言的图书管理系统程序设计_第3页
基于C语言的图书管理系统程序设计_第4页
基于C语言的图书管理系统程序设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、如文档对你有用,请下载支持!四川师范大学成都学院信号分析与处理基于C语言的图书管理系统程序设计学生姓名匚学号x所在学院匚专业名称x班级xx班指导教师x成绩x学院二。一四年十二月课程设计任务书学生姓名xx学生学号x学生专业x学生班级x指导教师x职称xx发题日期2014年10月23日完成日期2014年11月15日设计题目基于C语言的图书管理系统程序设计设计目的:1、初步了解软件开发的一般方法和步骤;2、提高学生用C谛言进行文件操作和绘图应用的编程技术水平;3、提高撰写技术文档的能力。具体任务及要求:任务:利用C谛言的文件操作能力设计开发一个图书管理系统,实现对新进图书基本信息的输入、图书基本信息的

2、查询、对撤消图书信息的删除、为借书人办理注册、办理借书手续、办理还书手续等。要求:1、必须有完整程序及必要的解释说明;2、必须肩运行结果;3、写出设计课程设计报告。课程设计进度安排:在耳J丁P内容安排时间1阅读题目并分析课题内容,提前安排进度10.2210.232查找资料,并与同学讨论课题要求10.2510.283通过软件实现课题要求,完成各个模块11.111.34完成所有的课题,并与同学分享,相互检验11.411.65完成实验报告,交老师检查11.1011.12课程设文献:1谭浩强.C语言程序设计教程.清华大学出版社,2005,7:161-1662苏小红.C语言大学使用教程.电子工业出版社,

3、2004,7:89-923王敬华,林萍,张维.语言程序设计M.北京:清华大学出版社,2003.44朱三元.计算机应用与软件J,2004(02):18-20指导教师签字院长审核签字如文档对你有用,请下载支持!基于C语言的图书管理系统程序设计内容摘要:人类已经跨入了新世纪,正在进入信息化时代。信息化浪潮、网络革命在给社会来冲击的同时,也使图书馆业务受到了强烈的冲击,图书馆传统的管理和服务方式已不能适应读者对日益增长的文献信息的需求。随着馆藏量的不断增加,图书资料的录入和查询的难度也就相应增加,数据处理手工操作,工作量大,出错率高,出错后不易更改的手工方式,已经不能满足要求。基于此问题,建立一个规范

4、化,系统化,程序化的图书管理系统迫不急待。为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特编写程序以提高图书馆的管理效率。使用程序之后,工作人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,以便全面掌握图书的流通情况等等。关键词:语言图书管理数据处理信息技术ThebooksmanagementsystembasedonClanguageprogramdesignAbstract:Mankindhasenteredthenewcentury,whichisenteringtheinformationage.Waveofinformationtechnolog

5、y,thenetworkrevolutionhasbroughtabouttheimpact,butalsomakethelibraryservicehasbeenbadlyhit,andlibrarymanagementandservicesoftraditionalmethodscannotmeetthegrowingliteratureontheinformationthereaderneeds.Withthecontinuousincreaseinthecollections,books,dataentryandalsoacorrespondingincreaseinthediffic

6、ultyofqueries,dataprocessingmanualoperation,heavyworkload,errorrate,errorisnoteasytochangeafterthemanualmodecannolongermeettherequirements.Basedonthisproblem,theestablishmentofastandardized,systematic,process-orientedlibrarymanagementsystemcannotwait.Fortheconvenienceoflibrarybooks,readersinformatio

7、n,suchasborrowingandreturningbooksforefficientmanagement,especiallythepreparationofthemanagementprocedurestoenhancetheefficiencyofthelibrary.Afterusingtheprogram,staffcansearchforcertainreaders,borrowsomebooks,canalsoborrowbooksonthecurrentsituationofsomestatisticsinordertofullygrasptheflowofbooks.K

8、eywords:Clanguage,LibraryManagement,DataProcessing,InformationTechnology.前言01 本课题的开发背景01.1 本课题要达到的设计目标12 系统设计12.1 开发技术及工具12.2 系统功能模块22.3 系统主要流程分析32.3.1 借书32.3.2 还书32.3.3 新书入库42.3.4 注销书42.3.5 排序52.3.6 查询图书信息52.3.7 查询作者信息63 系统实现63.1 新书入库63.2 排序73.3 查询图书信息73.4 查询作者信息73.5 借书73.6 还书73.7 注销书84 结束语8附录10参考文

9、献20如文档对你有用,请下载支持!基于C语言的图书管理系统程序设计前言图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。图书馆数据处理工作量大,容易出错,由于数据繁多,容易丢失,且不易查找。为了使图书借阅管理系统既能够提高工作效率,又可以提高工作水平。我使用visualC6.0作为开发工具,设计了一个可以实现图书增删改查、借书还书的一个图书借阅管理系统。1 本课题的开发背景随着社会信息量的与日俱增,作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要

10、使用方便而有效的方式来管理自己的书籍。在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件。计算机网络近年来获得飞速的发展,十年前,很少有人接触过网络。如今,计算机网络已经成为我们社会结构的一个基本组成部分。网络已被应用到人类生活的各个方面,人们通过网络通信,共享资源,网上超市、电子银行等也应运而生,各种提供不同特色,不同内容的网站如雨后春笋般涌现。计算机网络的发展为人们打开了一种新的视野,促成了一个新领域新产业的产生。网络的发展试图用一种全新的概

11、念冲击各个传统的商业模式,改变人们的生活方式。新的需求产生了,人们想通过网络进行个人通信、媒体传播、商业运作、办公、教学等。总之网络技术的发展促进了社会经济结构的变革。反之,社会经济对网络发展提出的新的需求又大大的促进了网络的发展,计算机网络及其所涉及的一系列技术成为计算机领域新的研究热点。在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件。该软件采用功能强大的数据库软件开发工具进行开发,具有很好的可移植性,可在应用范围较广的WINDOWS系列等

12、操作系统上使用。除此以外,图书馆管理系统已成为方便了广大师生、学校与外界之间的沟通架起了一座桥梁。但是,这并不能满足目前师生的需要。比如一些特定的需要要,在管理方面特别不方便,因为它受到地域的限制太大。就目前情况而言,急需充分利用网络方式的图书管理。我们的网络图书馆管理系统就是为了解决这问题而设计的。经过分析,我们使用microsoft公司的visualC+开发工具。利用其提供的各种面向对象的开发工具能方便而简洁建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。1.1 本课题要达到的设计目标本系统可以实现以下功能:系统以菜单方式工作;图书信息录入功

13、能(图书信息用文件保存);图书信息浏览功能;查询功能;图书信息的删除与修改;办理借书手续;办理还书手续等等;退出程序。2系统设计本图书管理系统包含8个模块:借书模块、还书模块、新书入库模块、注销书模块、查询图书信息模块、查询作者信息模块、排序模块、退出模块。2.1 开发技术及工具本系统是以WindowsXP/7为环境,VC+6.0为应用程序,主要以C语言为编程语言完成代码的编写。VC+6.0是微软公司推出的开发Win32应用程序(Windows95/98/2000/XP/NT)的、面向对象的可视化集成工具。它的最大优点就是提供了功能强大的MF暖库,MFCg一个很大的C+铁层次结构,其中封装了大

14、量的类及其函数,很多Windows程序所共有的标准内容可以由MFC勺类来提供,MFC1为这些内容提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓,这将简化编程工作,大大的减少程序员编写的代码数量,使编程工作变得更加轻松容易。C语言是最基本的编程语言,具有以下优点:数据结构丰富。C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。C是结构式语言。结构式语言的显

15、著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。C语法限制不太严格,程序设计自由度大。虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。C语言允许直接访问物理地址,可以直接对硬件进行操作。由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可

16、用来写系统软件。2.2 系统功能模块主函数是程序入口,采用模块化设计。首先在主程序中调出欢迎界面,定义一些必要变量,作一无限循环程序,循环体为一开关语句,该语句设置一个断点,其条件值是通过调用主菜单函数得到的返回值,根据该值,调用相应的功能函数,同时设置一个断点,当返回值为一定条件时结束程序。图2.1总体结构图2.3系统主要流程分析该模块是对借阅图书进行相应操作。运用if语句进行判断选择,看目录中试否有该书信息,有则根据提示进行相应操作。运用while循环判当借书的数量是否大于库存量时,大于则要求再次输入,直至输入达到要求为止voidbook_out(void)intn,s,l,d,x;if(

17、n=search_book()!=-1&&booksn.store>0)。输入查询信息部分.while(x>booksn.store).输入信息部分for(l=0;l<10;l+)if(booksn.usrl=0)booksn.usrl=s;booksn.daysl=d;break;booksn.store=booksn.store-x;if(n!=-1&&booksn.store=0)2.2.2 还书该模块是对归还图书进行相应操作。运用if语句进行判断选择,看目录中试否有该书信息,有则根据提示进行相应操作。运用while循环判归还图书的数量是

18、否大于库存量与现存量之差,大于则要求再次输入,直至输入达到要求为止。voidbook_in(void)intn,s,l,x;if(n=search_book()!=-1&&booksn.store<booksn.total)printf("借阅者图书证列表:n");for(l=0;l<10;l+)if(booksn.usrl!=0)输入信息部分while(x>(booksn.total-booksn.store)输入归还信息.for(l=0;l<10;l+)if(booksn.usrl=s)booksn.usrl=0;booksn.d

19、aysl=0;break;booksn.store=booksn.store+x;if(n!=-1&&booksn.store=booksn.total);2.2.3 新书入库该模块是把新进图书进行入库处理,可输入图书的一些基本信息。例如:书号、书名、作者、现存量和库存量。intbook_add(void)charc;intn;for(n=0;n<100;n+)if(booksn.id=0)break;图书的信息录入。booksn.store=booksn.total;return_confirm();c=getchar();returnn;2.2.4 注销书该部分是图书

20、目录中已有图书进行注销处理,删除该书在目录中的各种信息。voidbook_del(void)intn;if(n=search_book()!=-1)booksn.id=0;printf("该书已注销.n");如文档对你有用,请下载支持!2.2.5 排序对输入图书的编号进行升序排列。当图书目录为空时,显示“库存中无此书”运用双层循环,i和j比较,i为0为止图书书号,j为i的下一个图书书号,当i书号大于j书号。运用第三变量进行交换,例如:a=b;b=c;c=a;。voidpaixu(void)/*排序*/chart210;chart310;intt4;intt5;intt,i,

21、j;system("cls");for(i=0;i<100;i+)for(j=i+1;j<100;j+)if(booksi.id>booksj.id)t=booksi.id;strcpy(t2,);strcpy(t3,booksi.author);t4=booksi.total;t5=booksi.store;booksi.id=booksj.id;strcpy(,);strcpy(booksi.author,booksj.author);booksi.total=booksj.total;

22、booksi.store=booksj.store;booksj.id=t;strcpy(,t2);strcpy(booksj.author,t3);booksj.total=t4;booksj.store=t5;printf("恭喜你排序成功!n");for(i=0;i<100;i+)if(booksi.id!=0)打印图书信息.;2.2.6 查询图书信息该模块是对指定图书编号进行查询。当输入一需查询图书书号后,在图书目录中进行查询,用if判断是否有此书。有则打印该书信息。无则打印“图书书号不存在”。如文档对你有用,请下载支持!intbook_

23、reader(void)system("cls");intn,i;printf("请输入图书序号:");scanf("%d",&i);for(n=0;n<100;n+)if(booksn.id=i)打印图书信息。returnn;printf("n输入有错或图书序号不存在!n");return-1;2.2.7 查询作者信息当选择该模块后,输入要查询的作者信息后,会打印出该作者所著的所有书籍。用strmp进行字符串比较,当strmp=0时,查找到该作者,打印信息。intbook_writer(void)i

24、ntn;charwriter20,c;作者信息的输入。for(n=0;n<100;n+)if(strcmp(writer,booksn.author)=0)打印图书信息3系统实现系统共定义了三个结构体类型,包括会员类型、图书类型和借书卡类型。在此系统中应用了结构体,基本的指针运用,基本的循环语句,函数的调用,switch语句,文件保存,fwrite函数等来实现的。图3.1主菜单3.1 新书入库序号:02书名:语文作者:asd数量:5001书名:数学作者:qwe数量:203.2 排序序号:01书名:数学作者:qwe数量:20序号:02书名:语文作者:asd数量:50图3.3排序3.3 查询

25、图书信息请输入图书序号:01书名:数学作者:qwe数量:20图3.4查询图书信息3.4 查询作者信息请输入作者姓名:asd书名:语文作者:asd数量:50图3.5查询作者信息3.5 借书请输入图书序号:01书名:数学作者:qwe存数:20总数:20请输入借书证序号(图书证):01请输入可借天数:3请输入要借数量:10(当输入值超过总数会提示重新输入)(这时候可以进行查询图书现存量检测是否已借出)图3.6借书3.6还书如文档对你有用,请下载支持!请输入图书序号:01书名:数学作者:qwe存数:10总数:20请输入借书证序号(图书证):01请输入所还数量:10(全部入臧。这是可以进行图书查询检查是

26、否全部入臧)图3.7还书3.7 注销书请输入图书序号:02书名:语文作者:asd数量:50该书已注销!这是可进行图书查询检测是否已经注销)图3.8注销书4结束语通过这次设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后

27、在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。在实习过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把这种精神带到生活中,不畏艰难,勇往直前!附录附录1:系统共定义了一个图书类型结构体,定义如下:structbook/定义图书类型结构体intbooknum;/图书号charbookname20;/图书名floatbookprice;/图书价格intstore;/库存量charbookcreat20;/作者book1000;/定义一个比较

28、大的1000本书附录2:图书信息管理模块的函数定义/=/功能:从键盘输入一本图书的全部信息/参数:i表示对第i本图书进行输入操作/返回:return/主要思路:先进入panduan函数,判断书号是否重复,如果重复就重新输入。按提示信息用scanf输入图书的各项信息,定义指向文件的指针变量fp,使其指向“book.txt”并以追加的方式打开文件,依次从键盘读入图书的各个信息,写入文件,然后关闭文件。附录3:structBOOKintid,total,store;charname30,author20,usr10,days10;books100;/*结构体,存放书籍及借书信息。*/voidpage

29、_title(char*menu_item)printf("t>>>欢迎进入图书管理系统-请按要求操作<<<nn-%s-nn",menu_item);/*页头函数,可以通过参数menujtem,显示当前状态。*/voidreturn_confirm(void)printf("n任意键返回n");getch();/*返回前请求确认函数,方便返回前观察结果*/intsearch_book(void)intn,i;printf("请输入图书序号:");getch();scanf("%d"

30、;,&i);for(n=0;n<100;n+)if(booksn.id=i)printf("书名:%sn",);printf("作者:%sn",booksn.author);printf("存数:%dn",booksn.store);printf("总数:%dn",booksn.total);returnn;printf("n输入有错或图书序号不存在.n");return-1;/*上面是在数组中找到图书号匹配的记录,显示其信息并返回数组下标,如果找不到相应记录

31、则提示错误并返回-1。*/voidbook_out(void)intn,s,l,d,x;system("cls");page_title("借书");if(n=search_book()!=-1&&booksn.store>0)printf("请输入借书证序号:");scanf("%d",&s);printf("请输入可借天数:");scanf("%d",&d);printf("请输入要借数量:");scanf(&qu

32、ot;%d",&x);while(x>booksn.store)printf("输入错误");printf("请输入要借数量:");scanf("%d",&x);for(l=0;l<10;l+)if(booksn.usrl=0)booksn.usrl=s;booksn.daysl=d;break;booksn.store=booksn.store-x;if(n!=-1&&booksn.store=0)printf("此书已经全部借出.n");return_con

33、firm();/*借书的函数,首先调用找书函数*/intbook_reader(void)intn,i;system("cls");printf("请输入图书序号:");scanf("%d",&i);for(n=0;n<100;n+)if(booksn.id=i)printf("书名:%sn",);printf("作者:%sn",booksn.author);printf("存数:%dn",booksn.store);printf(&quo

34、t;总数:%dn",booksn.total);returnn;printf("n输入有错或图书序号不存在!n");return-1;intbook_writer(void)intn;charwriter20;如文档对你有用,请下载支持!charc;system("cls");printf("请输入作者姓名:");scanf("%s",writer);c=getchar();for(n=0;n<100;n+)if(strcmp(writer,booksn.author)=0)printf("

35、;书名:%s",);printf("作者:%s",booksn.author);printf("存数:%d",booksn.store);printf("总数:%dn",booksn.total);returnn;getch();printf("n输入有错或作者不存在.n");return-1;voidbook_in(void)intn,s,l,x;system("cls");page_title("还书");if(n=search_book(

36、)!=-1&&booksn.store<booksn.total)printf("借阅者图书证列表:n");for(l=0;l<10;l+)if (booksn.usrl!=0)如文档对你有用,请下载支持!printf("%d-%d天n",booksn.usrl,booksn.daysl);printf("请输入借书证序号:");scanf("%d",&s);printf("请输入要还数量:");scanf("%d",&x);whi

37、le(x>(booksn.total-booksn.store)printf("输入错误");printf("请输入要还数量:");scanf("%d",&x);for(l=0;l<10;l+)if(booksn.usrl=s)booksn.usrl=0;booksn.daysl=0;break;booksn.store=booksn.store+x;if(n!=-1&&booksn.store=booksn.total)printf("全部入藏.n");return_confi

38、rm();intbook_add(void)charc;intn;system("cls");page_title("新书入库");for(n=0;n<100;n+)if(booksn.id=0)break;printf("序号:");scanf("%d",&booksn.id);printf("书名:");scanf("%s",&);printf("作者:");scanf("%s",&

39、;booksn.author);printf("数量:");scanf("%d",&booksn.total);booksn.store=booksn.total;return_confirm();c=getchar();returnn;voidpaixu(void)/*排序*/chart210;chart310;intt4;intt5;intt,i,j;system("cls");for(i=0;i<100;i+)for(j=i+1;j<100;j+)if(booksi.id>booksj.id)t=boo

40、ksi.id;strcpy(t2,);strcpy(t3,booksi.author);t4=booksi.total;t5=booksi.store;booksi.id=booksj.id;strcpy(,);strcpy(booksi.author,booksj.author);booksi.total=booksj.total;booksi.store=booksj.store;booksj.id=t;strcpy(,t2);strcpy(booksj.author,t3);booksj.total=t4;booksj.store=t5;printf("恭喜你排序成功!n");for(i=0;i<100;i+)if(booksi.id!=0)printf("书号:%d",booksi.id);printf("书名:%s",);printf("作者:%s",booksi.author);print

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论