编写一个小程序实现小型公司工资管理,该公司有雇员(employee)包括经理(manager)、技术人员(technician)、销售员(salesman)和销售经理(salesmanager)。要求
时间: 2023-06-05 13:47:22 浏览: 242
该程序需要实现以下功能:
1. 添加新员工:可以添加经理、技术人员、销售员和销售经理的信息,包括姓名、工号、职位、基本工资等。
2. 删除员工:可以根据工号删除员工信息。
3. 修改员工信息:可以修改员工的基本信息,包括姓名、职位、基本工资等。
4. 计算员工工资:根据员工的职位和基本工资计算员工的实际工资,包括基本工资、津贴、奖金等。
5. 查询员工信息:可以根据工号或姓名查询员工的基本信息和实际工资。
6. 统计员工工资:可以统计公司所有员工的实际工资总额和平均工资。
7. 导出员工信息:可以将员工信息导出为Excel或CSV格式的文件。
8. 导入员工信息:可以从Excel或CSV格式的文件中导入员工信息。
以上是小型公司工资管理程序的基本功能,可以根据实际需求进行扩展和优化。
相关问题
编写一个程序实现小型公司的工资管理。该公司雇员(Employee)包括经理(Manager)、技术人员(Technician)、销售员(Salesman)和销售部经理(Salesmanager) 要求
为了编写一个小型公司的工资管理程序,我们可以创建一个Employee基类,然后为经理、技术人员、销售员和销售部经理等员工类型创建具体的子类。每个子类可以包含特有的属性如职位津贴和计算基本工资的方法。这里是一个简单的Python示例:
```python
class Employee:
def __init__(self, name, id, salary):
self.name = name
self.id = id
self.salary = salary
def get_salary(self):
return self.salary
# 子类
class Manager(Employee):
def __init__(self, name, id, basic_salary, bonus):
super().__init__(name, id, basic_salary)
self.bonus = bonus
def get_total_salary(self):
return self.get_salary() + self.bonus
class Technician(Employee):
def __init__(self, name, id, hourly_rate, hours_per_week):
super().__init__(name, id, hourly_rate * hours_per_week)
def calculate_bonus(self, performance_score):
return performance_score * self.salary / 100
class Salesman(Employee):
def __init__(self, name, id, base_sales, commission_rate):
super().__init__(name, id, base_sales * commission_rate)
def get_total_sales(self, actual_sales):
return self.base_sales + (actual_sales - self.base_sales) * self.commission_rate
class Salesmanager(Employee):
def __init__(self, name, id, base_salary, commission_on_sales):
super().__init__(name, id, base_salary)
self.commission_on_sales = commission_on_sales
def get_commission(self, total_sales):
return total_sales * self.commission_on_sales
# 使用示例
manager = Manager("张经理", 1, 5000, 1000)
technician = Technician("李工", 2, 30, 40)
salesman = Salesman("王销售", 3, 8000, 0.1)
salesmanager = Salesmanager("赵主管", 4, 7000, 0.05)
print(manager.get_total_salary()) # 经理总工资
print(technician.calculate_bonus(90)) # 技术员绩效奖金
print(salesman.get_total_sales(10000)) # 销售员实际销售额及佣金
print(salesmanager.get_commission(200000))
用C++编写一个程序实现小型公司的人员信息管理系统。该公司雇员(employee)包括经理(manager),技术人员(technician)、销售员(salesman)和销售部经理(salesmanager)。要求存储这些人员的姓名、编号、级别、当月薪水,计算月薪并显示全部信息。 程序要对所有人员有提升级别的功能。为简单起见,所有人员的初始级别均为1,然后进行升级,经理升为4级,技术人员和销售部经理升为3级,销售员仍为1级。 月薪计算办法是:经理拿固定月薪8000元,技术人员按每小时100元领取月薪,销
售员按照当月销售额的5%领取月薪(销售额通过用户输入获取),销售部经理拿固定月薪6000元加上销售额的3%作为月薪。下面是一个简单的C程序实现:
#include <stdio.h>
struct Employee {
char name[20]; // 姓名
int id; // 编号
int level; // 级别
double salary; // 当月薪水
};
void calculate_salary(struct Employee* emp) {
if (emp->level == 4) {
emp->salary = 8000.0;
} else if (emp->level == 3) {
if (strcmp(emp->name, "salesmanager") == 0) {
emp->salary = 6000.0 + emp->salary * 0.03;
} else {
emp->salary = emp->salary * 100.0;
}
} else { // level == 1
emp->salary = emp->salary * 0.05;
}
}
void promotion(struct Employee* emp) {
emp->level++;
calculate_salary(emp);
}
int main() {
struct Employee employees[4] = {
{"manager", 1, 1, 0.0},
{"technician", 2, 1, 160.0},
{"salesman", 3, 1, 0.0},
{"salesmanager", 4, 1, 10000.0},
};
int i;
double sales;
for (i = 0; i < 4; i++) {
calculate_salary(&employees[i]);
}
printf("%-12s %-6s %-6s %-8s\n", "Name", "ID", "Level", "Salary");
for (i = 0; i < 4; i++) {
printf("%-12s %d %d %8.2f\n", employees[i].name,
employees[i].id, employees[i].level, employees[i].salary);
}
printf("\nInput sales of salesman: ");
scanf("%lf", &sales);
employees[2].salary = sales;
promotion(&employees[0]);
promotion(&employees[1]);
promotion(&employees[2]);
promotion(&employees[3]);
printf("\n%-12s %-6s %-6s %-8s\n", "Name", "ID", "Level", "Salary");
for (i = 0; i < 4; i++) {
printf("%-12s %d %d %8.2f\n", employees[i].name,
employees[i].id, employees[i].level, employees[i].salary);
}
return 0;
}
注意,此代码供参考,可能不是最佳实践,实际场景下需要更加完善的输入检查等边界处理。
阅读全文