用书名书号作者查询的图书管理系统.docx

上传人:b****5 文档编号:7644252 上传时间:2023-05-11 格式:DOCX 页数:22 大小:231.72KB
下载 相关 举报
用书名书号作者查询的图书管理系统.docx_第1页
第1页 / 共22页
用书名书号作者查询的图书管理系统.docx_第2页
第2页 / 共22页
用书名书号作者查询的图书管理系统.docx_第3页
第3页 / 共22页
用书名书号作者查询的图书管理系统.docx_第4页
第4页 / 共22页
用书名书号作者查询的图书管理系统.docx_第5页
第5页 / 共22页
用书名书号作者查询的图书管理系统.docx_第6页
第6页 / 共22页
用书名书号作者查询的图书管理系统.docx_第7页
第7页 / 共22页
用书名书号作者查询的图书管理系统.docx_第8页
第8页 / 共22页
用书名书号作者查询的图书管理系统.docx_第9页
第9页 / 共22页
用书名书号作者查询的图书管理系统.docx_第10页
第10页 / 共22页
用书名书号作者查询的图书管理系统.docx_第11页
第11页 / 共22页
用书名书号作者查询的图书管理系统.docx_第12页
第12页 / 共22页
用书名书号作者查询的图书管理系统.docx_第13页
第13页 / 共22页
用书名书号作者查询的图书管理系统.docx_第14页
第14页 / 共22页
用书名书号作者查询的图书管理系统.docx_第15页
第15页 / 共22页
用书名书号作者查询的图书管理系统.docx_第16页
第16页 / 共22页
用书名书号作者查询的图书管理系统.docx_第17页
第17页 / 共22页
用书名书号作者查询的图书管理系统.docx_第18页
第18页 / 共22页
用书名书号作者查询的图书管理系统.docx_第19页
第19页 / 共22页
用书名书号作者查询的图书管理系统.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

用书名书号作者查询的图书管理系统.docx

《用书名书号作者查询的图书管理系统.docx》由会员分享,可在线阅读,更多相关《用书名书号作者查询的图书管理系统.docx(22页珍藏版)》请在冰点文库上搜索。

用书名书号作者查询的图书管理系统.docx

用书名书号作者查询的图书管理系统

《C++程序设计》课程设计

设计说明书

课程名称:

《C++程序设计》课程设计

设计题目:

图书管理程序

指导教师:

班级:

学号:

学生姓名:

同组人员:

成绩:

评语:

 

计算机科学与工程学院

 2014年06月20日

 

第1章概述

1。

1选题

第十题:

图书管理程序

图书信息的组成部分为:

书号、书名、作者名、出版社、出版时间、价格等.要求用类和对象实现:

1)新书上架:

添加图书信息

2)图书浏览:

输出所有图书信息

3)图书查询:

可按书号、书名或作者名查询(按书号查询时,因书号唯一,结果仅为一条记录;按书名或作者名查询时,结果可能为多条记录)

4)图书下架:

删除指定图书信息,如按书号

1.2选题的背景和意义

选题背景:

图书馆是我们日常生活中必不可少的学习、阅读的场所,借阅图书则是我们进入图书馆进行阅读的首要行为.为了能够借阅到我们想要借阅的图书,我们需要借助电脑查询需要借阅的图书的具体信息,然后找出图书后再去借阅处刷卡登记。

如今我们处于一个知识大爆炸的时代,图书种类数量剧增,工作人员每天不仅要登记借阅者借阅的图书,还要登记新购进的图书,工作量繁重。

而随着科学技术的进步,计算机日益进入我们的生活工作之中,我们能否利用计算机技术,取代原来的手工登记,提高图书管理的效率呢?

答案是肯定的。

选题意义:

借助计算机C++中的知识,编写相应的图书管理程序就可以实现这一功能。

利用图书管理程序记录图书信息,不仅能节省我们大量的工作时间,减轻巨大的工作量,提高工作效率,还能够减少工作失误。

1.3团队分工和个人贡献

第一章概述

第四章系统实现

源代码中:

(1)图书浏览功能

(2)图书删除功能

第2章系统分析(需求分析)

2。

1系统的整体需求

该系统需要完成的内容:

用类和对象实现新书上架、图书浏览、图书查询、图书下架.

该系统需要完成的整体目标:

系统能够正常运行,基本上实现添加、删除图书信息,显示所有信息,能够由相应条件查阅图书信息这四种功能.

2。

2系统的功能需求

必须完成的模块:

(1)界面模块:

当进入该管理系统时候,提示相应的说明,引导如何操作

(2)新书上架模块:

能够添加书号、书名、作者名、出版社、出版时间、价格这些图书信息.

(3)图书浏览模块:

能够输出所有图书信息。

(4)图书查询模块:

可按条件查询图书信息,当输入书号或书名或作者名时候,相对应的图书信息便可自动搜索出来.

(5)图书下架模块:

可按书号删除指定图书信息。

创新模块:

2.3系统主要模块流程图

注:

数字代表相应操作下的子操作

第3章系统设计

3。

1系统的整体设计

3。

2系统的主要模块设计

(1)登陆界面模块.该模块显示管理程序的名称,提示相应的操作。

(2)信息录入模块.

(2)图书浏览模块

(3)图书查询模块

(4)图书下架模块

第4章系统实现

1登入界面

实现方式:

调用主函数,利用Book。

read()读入数据,同时定义功能选项按钮charfunction=’0';,对function的真假进行判断,若function为真,即与初值相同,实现while循环内语句.

界面主要程序语句:

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按指定条件查询书目"<

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后按提示输入相应信息,结果如下:

3、显示所有图书信息

当选择按钮2,执行function=='2’的条件语句。

Main函数调用#include,利用如下语句:

cout<<"这是所有藏书:

”〈〈endl;

cout〈〈”*********************************”<〈endl;

输出相应的提示信息和图案,然后调用函数display_all(),显示出所有信息。

4、按条件查询

当选择按钮3,执行function=='3’的条件语句。

main函数调用#include〈iostream>,输出相应选择的提示,执行如下代码:

cout<〈”请选择查询方式"〈〈endl;

cout〈<"1按ISBN查询"〈

cout<<”2按书名查询"〈〈endl;

cout<<”3按作者查询”〈

然后定义字符j和字符串search,此时j是作为按钮使用,search是为了输入你要查询的内容.子按钮功能的实现再次调用#include〈iostream〉文件,当输入好相应的信息,执行如下语句:

cout<<”以下是查询结果"〈

cout<<”*********************************"〈〈endl;

给出提示后执行搜索函数search_by_isbn(),同理利用search_by_name()、search_by_writer()实现书名查找,按作者查找的功能。

(1)按书号查询

查询书号为001的图书

步骤一:

在主界面选择3

步骤二:

回车后点击“1”,然后输入001,回车。

(2)按书名查询

查询书名为“考研英语"这本书

步骤一:

在主界面选择3

步骤二:

回车后点击“2”,然后输入“考研英语”,回车

(3)按作者名查询

步骤一:

在主界面选择3

步骤二:

回车后点击“3”,然后输入“宫东风”,回车

5、按书号删除图书信息

当选择按钮4,执行function==’4’的条件语句。

首先定义字符串a,然后main函数调用#include,输入相应的书号,接下来建立对象del(a,"",””,"","”,””),调用删除函数delete_by_isbn(),实现删除功能。

例如删除001号图书

步骤一:

在登陆界面输入“4”,回车;

步骤二:

按提示输入要删除的书号“001”,回车.

6、退出图书管理系统

当选择按钮5,执行function==’5'的条件语句.此时执行空操作,跳出while循环,执行main函数后续语句,利用system("CLS”);清屏后由写函数Book.write();把操作后的数据读入到文件中,最后调用头文件#include

在登录界面输入“5”,回车。

第5章结束语

这次课程设计历时数个星期,通过课程设计,我发现了自己的很多不足,知识上还存在很多漏洞,我看到了自己的实践经验还比较缺乏,理论联系实际的能力还急需提高。

为完成这次课程设计我确实付出很多,有苦有乐,这十几天的工作日子,怎么形容呢,每次在实验室回来就会心情不好,感觉自己什么都没有做成,慢慢的摸索着,开始入门,而且有了一点成就感,就这样每一次都比前一次收获多,心情也慢慢好了,而且我的系统也一天比一天的完善。

毕竟没有白费心血,以艰辛的付出最终还是获得不少回报!

总之,计算机是一门实践性很强的学科,要想学好,就必须多练习,多总结,只有这样,才能够更加深入地了解,才能够学会如何去运用它。

参考文献

[1]郑莉,董渊,何江舟.C++程序设计[M].清华大学出版社,2010.

[2]谭浩强.C程序设计[M]。

清华大学出版社.2007

[3]李强,贾云霞。

VisualC++项目开发实践.北京:

中国铁道出版社,2004。

[4]李书贤。

《C++Primer中文版》[M].人民邮电出版社

附录

源代码:

#include〈iostream〉

#include

#include

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<<”书号:

”<

”〈

”〈

”<

"〈

”<

}

};

classdatabase:

publicbook//公有继承(public)的定义classB:

publicA{<派生类新定义成员〉};

{private:

bookshumu[100];

intsum;

public:

database(){sum=0;}

voidadd(booka)

{

if(sum>=100)

{cout〈<”添加失败,内存已满!

"〈

}

else

{shumu[sum]=a;

sum++;

cout<<”添加新书目成功,以下是本书信息”〈〈endl;

cout〈〈"*********************************”<

voiddelete_by_isbn(booka)

{intflag=0;

if(sum==0)

{cout〈〈"删除失败,已经没有存档了!

"〈

}

else

for(inti=0;i〈sum;i++)

{if(shumu[i].get_isbn()==a.get_isbn())

{cout〈〈"删除书目成功,以下是删除的书信息”<

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

{if(shumu[i].get_name()==names)

{shumu[i]。

display();

flag=1;}

if(flag==0)

{cout<〈"thebookdoes'texist!

"<

}

}

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

{if(shumu[i]。

get_writer()==names)

{shumu[i]。

display();

flag=1;}

if(flag==0)

{cout<〈”thebookdoes’texist!

”〈

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欢迎使用图书管理系统"<

cout<〈”\t\t\t\t\t请选择操作\n"〈〈endl;

cout〈<”\t\t\t\t1创建新书信息”〈

cout〈〈"\t\t\t\t2显示所有图书"<

cout<〈”\t\t\t\t3按指定条件查询书目"〈

cout〈<"\t\t\t\t4按书号删除书目”〈

cout<<"\t\t\t\t5退出系统并保存修改”〈

cout〈〈”\t\t\t(查询可按书号/作者/书名查询)”<〈endl;

cout<〈"\t******************************************************************\n”;

cin〉〉function;

//图书书号、书名、作者、出版社、出版时间、价格信息的录入

换码符'\t',表示水平制表位(horizeontaltab),它的作用是将光标移到最接近8的倍数的位置,使得后面的输入从此开始。

换句话说,让所有的数据都紧跟在制表符后面输出.

//换码符’\t’,表示水平制表位,它的作用是将光标移到最接近8的倍数的位置,使得后面的输入从此开始。

换句话说,让所有的数据都紧跟在制表符后面输出。

if(function==’1')

{stringa,b,c,d,e,f;//定义字符串

cout〈〈"请输入书的isbn编号"<〈endl;

cin>>a;

cout〈<”请输入书名"<〈endl;

cin>〉b;

cout〈<”请输入书作者名"〈

cin〉>c;

cout〈<”请输入书的出版社”<

cin>>d;

cout〈〈”请输入书的出版时间"〈

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<〈"这是所有藏书:

"<

cout〈〈"*********************************"〈〈endl;

Book。

display_all();

system("PAUSE");

system(”CLS”);

//按条件查询图书,输入按书号查询,输入按书名查询,输入按作者查询

elseif(function=='3’)

{cout<〈"请选择查询方式”〈〈endl;

cout<<”1按ISBN查询”<

cout〈〈”2按书名查询"<〈endl;

cout〈〈"3按作者查询”<

charj;

stringsearch;

cin>〉j;

if(j=='1')

{cout〈〈”请输入ISBN号"〈

cin〉>search;

cout〈〈”以下是查询结果"〈〈endl;

cout〈〈"*********************************”<〈endl;

Book.search_by_isbn(search);//按书号查询图书信息函数的调用

system("PAUSE");

system("CLS”);

}

elseif(j==’2')

{cout〈〈”请输入书名"<

cin>>search;

cout<〈”以下是查询结果"〈

cout〈<”*********************************"〈

Book.search_by_name(search);//按书名查询图书信息函数的调用

system(”PAUSE”);

system(”CLS”);

elseif(j==’3’)//按作者查询

{cout〈〈"请输入作者名”<〈endl;

cin〉>search;

cout〈<"以下是查询结果"〈

cout〈〈”*********************************"〈

Book.search_by_writer(search);//按作者名查询图书信息函数的调用

system(”PAUSE");

system(”CLS”);

else

{cout〈〈”输入错误,请重新操作!

”〈〈endl;//错误提示

system("PAUSE”);

system(”CLS”);

}

}

//按书名删除图书

elseif(function=='4’)

{stringa;

cout<〈”请输入要删除的书号”〈

cin>〉a;

bookdel(a,"”,"”,”","”,”");

Book。

delete_by_isbn(del);//按书名删除函数的调用

system("PAUSE");

system("CLS");

//退出系统并保存修改

elseif(function==’5')

{}

//未按照主界面提示信息操作,提示错误

else

{cout<<”输入错误,请重新选择!

”〈

system("PAUSE");

system("CLS");

}

//退出系统

system("CLS");

Book。

write();

for(inti=0;i〈8;i++)

{cout〈〈”"<

for(inti=0;i<55;i++)

{cout<〈”*”;}

cout〈〈endl;

cout<〈"

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2