CCAT-S1试题-图书管理系统

/*
*程序的版权和版本声明部分:
*Copyright(c)2014,烟台大学计算机学院学生
*All rights reserved.
*文件名称:
*作者:田成琳
*完成日期:2014 年 5 月 18 日
*版本号:v1.0
*对任务及求解方法的描述部分:
*输入描述: -
*问题描述:图书信息管理系统
*程序输出:图书信息
*问题分析:
*算法设计:
*/
#include<iostream>
#include<cstdlib>
#include<iomanip>
#include<string>
using namespace std;
void menu(); //菜单
void findMenu(); //查书界面
void showBook(int);//显示图书信息
int size=0; //记录当前图书数量
class Book
{
public:
    void addBook(); //增加图书
    void findBookName(string); //名称查找图书
    void findBookNumber(string);//编号查找图书
    void findBookAuthor(string);//作者查找图书
    void findBookAddress(string);//出版社查找图书
    void display(); //显示所有图书信息
    string getName()
    {
        return name;
    }
    string getNumber()
    {
        return number;
    }
    string getAuthor()
    {
        return author;
    }
    string getAddress()
    {
        return address;
    }
    double getPrice()
    {
        return price;
    }
private:
    string name,author,number,address; //书名,作者,编号,出版社
    double price; //价格
};
Book b[20];

int main()
{
    int choose;
    do
    {
        menu();
        cin>>choose;
        if(choose==1)
            b[size].addBook();
        else if(choose==2)
            findMenu();
        else if(choose==3)
            b[size].display();
        else if(choose==0)
            exit(0);
        else
            menu();
    }
    while(choose!=0);
    return 0;
}

void Book::addBook()
{
    char yrn;
    cout<<"图书编号:";
    cin>>b[size].number;
    cout<<"图书名称:";
    cin>>b[size].name;
    cout<<"作者:";
    cin>>b[size].author;
    cout<<"出版社:";
    cin>>b[size].address;
    cout<<"价格:";
    cin>>b[size].price;
    cout<<"增加成功!"<<endl;
    showBook(size);
    size+=1;
    cout<<"是否继续添加?是(Y/y)否(N/n)";
    cin>>yrn;
    if(yrn=='y'||yrn=='Y')
        Book::addBook();
}

void findBookNumber(string Bnumber)
{
    bool flag=false;
    int i;
    for(i=0; i<=size; ++i)
    {
        if(b[i].getNumber()==Bnumber)
        {
            flag=true;
            break;
        }
    }
    if(flag)
        showBook(i);
    else
        cout<<"查无此书!";
    findMenu();
}

void findBookName(string Bname)
{
    bool flag=false;
    int i;
    for(i=0; i<=size; ++i)
    {
        if(b[i].getName()==Bname)
        {
            flag=true;
            break;
        }
    }
    if(flag)
        showBook(i);
    else
        cout<<"查无此书!";
    findMenu();
}

void findBookAuthor(string Bauthor)
{
    bool flag=false;
    int i;
    for(i=0; i<=size; ++i)
    {
        if(b[i].getAuthor()==Bauthor)
        {
            flag=true;
            break;
        }
    }
    if(flag)
        showBook(i);
    else
        cout<<"查无此书!";
    findMenu();
}

void findBookAddress(string Baddress)
{
    bool flag=false;
    int i;
    for(i=0; i<=size; ++i)
    {
        if(b[i].getAddress()==Baddress)
        {
            flag=true;
            break;
        }
    }
    if(flag)
        showBook(i);
    else
        cout<<"查无此书!";
    findMenu();
}

void Book::display()
{
    for(int i=0; i<size; ++i)
        showBook(i);
    findMenu();
}

void showBook(int n)
{
    cout<<"-------------------------------------------------------"<<endl;
    cout<<"图书编号      图书名称      作者        出版社      价格"<<endl;
    cout<<b[n].getNumber()<<setw(20)<<b[n].getName();
    cout<<setw(8)<<b[n].getAuthor()<<setw(16)<<b[n].getAddress();
    cout<<setw(6)<<b[n].getPrice()<<endl;
    cout<<"-------------------------------------------------------"<<endl;
}

void findMenu()
{
    bool flag=true;
    int choose;
    string name,number,address,author;
    while(flag)
    {
        cout<<"-----------------------"<<endl;
        cout<<"---  1  根据图书编号---"<<endl;
        cout<<"---  2  根据图书名称---"<<endl;
        cout<<"---  3  根据图书作者---"<<endl;
        cout<<"---  4  根据出版社-----"<<endl;
        cout<<"---  5  返回主菜单-----"<<endl;
        cin>>choose;
        switch(choose)
        {
        case 1:
            cout<<"请输入编号:";
            cin>>number;
            findBookNumber(number);
            break;
        case 2:
            cout<<"请输入书名:";
            cin>>name;
            findBookName(name);
            break;
        case 3:
            cout<<"请输入作者:";
            cin>>author;
            findBookAuthor(author);
            break;
        case 4:
            cout<<"请输入出版社:";
            cin>>address;
            findBookAddress(address);
            break;
        case 5:
            flag=false;
            break;
        }
    }
}

void menu()
{
    cout<<"------------------------"<<endl;
    cout<<"----- 图书管理系统----- "<<endl;
    cout<<"------------------------"<<endl<<endl;
    cout<<"------------------------"<<endl;
    cout<<"----   1  增加图书  ----"<<endl;
    cout<<"----   2  查找图书  ----"<<endl;
    cout<<"----   3  显示全部  ----"<<endl;
    cout<<"----   0  退出系统  ----"<<endl;
    cout<<"请选择业务:";
}


运行结果:

CCAT-S1试题-图书管理系统_第1张图片

心得体会:有点像数据库

你可能感兴趣的:(图书管理)