南邮图书馆管理系统程序设计报告_第1页
南邮图书馆管理系统程序设计报告_第2页
南邮图书馆管理系统程序设计报告_第3页
南邮图书馆管理系统程序设计报告_第4页
南邮图书馆管理系统程序设计报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

程序设计报告( 2011/ 2012 学年 第 二 学期)题 目: 图书馆管理系统 专 业 计算机科学与技术 学 生 姓 名 Mango C 班 级 学 号 指 导 教 师 张 琳 指 导 单 位 计算机学院计算机科学与技术系 日 期 2012.6.11-2011.6.14 评 分 细 则评分项优秀良好中等差遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力团队合作精神课题功能实现情况算法设计合理性用户界面设计报告书写认真程度内容详实程度文字表达熟练程度回答问题准确度简 短 评 语教师签名: 年 月 日评分等级备注评分等级有五种:优秀、良好、中等、及格、不及格一.课题内容和要求 对大量的图书信息,包括书名、作者、出版社、出版日期、ISBN(书号)等进行增加、查询、保存等操作。实现如下功能:(1) 新增图书信息处理,从图书文件中读出各图书的相关信息,在此基础上,增加新图书的相关信息。(2) 查询图书信息处理,分别按照书名、作者、出版社、出版日期、ISBN(书号)对单链表中的信息进行查询,其中,前四种为模糊查询,书号为精确查询。(3) 删除图书信息 根据输入的ISBN查找图书链表,如果该图书不存在则给出提示信息,否则,删除该图书,并显示删除后的所有图书信息。(4) 保存图书信息处理 将单链表中的图书信息保存到文件。(5) 退出,保存图书信息,并释放链表。二、需求分析图书馆管理系统读出各图书的相关信息新增图书信息删除图书信息保存图书信息增加新图书的相关信息按照书名,作者,出版社,出版日期,书号查询图书不存在则给出提示信息存在删除并显示其信息根据输入的ISBN查找图书查询图书信息三、概要设计 1)主要结构体:/定义结构typedef struct char number10;/书号char name20;/书名char author20;/作者char publish50;/出版社char time20;/出版时间mbook;typedef struct int count;/书的本数mbook book100;mlibrary;mlibrary library;2)主要函数流程图:(1)查找函数:利用用借阅者或管理员输入的信息进行顺序查找并将找到的书本信息输出。所找到的信息是否完全一致指针指向图书并显示图书信息不存在这本书结束输入信息编号或书名或作者开始(2)添加函数:在管理员指定的书目中插入其希望加入的书本及其信息。(3)删除函数:将书本信息从书库中删除删除4)保存文件函数:将最新的内容通过文件读写,从内存中保存到原文本文件中四、详细设计 #include#include#include/定义结构typedef struct char number10;/书号char name20;/书名char author20;/作者char publish50;/出版社char time20;/出版时间mbook;typedef struct int count;/书的本数mbook book100;mlibrary;mlibrary library;/函数声明void save();void putin();void lookup();void searchname();void searchauthor();void searchpublish();void searchtime();void search();void del();void update();/主函数void main()int a;FILE *fp;if(fp=fopen(library.txt,r)=NULL)printf(n不能打开图书信息库n);fp=fopen(library.txt,w+);printf(n初始并重启n);library.count=0;fwrite(&library.count,sizeof(int),1,fp);fclose(fp);return;fread(&library.count,sizeof(int),1,fp);fread(library.book,sizeof(library.book0),library.count,fp);fclose(fp); do system(cls);printf(nnnnntttt图书信息管理系统ttttn);printf(tt*n);printf(ttt*1.图书信息录入*n);printf(ttt*2.图书信息浏览*n); printf(ttt*3.图书信息查询*n);printf(ttt*4.图书信息删除*n);printf(ttt*5.图书信息修改*n);printf(ttt*0.退出图书信息系统*n);printf(tt*n);printf(ttPlease Enter Choose: );fflush(stdin);scanf(%d,&a);switch(a)case 1:putin();break;case 2:lookup();break;case 3:search();break;case 4:del();break;case 5:update();break;case 0:printf(nn退出nn);break;default:printf(n序号不对n); while(a!=0); save();/子函数void save()/保存图书信息。FILE *fp;if(fp=fopen(library.txt,w)=NULL)printf(n不能保存图书信息n);return;fwrite(&library.count,sizeof(int),1,fp);fwrite(library.book,sizeof(library.book0),library.count,fp);void putin()/定义录入函数 int y=1;system(cls);while(y) printf(t请输入书籍的书号:);scanf(%s,library.booklibrary.count.number);printf(t请输入书名:);scanf(%s,);printf(t请输入作者名:);scanf(%s,library.booklibrary.count.author);printf(t请输入出版社:);scanf(%s,library.booklibrary.count.publish);printf(t请输入出版时间:);scanf(%s,library.booklibrary.count.time);library.count+;printf(n是否继续录入(1.继续;0,退出录入):);fflush(stdin);scanf(%d,&y);if (y!=1)y=0;break; save();void lookup()int i;system(cls); printf(图书号t图书名t作者名t出版社t出版日期n);for (i=0;ilibrary.count;i+)printf(%st%st%st%st%sn,library.booki.number,,library.booki.author,library.booki.publish,library.booki.time);fflush(stdin);getchar();void searchname()/定义按书名查询 char s220; int flag=1,i;printf(n请输入要查询的书名: );fflush(stdin);scanf(%s,s2);printf(图书号t图书名t作者名t出版社t出版日期n);for(i=0;ilibrary.count;i+ )if(strcmp(s2,)=0) flag=0;printf(%st%st%st%st%sn,library.booki.number,,library.booki.author,library.booki.publish,library.booki.time); if (flag)printf(cannot found!);fflush(stdin);getchar();void searchauthor()/定义按作者名查询 char s320;int flag=1,i;printf(请输入要查询的书的作者: );fflush(stdin);scanf(%s,s3);printf(图书号t图书名t作者名t出版社t出版日期n);for(i=0;ilibrary.count;i+ )if(strcmp(s3,library.booki.author)=0) flag=0;printf(%st%st%st%st%sn,library.booki.number,,library.booki.author,library.booki.publish,library.booki.time); if (flag)printf(cannot found!);fflush(stdin);getchar();void searchpublish()/定义按出版社名查询 char s420;int flag=1,i;printf(请输入要查询的书的出版社: );fflush(stdin);scanf(%s,s4);printf(图书号t图书名t作者名t出版社t出版日期n);for(i=0;ilibrary.count;i+ )if(strcmp(s4,library.booki.publish)=0) flag=0;printf(%st%st%st%st%sn,library.booki.number,,library.booki.author,library.booki.publish,library.booki.time); if (flag)printf(cannot found!);fflush(stdin);getchar();void searchtime()/定义按出版日期查询 char s520;int flag=1,i;printf(请输入要查询的书的出版日期: );fflush(stdin);scanf(%s,s5);printf(图书号t图书名t作者名t出版社t出版日期n);for(i=0;ilibrary.count;i+ )if(strcmp(s5,library.booki.time)=0) flag=0;printf(%st%st%st%st%sn,library.booki.number,,library.booki.author,library.booki.publish,library.booki.time); if (flag)printf(cannot found!);fflush(stdin);getchar();void search()/定义查询函数 int a;system(cls);/进行清屏 printf(tt*n);printf(开始查询n); printf(ttt*1.按书名查询*n); printf(ttt*2.按作者查询*n);printf(ttt*3.按出版社查询*n);printf(ttt*4.按时间查询*n); printf(ttt*0.退出*n); printf(tt*n) ; printf(tt请选择-:);fflush(stdin); scanf(%d,&a); switch(a) case 1:searchname();break; case 2:searchauthor();break;case 3:searchpublish();break;case 4:searchtime();break;case 0:return;void del()/定义删除函数 char number10;int i;system(cls);/清屏printf(n Please type in the number of the book you want to delete:);fflush(stdin);scanf(%s,number);for (i=0;ilibrary.count;i+)if(strcmp(number,library.booki.number)=0)break;if (i!=library.count)for(;ilibrary.count-1;i+)strcpy(,library.booki+1.name);strcpy(library.booki.number,library.booki+1.number);strcpy(library.booki.publish,library.booki+1.publish);strcpy(library.booki.author,library.booki+1.author);strcpy(library.booki.time,library.booki+1.time);library.count-;elseprintf(n cannot found!n);save();fflush(stdin);getchar();void update()/修改图书信息char number10;int i;system(cls);/清屏 printf(n Please type in the number of the book you want to delete:);fflush(stdin);scanf(%s,number);for (i=0;ilibrary.count;i+) if(strcmp(number,library.booki.number)=0) printf(图书号t图书名t作者名t出版社t出版日期n); printf(%st%st%st%st%sn,library.booki.number,,library.booki.author,library.booki.publish,library.booki.time); break; if (i!=library.count)mbook book;printf(ntt请输入修改后此图书的信息n);printf(t请输入图书号:);scanf(%s,book.number);printf(t请输入图书名:);scanf(%s,);printf(t请输入作者名:);scanf(%s,book.author);printf(t请输入出版社:);scanf(%s,book.publish);printf(t请输入出版时间:);scanf(%s,book.time);strcpy(,);strcpy(library.booki.number,book.number);strcpy(library.booki.publish,book.publish);strcpy(library.booki.author,book.author);strcpy(library.booki.time,book.time);save();elseprintf(n cannot found!n);fflush(stdin);getchar();五、测试数据及其结果分析1.界面登入2. 信息录入完,信息浏览3. 信息查询按图书名查询5. 信息删除后6. 重新输入信息在修改六、调试过程中的问题1. 分号在中文和搜狗输入法中格式不同,但只能在中文形式下编译,否则会有编译错误。2. 在switch、if、while语句中大括号不能任意缺少或增加,要保证一一对应。3. 不能忽略“=”与“=”的区别,“=”是赋值符号,而“=”是等于号。4. 输入变量时忘记加地址运算符“&”.5. switch语句中

温馨提示

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

评论

0/150

提交评论