编写一个程序实现小型公司的工资管理。该公司主要有4类人员:经理,兼职技术人员,销售员和销售经理。要求存储这些人员的编号、姓名和月工资,计算月工资并显示全部信息。月工资的计算办法是:经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;销售员按当月销售额的4%提成;销售经理既拿固定工资也领取销售提成,固定月工资5000元,提成为所管辖部门当月销售总额的5%。

时间: 2023-05-31 14:20:21 浏览: 214
### 回答1: 这段代码实现了小型公司的工资管理。该公司主要有4类人员:经理,兼职技术人员,销售员和销售经理。要求存储这些人员的编号、姓名和月工资,并显示全部信息。月工资的计算方法是:经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;销售员按当月销售额的4%提成;销售经理也拿固定月薪5000元,同时还有销售提成5%。这段代码实现了月工资的计算方法,经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;销售员按当月销售额的4%提成;销售经理还有销售提成5%。其中,固定月薪为8000元的经理和销售经理分别领取8000元和5000元的月薪,各类人员的编号、姓名和月工资都可以显示出来。 ### 回答2: 本题要求编写一个程序来实现小型公司的工资管理,该公司主要包含四类人员:经理、兼职技术人员、销售员和销售经理。程序需要存储每个人员的编号、姓名和月工资,并通过相关计算方法来计算月工资。对于不同的人员类别,月工资计算方法也不同: 1. 经理:拿固定月薪8000元。 2. 兼职技术人员:按每小时100元领取月薪,月工资为工作小时数乘以100元。 3. 销售员:按当月销售额的4%提成,月工资为固定底薪加上当月销售额乘以4%。 4. 销售经理:既拿固定工资也领取销售提成,固定月工资为5000元,提成为所管辖部门当月销售总额的5%。 为了实现公司的工资管理,我们需要定义几个变量和函数来辅助程序的运行: 1. 定义一个结构体类型,用于存储每个人员的编号、姓名和月工资。 2. 定义一个函数,用于计算不同类型人员的月工资,根据不同的计算方法来计算。 3. 定义一个数组,用于存储公司所有人员的信息。 为了展示全部员工的信息,我们可以使用循环语句遍历整个数组,并调用计算月工资函数,以求得每个人员的月工资,并输出每个人员的编号、姓名和月工资等信息。 具体的实现过程如下: 1. 首先定义一个结构体类型来存储每个人员的编号、姓名和月工资: ```c struct employee{ int id; // 员工编号 char name[20]; // 员工姓名 int salary; // 员工月工资 }; ``` 2. 接下来定义一个函数,用于计算不同类型人员的月工资: ```c int calculate_salary(int type, int sales){ int salary; switch(type){ case 1: // 经理 salary = 8000; break; case 2: // 兼职技术人员 salary = hours * 100; break; case 3: // 销售员 salary = 2000 + 0.04 * sales; break; case 4: // 销售经理 salary = 5000 + 0.05 * sales; break; default: printf("Invalid employee type.\n"); salary = 0; break; } return salary; } ``` 这里使用了一个switch语句来根据人员类型计算月工资,其中type表示不同人员的类型编号,sales表示当月销售额或工作小时数。 3. 最后,定义一个数组来存储公司的所有人员信息,并使用循环语句遍历整个数组,调用计算月工资函数以计算每个人员的月工资,并输出其编号、姓名和月工资等信息: ```c int main(){ struct employee company[4]; int i; company[0].id = 1001; strcpy(company[0].name, "Manager"); company[0].salary = calculate_salary(1, 0); company[1].id = 1002; strcpy(company[1].name, "Part-time Technician"); company[1].salary = calculate_salary(2, 160); company[2].id = 1003; strcpy(company[2].name, "Salesman"); company[2].salary = calculate_salary(3, 50000); company[3].id = 1004; strcpy(company[3].name, "Sales Manager"); company[3].salary = calculate_salary(4, 100000); for(i=0;i<4;i++){ printf("ID: %d, Name: %s, Salary: %d\n", company[i].id, company[i].name, company[i].salary); } return 0; } ``` 在这个示例程序中,我们将4个人员信息存储在了数组company中,并分别使用对应的参数调用计算月工资函数,最后以编号、姓名和月工资等形式输出每个人员的信息。当然,实际情况下,可以通过用户输入或文件读取等方式来动态地读入员工信息,以更好地实现公司的工资管理。 ### 回答3: 本题要求编写一个程序实现小型公司的工资管理,可以考虑依次实现以下几步: 1. 定义数据结构 根据题目描述,可以定义一个类Person,其中包括编号、姓名和月工资三个属性,以及一个方法getSalary用于计算月工资。 2. 继承Person类 根据题目描述,可以定义四个子类Manager、PartTimeWorker、Salesman和SalesManager,分别继承Person类,重写getSalary方法。 Manager类的getSalary方法返回8000元,PartTimeWorker类的getSalary方法根据小时数计算,Salesman类的getSalary方法根据销售额计算提成,SalesManager类的getSalary方法计算固定工资和提成两部分。 3. 存储人员信息 可以定义一个列表或字典,用于存储各个人员的信息,包括编号、姓名和对应的Person对象。 4. 计算月工资并显示全部信息 遍历存储人员信息的列表或字典,调用每个Person对象的getSalary方法计算月工资,再将月工资和其他信息输出到屏幕上。 下面是一个示例代码: ```python class Person: def __init__(self, ID, name): self.ID = ID self.name = name self.salary = self.getSalary() def getSalary(self): pass class Manager(Person): def getSalary(self): return 8000 class PartTimeWorker(Person): def __init__(self, ID, name, hours): super().__init__(ID, name) self.hours = hours def getSalary(self): return self.hours * 100 class Salesman(Person): def __init__(self, ID, name, sales): super().__init__(ID, name) self.sales = sales def getSalary(self): return self.sales * 0.04 class SalesManager(Person): def __init__(self, ID, name, sales, department_sales): super().__init__(ID, name) self.sales = sales self.department_sales = department_sales def getSalary(self): return 5000 + self.department_sales * 0.05 person_list = [ Manager(1, '张经理'), PartTimeWorker(2, '李技术', 80), Salesman(3, '王销售', 10000), SalesManager(4, '赵经理', 6000, 120000) ] for person in person_list: print('编号:{},姓名:{},月工资:{}'.format(person.ID, person.name, person.salary)) ``` 这段代码定义了5个类,其中Person类为基类,Manager、PartTimeWorker、Salesman和SalesManager为子类,每个子类都重写了getSalary方法。person_list用于存储人员信息,遍历person_list时输出每个人员的编号、姓名和月工资。输出结果如下: ``` 编号:1,姓名:张经理,月工资:8000 编号:2,姓名:李技术,月工资:8000 编号:3,姓名:王销售,月工资:400.0 编号:4,姓名:赵经理,月工资:11000.0 ``` 其中第二个人员的月工资为8000元,这是因为示例中给出的兼职技术人员每小时100元的工资计算方式在代码中没有体现,可以自行添加相关代码。

最新推荐

recommend-type

类的运用 某公司雇员(employee)

某公司雇员(employee)包括经理(Manager)、技术人员(Technician)和销售员(Saleman)。开发部经理(developermanager)既是经理也是技术人员,销售部经理(salesmanager)既是经理也是销售员。 以employee类为...
recommend-type

按以下描述和要求建立两个类:基类 Rectangle(矩形类) 和派生类 Cube(正方体)

按以下描述和要求建立两个类:基类 Rectangle(矩形类) 和派生类 Cube(正方体) 1. Rectangle 私有成员:  double x1, y1; //左下角的坐标  double x2, y2; //右上角的坐标 公有成员:  带缺省值的构造...
recommend-type

C#编写一个类实现队列的功能,

C#编写一个类实现队列的功能,并编写一个测试类测试该队列的功能(参考.Net的类库中已经封装好了的队列类:System.Collections.Queue,可以将自己做好的类,和它进行比较)
recommend-type

用C编写一个送给女朋友的情人节小程序 可爱!

非常可爱的情人节小程序!文章为大家分享了用C编写一个送给女朋友的小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

java实验:编写一个java应用程序,用户从键盘输入一个1-99999的数,程序将判断这个数是几位数,并判断这个数是.pdf

java实验:编写一个java应用程序,用户从键盘输入一个1-99999的数,程序将判断这个数是几位数,并判断这个数是
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

【实战演练】MATLAB用遗传算法改进粒子群GA-PSO算法

![MATLAB智能算法合集](https://static.fuxi.netease.com/fuxi-official/web/20221101/83f465753fd49c41536a5640367d4340.jpg) # 2.1 遗传算法的原理和实现 遗传算法(GA)是一种受生物进化过程启发的优化算法。它通过模拟自然选择和遗传机制来搜索最优解。 **2.1.1 遗传算法的编码和解码** 编码是将问题空间中的解表示为二进制字符串或其他数据结构的过程。解码是将编码的解转换为问题空间中的实际解的过程。常见的编码方法包括二进制编码、实数编码和树形编码。 **2.1.2 遗传算法的交叉和
recommend-type

openstack的20种接口有哪些

以下是OpenStack的20种API接口: 1. Identity (Keystone) API 2. Compute (Nova) API 3. Networking (Neutron) API 4. Block Storage (Cinder) API 5. Object Storage (Swift) API 6. Image (Glance) API 7. Telemetry (Ceilometer) API 8. Orchestration (Heat) API 9. Database (Trove) API 10. Bare Metal (Ironic) API 11. DNS
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。