用书名书号作者查询的图书管理系统_第1页
用书名书号作者查询的图书管理系统_第2页
用书名书号作者查询的图书管理系统_第3页
用书名书号作者查询的图书管理系统_第4页
用书名书号作者查询的图书管理系统_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

《C++程序设计》课程设计设计说明书课程名称:《C++程序设计》课程设计设计题目:图书管理程序指导教师:班级:学号:学生姓名:同组人员:成绩:成绩:评语:计算机科学与工程学院2014年06月20日《图书管理程序》课程设计实验报告 -PAGE1-目录TOC\o"1-3”\h\z\uHYPERLINK\l”_Toc375575807"第1章概述 21.2选题的背景和意义 2HYPERLINK\l”_Toc375575810"1.3团队分工和个人贡献 3HYPERLINK\l”_Toc375575811"第2章系统分析(需求分析) 3HYPERLINK\l”_Toc375575812"2.1系统的整体需求 3HYPERLINK\l”_Toc375575813"2.2系统的功能需求 3HYPERLINK\l”_Toc375575814"2.3系统主要模块流程图 3HYPERLINK\l”_Toc375575815”第3章系统设计 5HYPERLINK\l”_Toc375575816"3.1系统的整体设计 5HYPERLINK\l”_Toc375575817"3.2系统的主要模块设计 5第5章结束语 12; cout〈〈”\t\t\t\t欢迎使用图书管理系统”〈<endl; cout〈<”\t\t\t\t\t请选择操作\n”〈<endl; cout〈〈”\t\t\t\t1创建新书信息”<<endl; cout〈<"\t\t\t\t2显示所有图书"〈<endl; cout<〈"\t\t\t\t3按指定条件查询书目"〈<endl; cout〈<"\t\t\t\t4按书号删除书目”〈〈endl;cout<<"\t\t\t\t5退出系统并保存修改"<<endl;cout〈<”\t\t\t(查询可按书号/作者/书名查询)”〈〈endl;cout<<"\t******************************************************************\n”;调试运行代码后结果如下:2、创建图书信息当选择按钮1,执行main函数中function=='1'的条件语句,首先定义字符串stringa,b,c,d,e,f;然后调用#include<iostream〉,根据提示输入相应的书本信心,建立对象booknewbook(a,b,c,d,e,f);,利用添加函数Book。add(newbook)把数据添加到新建对象里,然后调用display()函数显示此次输入的信息。输入数字1后按提示输入相应信息,结果如下:显示所有图书信息当选择按钮2,执行function==’2’的条件语句。Main函数调用#include<iostream>,利用如下语句:cout<<"这是所有藏书:"<<endl; cout〈〈"*********************************"<〈endl;输出相应的提示信息和图案,然后调用函数display_all(),显示出所有信息。按条件查询当选择按钮3,执行function=='3’的条件语句。main函数调用#include<iostream〉,输出相应选择的提示,执行如下代码:cout〈〈"请选择查询方式”〈〈endl; cout<〈”1按ISBN查询”〈<endl; cout〈〈"2按书名查询”〈<endl; cout<<”3按作者查询”〈<endl;然后定义字符j和字符串search,此时j是作为按钮使用,search是为了输入你要查询的内容。子按钮功能的实现再次调用#include〈iostream>文件,当输入好相应的信息,执行如下语句:cout〈<"以下是查询结果”〈〈endl; cout<<”*********************************”〈〈endl;给出提示后执行搜索函数search_by_isbn(),同理利用search_by_name()、search_by_writer()实现书名查找,按作者查找的功能。(1)按书号查询查询书号为001的图书步骤一:在主界面选择3步骤二:回车后点击“1”,然后输入001,回车。(2)按书名查询查询书名为“考研英语”这本书步骤一:在主界面选择3步骤二:回车后点击“2”,然后输入“考研英语”,回车(3)按作者名查询步骤一:在主界面选择3步骤二:回车后点击“3”,然后输入“宫东风”,回车按书号删除图书信息 当选择按钮4,执行function=='4'的条件语句。首先定义字符串a,然后main函数调用#include〈iostream〉,输入相应的书号,接下来建立对象del(a,””,"","","”,"”),调用删除函数delete_by_isbn(),实现删除功能.例如删除001号图书步骤一:在登陆界面输入“4",回车;步骤二:按提示输入要删除的书号“001”,回车。退出图书管理系统当选择按钮5,执行function=='5'的条件语句。此时执行空操作,跳出while循环,执行main函数后续语句,利用system(”CLS”);清屏后由写函数Book.write();把操作后的数据读入到文件中,最后调用头文件#include〈iostream>输出相应的提示信息后退出系统.在登录界面输入“5”,回车。第5章结束语这次课程设计历时数个星期,通过课程设计,我发现了自己的很多不足,知识上还存在很多漏洞,我看到了自己的实践经验还比较缺乏,理论联系实际的能力还急需提高。为完成这次课程设计我确实付出很多,有苦有乐,这十几天的工作日子,怎么形容呢,每次在实验室回来就会心情不好,感觉自己什么都没有做成,慢慢的摸索着,开始入门,而且有了一点成就感,就这样每一次都比前一次收获多,心情也慢慢好了,而且我的系统也一天比一天的完善。毕竟没有白费心血,以艰辛的付出最终还是获得不少回报!总之,计算机是一门实践性很强的学科,要想学好,就必须多练习,多总结,只有这样,才能够更加深入地了解,才能够学会如何去运用它。参考文献[1]郑莉,董渊,何江舟。C++程序设计[M].清华大学出版社,2010.[2]谭浩强.C程序设计[M]。清华大学出版社.2007[3]李强,贾云霞。VisualC++项目开发实践。北京:中国铁道出版社,2004.[4]李书贤。《C++Primer中文版》[M]。人民邮电出版社附录源代码:#include<iostream>#include〈cstdio>#include〈stdlib。h>//cstdio是将stdio。h的内容用C++头文件的形式表示出来。usingnamespacestd;#include<string>classbook{private: stringisbn;//书号stringname;//书名 stringwriter;//作者 stringpublisher;//出版社 stringtime;//出版时间 stringprice;//图书价格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()//图书内容的显示 {cout<<”书号:"〈〈isbn<〈endl〈〈"书名:”<<name〈〈endl<<”作者:”<<writer<<endl<<”出版社:"〈<publisher〈<endl<<”出版时间:”〈<time<<endl〈〈”价格:"<〈price<〈"元"<<endl<<"*********************************”〈<endl; }};classdatabase:publicbook//公有继承(public)的定义classB:publicA{<派生类新定义成员>};{private:bookshumu[100];intsum;public: database(){sum=0;} voidadd(booka) { if(sum>=100) {cout〈<"添加失败,内存已满!”<<endl; } else {shumu[sum]=a; sum++; cout<<”添加新书目成功,以下是本书信息"<〈endl;cout<〈”*********************************”<<endl; }} voiddelete_by_isbn(booka) {intflag=0; if(sum==0) {cout〈〈”删除失败,已经没有存档了!”<<endl; }else { for(inti=0;i<sum;i++) {if(shumu[i].get_isbn()==a.get_isbn()) {cout<〈”删除书目成功,以下是删除的书信息”〈<endl; shumu[i]。display(); for(intj=i;j<sum-1;j++) {shumu[j]=shumu[j+1];} flag=1; sum——; break;} } if(!flag) {cout〈<”thebookdoes'texist!”〈〈endl; } } } voidsearch_by_name(stringnames)//按书名查找 {intflag=0; for(inti=0;i〈sum;i++) {if(shumu[i]。get_name()==names) {shumu[i]。display(); flag=1;} } if(flag==0) {cout〈<”thebookdoes'texist!”〈〈endl; } }voidsearch_by_isbn(stringnames)//按书号查找 {intflag=0; for(inti=0;i<sum;i++) {if(shumu[i].get_isbn()==names) {shumu[i].display(); flag=1;} } if(flag==0) {cout〈<"thebookdoes’texist!"〈〈endl; } } voidsearch_by_writer(stringnames)//按作者查找 {intflag=0; for(inti=0;i〈sum;i++) {if(shumu[i]。get_writer()==names) {shumu[i].display(); flag=1;} } if(flag==0) {cout〈〈"thebookdoes’texist!"〈〈endl; } }voiddisplay_all()//显示全部信息 { for(inti=0;i<sum;i++) {shumu[i].display();}} voidread() {FILE*fp;if((fp=fopen(”C:\\Users\\fei\\Desktop\\图书馆.txt","rb+"))==NULL)//注意路径;rb+读写打开一个二进制文件,只允许读写数据。{cout<<"文件打开失败\n”; system("PAUSE");exit(0);} fread(&sum,2,1,fp);//从一个文件中读数据&sum:用于接收数据的地址(指针);4:单个元素的大小,单位是字节;1:.元素个数,每次读取个元素;fp:提供数据的文件指针 for(inti=0;i〈sum;i++) { fread(&shumu[i],sizeof(shumu[i]),1,fp);} fclose(fp);} voidwrite() { FILE*fp2;if((fp2=fopen(”C:\\Users\\fei\\Desktop\\图书馆.txt","wb+”))==NULL)//注意路径;wb+只写打开或新建一个二进制文件;只允许写数据。{cout<〈"文件打开失败\n"; system("PAUSE”);exit(0);//exit(0)表示正常退出} fwrite(&sum,2,1,fp2); for(inti=0;i<sum;i++) { fwrite(&shumu[i],sizeof(shumu[i]),1,fp2);}//sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。 fputc(’EOF’,fp2);//将字符ch写到文件指针fp所指向的文件的当前写指针的位置;EOF是EndOfFile的缩写,表示“文件结束"。 fclose(fp2); }};//主函数intmain(){databaseBook; charfunction='0’; Book。read(); //界面 while(function!=’5') { cout〈<endl; cout<<"\t******************************************************************\n”; cout<〈"\t\t\t\t欢迎使用图书管理系统"<〈endl; cout<〈”\t\t\t\t\t请选择操作\n”<〈endl; cout〈〈”\t\t\t\t1创建新书信息"〈〈endl; cout<<”\t\t\t\t2显示所有图书”〈〈endl; cout〈<”\t\t\t\t3按指定条件查询书目"〈<endl; cout〈<”\t\t\t\t4按书号删除书目”<<endl;cout〈<"\t\t\t\t5退出系统并保存修改”〈<endl;cout<<"\t\t\t(查询可按书号/作者/书名查询)”〈<endl;cout〈<"\t******************************************************************\n"; cin〉>function;//图书书号、书名、作者、出版社、出版时间、价格信息的录入换码符'\t',表示水平制表位(horizeontaltab),它的作用是将光标移到最接近8的倍数的位置,使得后面的输入从此开始。换句话说,让所有的数据都紧跟在HYPERLINK”http:///view/1138182。htm”制表符后面输出。//换码符'\t’,表示水平制表位,它的作用是将光标移到最接近8的倍数的位置,使得后面的输入从此开始。换句话说,让所有的数据都紧跟在制表符后面输出。 if(function==’1’) {stringa,b,c,d,e,f;//定义字符串 cout<〈”请输入书的isbn编号”〈〈endl; cin〉>a; cout<〈"请输入书名”<〈endl; cin>〉b; cout〈<”请输入书作者名”〈〈endl; cin>〉c; cout〈〈"请输入书的出版社"〈〈endl; cin〉〉d; cout<<"请输入书的出版时间"<〈endl; cin〉〉e; cout〈<”请输入书的价格"<<endl; cin〉>f; booknewbook(a,b,c,d,e,f); Book.add(newbook); newbook。display(); system("PAUSE"); system(”CLS”); }//显示所有图书信息 elseif(function=='2') {cout〈<"这是所有藏书:"<<endl; cout〈〈”*********************************"<<endl; Book。display_all(); system(”PAUSE"); system(”CLS”); }//按条件查询图书,输入按书号查询,输入按书名查询,输入按作者查询 elseif(function=='3’) {cout〈〈”请选择查询方式"<〈endl; cout<〈”1按ISBN查询"<〈endl; cout<<”2按书名查询”<<endl; cout〈〈”3按作者查询"〈<endl; charj; stringsearch; cin〉〉j; if(j=='1') {cout<<”请输入ISBN号"<<endl;//按书号查询 cin>>search; cout<〈"以下是查询结果”<〈endl; cout<〈”*********************************"<〈endl;Book.search_by_isbn(search);//按书号查询图书信息函数的调用 system(”PAUSE”); system(”CLS”); } elseif(j==’2’) {cout〈〈"请输入书名"<<endl;//按书名查询 cin〉〉search;cout〈<”以下是查询结果”〈〈endl;cout〈<"*********************************"〈<endl;Book.search_by_name(search);//按书名查询图书信息函数的调用system("PAUSE"); system("CLS”); } elseif(j==’3’)//按作者查询 {cout<〈”请输入作者名”<<endl; cin>〉search;cout<<"以下是查询结果"〈〈endl;

温馨提示

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

评论

0/150

提交评论