C++实现简易图书馆管理系统的代码怎么写
C++实现简易图书馆管理系统的代码怎么写
这篇文章主要讲解了“C++实现简易图书馆管理系统的代码怎么写”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++实现简易图书馆管理系统的代码怎么写”吧!
思路
在本程序中共有四个类:
book类:此类有书的基本信息:书名,编号,作者,价格等,和基本的get()和set()方法。类图如下:
library类:此类中有一个存放的书的数组,并且可以对书进行,查询,借阅,归还,添加,等相关操作。类图如下:
reader_infor类:此类中有读者的相关信息:名字,学号,年级,借书数量。和基本的get()和set()方法,类图如下:
reader_admin类:此类中有一个存放读者对象的数组,并且可以进行添加读者,修改读者信息等操作。类图如下:
登陆页面如下
读者页面
管理员页面
在本程序过程中的不足:
1.书和读者的存储是通过静态数组实现的,如果用动态数组的话更好一点。
2.还有一些其他点感觉写的不是很好,但还不知道要怎么改。
后面有时间会再完善一下。
代码
“book.h"
#pragmaonce#include<iostream>usingnamespacestd;classbook{public:book();book(stringname,intn_number,ints_number,intid,stringauthor,doubleprice);//get方法stringget_name();intget_n_number();intget_s_number();intget_id();stringget_author();doubleget_price();//set方法voidset_name(stringname);voidset_n_number(intn_number);voidset_s_number(ints_number);voidset_id(intid);voidset_author(stringauthor);voidset_price(doubleprice);private:stringname;//名称intn_number;//现有数量ints_number;//库存数量intid;//编号stringauthor;//作者doubleprice;//价格};
"book.cpp"
#include"book.h"book::book(){name="";n_number=0;s_number=0;id=0;author="";price=0;}book::book(stringname,intn_number,ints_number,intid,stringauthor,doubleprice){this->name=name;this->n_number=n_number;this->s_number=s_number;this->id=id;this->author=author;this->price=price;}//get方法。stringbook::get_name(){returnname;}intbook::get_n_number(){returnn_number;}intbook::get_s_number(){returns_number;}intbook::get_id(){returnid;}stringbook::get_author(){returnauthor;}doublebook::get_price(){returnprice;}//set方法。voidbook::set_name(stringname){this->name=name;}voidbook::set_n_number(intn_number){this->n_number=n_number;}voidbook::set_s_number(ints_number){this->s_number=s_number;}voidbook::set_id(intid){this->id=id;}voidbook::set_author(stringauthor){this->author=author;}voidbook::set_price(doubleprice){this->price=price;}
"library.h"
#pragmaonce#include"reader_admin.h"#include"book.h"usingnamespacestd;classlibrary{public:library();intget_m();//返回存放书的总数量intget_place();//返回查找到书的位置voidset_book1();//存放书籍voidshow_book();//显示书籍的相关信息boolsearch();//查找书籍//修改书的相关信息boolchang_book1();boolborrow_book(reader_admin&r_ad);//借书boolreturn_book(reader_admin&r_ad);//还书private:intm;//存放书的总数。intplace;//记录查找到书的位置。bookbook1[1000];//一个存放1000本书的数组。};
librayry.cpp
#include"library.h"#include"book.h"//book类作为书籍的基类//书共有的属性:名称,现有数量,库存数量,编号,作者,价格library::library(){m=0;}intlibrary::get_m(){returnm;}intlibrary::get_place(){returnplace;//返回查找到书的位置。}voidlibrary::set_book1(){cout<<"请输入书的名称:"<<endl;stringname;cin>>name;cout<<"请输入书的现存数量:"<<endl;intnow;cin>>now;cout<<"请输入书的库存数量:"<<endl;ints;cin>>s;cout<<"请输入书的编号:"<<endl;intid;cin>>id;cout<<"请输入书的作者:"<<endl;stringauthor;cin>>author;cout<<"请输入书的价格:"<<endl;doubleprice;cin>>price;bookb(name,now,s,id,author,price);this->book1[m]=b;m++;cout<<"恭喜您完成书的存储!"<<endl;}voidlibrary::show_book(){cout<<"您好,下面将为您显示图书信息!"<<endl;cout<<"名称"<<""<<"编号"<<""<<"现有数量"<<""<<"库存数量"<<""<<"作者"<<""<<"价格"<<endl;for(inti=0;i<m;i++){cout<<book1[i].get_name()<<""<<book1[i].get_id()<<""<<book1[i].get_n_number()<<""<<book1[i].get_s_number()<<""<<book1[i].get_author()<<""<<book1[i].get_price()<<endl;}}boollibrary::search(){intid;cout<<"请输入您借阅书籍的ID:"<<endl;cin>>id;for(inti=0;i<m;i++){if(book1[i].get_id()==id){cout<<"名称"<<""<<"编号"<<""<<"现有数量"<<""<<"库存数量"<<""<<"作者"<<""<<"价格"<<endl;cout<<book1[i].get_name()<<""<<book1[i].get_id()<<""<<book1[i].get_n_number()<<""<<book1[i].get_s_number()<<""<<book1[i].get_author()<<""<<book1[i].get_price()<<endl;returntrue;}}cout<<"您查找的书不存在!"<<endl;returnfalse;}boollibrary::borrow_book(reader_admin&r_ad)//借书{charc='';do{cout<<"请输入您的学号:"<<endl;stringr_id;cin>>r_id;if(r_ad.sreach_id(r_id)==true)//判断输入的学号是否存在{chard='';do{intid;cout<<"请输入您借阅书籍的ID:"<<endl;cin>>id;for(inti=0;i<m;i++){if(book1[i].get_id()==id)//如果查找的书本存在{if(book1[i].get_n_number()==0){cout<<"您找的书已借阅完!"<<endl;returnfalse;}else{book1[i].set_n_number(book1[i].get_n_number()-1);//使书本的数量少一。r_ad.r_borrow();//读者的借阅量加一。cout<<"恭喜您借阅成功!"<<endl;returntrue;}}}cout<<"您查找的书籍不存在!/已借阅完!"<<endl;cout<<"重新输入请按Y!按其他任意键退出!"<<endl;cin>>d;}while(d=='Y'||d=='y');returnfalse;}cout<<"您输入的学号不存在!"<<endl;cout<<"重新输入请按Y!按其他任意键退出!"<<endl;cin>>c;}while(c=='Y'||c=='y');returnfalse;}boollibrary::return_book(reader_admin&r_ad){charc='';do{cout<<"请输入您的学号:"<<endl;stringr_id;cin>>r_id;if(r_ad.sreach_id(r_id)==true)//判断输入的学号是否存在{chard='';do{intid;cout<<"请输入您借阅书籍的ID:"<<endl;cin>>id;for(inti=0;i<m;i++){if(book1[i].get_id()==id)//如果查找的书本存在{if(book1[i].get_n_number()==0){}else{book1[i].set_n_number(book1[i].get_n_number()+1);//使书本的数量加一。r_ad.r_reutrn();//读者的借阅量减一。cout<<"恭喜您借阅成功!"<<endl;returntrue;}}}cout<<"您查找的书籍不存在!/已借阅完!"<<endl;cout<<"重新输入请按Y!按其他任意键退出!"<<endl;cin>>d;}while(d=='Y'||d=='y');returnfalse;}cout<<"您输入的学号不存在!"<<endl;cout<<"重新输入请按Y!按其他任意键退出!"<<endl;cin>>c;}while(c=='Y'||c=='y');returnfalse;}//修改书的相关信息boollibrary::chang_book1(){charc='';chard='';do{cout<<"请输入您要修改信息书的id:"<<endl;intid;cin>>id;for(inti=0;i<m;i++){if(book1[i].get_id()==id){do{cout<<"请选择您要修改的信息:"<<endl;cout<<"1.name"<<"2.id"<<"3.n_number"<<"4.s_number"<<"5.id"<<"6.author"<<"7.price"<<endl;intn;cin>>n;//修改名称if(n==1){cout<<"请输入您修改的名称:"<<endl;stringnew_name;cin>>new_name;book1[i].set_name(new_name);cout<<"恭喜您修改成功!"<<endl;}//修改idif(n==2){cout<<"请输入您修改的id"<<endl;intnew_id;cin>>new_id;book1[i].set_id(new_id);cout<<"恭喜您修改成功!"<<endl;}//修改n_numberif(n==3){cout<<"请输入您修改的现有数量"<<endl;intnew_n_number;cin>>new_n_number;book1[i].set_n_number(new_n_number);cout<<"恭喜您修改成功!"<<endl;}//修改库存信息if(n==4){cout<<"请输入您修改的库存数量"<<endl;intnew_s_number;cin>>new_s_number;book1[i].set_s_number(new_s_number);cout<<"恭喜您修改成功!"<<endl;}//修改书的编号if(n==5){cout<<"请输入您修改的编号"<<endl;intnew_id;cin>>new_id;book1[i].set_id(new_id);cout<<"恭喜您修改成功!"<<endl;}//修改作者信息if(n==6){cout<<"请输入您修改的作者"<<endl;stringnew_name;cin>>new_name;book1[i].set_name(new_name);cout<<"恭喜您修改成功!"<<endl;}//修改价格信息if(n==7){cout<<"请输入您修改的价格"<<endl;doublenew_price;cin>>new_price;book1[i].set_price(new_price);cout<<"恭喜您修改成功!"<<endl;}cout<<"继续修改请按Y!"<<endl;cin>>d;}while(d=='Y'||d=='y');}}cout<<"您查找的书不存在"<<endl;cout<<"重新输入请按Y!按其他任意键退出!"<<endl;cin>>c;}while(c=='Y'||c=='y');returnfalse;}
"reader_infor.h"
#pragmaonce//存储学生信息#include"book.h"classreader_infor{public:reader_infor();reader_infor(stringId,stringName,stringGrade,intNumber);//get函数stringget_r_id();//返回学生的学号。stringget_r_name();//返回学生的名字。stringget_r_grade();//返回学生的班级。intget_r_borrow();//返回学生借阅书籍的数量。//set函数voidset_r_id(stringID);voidset_r_name(stringName);voidset_r_grade(stringGrade);voidset_r_borrow(intNumber);private:stringr_id;//学生的学号stringr_name;//学生的名字stringr_grade;//学生的班级intr_borrow;//学生借阅书籍的数量};
"reader_infor.cpp"
#include"reader_infor.h"//构造函数reader_infor::reader_infor(){r_id="";r_name="";r_grade="";r_borrow=0;}reader_infor::reader_infor(stringid,stringname,stringgrade,intnumber){this->r_id=id;this->r_name=name;this->r_grade=grade;this->r_borrow=number;}//get函数stringreader_infor::get_r_id(){returnthis->r_id;}stringreader_infor::get_r_name(){returnthis->r_name;}stringreader_infor::get_r_grade(){returnthis->r_grade;}intreader_infor::get_r_borrow(){returnthis->r_borrow;}//set函数voidreader_infor::set_r_id(stringId){this->r_id=Id;}voidreader_infor::set_r_name(stringName){this->r_name=Name;}voidreader_infor::set_r_grade(stringGrade){this->r_grade=Grade;}voidreader_infor::set_r_borrow(intBorrow){this->r_borrow=Borrow;}
"reader_admin.h
#pragmaonce#include"reader_infor.h"//管理学生信息classreader_admin{public:reader_admin();intget_borrow_number();voidset_borrow_number(inti);voidset_reader_infor();//创建学生信息。voidshow_reader_infor();//显示学生的信息。boolchang_reader();//修改读者信息。boolsreach_id(stringid);//查找学生的学号。voidr_borrow();//读者的借阅量+1。voidr_reutrn();//读者的借阅量-1。private:intborrow_number;//查找的相关位置。intreader_number;//记录学生的个数。reader_inforreader1[1000];//存放学生信息。};
"reader_admin.cpp
#include"reader_admin.h"reader_admin::reader_admin(){reader_number=0;borrow_number=-1;}intreader_admin::get_borrow_number(){returnborrow_number;}voidreader_admin::set_borrow_number(inti){this->borrow_number=i;}//添加读者信息voidreader_admin::set_reader_infor(){cout<<"请输入学生的id:"<<endl;stringr_id;cin>>r_id;cout<<"请输入学生的姓名:"<<endl;stringr_name;cin>>r_name;cout<<"请输入学生的年级:"<<endl;stringr_grade;cin>>r_grade;cout<<"请输入学生的借书数量:"<<endl;intr_number;cin>>r_number;reader_inforreader_new(r_id,r_name,r_grade,r_number);reader1[reader_number]=reader_new;reader_number++;//学生数量加1.}//显示读者信息voidreader_admin::show_reader_infor(){for(inti=0;i<reader_number;i++){cout<<"学生的学号是:"<<reader1[i].get_r_id()<<endl;cout<<"学生的姓名是:"<<reader1[i].get_r_name()<<endl;cout<<"学生的年级是:"<<reader1[i].get_r_grade()<<endl;cout<<"学生的借书数量是:"<<reader1[i].get_r_borrow()<<endl;}}boolreader_admin::sreach_id(stringid)//查找学号是否存在{for(inti=0;i<reader_number;i++){if(reader1[i].get_r_id()==id){borrow_number=i;returntrue;}}returnfalse;}//借书数量加一voidreader_admin::r_borrow(){reader1[borrow_number].set_r_borrow(reader1[borrow_number].get_r_borrow()+1);borrow_number=-1;}//借书数量减一voidreader_admin::r_reutrn(){reader1[borrow_number].set_r_borrow(reader1[borrow_number].get_r_borrow()-1);borrow_number=-1;}//修改书籍信息boolreader_admin::chang_reader(){charc='';chard='';do{cout<<"请输入您要修改信息学生的id"<<endl;stringr_id;cin>>r_id;if(sreach_id(r_id)==true){do{cout<<"请选择您要修改的信息:"<<endl;cout<<"1.学号"<<"2.名字"<<"3.班级"<<"4.借阅书籍数量"<<endl;inti;cin>>i;//修改学号if(i==1){cout<<"请输入您修改的学号"<<endl;stringnew_r_id;cin>>new_r_id;reader1[borrow_number].set_r_id(new_r_id);cout<<"恭喜您修改成功!"<<endl;}//修改名称if(i==2){cout<<"请输入您修改的名称"<<endl;stringnew_r_name;cin>>new_r_name;reader1[borrow_number].set_r_name(new_r_name);cout<<"恭喜您修改成功!"<<endl;}//修改班级if(i==3){cout<<"请输入您修改的班级"<<endl;stringnew_r_grade;cin>>new_r_grade;reader1[borrow_number].set_r_grade(new_r_grade);cout<<"恭喜您修改成功!"<<endl;}//修改借阅数量if(i==4){cout<<"请输入您修改的数量"<<endl;intnew_r_number;cin>>new_r_number;reader1[borrow_number].set_r_borrow(new_r_number);cout<<"恭喜您修改成功!"<<endl;}cout<<"继续修改信息请按Y!按任意键退出!"<<endl;cin>>d;}while(d=='Y'||d=='y');borrow_number=-1;//将查找到的位置初始化。break;//跳出本次修改。}cout<<"继续修改请按Y!按任意键退出!"<<endl;cin>>c;}while(c=='Y'||c=='y');returnfalse;}
test.cpp
#include<string>#include"book.h"#include"library.h"#include"reader_infor.h"#include"reader_admin.h"usingnamespacestd;intmain(){reader_adminr_ad;librarylib;inti;while(1){cout<<"************欢迎来到图书馆************"<<endl;cout<<"**********请选择您的登陆身份**********"<<endl;cout<<"1.借阅者登陆"<<endl;cout<<"2.管理员登陆"<<endl;cin>>i;intj;if(i==1){do{cout<<"********请选择您要进行的操作**********"<<endl;cout<<"********1.浏览图书信息**********"<<endl;cout<<"********2.查找**********"<<endl;cout<<"********3.借书**********"<<endl;cout<<"********4.还书**********"<<endl;cout<<"********5.退出**********"<<endl;cin>>j;switch(j){case1:lib.show_book();break;case2:lib.search();break;case3:lib.borrow_book(r_ad);break;case4:lib.return_book(r_ad);break;case5:break;}}while(j==1||j==2||j==3||j==4);}intm;if(i==2){do{cout<<"********请选择您要进行的操作**********"<<endl;cout<<"********1.浏览图书信息**********"<<endl;cout<<"********2.浏览读者信息**********"<<endl;cout<<"********3.添加图书信息**********"<<endl;cout<<"********4.添加读者信息**********"<<endl;cout<<"********5.修改图书信息**********"<<endl;cout<<"********6.修改读者信息**********"<<endl;cout<<"********7.退出**********"<<endl;cin>>m;switch(m){case1:lib.show_book();break;case2:r_ad.show_reader_infor();break;case3:lib.set_book1();break;case4:r_ad.set_reader_infor();break;case5:lib.chang_book1();break;case6:r_ad.chang_reader();break;case7:continue;}}while(m==1||m==2||m==3||m==4||m==5||m==6);}}return0;}
感谢各位的阅读,以上就是“C++实现简易图书馆管理系统的代码怎么写”的内容了,经过本文的学习后,相信大家对C++实现简易图书馆管理系统的代码怎么写这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是恰卡编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!