换班的简单程序

时间:2018-11-17 15:27:20

标签: java

我父亲要求我为他制作一个程序,该程序将从Excel(或CSV文件)中随机取一个名字,姓氏等,然后分配员工参加工作。每个人每月最少工作一次,最多每月工作4次。程序输出应如下所示:

  

第一天:约翰·史密斯,詹姆斯·史密斯
第二天:查理·史密斯,托马斯·史密斯

这就是我的代码现在的样子

public static void main(String[] args) {

    String FileName = "excel.csv";

    File f = new File(FileName);
    String read = "";

    Map<Integer, Surname>SurnameArray = new HashMap<Integer, Surname>();

    try {
        Scanner scanner = new Scanner(f);
        while(scanner.hasNextLine()) {
            read = scanner.nextLine();
                String[] arraySplit = read.split(",");
                int kod = Integer.parseInt(tablicaSplit[0]);
                String rank = tablicaSplit[1];
                String name = tablicaSplit[2];
                String surname = tablicaSplit[3];

                SurnameArray.put(kod, new Nazwiska(kod, rank, name, surname));
                SurnameArray.get(kod).getAll();

        }
    } catch (FileNotFoundException e) {
        System.out.println("No file!");
    }

}

}

第二个类如下:

Class Surnames {
private int kod;
private String rank;
private String name;
private String surname;

public Surnames(int kod, String rank, String name, String surname) {
    super();
    this.kod = kod;
    this.rank = rank;
    this.name = name;
    this.surname = surname;
}

    public void getAll() {
        System.out.println(rank + " " + name + " " + surname);
    }

    public int getKod() {
        return kod;
    }

    public void setKod(int kod) {
        this.kod = kod;
    }

    public String getRank() {
        return rank;
    }

    public void setRank(String rank) {
        this.rank = rank;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSurname() {
        return surname;
    }

    public void setNazwisko(String surname) {
        this.surname = surname;
    }

}

我现在被困住了。我认为这段代码比应该的要复杂。如果有人可以告诉我我该怎么做,或者也许有更简单的方法来制作这样的东西。

1 个答案:

答案 0 :(得分:0)

我会这样:

    class Surnames{ 

         private final HashSet<String> EMPLOYEES;
         private ArrayList<String> positions;

         Surnames(String csv){
             HashSet<String> tempEMPLOYEES = new HashSet<>();
             ArrayList<String> tempPositions = new ArrayList<>();
             /*here the code for putting csv data ino an tempEMPLOYEE hashSet, or a static setter method doing this, as well for tempPositions, containing array list of positions remember to check 
               if the hashset's size is equal or lower than arrayList's*/
             EMPLOYEES = tempEMPLOYEES;
             positions = tempPosition;
         }

         public void printShift(){

              for(int i = 0; i < EMPLOYEES.size(); i++){
                   System.out.println(positions.get(i) + "- " + EMPLOYEES.get(i));
              }
         }

      }

由于hashSet在每次程序运行时都会在集合中赋予不同的对象位置,因此将EMPLOYEESpositions放置是随机的。我提到过检查HashSet EMPLOYEES的大小应小于positions。我遍历哈希表-每个员工都应该获得一个职位。