




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、图书信息管理系统摘 要一直以来人们使用传统的人工方式管理图书馆的日常工作,对于图书馆的借书和还书过程,想必大家都已很熟悉。在计算机尚未在图书馆广泛使用之前,借书和还书过程主要依靠手工。一个最典型的手工处理还书过程就是:读者将要借的书交给工作人员,工作人员将每本书上附带借阅信息。这样借书过程就完成了。还书时,读者将要还的书交给工作人员,工作人员根据图书信息填好相应的还书信息,这样还书过程就完成了。以上所描述的手工过程的不足之处显而易见,首先处理借书、还书业务流程的效率很低,其次处理能力比较低,一段时间内,所能服务的读者人数是有限的。利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。我们
2、将会看到排队等候借书、还书的队伍不再那么长,工作人员出错的概率也小了,读者可以花更多的时间在选择书和看书上。为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特在Turbo C环境下用C语言编写该图书管理系统程序以提高图书馆的管理效率。使用该程序之后,工作人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,以便全面掌握图书的流通情况。关键词:Turbo C、C语言、图书管理系统引言随着社会的快速发展,我们的信息量在不断增加,作为信息存储的主要媒体之一图书,其数量和规模也比以往任何时候都要大很多,因此不论是个人还是图书管理部门都需要使用方便而有效的方式来管理自己的
3、书籍。一直以来人们使用传统的人工方式管理图书馆的日常工作,对于图书馆的借书和还书过程,想必大家都已很熟悉。在计算机尚未在图书馆广泛使用之前,借书和还书过程主要依靠手工。一个最典型的手工处理还书过程就是:读者将要借的书和借阅证交给工作人员,工作人员将每本书上附带的描述书的信息的卡片和读者的借阅证放在一个小格栏里,并在借阅证和每本书贴的借阅条上填写借阅信息。这样借书过程就完成了。还书时,读者将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息,这样还书过程就完成了。以上所描述的手工过程的不足之处显而易见,并且随着计算机的日益普及,对我们个人而言如果采用一套行之有
4、效的图书管理系统利用计算机来管理自己的书籍,会方便许多。图书管理系统是一种基于集中统一规划的数据库数据管理新模式。在对图书、读者的管理,其实是对图书、读者数据的管理。本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。第一章 C语言简介C语言是目前世界上流行、使用最广泛的高级程序设计语言。 C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。 常用的编译软件有Microsoft Visual C
5、+,Borland C+,Watcom C+ ,Borland C+, Borland C+ Builder,Borland C+ 3.1 for DOS,Watcom C+ 11.0 for DOS,GNU DJGPP C+, Lccwin32 C Compiler 3.1,Microsoft C,High C,等等. 1.1 C语言的发展历史 C语言的发展颇为有趣。它的原型ALGOL 60语言。1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。1967年,剑桥大学的Matin Richards 对CPL语言进行了简化
6、,于是产生了BCPL语言。1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。 而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BGPL的第二个字母作为这种语言的名字,这就是C语言。 为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本可移植的C语言编译程序。1978年Brian W.Kernighian和Denni
7、s M.Ritchie出版了名著The C Programming Language,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。1988年,随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准 3.C语言的主要特点 。C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件, 如DBASE PLUS、DBASE 都是由C 语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的
8、优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。 1.2 C语言的特点(1). 简洁紧凑、灵活方便 C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。(2). 运算符丰富 C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。(3). 数据结构丰富C的数据类型
9、有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。 (4). C是结构式语言 结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 (5.) C语法限制不太严格、程序设计自由度大 一般的高级语言语法检查比较严,能够检
10、查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。 (6). C语言允许直接访问物理地址,可以直接对硬件进行操作 因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。(7). C语言程序生成代码质量高,程序执行效率高 一般只比汇编程序生成的目标代码效率低1020%。(8). C语言适用范围大,可移植性好 C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。第二章 Turbo C简介1. Turbo C 简介: Turbo C 是Borland公司开发的
11、一个用于微机的C编译系统,它具有良好的用户界面和丰富的库函数,是目前DOS操作系统下最流行的C语言版本之一。 Turbo C 提供了两种编译环境:集成编译开发环境TC和命令行编译TCC。TC是一个集编辑、编译、连接、调试及运行的集成模块,为用户提供了一个方便的集成开发环境。TCC类似于UNIX系统中的CC命令,是一个传统方式的编译程序。 本软件附带了Turbo C 2.0,此版本目前是全国计算机等级考试二级C、三级数据库、三级网络、三级信息管理、四级上机考试的指定版本。2.启动和退出Turbo C 2.0:(1)启动:假设Turbo C 安装在C盘TC目录下,进入TC目录后,在DOS提示符后键
12、入tc,然后回车即可。如下: C:TCtc (DOS下大小写没有区分)屏幕出现以下画面:屏幕最上边的一行是主菜单行,有File(文件)、Edit(编辑)、Run(运行)、Compile(编译)、Project(工程)、Options(选项)、Debug(调试)、Break/watch(断点/观察)共8个下拉菜单选项。主菜单下面蓝色的区域为编辑区,程序的编写工作就在这里进行,编辑区上面的字符显示编辑状态,其含义如下: Line: 当前光标所在的行号; Col: 当前光标所在的列号; Insert: 编辑器处于插入状态,若不显示此项,则为替换状态。点击键盘 上的insert键可在这两种状态间切换。
13、 Indent: 自动缩进,可以用Ctrl+QI切换。如果Indent不显示,则表明程序文本没有自动缩进功能,程序默认为自动缩进。 Tab : 表示是否能插入Tab键,可用Ctrl+QT切换。若Tab不显示,则表明程序文本中不能插入Tab键。 C:NONAME.C :表示当前正在编辑的文件名和当前盘符。当程序启动时自动搜索当前目录,如果有NONAME.C文件,则自动将其打开,否则以该名建立一个空白文档供我们使用。当然了,程序编写完毕存盘时,我们应该给文件起个合适的名字,那NONAME.C也会相应地发生改变。编辑区下面的MESSAGE为信息区,显示程序编译和连接产生的信息。屏幕最下面一行为常用热
14、键,用户可以使用热键快速完成所需要的操作。操作主菜单的方法有两种:(a) 按F10键将关标移到主菜单行,然后按“-”或“next结 束开 始P=NULL ?1=输出书本信息p=p-next结 束开 始输入修改号码修 改输 出 结 束查找图书 Y N输入模块流程图: 查找模块流程图开 始开 始 输入查找的号码输入图书数目k,head=NULL; P!=NULLK0? N 假 真p-num=num Y Return NULLHead,p1,p2指向新申请的结点,给p1输入数据;I=1; 真 假p-p=next输出查询结果Inext=p1;p2移到表尾:p2=p1; 读取模块 开始I=I+1; 打开
15、文件 文件是否为空P2-next=NULL返回head 是 结 束 否读文件关闭文件删除模块流程图 开 始输入要删除的书号查找要删除的书号删除图书的相关信息结束结束主函数流程图开 始输入选项choiceCase 1 假Case2 真Input_Message();save-message();break; 真 假Case 3Out-message();Break; Y NCase 4Delete_message();Save-message();Break; Y NFind_message();Break;Case 5 Y NCase 6Count_message();Break; Y NCa
16、se7Insert_message();Break; NCase8 Y Resive_message()Break;Break; Y统计模块: 保存模块开始开 始开 始开 始输入choice 打开文件P = =NULL Choice =1 假 Choice =2真假假写文件统计图书总进货量书的数目真真真统计图书总库存量关闭文件退 出P= =NULL 假真结束开始: 插入模块:输入要插入的书号查找要插入的位置 插入 结束第四章 程序设计函数调用:Main() 1:input_message07() /*输入模块*/2:output_message07() /*输出模块*/3inquire_mes
17、sage07() /*查询模块*/4:count_message07() /*统计模块*/5:revise_message07() /*修改模块*/6insert_message07() /*插入模块*/7:delete_message07() /*删除模块*/8:sort_message07() /*排序模块*/#includestdio.h#define N sizeof(struct book07)sort_message07()/*日期结构体类型*/struct date07 int year07; int month07; int day07;/*图书结构体类型*/struct bo
18、ok07 char b_num0710; /*书号*/ char name0720; /*书名*/ char writer0710; /*作者*/ char p_factory0730; /*出版社*/ float price07; /*价格*/ int in_num07; /*进货量*/ int store07; /*库存量*/ struct date07 in_time07; /*进货日期*/ struct book07 *next; /*输出模块*/void output_message07(struct book07 *p) while(p!=NULL) clrscr(); print
19、f(nnnnnn); printf( 书 号:%s,p-b_num07); printf(nn); printf( 书 名:%s,p-name07); printf(nn); printf( 作 者:%s,p-writer07); printf(nn); printf( 出 版 社:%s,p-p_factory07); printf(nn); printf( 价 格:%f,p-price07); printf(nn); printf( 进 货 量:%d,p-in_num07); printf(nn); printf( 库 存 量:%d,p-store07); printf(nn); print
20、f( 进货日期(yyyy-mm-dd):%d%d%d,p-in_time07.year07,p-in_time07.month07,p-in_time07.day07); p=p-next; printf(nn); printf( 请按任意键继续.); bioskey(0); /*输入模块*/struct book07 *input_message07(void) struct book07 *p1,*p2,*head; int i07,k07; float price; int choice; clrscr(); printf(nnnnn 请输入图书种类: ); scanf(%d,&k07)
21、; head=NULL; if(k070) head=p2=p1=(struct book07 *)malloc(N); /*head,p1,p2指向首结点*/ printf( 请输入书号:); scanf(%s,p1-b_num07); printf( 请输入书名:); scanf(%s,p1-name07); printf( 请输入作者:); scanf(%s,p1-writer07); printf( 请输入出版社:); scanf(%s,p1-p_factory07); printf( 请输入价格:); scanf(%f,&price); p1-price07=price; print
22、f( 请输入进货量:); scanf(%d,&p1-in_num07); printf( 请输入库存量:); scanf(%d,&p1-store07); printf( 请输入进货日期(yyyy-mm-dd):); scanf(%d%d%d,&p1-in_time07.year07,&p1-in_time07.month07,&p1-in_time07.day07); for(i07=1;i07b_num07); printf( 请输入书名: ); scanf(%s,p1-name07); printf( 请输入作者:); scanf(%s,p1-writer07); printf( 请输入
23、出版社:); scanf(%s,p1-p_factory07); printf( 请输入价格:); scanf(%f,&price); p1-price07=price; printf( 请输入进货量:); scanf(%d,&p1-in_num07); printf( 请输入库存量:); scanf(%d,&p1-store07); printf( 请输入进货日期(yyyy-mm-dd):); scanf(%d%d%d,&p1-in_time07.year07,&p1-in_time07.month07,&p1-in_time07.day07); p2-next=p1; /*将新结点链接到表
24、尾*/ p2=p1; /*p2指向新的表尾*/ p2-next=NULL; printf( 请按任意键继续.); bioskey(0); return head; /*保存信息*/void save_message07(struct book07 *p) FILE *fp; if(fp=fopen(图书信息管理系统,wb)=NULL) printf(读文件错误!n); return; while(p!=NULL) if(fwrite(p,sizeof(struct book07),1,fp)!=1) printf(写文件错误!n); return; p=p-next; /*读取信息*/void
25、 read_message07(struct book07 *p) FILE *fp; if(fp=fopen(图书信息管理系统.txt,rb)=NULL) printf(nn*暂时还没有任何库存信息,按任意键进入主菜单选择基本信息的输入!*n); return; while(p!=NULL) fread(p,sizeof(struct book07),1,fp); if(p=0) break; else p=p-next;return; /*删除模块*/ int delete_message07(struct book07 *head) char b_num0710; struct book
26、07 *p,*p0; if(*head=NULL) return 0; /* *h就是头指针,空表不能删除返回0*/ printf( 请输入要删除的书号:); scanf(%s,b_num07); printf(n 删除已成功!nn); printf( 请按任意键返回!); bioskey(0); p0=*head; if(strcmp(p0-b_num07,b_num07)=0) /*找到要删除的是第一个结点*/ *head=p0-next; /*修改头指针*/ free(p0); /*释放存储空间*/ return 1; p=p0-next; while(p!=NULL) if(strcmp(p-b_num07,b_num07)=0) /*找到要删除的结点*/ p0-next=p-next; /*后续结点链接到前驱结点之后*/ free(p); return 1; p0=p; p=p-next; return 0; /*插入模块*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 领导科学中的风险管理与应对能力考核试题及答案
- 高效复习Msoffice知识的试题及答案
- 公共供水管网漏损治理项目技术方案
- 2025合同解除终止协议书
- 合肥市包河区2024年九年级《化学》上册期末试题与参考答案
- 港口标准化建设的现状及总体形势
- 《机电一体化设备安装与调试》题库-学习情境八 题库习题及答案
- 2025年康复医疗机构连锁化运营模式下的人力资源优化路径报告
- 快时尚在时尚零售行业中的数字化门店布局报告
- 企业可持续发展目标(SDGs)在绿色物流与供应链管理中的应用报告
- 稿件模板-中国管理科学
- 还款证明协议书范本
- 深邃的世界:西方绘画中的科学学习通超星期末考试答案章节答案2024年
- 练习题:利润表的编制习题及答案
- 高速公路工程投标文件施工组织设计(技术标)
- DB11T 1846-2021 施工现场装配式路面技术规程
- 四川省成都市2020年中考英语真题(含答案)
- 卡西欧手表EFA-120中文使用说明书
- 《十万个为什么》整本书阅读-课件-四年级下册语文(统编版)
- 2024年山东省济南市中考化学试卷( 含答案)
- 超市经营服务方案投标方案(技术标)
评论
0/150
提交评论