JAVA 简单综合题目 小型公司职工对象

1 题目

某小型公司,主要有三类人员:经理、兼职技术人员和兼职推销员。
这三类人员共同拥有的相关属性:姓名、编号; 相关方法:获取当月薪水的getPay()方法、显示个人信息的toString()方法。
人员编号基数为1000,每创建一个人员实例对象,其编号属性的值顺序加1。月薪计算方法:经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;兼职推销人员的月薪按当月的销售额的4%提成。
要求:根据题意,自己确定需要定义的类及各类的属性、构造方法和其他方法,并编写Java Applcation程序实现功能:存储若干个职工信息,然后分行显示所有职工的姓名、编号、月工资等相关信息,另外计算所有职工的月薪总和并显示出来。

2 框图

在这里插入图片描述

3 源代码

staff.java

/*生成虚拟员工类*/
public abstract class staff
{
	public String name;
	public String cno;//职工编号
	public static int count;
	
	abstract double getPay();//获取员工的工资
	abstract void tostring();//显示员工的信息
	staff(String name,String cno)
	{
		this.name = name;
		this.cno = cno;
		count++;
	}
	
	public static int get_Count()//每增加一个员工,count++
	{
		return count;
	}
}

Manager.java

/*生成经理类*/
public class Manager extends staff
{
	private int Monthly_Salary;//工资
	
	Manager(String name,String cno,int Monthly_Salary)
	{
		super(name,cno);
		this.Monthly_Salary = Monthly_Salary;
	}
	
	double getPay()
	{
		return Monthly_Salary;
	}
	
	void tostring()
	{
		System.out.println("员工信息:" + '\n');
		System.out.println("姓名:" + name + '\n');
		System.out.println("编号:" + cno + '\n');
	}
}

Part_Time_Technicist.java

/*生成兼职技术人员类*/

public class Part_Time_Technicist extends staff
{
	private int Worked_hours;//一个月工作的时间长度
	
	Part_Time_Technicist(String name,String cno,int Worked_hours)
	{
		super(name,cno);
		this.Worked_hours = Worked_hours;
	}
	
	double getPay()
	{
		return 100*Worked_hours;
	}
	
	void tostring()
	{
		System.out.println("员工信息:" + '\n');
		System.out.println("姓名:" + name + '\n');
		System.out.println("编号:" + cno + '\n');
	}
}

Part_Time_Salesman.java

/*生成兼职推销人员类*/

public class Part_Time_Salesman extends staff
{
	private int Sales;//销售额
	
	Part_Time_Salesman(String name,String cno,int Sales)
	{
		super(name,cno);
		this.Sales = Sales;
	}
	
	double getPay()  
	{
		return 0.04*Sales;
	}
	
	void tostring()
	{
		System.out.println("员工信息:" + '\n');
		System.out.println("姓名:" + name + '\n');
		System.out.println("编号:" + cno + '\n');
	}
}

Company.java

public class Company 
{

	public static void main(String[] args) 
	{
		double sum = 0;
		int cnt = 0;
		int i = 0;
		//存储十个员工信息
		staff Staff[] = new staff[10];//定义一个数组
		Staff[0] = new Manager("可爱","1000",8000);
		Staff[1] = new Manager("大可爱","1001",8000);
		Staff[2] = new Manager("小可爱","1002",8000);
		Staff[3] = new Manager("一号可爱","1003",8000);
		Staff[4] = new Part_Time_Technicist("二号可爱","1004",4 * 30);
		Staff[5] = new Part_Time_Technicist("三号可爱","1005",6 * 30);
		Staff[6] = new Part_Time_Technicist("四号可爱","1006",8 * 30);
		Staff[7] = new Part_Time_Salesman("五号可爱","1007",180000);
		Staff[8] = new Part_Time_Salesman("六号可爱","1008",16000);
		Staff[9] = new Part_Time_Salesman("七号可爱","1009",14000);
		
		//获取员工总数
		cnt = staff.get_Count();
		
		//显示员工信息
		for(i = 0;i < cnt;i++)
		{
			Staff[i].tostring();
		}
		
		//计算员工的月薪总和
		for(i = 0;i < cnt;i++)
		{
			sum += Staff[i].getPay();
		}
		
		//显示员工的月薪总和
		System.out.println("所有员工的月薪总和为:" + sum + '\n');
	}
}

4 运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jasmine-Lily

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值