用书名书号作者查询的图书管理系统
2023年10月26日发(作者:婚礼请柬邀请函模板(通用7篇))
1980年1角回收价格-
《C++程序设计》课程设计
设计说明书
课程名称:
《C++程序设计》课程设计
设计题目:
图书管理程序
指导教师:
班 级:
学 号:
学生姓名:
同组人员:
成 绩:
计算机科学与工程学院
评 语:
2014年06月 20 日
《图书管理程序》课程设计实验报告 - 1 -
目 录
第1章 概述 ................................................................................................................................... 1
1.1
选题 ................................................................... 1
1。2选题的背景和意义 ...................................................... 1
1.3团队分工和个人贡献 ..................................................... 2
第2章 系统分析(需求分析) ................................................................................................... 2
2.1系统的整体需求 ......................................................... 2
2。2
系统的功能需求 ........................................................ 2
2。3系统主要模块流程图 .................................................... 4
第3章 系统设计 ........................................................................................................................... 5
3.1
系统的整体设计 ......................................................... 5
3.2
系统的主要模块设计 ..................................................... 5
第4章 系统实现 ........................................................................................................................... 6
第5章 结束语 ............................................................................................................................... 8
参考文献 ......................................................................................................................................... 9
第1章 概述
1.1 选题
第十题:图书管理程序
图书信息的组成部分为:书号、书名、作者名、出版社、出版时间、价格等。要求用类和对象实现:
1) 新书上架:添加图书信息
2) 图书浏览:输出所有图书信息
3) 图书查询:可按书号、书名或作者名查询(按书号查询时,因书号唯一,结果仅为一条记录;按书名或作者名查询时,结果可能为多条记录)
4)图书下架:删除指定图书信息,如按书号
1.2选题的背景和意义
选题背景:图书馆是我们日常生活中必不可少的学习、阅读的场所, 《图书管理程序》课程设计实验报告 - 2 -
借阅图书则是我们进入图书馆进行阅读的首要行为。为了能够借阅到我们想要借阅的图书,我们需要借助电脑查询需要借阅的图书的具体信息,然后出图书后再去借阅处刷卡登记。如今我们处于一个知识大爆炸的时代,图书种类数量剧增,工作人员每天不仅要登记借阅者借阅的图书,还要登记新购进的图书,工作量繁重。而随着科学技术的进步,计算机日益进入我们的生活工作之中,我们能否利用计算机技术,取代原来的手工登记,提高图书管理的效率呢?答案是肯定的.
选题意义:借助计算机C++中的知识,编写相应的图书管理程序就可以实现这一功能。利用图书管理程序记录图书信息,不仅能节省我们大量的工作时间,减轻巨大的工作量,提高工作效率,还能够减少工作失误。
1。3团队分工和个人贡献
第一章 概述
第四章 系统实现
源代码中:
(1)图书浏览功能
(2)图书删除功能
第2章 系统分析(需求分析)
2.1系统的整体需求
该系统需要完成的内容:
用类和对象实现新书上架、 图书浏览、 图书查询、图书下架.
该系统需要完成的整体目标:
系统能够正常运行,基本上实现添加、删除图书信息,显示所有信息,能够由相应条件查阅图书信息这四种功能.
2。2 系统的功能需求
必须完成的模块:
《图书管理程序》课程设计实验报告 - 3 -
(1)界面模块:当进入该管理系统时候,提示相应的说明,引导如何操作
(2) 新书上架模块:能够添加书号、书名、作者名、出版社、出版时间、价格这些图书信息。
(3) 图书浏览模块:能够输出所有图书信息。
(4) 图书查询模块:可按条件查询图书信息,当输入书号或书名或作者名时候,相对应的图书信息便可自动搜索出来。
(5) 图书下架模块:可按书号删除指定图书信息.
创新模块:
《图书管理程序》课程设计实验报告 - 4 -
2。3系统主要模块流程图
显示
主界面
结束
判断进行1—6中的哪项操作
n
n
操作1
y
输入
图书信息
按书号
删除图书
操作2
y
y
图书
信息查询
y
n n
操作3
操作4
n
结束
y
1
y
2
y
3
结束
显示所有
图书信息
按书号
按书名
按作者
结束
操作6
退出系统
注:数字代表相应操作下的子操作
《图书管理程序》课程设计实验报告 - 5 -
第3章 系统设计
3。1 系统的整体设计
图书信息录入
调用书号、书名或作者
调用所
有信息
显示所有图书信息
保存
录入图书信息到txt
保存
调用
书号
图书查询
删除信息
保存
显示操作信退出系统
3.2 系统的主要模块设计
(1)登陆界面模块。该模块显示管理程序的名称,提示相应的操作。
(2)信息录入模块。
登陆界面
录入ISBN、书名、书号、作者、出版社、出版时间、价格
保存到txt文件中
《图书管理程序》课程设计实验报告 - 6 -
(2)图书浏览模块
(3)图书查询模块
(4)图书下架模块
输入浏览所有图书信息指令
调用txt文件中所有图书信息
显示所有图书信息
登陆界面
图书查询界面
输入相应查询指令
调用图书信息文件
显示图书信息
《图书管理程序》课程设计实验报告 - 7 -
登陆界面
输入删除指令
根据删除提示输
入要删除的图书号
提示删除内容,并删除
第4章 系统实现
1登入界面
实现方式:
调用主函数,利用 ()读入数据,同时定义功能选项按钮char function='0’;,对function的真假进行判断,若function为真,即与初值相同,实现while循环内语句。
界面主要程序语句:
cout<〈endl;
cout〈〈”t******************************************************************n";
cout〈〈”tttt欢迎使用图书管理系统"<〈endl;
cout〈<”ttttt请选择操作n”< cout〈〈”tttt1 创建新书信息"〈〈endl; cout〈〈”tttt2 显示所有图书"〈〈endl; cout〈〈”tttt3 按指定条件查询书目"〈 cout〈〈"tttt4 按书号删除书目”<〈endl; cout〈〈”tttt5 退出系统并保存修改"〈〈endl; cout<〈"ttt(查询可按书号/ 作者/ 书名查询)”〈〈endl; cout<<"t******************************************************************n"; 调试运行代码后结果如下: 2、创建图书信息 当选择按钮1,执行main函数中function==’1'的条件语句,首先定义字符串string a,b,c,d,e,f; 然后调用#include 输入数字1后按提示输入相应信息,结果如下: 3、显示所有图书信息 当选择按钮2,执行function=='2’的条件语句。Main函数调用#include cout<<”这是所有藏书:"〈〈endl; 《图书管理程序》课程设计实验报告 - 8 - cout〈<"*********************************”<〈endl; 输出相应的提示信息和图案,然后调用函数display_all (),显示出所有信息。 4、按条件查询 当选择按钮3,执行function=='3'的条件语句。main函数调用#include〈iostream〉,输出相应选择的提示,执行如下代码: cout〈〈”请选择查询方式"<〈endl; cout〈<"1 按ISBN查询"〈 cout〈<”2 按书名查询”〈 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〈iostream〉,输入相应的书号,接下来建立对象del(a," ”,” ",” ”,” ”," ”),调用删除函数delete_by_isbn(),实现删除功能。 例如删除001号图书 步骤一:在登陆界面输入“4”,回车; 步骤二:按提示输入要删除的书号“001",回车. 6、退出图书管理系统 当选择按钮5,执行function==’5'的条件语句。此时执行空操作,跳出while循环,执行main函数后续语句,利用system(”CLS”);清屏后由写函数 ();把操作后的数据读入到文件中,最后调用头文件#include 在登录界面输入“5",回车。 第5章 结束语 这次课程设计历时数个星期,通过课程设计,我发现了自己的很多不足,知识上还存在很多漏洞,我看到了自己的实践经验还比较缺乏,理论联系实际的能力还急需提高。 《图书管理程序》课程设计实验报告 - 9 - 为完成这次课程设计我确实付出很多,有苦有乐,这十几天的工作日子,怎么形容呢,每次在实验室回来就会心情不好,感觉自己什么都没有做成,慢慢的摸索着,开始入门,而且有了一点成就感,就这样每一次都比前一次收获多,心情也慢慢好了,而且我的系统也一天比一天的完善。毕竟没有白费心血,以艰辛的付出最终还是获得不少回报! 总之,计算机是一门实践性很强的学科,要想学好,就必须多练习,多总结,只有这样,才能够更加深入地了解,才能够学会如何去运用它. 参考文献 [1]郑莉,董渊,何江舟.C++程序设计[M]。清华大学出版社,2010. [2]谭浩强.C程序设计[M].清华大学出版社。2007 [3]李强,贾云霞。Visual C++项目开发实践。北京:中国铁道出版社,2004. [4]李书贤。《C++Primer中文版》[M].人民邮电出版社 附录 源代码: #include〈iostream〉 #include #include〈stdlib.h〉 //cstdio是将stdio.h的内容用C++头文件的形式表示出来。 using namespace std; #include class book { private: string isbn; //书号 string name; //书名 string writer; //作者 string publisher; //出版社 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; 《图书管理程序》课程设计实验报告 - 10 - } string get_name() {return name;} string get_isbn() {return isbn;} string get_writer() {return writer;} void display() //图书内容的显示 { cout〈<"书号:”< } }; class database:public book //公有继承(public)的定义class B:public A{ < 派生类新定义成员> }; {private: book shumu[100]; int sum; public: database(){sum=0;} void add(book a) { if(sum〉=100) { cout〈<”添加失败,内存已满!"〈〈endl; } else {shumu[sum]=a; sum++; cout<〈”添加新书目成功,以下是本书信息”< 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(shumu[i].get_isbn()==a。get_isbn()) { cout〈〈”删除书目成功,以下是删除的书信息”〈 shumu[i]。display (); for(int j=i;j〈sum—1;j++) 《图书管理程序》课程设计实验报告 - 11 - { shumu[j]=shumu[j+1]; } flag=1; sum-—; break;} } if(!flag) {cout〈<"the book does’t exist!”< } } } void search_by_name(string names) //按书名查 { int flag=0; for(int i=0;i {if(shumu[i]。get_name()==names) { shumu[i].display (); flag=1;} } if(flag==0) {cout<<"the book does't exist!”< } } void search_by_isbn(string names) //按书号查 { int flag=0; for(int i=0;i {if(shumu[i].get_isbn()==names) { shumu[i]。display (); flag=1;} } if(flag==0) {cout<〈"the book does’t exist!”〈 } } void search_by_writer(string names) //按作者查 {int flag=0; for(int i=0;i〈sum;i++) {if(shumu[i].get_writer()==names) { shumu[i].display (); flag=1;} } if(flag==0) {cout〈〈”the book does't exist!"<〈endl; } } void display_all() //显示全部信息 { for(int i=0;i 《图书管理程序》课程设计实验报告 - 12 - {shumu[i].display (); } } void read() { 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(int i=0;i〈sum;i++) { fread(&shumu[i],sizeof(shumu[i]),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[i],sizeof(shumu[i]),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〈 《图书管理程序》课程设计实验报告 - 13 - cout<<”t******************************************************************n”; cout〈〈"tttt欢迎使用图书管理系统"〈 cout<〈”ttttt请选择操作n”< cout<〈"tttt1 创建新书信息"〈 cout<〈"tttt2 显示所有图书"<〈endl; cout<<"tttt3 按指定条件查询书目"〈〈endl; cout〈<”tttt4 按书号删除书目"〈〈endl; cout<〈”tttt5 退出系统并保存修改"〈 cout<〈"ttt(查询可按书号/ 作者/ 书名查询)"< cout<〈"t******************************************************************n”; cin>〉function; //图书书号、书名、作者、出版社、出版时间、价格信息的录入 换码符't',表示水平制表位(horizeontal tab),它的作用是将光标移到最接近8的倍数的位置,使得后面的输入从此开始。换句话说,让所有的数据都紧跟在制表符后面输出. //换码符’t’,表示水平制表位,它的作用是将光标移到最接近8的倍数的位置,使得后面的输入从此开始。换句话说,让所有的数据都紧跟在制表符后面输出。 if(function=='1’) { string a,b,c,d,e,f; //定义字符串 cout〈<"请输入书的isbn编号”<〈endl; cin>>a; cout〈〈"请输入书名”< cin>〉b; cout<〈"请输入书作者名”< cin>>c; cout<<”请输入书的出版社”〈〈endl; cin>〉d; cout<〈"请输入书的出版时间"<〈endl; cin>>e; cout<<"请输入书的价格”〈〈endl; cin>〉f; book newbook(a,b,c,d,e,f); (newbook); newbook。display(); system(”PAUSE"); system(”CLS”); } //显示所有图书信息 else if(function==’2’) {cout<<"这是所有藏书:”<〈endl; cout〈<"*********************************”< y_all (); system(”PAUSE”); system(”CLS”); 《图书管理程序》课程设计实验报告 - 14 - } //按条件查询图书,输入按书号查询,输入按书名查询,输入按作者查询 else if(function==’3’) { cout<〈"请选择查询方式"〈〈endl; cout<〈”1 按ISBN查询”<〈endl; cout〈<”2 按书名查询"< cout<<”3 按作者查询"〈〈endl; char j; string search; cin>〉j; if(j=='1') { cout〈<"请输入ISBN号"〈〈endl; //按书号查询 cin〉>search; cout<<"以下是查询结果"〈〈endl; cout〈<”*********************************”〈 Book。search_by_isbn (search); //按书号查询图书信息函数的调用 system("PAUSE"); system("CLS"); } else if(j==’2') { cout〈〈”请输入书名”〈 cin〉>search; cout<<"以下是查询结果"〈〈endl; cout<<”*********************************”〈〈endl; Book。search_by_name (search); //按书名查询图书信息函数的调用 system("PAUSE"); system(”CLS”); } else if(j==’3’) //按作者查询 { cout〈〈"请输入作者名”〈〈endl; cin>〉search; cout<〈”以下是查询结果"〈〈endl; cout<〈”*********************************”< Book。search_by_writer (search); //按作者名查询图书信息函数的调用 system("PAUSE”); system(”CLS”); } else { cout<<”输入错误,请重新操作!”〈 system(”PAUSE"); system(”CLS”); 《图书管理程序》课程设计实验报告 - 15 - } } //按书名删除图书 else if(function=='4’) { string a; cout<〈”请输入要删除的书号"〈 cin>〉a; book del(a,” ",” ”," ",” "," "); Book。delete_by_isbn (del); //按书名删除函数的调用 system(”PAUSE”); system(”CLS"); } // 退出系统并保存修改 else if(function=='5’) {} //未按照主界面提示信息操作,提示错误 else {cout〈〈"输入错误,请重新选择!”〈〈endl; system("PAUSE”); system(”CLS"); } } //退出系统 system(”CLS"); (); for(int i=0;i<8;i++) {cout<〈" "<〈endl;} for(int i=0;i〈55;i++) {cout〈<”*”;} cout<〈endl; cout<<”您已退出本图书管理系统,您的修改已经保存,欢迎再次使用!”〈 for(int i=0;i〈55;i++) {cout〈<”*";} cout<〈endl; system("PAUSE"); exit(0); } 大闸蟹图片 实拍-