图书管理系统(类和对象、c++)

#include<iostream>
#include<string>
#include<vector>
#include<windows.h>

using namespace std;

struct book
{
    string m_name;
    string m_isbn;
    float m_price;
    string m_publishment;
    bool m_ex=1;

    book(string name,string isbn,float price,string publishment)
    {
        m_name=name;
        m_isbn=isbn;
        m_price=price;
        m_publishment=publishment;
    }
};
class Library
{
private:
    vector<book>books;

public:
    Library()
    {
        books.emplace_back("yuwen","0001",13.6,"Place-A");
        books.emplace_back("shuxue","0002",16.6,"Place-B");
        books.emplace_back("yingyu","0003",14.6,"Place-D");
        books.emplace_back("wuli","0004",15.6,"Place-D");
        books.emplace_back("huaxue","0005",13.5,"Place-R");
        books.emplace_back("shnegwu","0006",13.9,"Place-L");
    }
    void Add_book();
    void Remove_book();
    void Borrow_book();
    void Return_book();
    void Modify_book();
    void Clear_book();
    void Library_Show();
    void Library_Running();
    void Show_books();
};

void Library::Add_book()
{
    cout<<"请依次输入:"<<endl;
    string name;
    string isbn;
    float price;
    string publishment;
    cout<<"name:"<<endl;
    cin>>name;
    cout<<"isbn:"<<endl;
    cin>>isbn;
    cout<<"price:"<<endl;
    cin>>price;
    cout<<"publishment:"<<endl;
    cin>>publishment;
    bool fail=0;
    for(auto &it:books)
    {
        if(it.m_name==name||it.m_isbn==isbn)
            {
                fail=1;
                break;
            }
    }
    if(fail)
    {
        cout<<"该书已存在!"<<endl;
    }
    else
    {
        books.emplace_back(name,isbn,price,publishment);
        cout<<"添加成功!"<<endl;
    }
    system("pause");
}

void Library::Remove_book()
{
    cout<<"请输入书本名称或书本ISBN"<<endl;
    cout<<"请选择:0---书本名称\t非0---书本ISBN"<<endl;
    char flag;
    cin>>flag;
    string nori;
    if(flag!='0')
    {
        cout<<"请输入书本名称:"<<endl;
    }
    else
    {
        cout<<"请输入书本ISBN:"<<endl;
    }
    cin>>nori;
    bool fail=1;
    for(auto it=books.begin(); it!=books.end();)
    {
        if(flag==0&&it->m_name==nori)
        {
            books.erase(it);
            cout<<"删除成功!"<<endl;
            fail=0;
            break;
        }
        else if(flag!=0&&it->m_isbn==nori)
        {
            books.erase(it);
            cout<<"删除成功!"<<endl;
            fail=0;
            break;
        }
        else
        {
            ++it;
        }
    }
    if(fail)
    {
        cout<<"未找到该书本!"<<endl;
    }
    system("pause");
}

void Library::Borrow_book()
{
    cout<<"请输入书本名称或书本ISBN"<<endl;
    cout<<"请选择:0---书本名称\t非0---书本ISBN"<<endl;
    char flag;
    cin>>flag;
    string nori;
    if(flag!='0')
    {
        cout<<"请输入书本名称:"<<endl;
    }
    else
    {
        cout<<"请输入书本ISBN:"<<endl;
    }
    cin>>nori;
    bool fail=1;
    for(auto &it:books)
    {
        if(flag==0&&it.m_name==nori)
        {
            if(it.m_ex==1)
            {
                cout<<"借书成功"<<endl;
                it.m_ex=0;
            }
            else if(it.m_ex==0)
            {
                cout<<"该书本已被借出!"<<endl;
            }
            fail=0;
            break;
        }
        else if(flag!=0&&it.m_name==nori)
        {
            if(it.m_ex==1)
            {
                cout<<"借书成功"<<endl;
                it.m_ex=0;
            }
            else if(it.m_ex==0)
            {
                cout<<"该书本已被借出!"<<endl;
            }
            fail=0;
            break;
        }
    }
    if(fail)
    {
        cout<<"未找到该书本!"<<endl;
    }
    system("pause");
}

void Library::Return_book()
{
    cout<<"请输入书本ISBN:"<<endl;
    string isbn;
    cin>>isbn;
    bool fail=1;
    for(auto &it:books)
    {
        if(it.m_isbn==isbn)
        {
            it.m_ex=1;
            cout<<"还书成功!"<<endl;
            fail=0;
            break;
        }
    }
    if(fail)
    {
        cout<<"还书失败!"<<endl;
    }
    system("pause");
}

void Library::Modify_book()
{
    cout<<"请输入修改书籍的名称"<<endl;
    string bookname;
    cin>>bookname;
    bool fail=1;
    for(auto &it:books)
    {
        if(it.m_name==bookname)
        {
            fail=0;
            cout<<"请选择你要修改的内容:"<<endl;
            cout<<"1---name"<<endl;
            cout<<"2---isbn"<<endl;
            cout<<"3---price"<<endl;
            cout<<"4---publishment"<<endl;
            int select=-1;
            cin>>select;
            switch(select)
            {
            case 1:
            {
                cout<<"请输入name:"<<endl;
                string name;
                cin>>name;
                it.m_name=name;
                cout<<"name修改成功!"<<endl;
                break;
            }
            case 2:
            {
                cout<<"请输入isbn:"<<endl;
                string isbn;
                cin>>isbn;
                it.m_isbn=isbn;
                cout<<"isbn修改成功!"<<endl;
                break;
            }
            case 3:
            {
                cout<<"请输入price:"<<endl;
                float price;
                cin>>price;
                it.m_price=price;
                cout<<"price修改成功!"<<endl;
                break;
            }
            case 4:
            {
                cout<<"请输入publishment:"<<endl;
                string publishment;
                cin>>publishment;
                it.m_publishment=publishment;
                cout<<"publishment修改成功!"<<endl;
                break;
            }
            default:
                break;
            }
        }
    }
    if(fail)
    {
        cout<<"未找到该书本!"<<endl;
    }
    system("pause");
}

void Library::Clear_book()
{
    cout<<"是否真的清空书籍"<<endl;
    cout<<"1---是"<<"\t"<<"非1---否"<<endl;
    char select=-1;
    cin>>select;
    if(select=='1')
    {
        books.clear();
        cout<<"书籍已清空!"<<endl;
    }
    else
    {
        cout<<"你已取消!"<<endl;
    }
    system("pause");
}

void Library::Library_Show()
{
    cout<<"******************************"<<endl;
    cout<<"*****欢迎来到图书管理系统*****"<<endl;
    cout<<"*****A---Add_book        *****"<<endl;
    cout<<"*****B---Remove_book     *****"<<endl;
    cout<<"*****C---Borrow_book     *****"<<endl;
    cout<<"*****D---Return_book     *****"<<endl;
    cout<<"*****E---Modify_book     *****"<<endl;
    cout<<"*****F---Clear_book      *****"<<endl;
    cout<<"*****G---Show_books      *****"<<endl;
    cout<<"*****Anykey---exit       *****"<<endl;
    cout<<"******************************"<<endl;
}

void Library::Library_Running()
{
    bool exitence=0;
    while(1)
    {
        system("cls");
        Library_Show();
        cout<<"请选择功能:"<<endl;
        char ch;
        cin>>ch;
        switch(ch)
        {
        case 'A':
        case 'a':
        {
            Add_book();
            break;
        }
        case 'B':
            case 'b':
        {
            Remove_book();
            break;
        }
        case 'C':
            case 'c':
        {
            Borrow_book();
            break;
        }
        case 'D':
            case 'd':
        {
            Return_book();
            break;
        }
        case 'E':
            case 'e':
        {
            Modify_book();
            break;
        }
        case 'F':
            case 'f':
        {
            Clear_book();
            break;
        }
        case 'G':
            case 'g':
        {
            Show_books();
            break;
        }
        default:
        {
            exitence=1;
            cout<<"欢迎下次再来!"<<endl;
            break;
        }
        }
        if(exitence)
        {
            break;
        }
        Sleep(100);
    }
}

void Library::Show_books()
{
    for(auto &m:books)
    {
        cout<<"name:"<<m.m_name<<"\tisbn:"<<m.m_isbn<<"\tprice:"<<m.m_price<<"\tpublishment:"<<m.m_publishment<<"\t"<<(m.m_ex?"存在":"借出")<<endl;
    }
    cout<<"一共"<<books.size()<<"本书"<<endl;
    system("pause");
}

int main()
{
    Library lib;
    lib.Library_Running();

    return 0;
}

有错误望指正!!!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值