欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于C语言的图书管理系统程序设计(共29页).doc

    • 资源ID:5262883       资源大小:290.50KB        全文页数:30页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于C语言的图书管理系统程序设计(共29页).doc

    精选优质文档-倾情为你奉上四川师范大学成都学院信号分析与处理基于C语言的图书管理系统程序设计 学生姓名x学 号x所在学院x专业名称x班 级xx班指导教师x成 绩 x学院二一四年十二月专心-专注-专业课程设计任务书学生姓名xx学生学号x学生专业x学生班级x指导教师x职 称xx发题日期 2014 年 10 月 23 日完成日期 2014 年 11 月 15 日设计题目基于C语言的图书管理系统程序设计设计目的:1、 初步了解软件开发的一般方法和步骤;2、 提高学生用C语言进行文件操作和绘图应用的编程技术水平;3、提高撰写技术文档的能力。具体任务及要求:任务:利用C语言的文件操作能力设计开发一个图书管理系统,实现对新进图书基本信息的输入、图书基本信息的查询、对撤消图书信息的删除、为借书人办理注册、办理借书手续、办理还书手续等。 要求:1、 必须有完整程序及必要的解释说明;2、 必须有运行结果;3、写出设计课程设计报告。课程设计进度安排:序号内容安排时间1阅读题目并分析课题内容,提前安排进度10.2210.232查找资料,并与同学讨论课题要求10.2510.283通过软件实现课题要求,完成各个模块11.111.34完成所有的课题,并与同学分享,相互检验11.411.65完成实验报告,交老师检查11.101112课程设计参考文献:1 谭浩强C语言程序设计教程清华大学出版社,2005,7:161-1662 苏小红C语言大学使用教程电子工业出版社,2004,7:89-923 王敬华,林萍,张维语言程序设计M北京:清华大学出版社,2003.44 朱三元计算机应用与软件J,2004(02):18-20指导教师签字院长审核签字基于C语言的图书管理系统程序设计内容摘要:人类已经跨入了新世纪,正在进入信息化时代。信息化浪潮、网络革命在给社会来冲击的同时,也使图书馆业务受到了强烈的冲击,图书馆传统的管理和服务方式已不能适应读者对日益增长的文献信息的需求。随着馆藏量的不断增加,图书资料的录入和查询的难度也就相应增加,数据处理手工操作,工作量大,出错率高,出错后不易更改的手工方式,已经不能满足要求。基于此问题,建立一个规范化,系统化,程序化的图书管理系统迫不急待。为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特编写程序以提高图书馆的管理效率。使用程序之后,工作人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,以便全面掌握图书的流通情况等等。关键词:语言 图书管理 数据处理 信息技术The books management system based on C language program designAbstract:Mankind has entered the new century, which is entering the information age. Wave of information technology, the network revolution has brought about the impact, but also make the library service has been badly hit,and library management and services of traditional methods can not meet the growing literature on the information the reader needs. With the continuous increase in the collections, books, data entry and also a corresponding increase in the difficulty of queries, data processing manual operation, heavy workload, error rate, error is not easy to change after the manual mode can no longer meet the requirements.Based on this problem, the establishment of a standardized, systematic, process-oriented library management system can not wait. For the convenience of library books, readers information, such as borrowing and returning books for efficient management, especially the preparation of the management procedures to enhance the efficiency of the library. After using the program, staff can search for certain readers, borrow some books, can also borrow books on the current situation of some statistics in order to fully grasp the flow of books.Key words:C language, Library Management, Data Processing, Information Technology.目 录基于C语言的图书管理系统程序设计前 言图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。图书馆数据处理工作量大,容易出错,由于数据繁多,容易丢失,且不易查找。为了使图书借阅管理系统既能够提高工作效率,又可以提高工作水平。我使用visual C6.0作为开发工具,设计了一个可以实现图书增删改查、借书还书的一个图书借阅管理系统。1 本课题的开发背景随着社会信息量的与日俱增,作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件。计算机网络近年来获得飞速的发展,十年前,很少有人接触过网络。如今,计算机网络已经成为我们社会结构的一个基本组成部分。网络已被应用到人类生活的各个方面,人们通过网络通信,共享资源,网上超市、电子银行等也应运而生,各种提供不同特色,不同内容的网站如雨后春笋般涌现。计算机网络的发展为人们打开了一种新的视野,促成了一个新领域新产业的产生。网络的发展试图用一种全新的概念冲击各个传统的商业模式,改变人们的生活方式。新的需求产生了,人们想通过网络进行个人通信、媒体传播、商业运作、办公、教学等。总之网络技术的发展促进了社会经济结构的变革。反之,社会经济对网络发展提出的新的需求又大大的促进了网络的发展,计算机网络及其所涉及的一系列技术成为计算机领域新的研究热点。在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件。该软件采用功能强大的数据库软件开发工具进行开发,具有很好的可移植性,可在应用范围较广的WINDOWS系列等操作系统上使用。除此以外,图书馆管理系统已成为方便了广大师生、学校与外界之间的沟通架起了一座桥梁。但是,这并不能满足目前师生的需要。比如一些特定的需要要,在管理方面特别不方便,因为它受到地域的限制太大。就目前情况而言,急需充分利用网络方式的图书管理。我们的网络图书馆管理系统就是为了解决这问题而设计的。经过分析,我们使用microsoft公司的visual C开发工具。利用其提供的各种面向对象的开发工具能方便而简洁建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。1.1本课题要达到的设计目标本系统可以实现以下功能:l 系统以菜单方式工作;vl 图书信息录入功能(图书信息用文件保存);l 图书信息浏览功能;l 查询功能;l 图书信息的删除与修改;l 办理借书手续;l 办理还书手续等等;l 退出程序。2系统设计本图书管理系统包含8个模块:借书模块、还书模块、新书入库模块、注销书模块、查询图书信息模块、查询作者信息模块、排序模块、退出模块。2.1开发技术及工具本系统是以Windows XP/7为环境,VC+6.0为应用程序,主要以C语言为编程语言完成代码的编写。VC+6.0是微软公司推出的开发Win32应用程序(Windows 95/98/2000/XP/NT)的、面向对象的可视化集成工具。它的最大优点就是提供了功能强大的MFC类库,MFC是一个很大的C+类层次结构,其中封装了大量的类及其函数,很多Windows程序所共有的标准内容可以由MFC的类来提供,MFC类为这些内容提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓,这将简化编程工作,大大的减少程序员编写的代码数量,使编程工作变得更加轻松容易。C语言是最基本的编程语言,其有以下优点:l 数据结构丰富。C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。 l C是结构式语言。 结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 l C语法限制不太严格,程序设计自由度大。虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。 l C语言允许直接访问物理地址,可以直接对硬件进行操作。由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。 2.2系统功能模块主函数是程序入口,采用模块化设计。首先在主程序中调出欢迎界面,定义一些必要变量,作一无限循环程序,循环体为一开关语句,该语句设置一个断点,其条件值是通过调用主菜单函数得到的返回值,根据该值,调用相应的功能函数,同时设置一个断点,当返回值为一定条件时结束程序。图2.1 总体结构图2.3系统主要流程分析开始输要归还图书编号(定义为:id)检查输入的编号是否为库存的书。且还书数量与当前库存量和是否大于总库存 否 是输入借阅的图书以及相应信息总库存减借出数量是否大于0 否 是结束图2.2 增加图书2.3.1 借书该模块是对借阅图书进行相应操作。运用if语句进行判断选择,看目录中试否有该书信息,有则根据提示进行相应操作。运用while循环判当借书的数量是否大于库存量时,大于则要求再次输入,直至输入达到要求为止。void book_out(void) int n,s,l,d,x; .if(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.3.2 还书该模块是对归还图书进行相应操作。运用if语句进行判断选择,看目录中试否有该书信息,有则根据提示进行相应操作。运用while循环判归还图书的数量是否大于库存量与现存量之差,大于则要求再次输入,直至输入达到要求为止。void book_in(void) int n,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.daysl=0; break; booksn.store=booksn.store+x; if(n!=-1&&booksn.store=booksn.total) .;2.3.3 新书入库该模块是把新进图书进行入库处理,可输入图书的一些基本信息。例如:书号、书名、作者、现存量和库存量。 int book_add(void) char c; int n; . for(n=0;n<100;n+) if(booksn.id=0) break;图书的信息录入。 booksn.store=booksn.total; return_confirm(); c=getchar(); return n;2.3.4 注销书该部分是图书目录中已有图书进行注销处理,删除该书在目录中的各种信息。 void book_del(void) int n; . if(n=search_book()!=-1) booksn.id=0; printf("该书已注销.n"); . 2.3.5 排序对输入图书的编号进行升序排列。当图书目录为空时,显示“库存中无此书”。运用双层循环,i和j比较,i为0为止图书书号,j为i的下一个图书书号,当i书号大于j书号。运用第三变量进行交换,例如:a=b;b=c;c=a;。 void paixu(void) /*排序*/ char t210; char t310; int t4; int t5; int t, i,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,booksi.name);strcpy(t3,booksi.author);t4=booksi.total;t5=booksi.store;booksi.id=booksj.id;strcpy(booksi.name,booksj.name);strcpy(booksi.author,booksj.author);booksi.total=booksj.total;booksi.store=booksj.store;booksj.id=t;strcpy(booksj.name,t2);strcpy(booksj.author,t3);booksj.total=t4;booksj.store=t5; printf("恭喜你排序成功!n");for(i=0;i<100;i+) if (booksi.id!=0) 打印图书信息.;2.3.6 查询图书信息该模块是对指定图书编号进行查询。当输入一需查询图书书号后,在图书目录中进行查询,用if判断是否有此书。有则打印该书信息。无则打印“图书书号不存在”。int book_reader(void) system("cls");int n,i; printf("请输入图书序号:"); scanf("%d",&i); for(n=0;n<100;n+) if(booksn.id=i) .打印图书信息。return n; printf("n输入有错或图书序号不存在!n"); return -1; 2.3.7查询作者信息当选择该模块后,输入要查询的作者信息后,会打印出该作者所著的所有书籍。用strmp进行字符串比较,当strmp=0时,查找到该作者,打印信息。int book_writer(void) int n; char writer20,c;作者信息的输入。for(n=0;n<100;n+) if(strcmp(writer,booksn.author)=0) 打印图书信息 . 3系统实现 系统共定义了三个结构体类型,包括会员类型、图书类型和借书卡类型。在此系统中应用了结构体,基本的指针运用,基本的循环语句,函数的调用,switch语句,文件保存,fwrite函数等来实现的。 图3.1 主菜单 3.1新书入库 序号:02 书名:语文 作者:asd 数量:50 01 书名:数学 作者:qwe 数量:20 图3.2 新书入库3.2排序序号:01 书名:数学 作者:qwe 数量:20序号:02 书名:语文 作者:asd 数量:50图3.3 排序3.3查询图书信息请输入图书序号: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(全部入藏。这是可以进行图书查询检查是否全部入藏)图3.7 还书3.7注销书请输入图书序号:02书名:语文 作者:asd 数量:50该书已注销!这是可进行图书查询检测是否已经注销) 图3.8注销书4 结束语 通过这次设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。 在实习过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把这种精神带到生活中,不畏艰难,勇往直前!附 录附录1:系统共定义了一个图书类型结构体,定义如下:struct book/定义图书类型结构体 int booknum; /图书号char bookname20; /图书名float bookprice;/图书价格int store;/库存量char bookcreat20; /作者book1000; /定义一个比较大的1000本书附录2:图书信息管理模块的函数定义/=/ 功能:从键盘输入一本图书的全部信息/ 参数:i表示对第i本图书进行输入操作/ 返回:return/ 主要思路:先进入panduan函数,判断书号是否重复,如果重复就重新输入。按提示信息用scanf输入图书的各项信息, 定义指向文件的指针变量fp,使其指向“book.txt”并以追加的方式打开文件,依次从键盘读入图书的各个信息,写入文件,然后关闭文件。附录3:struct BOOK int id,total,store; char name30,author20,usr10,days10; books100;/*结构体,存放书籍及借书信息。*/ void page_title(char *menu_item) printf("t >>> 欢 迎 进 入 图 书 管 理 系 统-请 按 要 求 操 作 <<<nn- %s -nn",menu_item); /*页头函数,可以通过参数menu_item,显示当前状态。*/ void return_confirm(void) printf("n任意键返回n"); getch(); /*返回前请求确认函数,方便返回前观察结果*/ int search_book(void) int n,i; printf("请输入图书序号:"); getch(); scanf("%d",&i); for(n=0;n<100;n+) if(booksn.id=i) printf("书名:%sn",booksn.name); printf("作者:%sn",booksn.author); printf("存数:%dn",booksn.store); printf("总数:%dn",booksn.total); return n; printf("n输入有错或图书序号不存在.n"); return -1; /*上面是在数组中找到图书号匹配的记录,显示其信息并返 回数组下标,如果找不到相应记录则提示错误并返回-1。*/ void book_out(void) int n,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("%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_confirm(); /*借书的函数,首先调用找书函数*/ int book_reader(void) int n,i;system("cls"); printf("请输入图书序号:"); scanf("%d",&i); for(n=0;n<100;n+) if(booksn.id=i) printf("书名:%sn",booksn.name); printf("作者:%sn",booksn.author); printf("存数:%dn",booksn.store); printf("总数:%dn",booksn.total); return n; printf("n输入有错或图书序号不存在!n"); return -1; int book_writer(void) int n; char writer20;char c;system("cls");printf("请输入作者姓名:"); scanf("%s",writer); c=getchar();for(n=0;n<100;n+) if(strcmp(writer,booksn.author)=0) printf("书名:%s",booksn.name); printf("作者:%s",booksn.author); printf("存数:%d",booksn.store); printf("总数:%dn",booksn.total); return n;getch();printf("n输入有错或作者不存在.n"); return -1; void book_in(void) int n,s,l,x; system("cls"); page_title("还书"); if(n=search_book()!=-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); while(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_confirm(); int book_add(void) char c; int n; system("cls"); page_title("新书入库"); for(n=0;n<100;n+) if(booksn.id=0) break; printf("序号:"); scanf("%d",&booksn.id); printf("书名:"); scanf("%s",&booksn.name); printf("作者:"); scanf("%s",&booksn.author); printf("数量:"); scanf("%d",&booksn.total); booksn.store=booksn.total; return_confirm(); c=getchar(); return n; void paixu(void) /*排序*/ char t210; char t310; int t4; int t5; int t, i,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,booksi.name);strcpy(t3,booksi.author);t4=booksi.total;t5=booksi.store; booksi.id=booksj.id; strcpy(booksi.name,booksj.name);strcpy(booksi.author,booksj.author);booksi.total=booksj.total;booksi.store=booksj.store;booksj.id=t; strcpy(booksj.name,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",booksi.name); printf("作者:%s",booksi.author); printf("存数:%d",booksi.store); printf("总数:%dn",booksi.total);return_confirm(); void book_del(void) int n; page_title("注销书"); if(n=search_book()!=-1) booksn.id=0; printf("该书已注销.n"); return_confirm(); void main(void) while (1) menu: page_title("操作选择单子"); printf("请按以上要求选择操作nn"); printf("ntt*>>>-1 借书-<<<*n"); printf("ntt*>>>-2 还书-<<<*n"); printf("ntt*>>>-3 新书入库-<<<*n"); printf("ntt*>>>-4 注销书-<<<*n"); printf("ntt*>>>-5 查询图书信息-<<<*n");pr

    注意事项

    本文(基于C语言的图书管理系统程序设计(共29页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开