1、1/31文档可自由编辑C+程序设计课程设计设计说明书课程名称:程序设计课程设计设计题目:图书管理程序指导教师:班级:学号:学生姓名:同组人员:计算机科学与工程学院2014年06月20日成绩:评语:1/31文档可自由编辑目录第第11章章概述概述.221.1选题.21.2选题的背景和意义.21.3团队分工和个人贡献.3第第22章章系统分析(需求分析)系统分析(需求分析).332.1系统的整体需求.32.2系统的功能需求.32.3系统主要模块流程图.3第第33章章系统设计系统设计.553.1
3、馆是我们日常生活中必不可少的学习、阅读的场所,借阅图书则是我们进入图书馆进行阅读的首要行为。为了能够借阅到我们想要借阅的图书,我们需要借助电脑查询需要借阅的图书的具体信息,然后找出图书后再去借阅处刷卡登记。如今我们处于一个知识大爆炸的时代,图书种类数量剧增,工作人员每天不仅要登记借阅者借阅的图书,还要登记新购进的图书,工作量繁重。而随着科学技术的进步,计算机日益进入3/31文档可自由编辑我们的生活工作之中,我们能否利用计算机技术,取代原来的手工登记,提高图书管理的效率呢?答案是肯定的。选题意义:借助计算机C+中的知识,编写相应的图书管理程序就可以实现这一功能。利用图书管理程序记录图书信
7、可自由编辑登陆界面输入删除指令根据删除提示输入要删除的图书号提示删除内容,并删除第4章系统实现1登入界面实现方式:调用主函数,利用Book.read()读入数据,同时定义功能选项按钮charfunction=0;,对function的真假进行判断,若function为真,即与初值相同,实现while循环内语句。界面主要程序语句:coutendl;coutt*n;couttttt欢迎使用图书管理系统endl;coutttttt请选择操作nendl;couttttt1创建新书信息endl;couttttt2显示所有图书endl;couttttt3按指定条件查询书
8、目endl;couttttt4按书号删除书目endl;9/31文档可自由编辑couttttt5退出系统并保存修改endl;coutttt(查询可按书号/作者/书名查询)endl;coutt*n;调试运行代码后结果如下:2、创建图书信息当选择按钮1,执行main函数中function=1的条件语句,首先定义字符串stringa,b,c,d,e,f;然后调用#include,根据提示输入相应的书本信心,建立对象booknewbook(a,b,c,d,e,f);,利用添加函数Book.add(newbook)把数据添加到新建对象里,然后调用display()
9、函数显示此次输入的信息。输入数字1后按提示输入相应信息,结果如下:10/31文档可自由编辑3、显示所有图书信息当选择按钮2,执行function=2的条件语句。Main函数调用#include,利用如下语句:cout这是所有藏书:endl;cout*endl;输出相应的提示信息和图案,然后调用函数display_all(),显示出11/31文档可自由编辑所有信息。4、按条件查询当选择按钮3,执行function=3的条件语句。main函数调用#include,输出相应选择的提示,执行如下代码:cout请选择查询方式endl;cout1按ISBN
10、查询endl;cout2按书名查询endl;cout3按作者查询endl;然后定义字符j和字符串search,此时j是作为按钮使用,search是为了输入你要查询的内容。子按钮功能的实现再次调用#include文件,当输入好相应的信息,执行如下语句:cout以下是查询结果endl;cout*endl;12/31文档可自由编辑给出提示后执行搜索函数search_by_isbn(),同理利用search_by_name()、search_by_writer()实现书名查找,按作者查找的功能。(1)按书号查询查询书号为001的图书步骤一:在主界面选择3步骤
11、二:回车后点击“1”,然后输入001,回车。(2)按书名查询查询书名为“考研英语”这本书步骤一:在主界面选择3步骤二:回车后点击“2”,然后输入“考研英语”,回车13/31文档可自由编辑(3)按作者名查询步骤一:在主界面选择3步骤二:回车后点击“3”,然后输入“宫东风”,回车5、按书号删除图书信息当选择按钮4,执行function=4的条件语句。首先定义字符串a,然后main函数调用#include,输入相应的书号,接下来建立对象del(a,,,,,),调用删除函数delete_by_isbn(),实现删除功能。14/31文档可自由编辑例如删
13、力还急需提高。15/31文档可自由编辑为完成这次课程设计我确实付出很多,有苦有乐,这十几天的工作日子,怎么形容呢,每次在实验室回来就会心情不好,感觉自己什么都没有做成,慢慢的摸索着,开始入门,而且有了一点成就感,就这样每一次都比前一次收获多,心情也慢慢好了,而且我的系统也一天比一天的完善。毕竟没有白费心血,以艰辛的付出最终还是获得不少回报!总之,计算机是一门实践性很强的学科,要想学好,就必须多练习,多总结,只有这样,才能够更加深入地了解,才能够学会如何去运用它。参考文献1郑莉,董渊,何江舟.C+程序设计M.清华大学出版社,2010.2谭浩强.C程序设计M.清华大学出版社.20073李强
15、tringprice;/图书价格public:book()book(stringa,stringb,stringc,stringd,stringe,stringf)isbn=a;name=b;writer=c;publisher=d;time=e;price=f;stringget_name()returnname;stringget_isbn()returnisbn;stringget_writer()returnwriter;voiddisplay()/图书内容的显示18/31文档可自由编辑cout书号:isbnendl书名:namee
17、out*endl;voiddelete_by_isbn(booka)intflag=0;if(sum=0)cout删除失败,已经没有存档了!endl;elsefor(inti=0;isum;i+)if(shumui.get_isbn()=a.get_isbn()cout删除书目成功,以下是删除的书信息endl;shumui.display();for(intj=i;jsum-1;j+)shumuj=shumuj+1;flag=1;sum-;break;20/31文档可自由编辑if(!flag)coutthebookdoestexist!
18、endl;voidsearch_by_name(stringnames)/按书名查找intflag=0;for(inti=0;isum;i+)if(shumui.get_name()=names)shumui.display();flag=1;if(flag=0)coutthebookdoestexist!endl;voidsearch_by_isbn(stringnames)/按书号查找intflag=0;for(inti=0;isum;i+)if(shumui.get_isbn()=names)21/31文档可自由编辑shumui
19、.display();flag=1;if(flag=0)coutthebookdoestexist!endl;voidsearch_by_writer(stringnames)/按作者查找intflag=0;for(inti=0;isum;i+)if(shumui.get_writer()=names)shumui.display();flag=1;if(flag=0)coutthebookdoestexist!endl;voiddisplay_all()/显示全部信息for(inti=0;isum;i+)22/31文档可自由编辑
20、shumui.display();voidread()FILE*fp;if(fp=fopen(C:UsersfeiDesktop图书馆.txt,rb+)=NULL)/注意路径;rb+读写打开一个二进制文件,只允许读写数据。cout文件打开失败n;system(PAUSE);exit(0);fread(&sum,2,1,fp);/从一个文件中读数据&sum:用于接收数据的地址(指针);4:单个元素的大小,单位是字节;1:.元素个数,每次读取个元素;fp:提供数据的文件指针for(inti=0;isum;i+)fread(&shumui,sizeof(shumui),
21、1,fp);fclose(fp);voidwrite()FILE*fp2;23/31文档可自由编辑if(fp2=fopen(C:UsersfeiDesktop图书馆.txt,wb+)=NULL)/注意路径;wb+只写打开或新建一个二进制文件;只允许写数据。cout文件打开失败n;system(PAUSE);exit(0);/exit(0)表示正常退出fwrite(&sum,2,1,fp2);for(inti=0;isum;i+)fwrite(&shumui,sizeof(shumui),1,fp2);/sizeof计算数据(包括数组、变量、类型、结构体等)所占内存
22、空间,用字节数表示。fputc(EOF,fp2);/将字符ch写到文件指针fp所指向的文件的当前写指针的位置;EOF是EndOfFile的缩写,表示“文件结束”。fclose(fp2);;/主函数intmain()databaseBook;charfunction=0;Book.read();24/31文档可自由编辑/界面while(function!=5)coutendl;coutt*n;couttttt欢迎使用图书管理系统endl;coutttttt请选择操作nendl;couttttt1创建新书信息endl;couttttt2显示所
25、cout*endl;Book.display_all();system(PAUSE);system(CLS);/按条件查询图书,输入按书号查询,输入按书名查询,输入按作者查询elseif(function=3)cout请选择查询方式endl;cout1按ISBN查询endl;cout2按书名查询endl;cout3按作者查询j;if(j=1)cout请输入ISBN号search;cout以下是查询结果endl;27/31文档可自由编辑cout*endl;Book.search_by_isbn(search);/按书号查询图书信息函数的调用s
26、ystem(PAUSE);system(CLS);elseif(j=2)cout请输入书名search;cout以下是查询结果endl;cout*endl;Book.search_by_name(search);/按书名查询图书信息函数的调用system(PAUSE);system(CLS);elseif(j=3)/按作者查询cout请输入作者名search;cout以下是查询结果endl;cout*endl;Book.search_by_writer(search);/按作者名查询图书信息函数的调用28/31文档可自由编辑system(PAUS
27、E);system(CLS);elsecout输入错误,请重新操作!endl;/错误提示system(PAUSE);system(CLS);/按书名删除图书elseif(function=4)stringa;cout请输入要删除的书号a;bookdel(a,,,,,);Book.delete_by_isbn(del);/按书名删除函数的调用system(PAUSE);system(CLS);/退出系统并保存修改elseif(function=5)29/31文档可自由编辑/未按照主界面提示信息操作,提示错误elsecout输入错误,请重新选择!endl;system(PAUSE);system(CLS);/退出系统system(CLS);Book.write();for(inti=0;i8;i+)coutendl;for(inti=0;i55;i+)cout*;coutendl;cout您已退出本图书管理系统,您的修改已经保存,欢迎再次使用!endl;for(inti=0;i55;i+)cout*;coutendl;system(PAUSE);exit(0);30/31文档可自由编辑