happylty 2015-06-25 00:10 采纳率: 0%
浏览 612

小白求助 C++编程 急 在线等

1、定义一个职工类CWorker,数据成员包括姓名、职工号、工龄、工资;成员函数有构造函数,设置数据成员值的函数,读取数据成员值的函数。在主函数中定义对象数组,再编写一个CWorker类的友元函数,计算平均工资,查找最高工资。

2、设计一个职工类CWorker,成员包括姓名、职工号、工龄、工资及相关的成员函数。由它派生出教师类CTeacher,包括职称,所属部门等属性和相关的成员函数。编写一个主函数,对设计的类进行测试。

  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-05-27 15:27
    关注

    该回答引用ChatGPT-3.5,仅供参考,不保证完全正确

    以下是两个问题的解决方案:


    问题1:

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    class CWorker {
    private:
        string name;
        string workerID;
        int yearsOfService;
        double salary;
    
    public:
        CWorker(string n, string id, int years, double sal) {
            name = n;
            workerID = id;
            yearsOfService = years;
            salary = sal;
        }
    
        void setName(string n) {
            name = n;
        }
    
        void setWorkerID(string id) {
            workerID = id;
        }
    
        void setYearsOfService(int years) {
            yearsOfService = years;
        }
    
        void setSalary(double sal) {
            salary = sal;
        }
    
        string getName() {
            return name;
        }
    
        string getWorkerID() {
            return workerID;
        }
    
        int getYearsOfService() {
            return yearsOfService;
        }
    
        double getSalary() {
            return salary;
        }
    
        friend double calculateAverageSalary(CWorker* workers, int numWorkers);
        friend double findMaxSalary(CWorker* workers, int numWorkers);
    };
    
    double calculateAverageSalary(CWorker* workers, int numWorkers) {
        double totalSalary = 0;
        for (int i = 0; i < numWorkers; i++) {
            totalSalary += workers[i].salary;
        }
        return totalSalary / numWorkers;
    }
    
    double findMaxSalary(CWorker* workers, int numWorkers) {
        double maxSalary = workers[0].salary;
        for (int i = 1; i < numWorkers; i++) {
            if (workers[i].salary > maxSalary) {
                maxSalary = workers[i].salary;
            }
        }
        return maxSalary;
    }
    
    int main() {
        const int numWorkers = 3;
        CWorker workers[numWorkers] = {
            CWorker("John", "W001", 5, 5000.0),
            CWorker("Jane", "W002", 10, 7000.0),
            CWorker("Mike", "W003", 3, 4000.0)
        };
    
        double averageSalary = calculateAverageSalary(workers, numWorkers);
        double maxSalary = findMaxSalary(workers, numWorkers);
    
        cout << "Average Salary: " << averageSalary << endl;
        cout << "Max Salary: " << maxSalary << endl;
    
        return 0;
    }
    

    问题2:

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    class CWorker {
    protected:
        string name;
        string workerID;
        int yearsOfService;
        double salary;
    
    public:
        CWorker(string n, string id, int years, double sal) {
            name = n;
            workerID = id;
            yearsOfService = years;
            salary = sal;
        }
    
        void setName(string n) {
            name = n;
        }
    
        void setWorkerID(string id) {
            workerID = id;
        }
    
        void setYearsOfService(int years) {
            yearsOfService = years;
        }
    
        void setSalary(double sal) {
            salary = sal;
        }
    
        string getName() {
            return name;
        }
    
        string getWorkerID() {
            return workerID;
        }
    
        int getYearsOfService() {
            return yearsOfService;
        }
    
        double getSalary() {
            return salary;
        }
    };
    
    class CTeacher : public CWorker {
    private:
        string title;
        string department;
    
    public:
        CTeacher(string n, string id, int years, double sal, string t, string dept) 
            : CWorker(n, id, years, sal) {
            title = t;
            department = dept;
        }
    
        void setTitle(string t) {
            title = t;
        }
    
        void setDepartment(string dept) {
            department = dept;
        }
    
        string getTitle() {
            return title;
        }
    
        string getDepartment() {
            return department;
        }
    };
    
    int main() {
        CTeacher teacher("John", "T001", 5, 5000.0, "Professor", "Mathematics");
    
        cout << "Name: " << teacher.getName() << endl;
        cout << "Worker ID: " << teacher.getWorkerID() << endl;
        cout << "Years of Service: " << teacher.getYearsOfService() << endl;
        cout << "Salary: " << teacher.getSalary() << endl;
        cout << "Title: " << teacher.getTitle() << endl;
        cout << "Department: " << teacher.getDepartment() << endl;
    
        return 0;
    }
    

    这两个例子提供了C++中的类定义、成员函数定义、构造函数、继承和友元函数的使用。希望对你有所帮助!如果有任何问题,请随时提问。

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器