/*
要求:
定义集合,存储多个员工(包含姓名、工资、职位),计算公司一个月所有员工工资的总支出。
*/
import java.util.ArrayList;
import java.util.Scanner;
public class Test_Company
{
public static void main(String[] args)
{
//创建集合
ArrayList<Employee> list = new ArrayList<Employee>();
//输入参数
input(list);
print(list);
//打印总支出
System.out.println("公司一个月所有员工工资的总支出:"+sum(list)+"元。");
}
//定义方法存储员工属性
public static void input(ArrayList<Employee> list){
//创建Scanner类
Scanner sc = new Scanner(System.in);
while(true){ //为了释放变量emp
//创建员工对象
Employee emp = new Employee();
//提示用户输入第一个员工信息
System.out.println("录入第1个员工的信息:");
//接收录入给分别属性赋值
System.out.println("请输入姓名:");
emp.name = sc.next();
System.out.println("请输入工资/元:");
emp.pay = sc.nextDouble();
System.out.println("请输入职位:");
emp.position = sc.next();
//将员工添加到集合中
list.add(emp);
break;
}
int i =1;//定义变量i用于记录输入的是第几个
abc:while (true)
{
//询问是否继续输入
System.out.println("输入姓名继续,输入(N/n)停止:");
String a = sc.next();
//用switch判断输入内容
switch (a)
{
case "N":
case "n":
break abc;
default:
i++;
break;
}
//创建员工对象
Employee emp = new Employee();
//提示用户输入第i+1个员工信息
System.out.println("录入第"+(i)+"个员工的信息:");
//接收录入分别给属性赋值
//System.out.println("请输入姓名:");
emp.name = a;
System.out.println("请输入工资:");
emp.pay = sc.nextDouble();
System.out.println("请输入职位:");
emp.position = sc.next();
list.add(emp);
//将员工添加到集合中
}
}
//定义计算公司一个月所有员工工资的总和
public static double sum(ArrayList<Employee> list){
//采用for循环求和
double he = 0;
for (int i=0; i<list.size(); i++)
{
he += list.get(i).pay;
}
return he;
}
//打印公司各员工信息
public static void print(ArrayList<Employee> list){
//for循环遍历
System.out.println("姓名"+" "+"工资/元"+" "+"职位");
for(int i=0;i<list.size();i++){
Employee emp = list.get(i);
System.out.print(emp.name + " " + emp.pay + " " + emp.position);
System.out.println();
}
}
}
/*
创建员工的类及其属性
*/
public class Employee
{
//姓名
String name;
//工资
double pay;
//职位
String position;
}
1.png (17.19 KB, 下载次数: 16)
1
2.png (17.84 KB, 下载次数: 18)
2
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |