




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+程序设计课程设计设计说明书课程名称: 程序设计课程设计 设计题目: 图书管理程序 指导教师: 班 级: 学 号: 学生姓名: 同组人员: 成 绩: 评 语: 计算机科学与工程学院2014年06月 20 日目 录第1章 概述21.1 选题21.2选题的背景和意义21.3团队分工和个人贡献3第2章 系统分析(需求分析)32.1系统的整体需求32.2 系统的功能需求32.3系统主要模块流程图3第3章 系统设计53.1 系统的整体设计53.2 系统的主要模块设计5第4章 系统实现6第5章 结束语12参考文献12第1章 概述1.1 选题第十题:图书管理程序图书信息的组成部分为:书号、书名、作者名、出
2、版社、出版时间、价格等。要求用类和对象实现:1) 新书上架:添加图书信息2) 图书浏览:输出所有图书信息3) 图书查询:可按书号、书名或作者名查询(按书号查询时,因书号唯一,结果仅为一条记录;按书名或作者名查询时,结果可能为多条记录)4)图书下架:删除指定图书信息,如按书号1.2选题的背景和意义选题背景:图书馆是我们日常生活中必不可少的学习、阅读的场所,借阅图书则是我们进入图书馆进行阅读的首要行为。为了能够借阅到我们想要借阅的图书,我们需要借助电脑查询需要借阅的图书的具体信息,然后找出图书后再去借阅处刷卡登记。如今我们处于一个知识大爆炸的时代,图书种类数量剧增,工作人员每天不仅要登记借阅者借阅
3、的图书,还要登记新购进的图书,工作量繁重。而随着科学技术的进步,计算机日益进入我们的生活工作之中,我们能否利用计算机技术,取代原来的手工登记,提高图书管理的效率呢?答案是肯定的。选题意义:借助计算机C+中的知识,编写相应的图书管理程序就可以实现这一功能。利用图书管理程序记录图书信息,不仅能节省我们大量的工作时间,减轻巨大的工作量,提高工作效率,还能够减少工作失误。1.3团队分工和个人贡献第一章 概述第四章 系统实现源代码中:(1) 图书浏览功能(2) 图书删除功能第2章 系统分析(需求分析)2.1系统的整体需求该系统需要完成的内容:用类和对象实现新书上架、 图书浏览、 图书查询、图书下架。该系
4、统需要完成的整体目标:系统能够正常运行,基本上实现添加、删除图书信息,显示所有信息,能够由相应条件查阅图书信息这四种功能。2.2 系统的功能需求必须完成的模块:(1)界面模块:当进入该管理系统时候,提示相应的说明,引导如何操作(2) 新书上架模块:能够添加书号、书名、作者名、出版社、出版时间、价格这些图书信息。(3) 图书浏览模块:能够输出所有图书信息。(4) 图书查询模块:可按条件查询图书信息,当输入书号或书名或作者名时候,相对应的图书信息便可自动搜索出来。(5) 图书下架模块:可按书号删除指定图书信息。创新模块:2.3系统主要模块流程图显示主界面yyy操作6退出系统显示所有图书信息1按书号
5、2按书名3按作者结束结束yyyynnn结束nn判断进行16中的哪项操作操作1操作2操作3输入图书信息按书号删除图书图书信息图书信息查询操作4结束注:数字代表相应操作下的子操作第3章 系统设计3.1 系统的整体设计图书查询调用所有信息调用书号调用书号、书名或作者保存图书信息录入录入图书信息到txt删除信息显示所有图书信息显示操作信息退出系统保存保存3.2 系统的主要模块设计(1)登陆界面模块。该模块显示管理程序的名称,提示相应的操作。(2)信息录入模块。登陆界面录入ISBN、书名、书号、作者、出版社、出版时间、价格保存到txt文件中(2)图书浏览模块调用txt文件中所有图书信息输入浏览所有图书信
6、息指令显示所有图书信息(3)图书查询模块登陆界面输入相应查询指令图书查询界面调用图书信息文件显示图书信息(4)图书下架模块登陆界面输入删除指令根据删除提示输入要删除的图书号提示删除内容,并删除第4章 系统实现1登入界面实现方式:调用主函数,利用Book.read ()读入数据,同时定义功能选项按钮char function='0',对function的真假进行判断,若function为真,即与初值相同,实现while循环内语句。界面主要程序语句:cout<<endl;cout<<"t*n"cout<<"tttt欢
7、迎使用图书管理系统"<<endl;cout<<"ttttt请选择操作n"<<endl;cout<<"tttt1 创建新书信息"<<endl;cout<<"tttt2 显示所有图书"<<endl;cout<<"tttt3 按指定条件查询书目"<<endl;cout<<"tttt4 按书号删除书目"<<endl; cout<<"tttt5
8、 退出系统并保存修改"<<endl; cout<<"ttt(查询可按书号/ 作者/ 书名查询)"<<endl; cout<<"t*n"调试运行代码后结果如下:2、创建图书信息当选择按钮1,执行main函数中function='1'的条件语句,首先定义字符串string a,b,c,d,e,f; 然后调用#include<iostream>,根据提示输入相应的书本信心,建立对象book newbook(a,b,c,d,e,f);,利用添加函数Book.add(newboo
9、k)把数据添加到新建对象里,然后调用display()函数显示此次输入的信息。 输入数字1后按提示输入相应信息,结果如下:3、 显示所有图书信息当选择按钮2,执行function='2'的条件语句。Main函数调用#include<iostream>,利用如下语句: cout<<"这是所有藏书:"<<endl; cout<<"*"<<endl;输出相应的提示信息和图案,然后调用函数display_all (),显示出所有信息。 4、 按条件查询 当选择按钮3,执行function
10、='3'的条件语句。main函数调用#include<iostream>,输出相应选择的提示,执行如下代码: cout<<"请选择查询方式"<<endl; cout<<"1 按ISBN查询"<<endl; cout<<"2 按书名查询"<<endl; cout<<"3 按作者查询"<<endl;然后定义字符j和字符串search,此时j是作为按钮使用,search是为了输入你要查询的内容。子按
11、钮功能的实现再次调用#include<iostream>文件,当输入好相应的信息,执行如下语句: cout<<"以下是查询结果"<<endl; cout<<"*"<<endl;给出提示后执行搜索函数search_by_isbn(),同理利用search_by_name()、search_by_writer()实现书名查找,按作者查找的功能。(1)按书号查询查询书号为001的图书步骤一:在主界面选择3步骤二:回车后点击“1”,然后输入001,回车。(2)按书名查询查询书名为“考研英语”这本书步骤一
12、:在主界面选择3步骤二:回车后点击“2”,然后输入“考研英语”,回车(3)按作者名查询步骤一:在主界面选择3步骤二:回车后点击“3”,然后输入“宫东风”,回车5、 按书号删除图书信息 当选择按钮4,执行function='4'的条件语句。首先定义字符串a,然后main函数调用#include<iostream>,输入相应的书号,接下来建立对象del(a," "," "," "," "," "),调用删除函数delete_by_isbn(),实现删除功能。例如删除001
13、号图书步骤一:在登陆界面输入“4”,回车;步骤二:按提示输入要删除的书号“001”,回车。6、 退出图书管理系统 当选择按钮5,执行function='5'的条件语句。此时执行空操作,跳出while循环,执行main函数后续语句,利用system("CLS");清屏后由写函数Book.write ();把操作后的数据读入到文件中,最后调用头文件#include<iostream>输出相应的提示信息后退出系统。 在登录界面输入“5”,回车。第5章 结束语这次课程设计历时数个星期,通过课程设计,我发现了自己的很多不足,知识上还存在很多漏洞,我看到了自
14、己的实践经验还比较缺乏,理论联系实际的能力还急需提高。为完成这次课程设计我确实付出很多,有苦有乐,这十几天的工作日子,怎么形容呢,每次在实验室回来就会心情不好,感觉自己什么都没有做成,慢慢的摸索着,开始入门,而且有了一点成就感,就这样每一次都比前一次收获多,心情也慢慢好了,而且我的系统也一天比一天的完善。毕竟没有白费心血,以艰辛的付出最终还是获得不少回报!总之,计算机是一门实践性很强的学科,要想学好,就必须多练习,多总结,只有这样,才能够更加深入地了解,才能够学会如何去运用它。参考文献1郑莉,董渊,何江舟.C+程序设计M.清华大学出版社,2010.2谭浩强.C程序设计M.清华大学出版社.200
15、73李强,贾云霞.Visual C+项目开发实践.北京:中国铁道出版社,2004.4李书贤.C+Primer中文版M.人民邮电出版社附录源代码:#include<iostream>#include<cstdio>#include<stdlib.h> /cstdio是将stdio.h的内容用C+头文件的形式表示出来。using namespace std;#include<string>class book private:string isbn; /书号 string name; /书名string writer; /作者string publi
16、sher; /出版社string time; /出版时间string price; /图书价格public:book()book(string a,string b,string c,string d,string e,string f) isbn=a;name= b;writer=c;publisher=d;time=e; price=f; string get_name()return name; string get_isbn()return isbn; string get_writer()return writer; void display() /图书内容的显示 cout<&
17、lt;"书号:"<<isbn<<endl<<"书名:"<<name<<endl<<"作者:"<<writer<<endl<<"出版社:"<<publisher<<endl<<"出版时间:"<<time<<endl<<"价格:"<<price<<"元"<
18、;<endl<<"*"<<endl; ; class database:public book /公有继承(public)的定义class B:public A < 派生类新定义成员> ;private: book shumu100; int sum;public: database()sum=0; void add(book a) if(sum>=100) cout<<"添加失败,内存已满!"<<endl; else shumusum=a; sum+; cout<<&q
19、uot;添加新书目成功,以下是本书信息"<<endl; cout<<"*"<<endl; void delete_by_isbn(book a) int flag=0; if(sum=0) cout<<"删除失败,已经没有存档了!"<<endl; else for(int i=0;i<sum;i+) if(shumui.get_isbn()=a.get_isbn() cout<<"删除书目成功,以下是删除的书信息"<<endl; shu
20、mui.display (); for(int j=i;j<sum-1;j+) shumuj=shumuj+1; flag=1; sum-; break; if(!flag) cout<<"the book does't exist!"<<endl; void search_by_name(string names) /按书名查找 int flag=0; for(int i=0;i<sum;i+) if(shumui.get_name()=names) shumui.display (); flag=1; if(flag=0) c
21、out<<"the book does't exist!"<<endl; void search_by_isbn(string names) /按书号查找 int flag=0; for(int i=0;i<sum;i+) if(shumui.get_isbn()=names) shumui.display (); flag=1; if(flag=0) cout<<"the book does't exist!"<<endl; void search_by_writer(string
22、names) /按作者查找 int flag=0; for(int i=0;i<sum;i+) if(shumui.get_writer()=names) shumui.display (); flag=1; if(flag=0) cout<<"the book does't exist!"<<endl; void display_all() /显示全部信息 for(int i=0;i<sum;i+) shumui.display (); void read() FILE *fp; if(fp=fopen("C:User
23、sfeiDesktop图书馆.txt","rb+")=NULL)/注意路径; rb+读写打开一个二进制文件,只允许读写数据。 cout<<"文件打开失败n" system("PAUSE"); exit(0); fread(&sum,2,1,fp); /从一个文件中读数据&sum:用于接收数据的地址(指针);4:单个元素的大小,单位是字节;1:.元素个数,每次读取个元素;fp:提供数据的文件指针for(int i=0;i<sum;i+) fread(&shumui,sizeof(shu
24、mui),1,fp);fclose(fp); void write() FILE *fp2; if(fp2=fopen("C:UsersfeiDesktop图书馆.txt","wb+")=NULL)/注意路径;wb+只写打开或新建一个二进制文件;只允许写数据。 cout<<"文件打开失败n" system("PAUSE"); exit(0);/exit(0)表示正常退出 fwrite(&sum,2,1,fp2); for(int i=0;i<sum;i+)fwrite(&shumu
25、i,sizeof(shumui),1,fp2);/sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。 fputc('EOF',fp2);/将字符ch写到文件指针fp所指向的文件的当前写指针的位置;EOF是End Of File 的缩写,表示“文件结束”。 fclose(fp2); ; /主函数int main() database Book;char function='0'Book.read (); /界面while (function!= '5')cout<<endl;cout<<&qu
26、ot;t*n"cout<<"tttt欢迎使用图书管理系统"<<endl;cout<<"ttttt请选择操作n"<<endl;cout<<"tttt1 创建新书信息"<<endl;cout<<"tttt2 显示所有图书"<<endl;cout<<"tttt3 按指定条件查询书目"<<endl;cout<<"tttt4 按书号删除书目"&l
27、t;<endl; cout<<"tttt5 退出系统并保存修改"<<endl; cout<<"ttt(查询可按书号/ 作者/ 书名查询)"<<endl; cout<<"t*n"cin>>function;/图书书号、书名、作者、出版社、出版时间、价格信息的录入换码符't',表示水平制表位(horizeontal tab),它的作用是将光标移到最接近8的倍数的位置,使得后面的输入从此开始。换句话说,让所有的数据都紧跟在制表符后面输出。/换码符&
28、#39;t',表示水平制表位,它的作用是将光标移到最接近8的倍数的位置,使得后面的输入从此开始。换句话说,让所有的数据都紧跟在制表符后面输出。if(function='1') string a,b,c,d,e,f; /定义字符串cout<<"请输入书的isbn编号"<<endl;cin>>a;cout<<"请输入书名"<<endl;cin>>b;cout<<"请输入书作者名"<<endl;cin>>c;c
29、out<<"请输入书的出版社"<<endl;cin>>d;cout<<"请输入书的出版时间"<<endl;cin>>e;cout<<"请输入书的价格"<<endl;cin>>f;book newbook(a,b,c,d,e,f);Book.add(newbook); newbook.display();system("PAUSE");system("CLS"); /显示所有图书信息else
30、 if(function='2')cout<<"这是所有藏书:"<<endl; cout<<"*"<<endl;Book.display_all (); system("PAUSE");system("CLS"); /按条件查询图书,输入按书号查询,输入按书名查询,输入按作者查询else if(function='3') cout<<"请选择查询方式"<<endl; cout<<&
31、quot;1 按ISBN查询"<<endl; cout<<"2 按书名查询"<<endl; cout<<"3 按作者查询"<<endl; char j; string search; cin>>j; if(j='1') cout<<"请输入ISBN号"<<endl; /按书号查询 cin>>search; cout<<"以下是查询结果"<<endl; cout
32、<<"*"<<endl; Book.search_by_isbn (search); /按书号查询图书信息函数的调用 system("PAUSE"); system("CLS"); else if(j='2') cout<<"请输入书名"<<endl; /按书名查询 cin>>search; cout<<"以下是查询结果"<<endl; cout<<"*"<<endl; Book.search_by_name (search); /按书名查询图书信息函数的调用 system("PAUSE"); system("CLS"); else if(j='3') /按作者查询 cout<<"请输入作者名"<<endl; cin>>search;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年职业生涯规划的设计师考试试题及答案
- 初级咖啡考试题库及答案
- 挑战英语测试题及答案
- 心态课程试题及答案高一
- 仓储物流考试题库及答案
- 保密主管面试题目及答案
- 助理广告师考试常见误区剖析试题及答案
- 报表开发考试题及答案
- 检验员与设计师的协作关系提升策略试题及答案
- 环保能力测试试题及答案
- 医学美容美学设计师培训
- 《智能网联汽车智能传感器测试与装调》电子教案
- 智能工厂数字化交付 第2部分:设计交付 征求意见稿
- 《居民参与社区治理问题及对策探究:以L街道为例》
- 护理查房(抑郁发作)
- GB/T 2423.17-2024环境试验第2部分:试验方法试验Ka:盐雾
- GB/T 32399-2024信息技术云计算参考架构
- 第18课 科技文化成就 新授课课件-2024-2025学年统编版八年级历史下册
- 宽带服务用户行为分析与大数据应用
- 畜牧兽医考试题库
- (高清版)JTG D81-2017 公路交通安全设施设计规范
评论
0/150
提交评论