关于修改C++电脑报价系统代码的问题

问题遇到的现象和发生背景

遇到一个问题是说做一个电脑报价系统:
电脑报价系统
基本要求:
电脑各部件的信息包括:部件名、价格、分类号、型号,厂商、报价时间等。
功能要求:
1)添加电脑各部件的信息功能(用文件保存);
2)查询功能,按类型、价格等查询;
3)信息修改功能,能够按指定记录修改信息。
4)教师开课信息删除、修改功能(任选项)。
自己根据网上的同类型题目删删改改得到了下面这些代码但是不太运行得起来,和题意也没有完全一致

问题相关代码,请勿粘贴截图
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
#define MAX_STYLE_SIZE 100 //电脑类型最大数量

class COMPUTER
{
public:
    char pc_style[30];//电脑型号
    char cpu_style[30];//cpu型号
    char mem_style[30];//内存型号
    char card_style[30];//显卡型号
    float price;//报价
};

int menu()
{
    int chioce;//记录选择
    system("cls");//清屏
    cout<<"1:增加报价"<<endl;
    cout<<"2:删除报价"<<endl;
    cout<<"3:修改报价"<<endl;
    cout<<"4:查找报价"<<endl;
    cout<<"5:显示报价"<<endl;
    cout<<"0:退出"<<endl;
    cin>>chioce;
    while(chioce<0||chioce>5)//确保选择范围正确
    {
        cout<<"输入错误,重新输入!"<<endl;
        cin>>chioce;
    }
    return chioce;//选择结果返回给主函数
}


int Input_New_Computer(COMPUTER computer[],int NUM)
{
    char temp[20];//记录选择
    system("cls");//清屏
    cout<<"请输入新增电脑型号"<<endl;
    cin>>computer[NUM].pc_style;
    cout<<"请输入新增电脑CPU型号"<<endl;
    cin>>computer[NUM].cpu_style;
    cout<<"请输入新增电脑内存型号"<<endl;
    cin>>computer[NUM].mem_style;
    cout<<"请输入新增电脑显卡型号"<<endl;
    cin>>computer[NUM].card_style;
    cout<<"请输入该型号电脑价格"<<endl;
    cin>>computer[NUM].price;//获取电脑信息

    cout<<"确认添加(Y/N)?\n"<<endl;
    scanf("%s",temp);
    if(!strcmp(temp,"Y")||!strcmp(temp,"y"))//判断是否按Y
    {
        cout<<"添加成功"<<endl;
        system("pause");
        return NUM+1;
    }
    cout<<"已取消添加"<<endl;//其它键取消添加
    system("pause");
    return NUM;
}



//显示信息  NUM代表显示个数  computer代表开始显示位置
void Display_Computer_Info(COMPUTER computer[],int NUM)
{
    int i;
    if(NUM==0)//如果为0则不显示信息
    {
        cout<<"无电脑信息!"<<endl;
        return ;
    }
    cout<<"电脑";cout.width(20);
    cout<<"CPU";cout.width(20);
    cout<<"内存";cout.width(20);
    cout<<"显卡";cout.width(20);
    cout<<"价格";cout<<endl;
    for(i=0;i<NUM;i++)
    {
        cout<<computer[i].pc_style;cout.width(20);
        cout<<computer[i].cpu_style;cout.width(20);
        cout<<computer[i].mem_style;cout.width(20);
        cout<<computer[i].card_style;cout.width(20);
        cout<<computer[i].price;cout<<endl;
    }
}

int Del_Computer_Info(COMPUTER computer[],int NUM)
{
    int i,j;
    char temp[20],name[30];//记录选择
    system("cls");//清屏
    cout<<"请输入电脑型号:";
    cin>>name;
    for(i=0;i<NUM;i++)
    {
        if(!strcmp(name,computer[i].pc_style))//如果找到  则跳出循环
        {
            break;
        }
    }
    if(i==NUM)//如果一直没有跳出 说明没有找到
    {
        cout<<"无该型号电脑!"<<endl;
        system("pause");
        return NUM;
    }

    Display_Computer_Info(computer+i,1);//显示1条信息
    cout<<"确认删除(Y/N)?"<<endl;
    cin>>temp;
    if(!strcmp(temp,"Y")||!strcmp(temp,"y"))//判断是否按Y
    {
        for(j=i;j<NUM;j++)
        {
            computer[j]=computer[j+1];
        }//用后一个数据覆盖前一个 达到删除

        cout<<"删除成功"<<endl;
        system("pause");
        return NUM-1;
    }
    cout<<"已取消删除"<<endl;//其它键取消删除
    system("pause");
    return NUM;
}

void Modify_Computer_Info(COMPUTER computer[],int NUM)
{
    int i;
    char temp[20],name[30];//记录选择
    float p;
    system("cls");//清屏
    cout<<"请输入电脑型号:";
    cin>>name;
    for(i=0;i<NUM;i++)
    {
        if(!strcmp(name,computer[i].pc_style))//如果找到  则跳出循环
        {
            break;
        }
    }
    if(i==NUM)//如果一直没有跳出 说明没有找到
    {
        cout<<"无该型号电脑:"<<endl;
        system("pause");
        return ;
    }
    Display_Computer_Info(computer+i,1);//显示1条信息
    cout<<"请输入新报价:"<<endl;
    cin>>p;//获取电脑信息
    
    cout<<"确认修改(Y/N)?"<<endl;
    cin>>temp;
    if(!strcmp(temp,"Y")||!strcmp(temp,"y"))//判断是否按Y
    {
        computer[i].price=p;
        cout<<"修改成功"<<endl;
        system("pause");
    }
    cout<<"已取消修改"<<endl;//其它键取消删除
    system("pause");
}

void Serach_Computer_Info(COMPUTER computer[],int NUM)
{
    int i,chioce;
    char name[30];//记录选择
    system("cls");//清屏

    cout<<"1:按电脑型号查找"<<endl;
    cout<<"2:按CPU型号查找"<<endl;
    cout<<"3:按内存型号查找"<<endl;
    cout<<"4:按显卡型号查找"<<endl;
    cin>>chioce;
    while(chioce<1||chioce>4)//确保选择范围正确
    {
        cout<<"输入错误,重新输入!";
        cin>>chioce;
    }
    cout<<"请输入型号"<<endl;
    cin>>name;
    switch(chioce)
    {
    case 1:
        for(i=0;i<NUM;i++)
        {
            if(!strcmp(name,computer[i].pc_style))
            {
                break;
            }
        }
    break;
    case 2:
        for(i=0;i<NUM;i++)
        {
            if(!strcmp(name,computer[i].cpu_style))
            {
                break;
            }
        }
    break;
    case 3:
        for(i=0;i<NUM;i++)
        {
            if(!strcmp(name,computer[i].mem_style))
            {
                break;
            }
        }
    break;
    case 4:
        for(i=0;i<NUM;i++)
        {
            if(!strcmp(name,computer[i].card_style))
            {
                break;
            }
        }
    break;
    }
    if(i==NUM)
    {
        cout<<"无该型号!"<<endl;
        system("pause");
        return ;
    }
    Display_Computer_Info(computer+i,1);//显示1条信息
    system("pause");
}

//保存文件
void Save_Computer_Info(COMPUTER computer[],int NUM)
{
    int i;
    ofstream fp;
    fp.open("Computer_Info.dat");
    if(fp==NULL)
    {return ;}
    for(i=0;i<NUM;i++)//依次写入
    {
        fp.write((char*)&computer[i],sizeof(COMPUTER));
    }
    fp.close();
}

int Load_Computer_Info(COMPUTER computer[])
{
    int i=0;
    ifstream fp;
    fp.open("Computer_Info.dat");
    if(fp==NULL)
    {return 0;}
    while(fp.read((char*)&computer[i],sizeof(COMPUTER)))
    {
        i++;//直到读取到文件结尾
    }
    fp.close();
    if(i>1)//结尾会多读取一个换行
    {
        return i-1;
    }
    return i;
}


int main()
{
    COMPUTER computer[MAX_STYLE_SIZE];//定义结构体数组
    int NUM=0,chioce;//记录选择以及数量
    system("mode con: cols=100 lines=35");//改变控制台大小
    NUM=Load_Computer_Info(computer);//读取文件
    do
    {
        chioce=menu();//获取选择
        switch(chioce)
        {
        case 1:
            NUM=Input_New_Computer(computer,NUM);//添加
            Save_Computer_Info(computer,NUM);//保存
            break;
        case 2:
            NUM=Del_Computer_Info(computer,NUM);//删除
            Save_Computer_Info(computer,NUM);//保存
            break;
        case 3:
            Modify_Computer_Info(computer,NUM);//修改
            Save_Computer_Info(computer,NUM);//保存
            break;
        case 4:
            Serach_Computer_Info(computer,NUM);//查找
            break;
        case 5:
            system("cls");
            Display_Computer_Info(computer,NUM);//显示
            system("pause");//暂停
            break;
        }
    }while(chioce!=0);

    return 0;
}


运行结果及报错内容

img

我想要达到的结果

希望可以发一下修改后的代码来达到题目所需要得效果

加一个头文件

#include<cstring>

strcmp等函数不在string库里面呢