1 题目

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

2 框图

java小型公司的真实项目部署的流程 小型公司java项目实例_ci

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 运行结果

java小型公司的真实项目部署的流程 小型公司java项目实例_java_02