m0_59253614 2021-06-12 20:19 采纳率: 50%
浏览 30

职工信息管理系统,写的代码不能运行,看不出哪里出问题了,大佬们帮我看看,在线等,急急急!

定义职工类,数据成员有:工号(int)、姓名(字符串)、性别(字符串)、月工资(float);由职工类定义对象数组,每个对象代表一个职工。实现下列功能:(1)添加一个职工的信息到对象数组(键盘输入);(2)输出显示数组中所有职工的信息;(3)查找并输出月工资最高值;(4)查找并输出月工资最低值;(5)计算并输出所有职工的月工资平均值;(6)查找并输出姓名为指定名字的所有职工的全部信息;

#include <iostream>
#include <fstream>
#include <cmath>
#include <cstring>
using namespace std;
#define N 100 ;

class A

    int X;
    float Y;
    char C[31];
    char D[11];
public:
    void setdata(int x,char d[],char c[],float y)
    {
        X=x;
        Y=y;
        strcpy(C,c);
        strcpy(D,d);
    }

    int getX()
    {
        return X;
    }

    float getY()
    {
        return Y;
    }

    char *getC()
    {
        return C;
    }
    char *getD()
    {
        return D;
    }
}; 
A a[N];
int n=0;

void f0()

   cout<<"退出程序运行!"<<endl<<endl;
   exit(0); 
}

void input_data() 
{
    int x;
    float y;
    char c[31];
    char d[11];
    cout<<"请输入每个对象的3项数据(工号(int)、性别(字符串)、姓名(字符串)、月工资(float)) ,然后按回车键:"<<endl;
    cin>>x>>d>>c>>y; 
    if(n<N)
    {
        a[n].setdata(x,d,c,y);
        n++;
    }

void output_data()
{
    int i;
    for(i=0;i<n;i++)
        cout<<a[i]<<endl;
}

float max() 
{
    int i;
    float M;
    M=a[0].getY();
    for(i=1;i<n;i++)
        if(a[i].getY()>M)
            M=a[i].getY();
    cout<<"最大Y值="<<M<<endl;
    cout<<endl;
    return M;
}

float min() 
{
    int i;
    float m;
    m=a[0].getY();
    for(i=1;i<n;i++)
        if(a[i].getY()<m)
            m=a[i].getY();
    cout<<"最小Y值="<<M<<endl;
    cout<<endl;
    return M;
}

float average() 
{
    int i;
    float A,s=0.0;
    for(i=1;i<n;i++)
        s+=a[i].getY();
    A=s/float n;
    cout<<"所有对象的平均Y值="<<A<<endl;
    return 0;
}

void search_c() 
{
    int i;
    char c[31];
    cout<<"请输入要查找的姓名:"<<endl;
    cin>>c;
    for(i=0;i<n;i++)
        if(c==a[i].*getC())
        {
            cout<<"你要查找的是"<<c<<", 查找结果如下:"<<endl;
            cout<<a[i]<<endl;
        }
}


int main()
{  
    int op; 
    while (true)
    {
        cout<<"请输入一个整数并按Enter键,选择执行相应的功能:"<<endl;
        cout<<"0: 退出程序"<<endl;
        cout<<"1: 增加1个对象(从键盘输入)"<<endl;
        cout<<"2: 输出对象数组全部对象(向显示器)"<<endl;
        cout<<"3: 求所有对象的最大Y值"<<endl;
        cout<<"4: 求所有对象的最小Y值"<<endl;
        cout<<"5: 求所有对象的平均Y值"<<endl;  
        cout<<"6: 查找某个对象的信息(指定字符串值)"<<endl; 
        cin>>op;
        switch (op)
        {
            case 0: f0( ); break; 
            case 1: input_data( ); break;
            case 2: output_data( ); break;
            case 3: max(); break;
            case 4: min(); break;
            case 5: average(); break;
            case 6: search_c(); break;
        }
    }
    return 0;
}

  • 写回答

1条回答 默认 最新

  • 追cium 2023-03-17 10:42
    关注

    参考GPT和自己的思路:

    在代码中,存在一些语法错误,如在定义类A时,没有声明数据成员的可见性(public、protected或private),需要将其修改为public。在函数input_data中,没有添加结束括号,需要添加一个“}”来结束函数。在函数min中,输出最小值时使用了M变量而非m,需要修改为m。此外,在函数average中,计算平均值时除数应为n而非float n。此外,还需要定义运算符“<<”来输出类A的对象。

    评论

报告相同问题?

悬赏问题

  • ¥15 slam rangenet++配置
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊