c语言图书管理系统设计说明书.doc_第1页
c语言图书管理系统设计说明书.doc_第2页
c语言图书管理系统设计说明书.doc_第3页
c语言图书管理系统设计说明书.doc_第4页
c语言图书管理系统设计说明书.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

摘 要图书借阅管理系统产生的主要目的是解决一些实际问题,用来方便和准确的管理图书和会员的各项纪录,使得图书信息的管理既方便又完备。它的产生和发展给图书馆管理带来了巨大的便捷。计算机今后将会应用在各个领域,所以,完善的图书借阅管理程序是很有必要的。它在管理的过程中,对一些数据的存储和计算是相当方便,当然它的准确性很高几乎为无误。图书借阅管理程序的操作也是相当方便和快捷的,并且所用的人力也是相当少的。下面就此课题介绍一下图书借阅管理系统的功能:系统的设计我们主要分为八大块:图书添加、图书查询、图书删除、会员借书、会员还书、会员注册、会员注销。会员借书,还书是按照会员的姓名来实现的,图书的查询,删除是运用比较函数来实现的。 在此系统中应用了结构体,动态链表,基本的指针运用,基本的循环语句,函数的调用,Switch语句等来实现的。关键词 图书管理系统、c语言、图书添加、图书删除、会员添加 Abstract The main purpose of the library management system is to solve some practical problems, the record for convenient and accuratemanagement of books and member, the book informationmanagement more convenient and complete. Its emergence and development for library management has brought enormousconvenient. The computer will be used in various fields, therefore,the library management process improvement is necessary. It is in the management process, the storage and computational data isquite convenient, of course its very high accuracy is almostcorrect. Book lending management program operation is quite convenient and quick, and the human is considerably less.This paper introduce the book lending management system:system design we mainly divided into eight parts: the library to add, query, delete books books, books, books, Member MemberMember registration, member registration. Membership library,books are in accordance with the members name to achieve,book query, delete is the use of more functions to achieve.The structure, application of this system in dynamic linked list, thepointer loop basic, basic, function calls, the Switch statement to achieve.Keywords Library management system、C、The library to add、Book delete、Add member目 录1.概述早期的操作系统等系统软件主要是用汇编语言编写的(包括 UNIX操作系 统在内)。由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较 差。为了提高可读性和可移植性,最好改用高级语言,但一般的高级语言难以 实现汇编语言的某些功能,人们设想能否找到一种既具有一般高级语言特性 ,又具有低级语言特性的语言,集它们的优点于一身。于是,C语言就在这种情况下应运而生了。C语言是国际上广泛流行的、很有发展前途的计算机高级语言。它适合作为系统描述语言,即可用来编写系统软件,也可用来编写应用软件。C语言是在B语言的基础上发展起来的,经过了1960年的ALGOL60,1963年剑桥大学推出的CPL、BCPL,1970年贝尔实验室简化出的B语言,后衍变出的C语言经多次改进,它的突出优点最终引起人们的广泛关注,至此,C语言便很快风靡全世界,成为世界上应用最广泛的语言之一。2.总体设计2.1 功能介绍图书馆管理系统操作界面添加图书信息函数删除图书信息函数查询图书信息函数会员注册信息函数借书记录信息函数归还记录信息函数会员注销信息函数图书管理包括以下功能:1. 图书添加功能;2. 图书信息查找功能;3. 图书信息删除功能;4. 会员借书功能;5. 会员还书功能;6. 会员注册功能; 7. 会员注销功能2.2 功能说明1图书添加功能是将图书信息存入文件夹中,其中图书信息包括图书名字、图书编号、图书作者、图书价格。2. 图书信息查找功能是将要查找的图书信息通过输入图书名字查找并从文件中提取出来显示。3图书信息删除功能是将无用的图书信息删除4会员借书功能,仅有会员才可以借书,借书之后还会标记该书已借出。5会员还书功能是会员借书之后将书还回并将图书状态改为图书未借出。6会员注册是将会员信息存入文件夹中,会员信息包括会员姓名、会员性别、会员年龄。7会员注销功能是将该会员信息从文件中删除。3.详细设计3.1 界面设计通过printf函数输出“1.添加图书 2.图书查询3.删除图书 4. 会员借书5. 会员还书6. 会员注册7.会员注销8.退出”,再通过scanf函数输入n,最后利用switch(n)函数执行标号为n 的程序。流程图如下图3.1所示利用scanf函数用键盘输入nN=8 利用switch(n)函数执行标号为n 的程序 结束 开始 利用printf函数输出8个功能分别为1.添加图书 2.图书查询3.删除图书 4. 会员借书5. 会员还书6. 会员注册7.会员注销8.退出 开始 利用printf函数输出8个功能分别为1.添加图书 2.图书查询3.删除图书 4. 会员借书5. 会员还书6. 会员注册7.会员注销8.退出 图3.1 界面管理流程3.2 图书添加功能设计添加图书功能,先输入会员姓名,如果不是会员,此系统为了使用更加方便快捷,要求您先注册会员,然后进行借书功能。当你已是会员时,输入会员姓名,再输入想要借阅的图书名称,就可以实现借阅图书这一功能,我运用了指针、数组、链表等基本操作完成了这一功能的操作。流程图如下图3.2所示 定义指向文件的指针 定义结构体 文件为空以追加的方式打开文件是否以写的方式打开文件 开始 以读取方式打开结构体输入图书信息图书编号图书价格作者书名 结束 图3.2 图书添加功能流程图3.3 图书查找功能设计 查询功能:查询者在此功能界面输入所查询的图书名称,系统自动按图书的名字进行查询,可以显示图书是否存在、以及图书的详细的信息;该功能的实现主要应用scanf函数实现查询者对查询图书名称的输入。if语句来判断所查询图书是否存在于源文件库中,若存在,则以查找的图书名称为指针,建立该指针到源文件库中的具体指向,最后应用printf函数输出所查询图书的详细信息;若不存在,则显示“该图书不存在”类似字样。流程图如下图3.3所示 结束 开始scanf函数输入图书名称Fp=fopen,打开文件Fp=Null?feof(fp)?Strcmp(查询图书,文件中图书)=0?Printf函数输出图书信息,i+是否继续查找YYYYNNN 图3.3图书查找功能流程图3.4删除图书功能设计按书名进行删除。输入书名后,调用函数,在函数体里利用指针与每一个书名比较,如果相等就说明找到要删除的图书,用后一个覆盖前一个信息来删除图书信息,并用指针调整地址就完成图书信息的删除了。流程图如下图3.4所示输出未找到图书信息关闭文件输出无此信息关闭文件判断为文件最后结点 读入信息输入要删除的图书名判断删除条件删除图书关闭文件 开始 打开文件判断文件为空是是是否否否 图3.4 删除图书功能流程图3.5会员借书功能设计借阅图书功能首先要输入会员姓名,如果不是会员,此系统为了使用更加方便快捷,要求您先注册会员,然后进行借书功能。当你已是会员时,输入会员姓名,再输入想要借阅的图书名称,就可以实现借阅图书这一功能。此功能的实现我运用了指针、数组、链表等基本操作完成了这项功能。流程图如下图3.5所示用if语句判断此图书是否存在用printf函数输出此书已借出用printf函数输出借书成功 结束用scanf函数输入图书名称 开始用scanf函数输入会员姓名用if语句判断是否是会员请注册YNYN 图3.5 会员借书流程图3.6会员还书功能设计归还图书功能:先要求输入图书名,如果还书成功显示还书成功,否则显示还书失败。我运用了指针、数组、链表等基本操作完成了这项功能的操作。流程图如下图3.6所示YN用printf函数输出还书失败返回主界面 结束用scanf函数输入书名用printf函数输出键入书名返回主界面 开始定义指向文件类型的指针*p定义指针类型新结点定义书名和会员名数组用if语句判断文件是否为空用printf函数输出不能打开用if语句判断书名是否匹配将图书信息写入文件用printf函数输出还书成功YN 图3.6 会员还书功能流程图3.7会员注册功能设计用scanf函数键盘输入会员信息姓名、性别、年龄将会员信息写入文件中结 束 开始读入指针类型结构体*pPrintf“请注册会员”定义数组struct member Member要求输入该会员的名字、性别、年龄进行注册,成功注册后就可在图书馆里借阅图书。会员注册可方便图书归还的管理,也方便图书管理人员对被借图书信息的管理及图书归要。在注册会员后即可进行借书的操作了,我们的系统是根据是否是会员来判断能否进行借书,并且借书时按图书的名字进行借阅。并且,如果成功借书,系统还会显示成功借书,使此项操作更加简单明了。会员注册功能主要使用了scanf函数、结构体类型等在另一文件中建立个人信息。流程图如下图3.7所示 图3.7会员注册功能流程图3.8 会员注销功能设计会员注销时通过输入会员姓名在文件中查找到该会员信息后将其删除完成的,删除信息用到链表、指针。流程图如下图3.8所示关闭文件输出未找到信息 开始定义指向文件的指针fp;定义数组struct consultmember Member;定义指向struct consultmember的指针head,p,q将fp指向文件member.txtIf条件句判断fp是否为空将文件放入链表并将指针head,p,q指向链表的头部读链表当fp不为空时,将p赋值给q,并使p指向链表的头部将q的下一个结点作为当前结点当p的下一个结点为空时循环结束关闭文件输入会员姓名将head赋值给p从头部逐个读取,当输入名字和文件中名字相同时删除结点将链表中的数据写入文件中关闭文件打开文件结束 3.8会员注册流程图4.调试分析 打开程序如下图4.1所示界面 图4.1输入1进入图书添加功能如图4.2 图4.2输入2进入图书查询功能如图4.3 图4.3图书查询成功,但是作者显示,查找原因。找到原因,输入6进入会员注册功能输入4进入会员借书功能输入5进入会员还书功能输入7进入会员注销功能5.鸣谢 6. 源程序#include #include dos.h#include conio.h#include stdlib.h#include math.h#include string.hint BookAdd();int BookConsult();int BookDel();int BookBorrow();int BookReturn();int MemberAdd();int MemberDel();int Bookshow();struct consultbook char num20; char name20; float price; char author20; char person20; int yes; struct consultbook *next;struct consultmember char name20; char sex20; int age; struct consultmember *next;int main() int n; int i=1; for(; i;) printf(1:图书添加功能n); printf(2:图书查询功能n); printf(3:删除图书功能n); printf(4:会员借书功能n); printf(5:会员还书功能n); printf(6:会员注册功能n); printf(7:会员注销功能n); printf(8:退出n); printf(请输入所要执行序号n); scanf(%d,&n); switch(n) case 1: BookAdd(); break; case 2: BookConsult(); break; case 3: BookDel(); break; case 4: BookBorrow(); break; case 5: BookReturn(); break; case 6: MemberAdd(); break; case 7: MemberDel(); break; case 8: i=0; return 0;int BookAdd()/*添加图书*/ FILE *fp; struct consultbook Book; fp=fopen(book.txt,r);/*以读取的方式打开文件*/ if(fopen=NULL) fp=fopen(book.txt,w);/*以写的方式打开文件*/ else fclose(fp); fp=fopen(book.txt,ab);/*以追加方式打开文件*/ printf(请输入图书编号:n); scanf(%s, Book.num); printf(请输入书名:n); scanf(%s,B); printf(请输入作者姓名:n); scanf(%s, Book.author); printf(请输入图书价格:n); scanf(%f,& Book.price); Book.yes=1;/*表示图书未出借*/ Book.next=NULL; if(fwrite(&Book,sizeof(struct consultmember),1,fp)!=1) printf(操作出现错误图书信息未保存n); else printf(图书信息已保存n); fclose(fp);/*关闭文件*/ return 1;int BookConsult()/*图书查找*/ FILE *fp; struct consultbook Book; char bookname20;/*定义书名变量*/ int flag=0,i=0; printf(请输入要查找的书名:n); scanf(%s,bookname); fp=fopen(book.txt,r); if(fp=NULL)/*没有找到文件*/ printf(未找到您所需要的书请核实是否有误重新查找); fclose(fp); return -1; else while(!feof(fp)/*feof(fp)为测试文件是否结束的函数*/ fread(&Book,sizeof(struct consultmember),1,fp);/*读取文件*/ if(strcmp(B,bookname)=0)/*两书名字相同*/ printf(图书名为:%sn,B); printf(图书编号为:%sn,Book.num); printf(图书作者为:%sn,Book.author); printf(图书作价格为:%fn,Book.price); printf(图书状态为:%dn,Book.yes); i+;/*i为该书的数目*/ flag=1;/*查找数据标志*/ if(flag=0) printf(未找到您所需要的图书n); return -1; fclose(fp); return 1;int BookDel()/*删除图书录*/ FILE *fp; struct consultbook Book; struct consultbook *head; struct consultbook *p,*q; char bookname20; fp=fopen(book.txt,r);/*读方式打开文件*/ if(fp=NULL)/*没有找到文件*/ printf(未找到图书信息n); fclose(fp); return -1; head=p=q=(struct consultbook*)malloc(sizeof(struct consultbook);/*开辟新的储存空间*/ fread(p,sizeof(struct consultbook),1,fp);/*读第一条信息*/ while(!feof(fp)/*feof(fp)为测试文件是否结束的函数*/ q=p; p=(struct consultbook*)malloc(sizeof(struct consultbook); fread(p,sizeof(Book),1,fp);/*读记录*/ q-next=p;/*新记录插入到链表的尾*/ p-next=NULL;/*已为最后结点*/ fclose(fp); printf(请输入要删除图书的名:n); scanf(%s,bookname); p=head; while(p!=NULL)/*按书名删除图书*/ if(strcmp(p-name,bookname)=0)/*找到药删除的书名*/ if(p=head)/*要删除的图书是第一个结点*/ head=head-next; else q-next=p-next;/*要删除的图书是第一个结点*/ break; q=p; p=p-next;/*指针后移*/ fp=fopen(book.txt,w);/*以写的方式打开文件*/ while(head!=NULL) fwrite(head,sizeof(Book),1,fp);/*写文件*/ head=head-next; fclose(fp); printf(删除成功!n); return 1;int BookBorrow()/*借书*/ FILE *fp; struct consultbook Book; struct consultmember Member; char bookname20,membername20; int flag=0,mflag=0; printf(请输入会员名字:n); scanf(%s,membername); if(fp=fopen(member.txt,r)=NULL)/*未找到文件*/ printf(无信息n); return -1; else while(!feof(fp)/*查找会员信息*/ fread(&Member,sizeof(struct consultmember),1,fp); if(strcmp(M,membername)=0) mflag=1;/*会员标志*/ break; fclose(fp); if(mflag=0) printf(您不是会员请先注册n); return -1; printf(请输入图书名:n); scanf(%s,bookname); if(fp=fopen(book.txt,r+)=NULL) printf(没有找到图书信息n); return -1; while(!feof(fp)/*查询图书资料*/ fread(&Book,sizeof(struct consultbook),1,fp); if(strcmp(B,bookname)=0) if(Book.yes=0)/*图书已借出*/ printf(此书已借出n); break; else Book.yes=0;/*做出借书标记*/ strcpy(Book.person,M);/*登记借书会员*/ fseek(fp,sizeof(struct consultbook),1); fwrite(&Book,sizeof(struct consultbook),1,fp); printf(借书成功n); flag=1; break; if(flag!=1) printf(借书失败n); fclose(fp); return 1;int BookReturn()/*还书*/ FILE *fp; struct consultbook Book; char bookname20; int flag=0; fp=fopen(book.txt,r); if(fp=NULL) printf(未找到文件n); return -1; printf(请输入图书名:n); scanf(%s,bookname); while(!feof(fp)/*查询图书资料*/ fread(&Book,sizeof(struct consultbook),1,fp); if(strcmp(B,bookname)=0) if(Book.yes=0)/*图书已借出*/ Book.yes=1;/*图书未借出*/ strcpy(Book.person, ); fseek(fp,sizeof(struct consultbook),1); fwrite(&Book,sizeof(struct consultbook),1,fp); printf(还书成功n); flag=1; break; if(flag!=1) printf(还书失败n); fclose(fp);int MemberAdd() FILE *fp; struct consultmember Member; fp=fopen(member.txt,r); if(fp=NULL)/*无会员记录*/ fp=fopen(member.txt,w); else/*有会员记录*/ fclose(fp); fp=fopen(member.txt,a);/*追加方式打开*/ printf(请输入会员姓名:n); scanf(%s,M); printf(请输入会员性别:n); scanf(%s,Member.sex); printf(请输入会员年龄:n); scanf(%d,&Member.age); fwrit

温馨提示

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

评论

0/150

提交评论