__皮蛋solo粥 2022-05-11 22:36 采纳率: 100%
浏览 344
已结题

职员类Worker(C++)

定义一个Worker(职员)类,该类有name(姓名)、position(职位)、salary(月薪)等私有数据成员。该类有两个私有静态数据成员:count用于统计雇员总人数、totalSalary用于计算月应发薪酬总数。为该类定义构造函数,构造函数要负责对静态数据成员的值进行调整。再定义一个静态函数成员void printSalary (),该函数用于输出静态数据成员的值。定义你认为必要的其它函数。main函数已经写好,请根据main函数的内容完成该类的定义。

int main(){

string name;

string position;

double salary;

cin>>name>>position>>salary;

Worker w1(name,position,salary);

cin>>name>>position>>salary;

Worker w2(name,position,salary);

cin>>name>>position>>salary;

Worker w3(name,position,salary);

cin>>name>>position>>salary;

Worker w4(name,position,salary);

cin>>name>>position>>salary;

Worker w5(name,position,salary);

Worker::printSalary();

return 0;

}
输入描述
分五行输入五个职员的信息

输出描述
按样例格式输出相关信息

提示
你需要提交除了main函数之外的代码

样例输入
Mike Sales 5000
Tom Security 3000
Kate Manager 8000
Jack Sales 6000
Jone Security 3300

样例输出
This company has 5 workers.
Total salary is 25300
Average salary is 5060

  • 写回答

1条回答 默认 最新

  • Ltd Pikashu CSDN实力新星 2022-05-12 18:53
    关注
    
    #include <iostream>
    #include <cstring>
    
    using  namespace std;
    
    class Worker
    {
        public:
            Worker(string n, string p, double s)
            {
                name = n;
                position = p;
                salary = s;
                count++;
                totalsalary += s;
            }
            ~Worker() {count--;}
            static void    printSalary();
        private:
            string  name;
            string  position;
            double     salary;
            static int count;
            static double totalsalary;
    };
    int     Worker::count = 0;
    double  Worker::totalsalary = 0;
    
    void    Worker::printSalary()
    {
        cout << "This company have " << count << " workers." << endl;
        cout << "Total salary is " << totalsalary << endl;
        double average = totalsalary / count;
        cout << "Average salary is " << average << endl;
    }
    
    int main()
    {
        string name;
        string position;
        double salary;
        
        cin >> name >> position >> salary;
        Worker w1(name, position, salary);
        
        cin >> name >> position >> salary;
        Worker w2(name, position, salary);
        
        cin >> name >> position >> salary;
        Worker w3(name, position, salary);
        
        cin >> name >> position >> salary;
        Worker w4(name, position, salary);
        
        cin >> name >> position >> salary;
        Worker w5(name, position, salary);
        
        Worker::printSalary();
        
        return 0;
    }
    

    img

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

报告相同问题?

问题事件

  • 系统已结题 5月21日
  • 已采纳回答 5月13日
  • 创建了问题 5月11日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵