员工类

假定要为某个公司编写雇员工资支付程序,这个公司有各种类型的雇员(Employee),不同类型的雇员按不同的方式支付工资(都是整数): (1)经理(Manager)——每月获得一份固定的工资 (2)销售人员(Salesman)——在基本工资的基础上每月还有销售提成 (3)一般工人(Worker)——则按他每月工作的天数计算工资 在Employee中提供函数getSalary()计算每个雇员一个月的工资,并在子类中重写。

在main函数中构造Employee的三个变量,分别指向Manager、Salesman、Worker的对象,调用getSalary函数,输出三个对象的工资

输入格式:

经理的月工资 销售人员的基本工资 销售人员的提成 工人的工作天数 工人每天的工资

输出格式:

经理的工资 销售人员的工资 工人的工资

输入样例:

在这里给出一组输入。例如:

12000
3000 5000
22 200

输出样例:

在这里给出相应的输出。例如:

12000
8000
4400

import java.util.*;
public class Main{
	static Scanner cin = new Scanner(System.in);
	public static void main(String[] args) {
		int money=0;
		Manager m = new Manager(cin.nextInt());
		System.out.println(m.getSalary());
		Salesman s = new Salesman(cin.nextInt(),cin.nextInt());
		System.out.println(s.getSalary());
		Worker w = new Worker(cin.nextInt(),cin.nextInt());
		System.out.println(w.getSalary());
	}
}
abstract class Employee{
	public abstract int getSalary();
}
class Manager extends Employee{
	int salary;
	public Manager(int salary) {
		this.salary = salary;
	}
	public int getSalary() {
		return salary;
	}
}
class Salesman extends Employee{
	int base;
	int up;
	public Salesman(int base,int up) {
		this.base = base;
		this.up = up;
	}
	public int getSalary() {
		return base+up;
	}
}
class Worker extends Employee{
	int days;
	int base;
	public Worker(int days,int base) {
		this.days = days;
		this.base = base;
	}
	public int getSalary() {
		return days*base;
	}
}
工资发放系统 某公司按月给其雇员发放工资,该公司有4种雇员:  固定薪金的雇员:不管作多长时间,总拿固定月薪;(但如果请假,要扣除相应的薪金,请假次数×每次扣除金额30)  小时:以小时计算,加上加班费;(每月基本作时间为160小时,其余为加班时间)  销售员:按销售收入提成计算;(每月基本销售额度为30000元,低于此额度,在月薪里扣除少于30000部分的千分之二)  带薪销售员:底薪加上销售收入提成(要求同上,若有请假,也要扣除相应的薪金) 如果雇员的生日所在的月份在本月,那么公司无条件补贴200元。 设计一工资发放系统,完成各种工资的计算,并实现以下功能: 1) 初始化系统 创建存储该公司职信息的存储系统(Employee.dat),并进行职信息的输入,注意:公司的职编号由系统按顺序自动生成,并且员工号一旦分配好就不可以再修改! 第一次运行系统,根据系统提示从键盘输入员工的相应信息进行初始化操作,并保存至Employee.dat文件中。以后每次运行程序,初始化时都从文件Employee.dat中读取员工数据即可。 2) 职信息输出 要求可以输出: 某当月的薪水发放信息 分输出全体职当月的薪水发放信息 某一名职当月的薪水发放信息 格式如下: ******************************** 固定薪金职员********************************* 编号 姓名 出生年月 种 奖励薪金 固定月薪 请假天数 应扣 实发工资 是否领取 **********************************计时职员*********************************** 编号 姓名 出生年月 种 奖励薪金 作时长 时薪 加班时长 实发工资 是否领取 **********************************普通销售员*********************************** 编号 姓名 出生年月 种 奖励薪金 销售额 提成比例 应扣 实发工资 是否领取*********************************带薪销售员************************************ 编号 姓名出生年月种奖励薪金固定月薪销售额提成比例请假天数应扣实发工资是否领取 3) 添加职 通过键盘输入相应的职信息,添加职,并保存至Employee.dat文件中。 4) 删除职 通过输入职号,首先输出要删除的职相应的信息,经确认后删除,要考虑职不存在的情况。删除后保存至Employee.dat文件中。 5) 修改信息 要求可以修改: 除编号外的所有职信息,包括种以及由修改种带来的各项操作 修改某一种的信息,如销售人员的提成比例,统一提高0.05; 输出修改前的职信息,经确认后修改后,输出修改后的职信息,考虑职不存在的情况,修改后保存至Employee.dat文件中。 6) 工资发放 通过输入职号方式,输出查询到的职相应的信息,经确认发放工资,将员工是否领取工资信息设置为是(即真),考虑所要查询的职编号不存在和已经发放过工资的情况。 7) 保存退出 通过确认,保存修改的信息至文件Employee.dat中,退出系统,结束运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值