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

职员类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 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退
  • ¥20 win系统的PYQT程序生成的数据如何放入云服务器阿里云window版?