分享
分享赚钱 收藏 举报 版权申诉 / 18

类型南邮图书馆管理系统程序设计报告.doc

  • 上传人:精品资料
  • 文档编号:8015719
  • 上传时间:2019-06-04
  • 格式:DOC
  • 页数:18
  • 大小:466.78KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    南邮图书馆管理系统程序设计报告.doc
    资源描述:

    1、程序设计报告( 2011/ 2012 学年 第 二 学期)题 目: 图书馆管理系统 专 业 计算机科学与技术 学 生 姓 名 Mango C 班 级 学 号 指 导 教 师 张 琳 指 导 单 位 计算机学院计算机科学与技术系 日 期 2012.6.11-2011.6.14 评分项 优秀 良好 中等 差遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力团队合作精神评 分 细 则课题功能实现情况算法设计合理性用户界面设计报告书写认真程度内容详实程度文字表达熟练程度回答问题准确度简 短 评 语 教师签名: 年 月 日评分等级备注评分等级有五种:优秀、良好、中等、及格、不及格一.课题内容和

    2、要求 对大量的图书信息,包括书名、作者、出版社、出版日期、ISBN(书号)等进行增加、查询、保存等操作。实现如下功能:(1) 新增图书信息处理,从图书文件中读出各图书的相关信息,在此基础上,增加新图书的相关信息。(2) 查询图书信息处理,分别按照书名、作者、出版社、出版日期、ISBN(书号)对单链表中的信息进行查询,其中,前四种为模糊查询,书号为精确查询。(3) 删除图书信息 根据输入的 ISBN 查找图书链表,如果该图书不存在则给出提示信息,否则,删除该图书,并显示删除后的所有图书信息。(4) 保存图书信息处理 将单链表中的图书信息保存到文件。(5) 退出,保存图书信息,并释放链表。二、需求

    3、分析图书馆管理系统读出各图书的相关信息新增图书信息 删除图书信息 保存图书信息增加新图书的相关信息按照书名,作者,出版社,出版日期,书号查询图书不存在则给出提示信息存在删除并显示其信息根据输入的 ISBN 查找图书查询图书信息三、概要设计 1)主要结构体:/定义结构typedef struct char number10;/书号char name20;/书名char author20;/作者char publish50;/出版社char time20;/出版时间mbook;typedef struct int count;/书的本数mbook book100;mlibrary;mlibrary

    4、 library;2)主要函数流程图:(1)查找函数:利用用借阅者或管理员输入的信息进行顺序查找并将找到的书本信息输出。(2)添加函数:在管理员指定的书目中插入其希望加入的书本及其信息。所找到的信息是否完全一致指针指向图书并显示图书信息不存在这本书结束输入信息编号或书名或作者开始开 始结 束调 用 查 找 函 数以 p1指 向 结 点动 态 申 请 空 间p2空 间 指 针 的 next指 向 找 到 的 位 置读 入 各 个 量 的 信 息所 找 到 的 是 否 是 头位 置Head=p2是 否P3-next=p1建 立 P3=head;p3指 向 下一 结 点否 P3-next=p2是(3

    5、)删除函数:将书本信息从书库中删除删除开 始结 束读 入 名 称指 针 指 头名 称 不 同是 否 结 束是指 针 p2=1;1指 下 一 结 点否 是 否 为 头 部 否head后移 一 位是 p2-next=p1-否4)保存文件函数:将最新的内容通过文件读写,从内存中保存到原文本文件中开 始打 开 文 件 成 功指 针 指 头向 文 件 中 写 入各 个 量 信 息 ,信 息 间 加 空 格是指 针 指 下 一 结 点是 否 结 束否结 束 是 否四、详细设计 #include#include#include/定义结构typedef struct char number10;/书号char

    6、 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();

    7、/主函数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(fclose(fp);return;fread(fread(library.book,sizeof(library.book0),library.count,fp);fclose(fp);dosystem(“cls“);printf(“nnnnntttt 图书信息管理系统tttt

    8、n“);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“,switch(a)case 1:putin();break;case 2:lookup();break;ca

    9、se 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(fwrite(library.book,sizeof(library.book0),library.count,fp

    10、);void putin()/定义录入函数 int y=1;system(“cls“);while(y) printf(“t 请输入书籍的书号 :“);scanf(“%s“,library.booklibrary.count.number);printf(“t 请输入书名 :“);scanf(“%s“,library.booklibrary.count.name);printf(“t 请输入作者名 :“);scanf(“%s“,library.booklibrary.count.author);printf(“t 请输入出版社 :“);scanf(“%s“,library.booklibrar

    11、y.count.publish);printf(“t 请输入出版时间 :“);scanf(“%s“,library.booklibrary.count.time);library.count+;printf(“n 是否继续录入(1. 继续;0,退出录入):“);fflush(stdin);scanf(“%d“,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%

    12、sn“,library.booki.number,library.booki.name,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

    13、(strcmp(s2,library.booki.name)=0) flag=0;printf(“%st%st%st%st%sn“,library.booki.number,library.booki.name,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(“请输入要查询的书的作者:

    14、“);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.name,library.booki.author,library.booki.publish,library.booki.time); if (flag)printf(“cannot found!

    15、“);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.b

    16、ooki.name,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+

    17、)if(strcmp(s5,library.booki.time)=0) flag=0;printf(“%st%st%st%st%sn“,library.booki.number,library.booki.name,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(“开

    18、始查询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“,switch(a)case 1:searchname();break; case 2:searchauthor();break;case 3:searchpublish();break;case 4:searchtime();br

    19、eak;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+)strc

    20、py(library.booki.name,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

    21、();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(

    22、“%st%st%st%st%sn“,library.booki.number,library.booki.name,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“,book.name);printf(“t 请输入作者名 :“);scan

    23、f(“%s“,book.author);printf(“t 请输入出版社 :“);scanf(“%s“,book.publish);printf(“t 请输入出版时间 :“);scanf(“%s“,book.time);strcpy(library.booki.name,book.name);strcpy(library.booki.number,book.number);strcpy(library.booki.publish,book.publish);strcpy(library.booki.author,book.author);strcpy(library.booki.time,bo

    24、ok.time);save();elseprintf(“n cannot found!n“);fflush(stdin);getchar();五、测试数据及其结果分析1.界面登入2.信息录入完,信息浏览3.信息查询按图书名查询5.信息删除后6.重新输入信息在修改六、调试过程中的问题1. 分号在中文和搜狗输入法中格式不同,但只能在中文形式下编译,否则会有编译错误。2. 在 switch、if 、while 语句中大括号不能任意缺少或增加,要保证一一对应。3. 不能忽略“=”与“=” 的区别, “=”是赋值符号,而“=”是等于号。4. 输入变量时忘记加地址运算符“&”.5. switch 语句中漏

    25、写 break 语句, 由于漏写了 break 语句,case 只起标号的作用,而不起判断作用。6. 在调用函数时,形参与实参要对应,一般主函数中地址或数组在子函数中用指针变量对应。7. 数组定义时不要指定长度,长度指定错误则不能显示所有信息。8. 单链表中是通过节点地址指向结构体内容的。七、程序设计总结1、设计前期的感受课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。我的题目是设计图书馆管理系统,对于我们这些新手来说,这是很大的考验,尤其在进行课程设计前几天,不知从何入手,一脸茫然,甚至想直接 copy 网

    26、上的作品,但是因为要求不同,最终我选择请教别人,自己思考。2. 遇到的问题与解决方法在设计过程中,我有犯过一些低级错误,例如分号的格式不正确,子函数漏掉声明等,也有遇到不会的,例如单链表,但是在小组的共同努力下,我们搜资料,翻课本,问同学,最终解决了这些问题。 3 心得体会回顾起此次课程设计,至今我仍感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,在短短几天的日子里,可以学到很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体通过这次课程设计之后,也把以前所学过的知识重新温习了。

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:南邮图书馆管理系统程序设计报告.doc
    链接地址:https://www.docduoduo.com/p-8015719.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开