MAC编程的C++图书管理系统----数据结构作业

//图书信息管理系统
//系统需求:用C++来实现一个图书信息管理系统,包括以下6个具体功能:
//1.查找:根据指定的ISBN或书名查找相应图书的有关信息,并返回该图书在表中的位置序号。
//2.插入:插入一种新的图书信息。
//3.删除:删除一种图书信息。
//4.修改:根据指定的ISBN,修改该图书的价格。
//5.排序:将图书按照价格由底到高进行排序。
//6.计数:统计图书表中的图书数量。
//7.显示所有图书的信息。
#include 
#include //文件输入/输出头函数
#include 
#include
#define MAX 10000 //限制图书表最大长度
using namespace std;
//设计图书信息管理系统菜单界面
void MeunInterface()
{
    cout<<"********************************************"<Size; i++) {
        if (abs->BookArray[i].name == name)
        {
            return i;//找到返回图书在数组中的下标编号
        }
    }
    return -1;//未找到返回-1
}

//判断是否存在查询的ISBN,存在返回在数组中的索引位置,不存在返回-1
int isExist2(AddressBooks * abs,string ISBN)
{
    for(int i=0;iSize;i++)
    {
        if(abs->BookArray[i].ISBN==ISBN)
        {
            return i;//找到返回图书在数组中的下标编号
        }
    }
    return -1;//未找到返回-1
}

//1.查找图书信息
void findBook(AddressBooks * abs) {
    cout << "请输入您要查找的图书信息" << endl;
    cout << "1---通过书名查找" << endl;
    cout << "2---通过ISBN查找" << endl;
    int i = 0;
    cin>>i;
    if (i == 1)
    {
        cout<<"请输入书名:"<>name;
        int a = isExist1(abs, name); //定义一个常量a来判断图书是否存在
        //判断指定的书名是否存在图书表中
        if (a != -1)//找到图书,输出图书内容
        {
            cout << "ISBN:" << abs->BookArray[a].ISBN << "\t";
            cout << "书名:" << abs->BookArray[a].name << "\t";
            cout << "定价:" << abs->BookArray[a].price << endl;
        } else//未找到图书
        {
            cout << "未找到图书信息" << endl;
        }
    }
    else if(i==2)
    {
        cout<<"请输入ISBN:"<> ISBN;
        int b = isExist2(abs, ISBN); //定义一个常量b来判断图书ISBN是否存在
        //判断指定的书名是否存在图书表中
        if (b != -1)//找到图书,输出图书内容
        {
            cout << "ISBN:" << abs->BookArray[b].ISBN << "\t";
            cout << "书名:" << abs->BookArray[b].name << "\t";
            cout << "定价:" << abs->BookArray[b].price << endl;
        }
        else//未找到图书
        {
            cout << "未找到图书信息" << endl;
        }
    }
    else
    {
        cout<<"输入有误,请重新输入"<Size == MAX)
    {
        cout<<"图书表已满,无法添加"<>ISBN;
        abs->BookArray[abs->Size].ISBN = ISBN;//从图书管理系统中保存图书的数组中添加图书编号

        //输入添加的图书名字
        string name;
        cout<<"请输入图书名字:"<>name;
        abs->BookArray[abs->Size].name = name;//从图书管理系统中保存图书的数组中添加图书名字

        //输入图书价格
        float price;
        cout<<"请输入图书价格:"<>price;
        abs->BookArray[abs->Size].price = price;//从图书管理系统中保存图书的数组中添加图书价格

        //更新图书表中的图书数量
        abs->Size++;
        system("clear");//清屏操作
        cout<<"添加成功"<>name;
    int a= isExist1(abs,name);//定义一个常量a来判断图书是否存在
    if(a!=-1)//找到图书
    {
        for(int i=a;iSize;i++) //把图书所在的数组位置赋给i,i小于图书表的长度
        {
            abs->BookArray[i]=abs->BookArray[i+1];//被删除元素之后的元素前移(数据前移)
        }
        abs->Size--; //删除后表长-1
        cout<<"删除成功"<> ISBN;
    int a = isExist2(abs, ISBN); //定义一个常量a来判断图书ISBN是否存在
    if(a!=-1)
    {
        //输入修改的图书价格
        float price;
        cout<<"请输入图书价格:"<>price;
        abs->BookArray[a].price = price;//从图书管理系统中保存图书的数组中添加图书价格

        cout<<"修改成功"<Size;i++)
    {
        for (int j =i+1; j < abs->Size; ++j)
        {
            if (abs->BookArray[i].price > abs->BookArray[j].price)
            {
                  Book temp;//定义一个空的图书结构体
                  temp = abs->BookArray[i];
                  abs->BookArray[i] = abs->BookArray[j];
                  abs->BookArray[j] = temp;
            }
        }
    }
    cout<<"排序成功"<Size<Size==0)  //图书表为空
    {
        cout<<"当前图书表为空"<Size;i++) //若图书表不为空就遍历图书管理系统中保存图书的数组
        {
            cout<<"ISBN:"<BookArray[i].ISBN<<"\t";
            cout<<"书名:"<BookArray[i].name<<"\t";
            cout<<"定价:"<BookArray[i].price<>select;//用户输入要选择的菜单选项
        switch(select)
        {
            case 1:// 1、查找图书的信息
            findBook(&abs);
            break;
            case 2://2、插入新图书信息
            addBook(&abs);
            break;
            case 3:// 3、删除图书的信息
            deleteBook(&abs);
            break;
            case 4://4、修改图书的信息
            modifyBook(&abs);
            break;
            case 5://5、对图书进行排序
            orderBook(&abs);
            break;
            case 6:// 6、统计图书的总量
            statBook(&abs);
            break;
            case 7://7.显示图书的信息
            showBook(&abs);
            break;
            case 8://8.插入book.txt文件中的图书信息
            {//图书表信息输入
              int  i = 0;
              string head_1, head_2, head_3;
              abs.elem = new Book[MAX];
                if (!abs.elem)
                {
                    cout<<"图书表容量已满,不能再添加新图书了"<> head_1 >> head_2 >> head_3;
                while (!file.eof())//判断是否读到文件结尾
                {
                    file >> abs.BookArray[i].ISBN >> abs.BookArray[i].name >> abs.BookArray[i].price;
                    i++;
                }
                cout << "输入 book.txt 信息完毕"<将system("pause")改成system("clear")
                 cout<<"欢迎下次使用"<

你可能感兴趣的:(c++)