高级语言课程设计报告图书管理系统C_第1页
高级语言课程设计报告图书管理系统C_第2页
高级语言课程设计报告图书管理系统C_第3页
高级语言课程设计报告图书管理系统C_第4页
高级语言课程设计报告图书管理系统C_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、 * * * * * * (计算机学院)高级语言课程设计报告题 目: 图书管理系统 专业名称: 计算机科学与技术班 级: 1404班 学生姓名: *学号(8位): *指导教师: 设计起止时间:2015年6月24日2015年7月3日一. 设计目的 1、对学习一年的c语言进行检验,并且熟悉链表、指针、文件的操作。 2、强化上机动手能力。 3、提高对问题的分析能力。二. 设计内容 建立一个图书管理系统,主要应用了链表、指针和文件等。三概要设计1功能模块图;2各个模块详细的功能描述。 新书入库:书库没有书的情况下,输入多本书的信息;有书的情况下,添加一本书; 增新读者:没有读者的情况下,输入多个读者;

2、有读者的情况下,添加一个读者; 查询图书/读者:选择要查询的选项,图书可以按书名进行精确查询或者模糊查询,读者按人名进行精确查询; 借书登记:登记要借书的读者和书名,每读者限借三本书,登记后书的现存量减一; 还书管理:登记要还书的读者和书名,还书后书的现存量加一; 关于系统:关于系统的解释; 旧书出库:输入书名,删除图书; 注销读者:输入读者姓名,删除读者; 输出全部信息:输出全部信息; 库存不足图书:输出现存量小于等于3 的图书; 退出系统。四详细设计。main()main1 功能函数的调用关系图read()Read()about()Create_Book()Create_Reader()I

3、nsert_Book()Insert_Reader()Print _Book()Del_Oldbook()Del_Oldreader()Find()Print_Reader()Not_enough()find()Borrow_Book()Return_Book()write()Write()2 各功能函数的数据流程图 (1) 、Read()-读文件函数; 开始 以r的方式打开文件book.txtfp_b=NULL新建book.txt文件 是 否!feof(fp_b) 否 是 k=-1 否 是将文件的内容写入链表 结束(2) 、read()函数的流程图同理。(3) 、Create_Book()-

4、创建链表的函数。 开始 输入第一本书的信息pnew-num!=0 否 是将信息存入链表输入下一本书信息 结束(4) 、Create_Reader()创建读者链表函数流程图同理。(5) 、Insert_Book()-插入图书函数。 开始创建临时指针输入插入图书的信息存入链表 结束(6)、Insert_Reader()创建读者链表函数流程图同理。(7)、Del_Book()-删除旧图书函数。 开始输入要删除的书名是否在库 否 是找到要删除图书的位置 删除 结束(8)、Del_Reader()删除读者函数流程图同理。(9)、Print_Book()-输出图书信息函数,遍历链表并输出。(10)、Pri

5、nt_Reader()函数流程图同理。(11)、Find()-查找图书函数。 开始 输入图书名输入关键字精确查询 是 否是否有相关图书 是找到并输出 结束(12) 、find()查找读者函数同理。(13) 、Not_enough()-库存不足的图书。 开始遍历链表limitnum,p-name,p-author,p-cbs,&p-count,&p-limit);if(k=-1)free(p);return 0;if(phead=NULL)p-next=phead;pend=p;phead=p;elsep-next=NULL;pend-next=p;pend=p;fclose(fp_b);ret

6、urn 1;(2)、写文件Write(): struct book *p,*q;q=p=phead;fp_b=fopen(D:book.txt,wt);if(fp_b=NULL)printf(错误!n);getch();return;while(p!=NULL)fprintf(fp_b,%d %s %s %s %d %d ,p-num,p-name,p-author,p-cbs,p-count,p-limit);p=p-next;free(q);q=p;free(p);phead=NULL;fclose(fp_b); (3) 、创建链表Create_Book(): struct book *p

7、head=NULL;struct book *pend,*pnew;icount=0;printf(请输入书的编号(数字)、书名、作者、出版社、库存量(数字)、现存量(数字):(输入0 0 0 0 0 0结束)n);pend=pnew=(struct book *)malloc(sizeof(struct book);scanf(%d,&pnew-num);scanf(%s,pnew-name);scanf(%s,pnew-author);scanf(%s,pnew-cbs);scanf(%d,&pnew-count);scanf(%d,&pnew-limit);while(pnew-num!

8、=0)icount+;if(icount=1)pnew-next=phead;pend=pnew;phead=pnew;elsepnew-next=NULL;pend-next=pnew;pend=pnew;pnew=(struct book *)malloc(sizeof(struct book);scanf(%d,&pnew-num);scanf(%s,pnew-name);scanf(%s,pnew-author);scanf(%s,pnew-cbs);scanf(%d,&pnew-count);scanf(%d,&pnew-limit);free(pnew);return phead;

9、(1)、(2)是对book的文件的读取,(3)是创建book的链表,对reader的文件的读取和链表的创建同理。(4)、借书Borrow_Book(): int i=0,m;struct reader *rptemp;struct book *ptemp,*p;p=(struct book *)malloc(sizeof(struct book);printf(请输入读者的编号:n);scanf(%d,&m);rptemp=rphead;while(rptemp-next!=NULL&rptemp-num!=m)rptemp=rptemp-next;if(rptemp-next=NULL&rp

10、temp-num!=m)printf(n对不起,没有这个读者。n);free(p); return;elsewhile(strcmp(rptemp-borrowi,0)!=0&(iname);while(ptemp-next!=NULL&strcmp(ptemp-name,p-name)!=0)ptemp=ptemp-next;if(ptemp-next=NULL&strcmp(ptemp-name,p-name)!=0) printf(n对不起,查无此书。n); free(p); return;else if(ptemp-limitlimit=ptemp-limit-1; strcpy(rp

11、temp-borrowi,p-name);free(p);(5)、还书Return_Book(): int m;int i=0;struct reader *rptemp;struct book *p,*ptemp;p=(struct book *)malloc(sizeof(struct book);printf(请输入还书读者的编号:n);scanf(%d,&m);rptemp=rphead;while(rptemp-next!=NULL&rptemp-num!=m)rptemp=rptemp-next;if(rptemp-next=NULL&rptemp-num!=m)printf(n对

12、不起,没有这个读者。n);free(p); return;elseprintf(请输入该读者还的书名:n);scanf(%s,&p-name);while(strcmp(rptemp-borrowi,p-name)!=0&(iborrowi,0); ptemp=phead; while(strcmp(ptemp-name,p-name)!=0) ptemp=ptemp-next; ptemp-limit=ptemp-limit+1;free(p);5 测试数据及运行结果1正常测试数据和运行结果2异常测试数据及运行结果六调试情况,设计技巧及体会1改进方案 不足之处: (1)、写图书管理系统历时一周,在还没有真正了解到图书管理系统的情况下开始 写,碰到很多问题都是之前没有考虑到的,这让我认识的写复杂一些的程序前应该 想好流程,想到会出现的问题。 (2)、程序在运行时发现如果有读者借了书,删除该读者时也删除了这个读者借的 书,这是没有考虑到的漏洞。 合理之处: 思路还算清晰,在容易输错的地方都有考虑。2体会 通过两周的课程设计,让我对这一年的c语言学习有了更全面的认识,让我对链表、指

温馨提示

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

评论

0/150

提交评论