在长野吹小号的灵猫 2023-03-17 12:25 采纳率: 66.7%
浏览 91
已结题

关于#c++#的问题:cout << "请输入" << num << "本图书信息 【书号(ISBN) 书名 作者 出版单位 价格 出版日期(书号不重复)


#include "ds.h"//自定义的头文件
using namespace std;//c++中指定命名空间

struct Book    //定义一种结构体类型
{
    int ISBN;         //书号
    char  name[20];        //书名
    char   author[20];       //作者
    char   publisher[20];   //出版单位
    float  price;//价格
    int  year;//图书的年【若为1988年出版  请输入1988】
    int month;//图书的月【输入方法同上】
    int day; //图书的日【输入方法同上】               //中间请用空格空开
};
struct Book book[MAXSIZE];

void input(Book book[],int num)
{
    int i;
    cout<<"请输入"<<num<<"本图书的信息,空格分开\n";
    cin>>num;
    for(i=0; i<num; i++)
    {
        cin >> book[i].ISBN >> book[i].name >> book[i].author >> book[i].publisher >> book[i].price >> book[i].year >> book[i].month >> book[i].day;
    }
    for(i=0; i<num; i++)
    {
        cout << book[i].ISBN << book[i].name << book[i].author << book[i].publisher << book[i].price << book[i].year << book[i].month << book[i].day << endl;
    }
}
void output(Book book[],int num)
{
    int i;
    for (i=0; i<num; i++)
    {
        cout << book[i].ISBN << book[i].name << book[i].author << book[i].publisher << book[i].price << book[i].year << book[i].month << book[i].day << endl;
    }
    cout<<"\n";
}

void insertm(Book book[], int& num)   //在最后面依次添加num本图书
{
    int i,m;
    cout << "需要添加图书信息的本数为:\n ";
    cin >> m;
    cout << "请输入其信息【依次为书号(ISBN) 书名 作者 出版单位 价格 出版日期(书号不重复,用空格空开】\n ";
    for (i=0; i<m; i++)
    {
        cin >> book[i].ISBN >> book[i].name >> book[i].author >> book[i].publisher >> book[i].price >> book[i].year >> book[i].month >> book[i].day;
    }
    num = num + m;
    cout << "图书信息添加后为:\n";
    output(book,num);
}

int delete_books(Book book[], int num)
{
    int i,j,choice,ISBN1,t=0;
    char name1[1];
    cout<<"进入删除图书系统\n";
    cout<<"按书号删除请按1\n";
    cout<<"按书名删除请按2\n";
    cin>>choice;
    switch(choice)
    {
    case 1:
        cout<<"请输入你想删除的图书的书号: ";
        cin>>ISBN1;
        for(i=0; i<num; i++)
        {
            if(ISBN1 == book[i].ISBN)
            {
                t = i; //记住要删除图书的下标
                break;
            }
            else
                cout<<"删除失败,请确认书号是否正确!"<<endl;
        }
        if(t != num - 1) //判断要删除图书是否为最后一本 即判断t是否为最后一个值
        {
            for(i=t; i<num; i++)
            {
                book[i] = book[i+1];
            }
        }
        num = num-1;
    case 2:
        cout<<"请输入你想删除的图书的书名: ";
        cin>>name1;
        for(i=0; i<num; i++)
        {
            if(name1 == book[i].name)
            {
                t = i; //记住要删除图书的下标
                break;
            }
            else
                cout<<"删除失败,请确认书名是否正确!"<<endl;
        }
        if(t != num-1) //判断要删除图书是否为最后一本 即判断t是否为最后一个值
        {
            for(i=t; i<num; i++)
            {
                book[i] = book[i+1];
            }
        }
        num = num-1;
}

void change_books(Book book[],int num)
{
    int ISBN2;
    int i,t=0,choice;
    cout<<"请输入要修改信息图书的书号:"<<endl;
    cin>>ISBN2;
    for(i=0; i<num; i++)
    {
        if(ISBN2 == book[i].ISBN)
        {
            t = i;
            break;
        }
        else
            cout<<"无图书信息,请确认书号是否正确!"<<endl;
    }
    cout<<"请输入需要修改信息的序号:"<<endl;
    cout<<"1.书名"<<endl;
    cout<<"2.作者"<<endl;
    cout<<"3.出版单位"<<endl;
    cout<<"4.价格"<<endl;
    cin>>choice;
    switch(choice)
    {
        case 1:
            cout<<"请输入:";
            cin>>book[t].name;
            break;
        case 2:
            cout<<"请输入:";
            cin>>book[t].author;
            break;
        case 3:
            cout<<"请输入:";
            cin>>book[t].publisher;
            break;
        case 4:
            cout<<"请输入:";
            cin>>book[t].price;
            break;
        default:
            cout<<"输入错误!请重新输入1-4"<<endl;
    }
}

void book_search(Book book[],int num)
{
    int i,j,choice,ISBN3;
    char name3;
    cout<<"进入查询图书系统\n";
    cout<<"按书号查询请按1\n";
    cout<<"按书名查询请按2\n";
    cin>>choice;
    switch(choice)
    {
    case 1:
        cout<<"请输入你想查询的图书的书号:";
        cin>>ISBN3;
        for(i=0; i<num; i++)
        {
            if(ISBN3 == book[i].ISBN)
            {
                cout<<"查询成功\n";
                cout<<"该书基本信息为:\n";
                cout<<"书名:"<<book[i].name<<" 作者;"<<book[i].author<<" 出版单位:"<<book[i].publisher<<" 价格:"<<book[i].price<<" 出版日期 年:"<< book[i].year << " " << "出版日期 月" << book[i].month << " " << "出版日期 日" << book[i].day << " "<< endl;
                break;
            }
        }
        cout<<"查询失败,请核对书号是否正确\n";
    case 2:
        cout<<"请输入你想查询的图书的书名:";
        cin>>name3;
        for(i=0; i<num; i++)
        {
            if(name3 == book[i].name)
            {
                cout<<"查询成功\n";
                cout<<"该书基本信息为:\n";
                cout<<"书名:"<<book[i].name<<" 作者;"<<book[i].author<<" 出版单位:"<<book[i].publisher<<" 价格:"<<book[i].price<<" 出版日期 年:"<< book[i].year << " " << "出版日期 月" << book[i].month << " " << "出版日期 日" << book[i].day << " "<< endl;
                break;
            }
        }
        cout<<"查询失败,请核对书名是否正确\n";
    }
}

void main()
{
    struct Book book[1000];
    int i,num;
    /*cout << "请输入你想进行图书信息管理的图书本数:\n";
    cin >> num;
    cout << "请输入" << num << "本图书信息 【书号(ISBN) 书名 作者 出版单位 价格 出版日期(书号不重复),用空格空开】: \n";   //完成图书信息输入
    for (i = 0; i < book1.num; i++)
    {
        cin >> book.ISBN >> book.BookName[i] >> book.author[i] >> book.publisher[i] >> book.price[i] >> book.data[i] ;   //字符数组进行整体输入
    }*/
    input(book,num);
    cout << "进行图书信息浏览:    " << endl;
    output(book,num);
    insertm(book,num);
    output(book,num);
    delete_books(book,num);
    output(book,num);
    change_books(book,num);
    output(book,num);
    book_search(book,num);
    output(book,num);
    system("pause");
}

img

  • 写回答

1条回答 默认 最新

  • threenewbee 2023-03-17 12:32
    关注

    void change_books(Book book[],int num)
    这里不需要book了,因为你已经在前面定义了叫做book数组的全局变量。
    不过比上次的程序有进步了


    之前的回答及时采纳一下。一步一步来

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月25日
  • 已采纳回答 3月17日
  • 创建了问题 3月17日

悬赏问题

  • ¥15 如何使用SC92F8003固件库解析私有协议数据?
  • ¥15 如何在音频中嵌入字符串(水印)信息进行传递
  • ¥30 plc怎么以设计说明书申请软著
  • ¥15 硬盘识别不了,需要初始化,可我的数据怎么办
  • ¥15 lvm2被mask了,怎么unmask都没用(标签-ubuntu|关键词-apt)
  • ¥15 交叉注意力机制的残差问题
  • ¥15 微信小程序:渲染收货地址时页面不显示
  • ¥20 win7 64位DirectShow提示初始化失败如何解决?
  • ¥15 关于Java对接海康威视车牌识别一体机SDK是否需要固定外网的IP?
  • ¥15 Linux扩容时,格式化卡住了:vgdispaly查看卷组信息,没有输出