900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 简易版图书管理系统

简易版图书管理系统

时间:2022-12-20 19:26:03

相关推荐

简易版图书管理系统

项目描述:

(本次项目呢时用C++的知识点,来实现的,主要使用类,静态成员函数,成员变量,定义一个基类来展开的。(写的不好请多多指教)

1、图书有电子书和纸质书两种

2、图书按照类别存放在不同的书架

3、图书管理员按照书的类别对书进行操作

实现功能:

1、图书管理员将图书按照类别放入书架

2、图书管理员将某本书从书架中删除

3、图书管理员查找某本书的信息或者所有书的信息

4、图书管理员修改某本书的信息

5、图书管理员浏览某本书的内容

项目的类:

1、纸质书类:

(1)成员变量:书名 作者 价格 类别 编号 数量(书的数量,所有书的对象都能知

(2)成员函数:输出书的内容 获得书的信息 修改数量 获得书的类别

2、电子书类:

(1)成员变量:书名 作者 大小 类别

(2)成员函数:输出书的内容 获得书的信息 获得书的类别

3、书架类:

(1)成员变量:书架编号 书架类别 书架上书的数量 书的总数(所有书架都能知道)

(2) 成员函数:获得该书架书的数量 给该书架上添加书 从该书架上删除书

4、图书管理员类:

(1)成员变量:姓名 年龄 性别 工号

(2)成员函数:将书按照类别添加到书架上,将书从某个书架上删除

完成步骤:

1、定义纸质书类 电子书类 书架类 图书管理员类

2、将书的总数定义成静态成员变量

3、定义图书类,纸质书类和电子书类继承于图书类

4、在书架类中定义数组,将插入的书的信息放在数组中

在实例化书架类对象时,可以实例化一个对象数组,方便按书的类别找到对应的书架

5、图书管理员通过不同的方式浏览电子书和纸质书

7、将书架和书的信息存放到数据库

注意:类的声明和类的成员函数的定义分别在.h和.cpp文件中。

paperBook.h#pragma once#ifndef __PAPERBOOK_H_#define __PAPERBOOK_H_#include "Book.h"using namespace std;class paperBook :public Book{protected:string m_strNum; //书的编号double m_price;//书的价格static int m_count; //数的总数//成员函数public:paperBook(string strName, string strAuthor, string strType, double price, string strNum);//构造函数virtual ~paperBook();string GetNum();double GetPrice();int GetCount();void show();virtual void OutputBook();};#endif

paperBook.cpp#include "Book.h"#include "paperBook.h"#include "electBook.h"#include "Librarian.h"#include "BookShelf.h"using namespace std;int paperBook::m_count = 0;paperBook::paperBook(string strName, string strAuthor, string strType, double Price, string strNum) :Book(strName, strAuthor, strType){m_price = Price;m_strNum = strNum;m_count++;}paperBook::~paperBook(){m_count--;cout << "~paperBook" << endl;}void paperBook::show(){cout << "*********************************************************************************" << endl;cout << "该书的书名为:" << m_strName << "***" << "该书的作者为:" << m_strAuthor << "***" <<"该书的类型是:" << m_strType << endl;cout << "该书的价格为:" << m_price << "***¥/本" << "该书的编号为:" << m_strNum<< "****" <<"该书的总数是:" << m_count<<"本" << endl;cout << "*********************************************************************************" << endl;}string paperBook::GetNum(){cout << "该书的编号为:" << m_strNum << endl;return m_strNum;}double paperBook::GetPrice(){cout << "该书的价格为:" << m_price << endl;return m_price;}int paperBook::GetCount(){cout << "纸质书的总数为:" << m_count << endl;return m_count;}void paperBook::OutputBook(){cout << "正在读纸质书:《" << m_strName<<"》" << endl;}

ElecBook.h#pragma once#ifndef __ELECTBOOK_H_#define __ELECTBOOK_H_#include "Book.h"#include "paperBook.h"using namespace std;class electBook:public Book{protected:double m_size;public:electBook(string strName, string strAuthor, string strType, double size);;virtual ~electBook();void show();double GetSize();virtual void OutputBook();};#endif

ElecBook.cpp#include "electBook.h"#include "Book.h"#include "paperBook.h"using namespace std;electBook::electBook(string strName, string strAuthor, string strType, double size):Book(strName,strAuthor,strType){m_size = size;}electBook::~electBook(){cout << "~electBook" << endl;}double electBook::GetSize(){cout << "该书占内存的大小为:" << m_size << endl;return m_size;}void electBook::show(){cout << "**************************************************************************" << endl;cout << "该书的书名为:" << m_strName << "****" << "该书的作者为:" << m_strAuthor << "***" << endl;cout << "该书的大小为:" << m_size << "MB" << "该书的类型为:" << m_strType<< "***" << endl;cout << "*************************************************************************" << endl;}void electBook::OutputBook(){cout << "正在读电子书:《" < m_strName << "》" << endl;}

Book.cpp#include "Book.h"using namespace std;Book::Book(string strName, string strAuthor, string strType){m_strName = strName; //书名m_strAuthor = strAuthor; //作者m_strType = strType; //书的类别}Book::~Book(){cout << "~Book" << endl;}void Book::OutputBook(){cout << "小敏正在读书:《" << m_strName << "》" << endl;}string Book::GetName(){cout << "该书的书名为:" << m_strName << endl;return m_strName;}string Book::GetAuthor(){cout << "该书的作者为:" << m_strAuthor << endl;return m_strAuthor;}string Book::GetType(){cout << "该书的类别为:" << m_strType << endl;return m_strType;}

Book.h#ifndef __BOOK_H#define __BOOK_H#include <iostream>#include <string>using namespace std;class Book{protected:string m_strName;string m_strAuthor; //作者string m_strType; //类别public:Book(string strName, string strAuthor, string strType);virtual ~Book();//函数声明virtual void OutputBook();string GetName();string GetAuthor();string GetType();};#endif

BookShelf.cpp#include "Book.h"#include "BookShelf.h"#include "electBook.h"#include "paperBook.h"using namespace std;int BookShelf::m_strSum = 0;BookShelf::BookShelf(string strNum, string strType){m_count = 0;m_strNum = strNum;m_strType = strType;}string BookShelf::GetType(){cout << "该书的类型为:" << m_strType << endl;return m_strType;}void BookShelf::AddBook(paperBook & PaperBook){m_paperBookVector.push_back(PaperBook);m_count++;m_strSum++;}void BookShelf::DelBook(paperBook & PaperBook){string strNum = PaperBook.GetName();vector<paperBook>::iterator iter;for (iter= m_paperBookVector.begin();iter != m_paperBookVector.end(); iter++){string strNum = iter->GetNum();if (strNum == strNum){m_paperBookVector.erase(iter);m_count--;m_strSum--;break;}}}void BookShelf::show(){cout << "************************该书架上的书为:***********************************" << endl;vector<paperBook>::iterator iter;for (iter = m_paperBookVector.begin();iter != m_paperBookVector.end(); iter++){cout << "*****************************" << endl;cout << "该书的名为:" << iter->GetName() << endl;cout << "该书的作者:" << iter->GetAuthor() << endl;cout << "该书的编号为:" << iter->GetNum() << endl;cout << "*****************************" << endl;}}

BookShelf.h#pragma once#ifndef __BOOKSHELF_H_#define __BOOKSHELF_H#include "Book.h"#include "paperBook.h"#include "electBook.h"#include <vector>using namespace std;class BookShelf{private:string m_strNum;string m_strType;int m_count;static int m_strSum;vector<paperBook>m_paperBookVector; //容器public:BookShelf(string strNum, string strType);string GetType();void AddBook(paperBook& PaperBook);void DelBook(paperBook& PaperBook);void show();};#endif

Librarian.cpp#include "Librarian.h"#include "Book.h"#include "BookShelf.h"#include "paperBook.h"using namespace std;Librarian::Librarian(string strName, string strSex, string strNum, int strAge){m_strName = strName;m_strSex = strSex;m_strNum = strNum;m_Age = strAge;}void Librarian::classifierAddBook(paperBook& paperBook, BookShelf shelf[]){string strType = paperBook.GetType();for (int i = 0; i < 5; i++){string strType = shelf[i].GetType();if (strType == strType){shelf[i].AddBook(paperBook);}}}void Librarian::classifierDelBook(paperBook& paperBook, BookShelf shelf[]){string strType = paperBook.GetType();for (int i = 0; i < 5; i++){string strType = shelf[i].GetType();if (strType == strType){shelf[i].DelBook(paperBook);}}}void Librarian::ReadBook(Book * pb){pb->OutputBook();//cout << " Book" << endl;}

Librarian.h#pragma once#ifndef __LIBRARIAN_H_#define __LIBRARIAN_H_#include "Book.h"#include "paperBook.h"#include "electBook.h"#include "BookShelf.h"using namespace std;class Librarian{private:string m_strName;string m_strSex;string m_strNum;int m_Age;public://classifierAddBook:分类器来添加书//classifierDelBook:删除书架上的书Librarian(string strName, string strSex, string strNum, int Age);void classifierAddBook(paperBook& paperBook, BookShelf Shelf[]);void classifierDelBook(paperBook& paperBook, BookShelf Shelf[]);void ReadBook(Book* pb);};#endif

BookManagementSystem#include "Book.h"#include "BookShelf.h"#include "electBook.h"#include "Librarian.h"#include "paperBook.h"int main(){cout << "*************************以下为纸质书的全部信息*****************************************"<<endl;paperBook* pBook1 = new paperBook("朝花夕拾","鲁迅", "诗歌散文", 19.9, "A0001");pBook1->show();paperBook* pBook2 = new paperBook("千秋人物", "梁衡", "诗歌散文", 29.9, "A0002");pBook2->show();paperBook* pBook3 = new paperBook("文化苦旅", "余秋雨", "诗歌散文", 14.9, "A0003");pBook3->show();paperBook* pBook4 = new paperBook("雅舍谈吃", "梁秋实", "诗歌散文", 10.9, "A0004");pBook4->show();paperBook* pBook5 = new paperBook("夜行歌", "紫薇流年", "武侠小说", 9.9, "B0001");pBook5->show();paperBook* pBook6 = new paperBook("白发魔女传", "梁羽生", "武侠小说", 13.9, "B0002");pBook6->show();paperBook* pBook7 = new paperBook("膳食革命", "王星宸", "科技类", 19.9, "C0001");pBook7->show();paperBook* pBook8 = new paperBook("细胞正能量", "张红凯", "科技类", 39.9, "C0002");pBook8->show();paperBook* pBook9 = new paperBook("三体", "刘慈欣", "科技类", 59.9, "C0003");pBook9->show();paperBook* pBook10 = new paperBook("地心游记", "凡尔纳", "科技类", 49.9, "C0004");pBook10->show();paperBook* pBook11= new paperBook("摆渡人","麦克福尔", "外国名著", 43.9, "D0001");pBook11->show();paperBook* pBook12= new paperBook("茶花女", "小仲马", "外国名著", 65.9, "D0002");pBook12->show();paperBook* pBook13= new paperBook("红楼梦", "曹雪芹", "中国名著", 20.9, "E0001");pBook13->show();paperBook* pBook14= new paperBook("骆驼祥子", "老舍", "中国名著", 17.9, "E0002");pBook14->show();paperBook* pBook15= new paperBook("四世同堂", "老舍", "中国名著", 39.9, "E0001");pBook15->show();cout << "**************************************************************************************" << endl;cout << "*************************以下书籍为电子版本*******************************************" << endl;electBook* eBook1 = new electBook("隐秘而伟大", "黄琛", "历史",10);eBook1->show();electBook* eBook2 = new electBook("前程旧梦", "郑逸梅", "诗歌", 11);eBook2->show();electBook* eBook3 = new electBook("UFO之谜", "王顺义", "科幻", 12);eBook3->show();cout << "**************************************************************************************" << endl;BookShelf Bookshelf[5] = { BookShelf("A000","诗歌散文"),BookShelf("B000","武侠小说"),BookShelf("C000","科技类"),BookShelf("D000","外国名著"),BookShelf("E000","中国名著") };Librarian m_Librarian("cidiy", "女", "1000", 23);m_Librarian.classifierAddBook(*pBook1,Bookshelf);m_Librarian.classifierAddBook(*pBook2, Bookshelf);m_Librarian.classifierAddBook(*pBook3, Bookshelf);m_Librarian.classifierAddBook(*pBook4, Bookshelf);m_Librarian.classifierAddBook(*pBook5, Bookshelf);m_Librarian.classifierAddBook(*pBook6, Bookshelf);m_Librarian.classifierAddBook(*pBook7, Bookshelf);m_Librarian.classifierAddBook(*pBook8, Bookshelf);m_Librarian.classifierAddBook(*pBook9, Bookshelf);m_Librarian.classifierAddBook(*pBook10, Bookshelf);m_Librarian.classifierAddBook(*pBook11, Bookshelf);m_Librarian.classifierAddBook(*pBook12, Bookshelf);m_Librarian.classifierAddBook(*pBook13, Bookshelf);m_Librarian.classifierAddBook(*pBook14, Bookshelf);m_Librarian.classifierAddBook(*pBook15, Bookshelf);for (int i = 0; i < 5; i++){Bookshelf[i].show();}m_Librarian.ReadBook(pBook1);cout << "**********************************" << endl;m_Librarian.ReadBook(eBook3);cout << "**********************************" << endl;return 0;}//测试时还存在一些小问题,还望小心()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。