千家信息网

C++实现简易图书馆管理系统的代码怎么写

发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,这篇文章主要讲解了"C++实现简易图书馆管理系统的代码怎么写",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C++实现简易图书馆管理系统的代码怎么写"吧
千家信息网最后更新 2024年09月21日C++实现简易图书馆管理系统的代码怎么写

这篇文章主要讲解了"C++实现简易图书馆管理系统的代码怎么写",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C++实现简易图书馆管理系统的代码怎么写"吧!

思路

在本程序中共有四个类:

book类:此类有书的基本信息:书名,编号,作者,价格等,和基本的get()和set()方法。类图如下:

library类:此类中有一个存放的书的数组,并且可以对书进行,查询,借阅,归还,添加,等相关操作。类图如下:

reader_infor类:此类中有读者的相关信息:名字,学号,年级,借书数量。和基本的get()和set()方法,类图如下:

reader_admin类:此类中有一个存放读者对象的数组,并且可以进行添加读者,修改读者信息等操作。类图如下:

登陆页面如下

读者页面

管理员页面

在本程序过程中的不足:

1.书和读者的存储是通过静态数组实现的,如果用动态数组的话更好一点。
2.还有一些其他点感觉写的不是很好,但还不知道要怎么改。
后面有时间会再完善一下。

代码

"book.h"

#pragma once#include using namespace std;class book{public:    book();    book(string name, int n_number, int s_number, int id, string author, double price);    //get方法    string get_name();    int get_n_number();    int get_s_number();    int get_id();    string get_author();    double get_price();    //set方法    void set_name(string name);    void set_n_number(int n_number);    void set_s_number(int s_number);    void set_id(int id);    void set_author(string author);    void set_price(double price);private:    string name;//名称    int n_number;//现有数量    int s_number;//库存数量    int  id;//编号    string author;//作者    double price;//价格    };

"book.cpp"

#include "book.h"book::book(){    name = "  ";    n_number = 0;    s_number = 0;    id = 0;    author = "  ";    price = 0;}book::book(string name, int n_number, int s_number, int id, string author, double price){    this->name = name;    this->n_number = n_number;    this->s_number = s_number;    this->id = id;    this->author = author;    this->price = price;}//get方法。string book::get_name(){    return name;}int book::get_n_number(){    return n_number;}int book::get_s_number(){    return s_number;}int book::get_id(){    return id;}string book::get_author(){    return author;}double book::get_price(){    return price;}//set方法。void book::set_name(string name){    this->name = name;}void book::set_n_number(int n_number){    this->n_number = n_number;}void book::set_s_number(int s_number){    this->s_number = s_number;}void book::set_id(int id){    this->id = id;}void book::set_author(string author){    this->author = author;}void book::set_price(double price){    this->price = price;}

"library.h"

#pragma once#include"reader_admin.h"#include "book.h"using namespace std;class library{public:    library();    int get_m();//返回存放书的总数量    int get_place();//返回查找到书的位置    void set_book1();//存放书籍    void show_book();//显示书籍的相关信息    bool search();//查找书籍    //修改书的相关信息    bool chang_book1();    bool borrow_book(reader_admin&r_ad);//借书    bool return_book(reader_admin& r_ad);//还书private:    int m;//存放书的总数。    int place;//记录查找到书的位置。    book book1[1000];//一个存放1000本书的数组。};

librayry.cpp

#include "library.h"#include "book.h"//book类作为书籍的基类//书共有的属性:名称,现有数量,库存数量,编号,作者,价格library::library(){     m = 0;}int library::get_m(){    return m;}int library::get_place(){    return place;//返回查找到书的位置。}void library::set_book1(){    cout << "请输入书的名称:" << endl;    string name;    cin >> name;    cout << "请输入书的现存数量:" << endl;    int now;    cin >> now;    cout << "请输入书的库存数量:" << endl;    int s;    cin >> s;    cout << "请输入书的编号:" << endl;    int id;    cin >> id;    cout << "请输入书的作者:" << endl;    string author;    cin >> author;    cout << "请输入书的价格:" << endl;    double price;    cin >> price;    book b(name, now, s, id, author, price);    this->book1[m] = b;    m++;    cout << "恭喜您完成书的存储!" << endl;}void library::show_book(){    cout << "您好,下面将为您显示图书信息!" << endl;    cout << "名称" << "    " << "编号" << "    " << "现有数量" << "    " << "库存数量" << "    " << "作者" << "    " << "价格" << endl;    for (int i = 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;    }}bool library::search(){    int id;    cout << "请输入您借阅书籍的ID:" << endl;    cin >> id;    for (int i = 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;            return true;        }    }    cout << "您查找的书不存在!" << endl;    return false;}bool library::borrow_book(reader_admin&r_ad)//借书{    char c = ' ';    do    {        cout << "请输入您的学号:" << endl;        string r_id;        cin >> r_id;        if (r_ad.sreach_id(r_id) == true)//判断输入的学号是否存在        {            char d = ' ';            do {                int id;                cout << "请输入您借阅书籍的ID:" << endl;                cin >> id;                for (int i = 0; i < m; i++)                {                    if (book1[i].get_id() == id)//如果查找的书本存在                    {                        if (book1[i].get_n_number() == 0)                        {                            cout << "您找的书已借阅完!" << endl;                            return false;                        }                        else                        {                            book1[i].set_n_number(book1[i].get_n_number() - 1);//使书本的数量少一。                            r_ad.r_borrow();//读者的借阅量加一。                            cout << "恭喜您借阅成功!" << endl;                            return true;                        }                    }                }                cout << "您查找的书籍不存在!/已借阅完!" << endl;                cout << "重新输入请按Y!按其他任意键退出!" << endl;                cin >> d;            } while (d == 'Y' || d == 'y');                return false;        }        cout << "您输入的学号不存在!" << endl;        cout << "重新输入请按Y!按其他任意键退出!" << endl;        cin >> c;    } while (c == 'Y' || c == 'y');    return false;}bool library::return_book(reader_admin& r_ad){    char c = ' ';    do    {        cout << "请输入您的学号:" << endl;        string r_id;        cin >> r_id;        if (r_ad.sreach_id(r_id) == true)//判断输入的学号是否存在        {            char d = ' ';            do {                int id;                cout << "请输入您借阅书籍的ID:" << endl;                cin >> id;                for (int i = 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;                            return true;                        }                    }                }                cout << "您查找的书籍不存在!/已借阅完!" << endl;                cout << "重新输入请按Y!按其他任意键退出!" << endl;                cin >> d;            } while (d == 'Y' || d == 'y');            return false;        }        cout << "您输入的学号不存在!" << endl;        cout << "重新输入请按Y!按其他任意键退出!" << endl;        cin >> c;    } while (c == 'Y' || c == 'y');    return false;}//修改书的相关信息bool library::chang_book1(){    char c = ' ';    char d = ' ';    do    {        cout << "请输入您要修改信息书的id:" << endl;        int id;        cin >> id;        for (int i = 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;                    int n;                    cin >> n;                    //修改名称                    if (n == 1)                    {                        cout << "请输入您修改的名称:" << endl;                        string new_name;                        cin >> new_name;                        book1[i].set_name(new_name);                        cout << "恭喜您修改成功!" << endl;                    }                    //修改id                    if (n == 2)                    {                        cout << "请输入您修改的id" << endl;                        int new_id;                        cin >> new_id;                        book1[i].set_id(new_id);                        cout << "恭喜您修改成功!" << endl;                    }                    //修改n_number                    if (n == 3)                    {                        cout << "请输入您修改的现有数量" << endl;                        int new_n_number;                        cin >> new_n_number;                        book1[i].set_n_number(new_n_number);                        cout << "恭喜您修改成功!" << endl;                    }                    //修改库存信息                    if (n == 4)                    {                        cout << "请输入您修改的库存数量" << endl;                        int new_s_number;                        cin >> new_s_number;                        book1[i].set_s_number(new_s_number);                        cout << "恭喜您修改成功!" << endl;                    }                    //修改书的编号                    if (n == 5)                    {                        cout << "请输入您修改的编号" << endl;                        int new_id;                        cin >> new_id;                        book1[i].set_id(new_id);                        cout << "恭喜您修改成功!" << endl;                    }                    //修改作者信息                    if (n == 6)                    {                        cout << "请输入您修改的作者" << endl;                        string new_name;                        cin >> new_name;                        book1[i].set_name(new_name);                        cout << "恭喜您修改成功!" << endl;                    }                    //修改价格信息                    if (n == 7)                    {                        cout << "请输入您修改的价格" << endl;                        double new_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');    return false;}

"reader_infor.h"

#pragma once//存储学生信息#include"book.h"class reader_infor{public:    reader_infor();    reader_infor(string Id, string Name, string Grade, int Number);    //get函数    string get_r_id();//返回学生的学号。    string get_r_name();//返回学生的名字。    string get_r_grade();//返回学生的班级。    int get_r_borrow();//返回学生借阅书籍的数量。    //set函数    void set_r_id(string ID);    void set_r_name(string Name);    void set_r_grade(string Grade);    void set_r_borrow(int Number);private:    string r_id;//学生的学号    string r_name;//学生的名字    string r_grade;//学生的班级    int r_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(string id, string name, string grade, int number){    this->r_id = id;    this->r_name = name;    this->r_grade = grade;    this->r_borrow = number;}//get函数string reader_infor::get_r_id(){    return this->r_id;}string reader_infor::get_r_name(){    return this->r_name;}string reader_infor::get_r_grade(){    return this->r_grade;}int reader_infor::get_r_borrow(){    return this->r_borrow;}//set函数void reader_infor::set_r_id(string Id){    this->r_id = Id;}void reader_infor::set_r_name(string Name){    this->r_name = Name;}void reader_infor::set_r_grade(string Grade){    this->r_grade = Grade;}void reader_infor::set_r_borrow(int Borrow){    this->r_borrow = Borrow;}

"reader_admin.h

#pragma once#include"reader_infor.h"//管理学生信息class reader_admin{public:    reader_admin();    int get_borrow_number();    void set_borrow_number(int i);    void set_reader_infor();//创建学生信息。    void show_reader_infor();//显示学生的信息。    bool chang_reader();//修改读者信息。    bool sreach_id(string id);//查找学生的学号。    void r_borrow();//读者的借阅量+1。    void r_reutrn();//读者的借阅量-1。private:    int borrow_number;//查找的相关位置。    int reader_number;//记录学生的个数。    reader_infor reader1[1000];//存放学生信息。};

"reader_admin.cpp

#include"reader_admin.h"reader_admin::reader_admin(){    reader_number = 0;    borrow_number = -1;}int reader_admin::get_borrow_number(){    return borrow_number;}void reader_admin::set_borrow_number(int i){    this->borrow_number = i;}//添加读者信息void reader_admin::set_reader_infor(){    cout << "请输入学生的id:" << endl;    string r_id;    cin >> r_id;    cout << "请输入学生的姓名:" << endl;    string r_name;    cin >> r_name;    cout << "请输入学生的年级:" << endl;    string r_grade;    cin >> r_grade;    cout << "请输入学生的借书数量:" << endl;    int r_number;    cin >> r_number;    reader_infor reader_new(r_id, r_name, r_grade, r_number);    reader1[reader_number] = reader_new;    reader_number++;//学生数量加1.}//显示读者信息void reader_admin::show_reader_infor(){    for (int i = 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;    }}bool reader_admin::sreach_id(string id)//查找学号是否存在{    for (int i = 0; i < reader_number; i++)    {        if (reader1[i].get_r_id() == id)        {            borrow_number = i;            return true;        }    }    return false;}//借书数量加一void reader_admin::r_borrow(){    reader1[borrow_number].set_r_borrow(reader1[borrow_number].get_r_borrow() + 1);    borrow_number = -1;}//借书数量减一void reader_admin::r_reutrn(){    reader1[borrow_number].set_r_borrow(reader1[borrow_number].get_r_borrow() - 1);    borrow_number = -1;}//修改书籍信息bool reader_admin::chang_reader(){    char c = ' ';    char d = ' ';    do {        cout << "请输入您要修改信息学生的id" << endl;        string r_id;        cin >> r_id;        if (sreach_id(r_id) == true)        {            do {                cout << "请选择您要修改的信息:" << endl;                cout << "1.学号" << "2.名字" << "3.班级" << "4.借阅书籍数量" << endl;                int i;                cin >> i;                //修改学号                if (i == 1)                {                    cout << "请输入您修改的学号" << endl;                    string new_r_id;                    cin >> new_r_id;                    reader1[borrow_number].set_r_id(new_r_id);                    cout << "恭喜您修改成功!" << endl;                }                //修改名称                if (i == 2)                {                    cout << "请输入您修改的名称" << endl;                    string new_r_name;                    cin >> new_r_name;                    reader1[borrow_number].set_r_name(new_r_name);                    cout << "恭喜您修改成功!" << endl;                }                //修改班级                if (i == 3)                {                    cout << "请输入您修改的班级" << endl;                    string new_r_grade;                    cin >> new_r_grade;                    reader1[borrow_number].set_r_grade(new_r_grade);                    cout << "恭喜您修改成功!" << endl;                }                //修改借阅数量                if (i == 4)                {                    cout << "请输入您修改的数量" << endl;                    int new_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');    return false;}

test.cpp

#include #include "book.h"#include "library.h"#include"reader_infor.h"#include"reader_admin.h"using namespace std;int main(){    reader_admin r_ad;    library lib;    int i;    while (1)    {        cout << "************欢迎来到图书馆************" << endl;        cout << "**********请选择您的登陆身份**********" << endl;        cout << "            1. 借阅者登陆             " << endl;        cout << "            2. 管理员登陆             " << endl;        cin >> i;        int j;        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)                {                case 1:lib.show_book(); break;                case 2:lib.search(); break;                case 3:lib.borrow_book(r_ad); break;                case 4:lib.return_book(r_ad); break;                case 5:break;                }            } while (j == 1 || j == 2 || j == 3 || j == 4);        }        int m;        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)                {                case 1:lib.show_book(); break;                case 2:r_ad.show_reader_infor(); break;                case 3:lib.set_book1(); break;                case 4:r_ad.set_reader_infor(); break;                case 5:lib.chang_book1(); break;                case 6:r_ad.chang_reader(); break;                case 7:continue;                }            } while (m==1||m==2||m==3||m==4||m==5||m==6);        }          }    return 0;}

感谢各位的阅读,以上就是"C++实现简易图书馆管理系统的代码怎么写"的内容了,经过本文的学习后,相信大家对C++实现简易图书馆管理系统的代码怎么写这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0