黑马程序员技术交流社区

标题: 定义集合,存储多个员工(包含姓名、工资、职位),计算公... [打印本页]

作者: peng84    时间: 2016-11-2 00:22
标题: 定义集合,存储多个员工(包含姓名、工资、职位),计算公...
[Java] 纯文本查看 复制代码
/*
要求:
定义集合,存储多个员工(包含姓名、工资、职位),计算公司一个月所有员工工资的总支出。


*/
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();
                }

        }

       
}


[Java] 纯文本查看 复制代码

/*
        创建员工的类及其属性

*/
public class Employee
{
        //姓名
        String name;
        //工资
        double pay;
        //职位
        String position;
}


显示效果:


1.png (17.19 KB, 下载次数: 16)

1

1

2.png (17.84 KB, 下载次数: 18)

2

2

作者: jiaogege520    时间: 2016-11-2 10:40
好复杂的样子




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2