__皮蛋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 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分