提问者:小点点

Java方案援助


我被指派做以下工作

  1. 为员工生成身份证号-每个身份证号必须满足以下要求:a。 一定是素数b。 它必须与以前生成的ID号C不匹配。 长度必须正好为5位
  2. 存储员工数据-对于此功能,应用程序必须允许您输入新员工的全名和分配给他们的ID号。 这些必须存储在应用程序中。

到目前为止,我不确定是否正在做正确的事情,但我有一些代码,我开始在下面。。。

import java.util.Scanner;

public static void main(String[] args) {
    // TODO Auto-generated method stub
    primenum();
}

public static void primenum() {

    int max = 20000;
    System.out.println("Generate Prime num" + max);
    for (int i = 10000; i < max; i++) {
        boolean isPrimeNumber = true;
        for (int j = 2; j < i; j++) {
            if (i % j == 0) {
                isPrimeNumber = false;
            }
        }
        // print the number if prime
        if (isPrimeNumber) {
            System.out.println(i + " ");
        }
    }
}

public static void ID() {

    String[] emp = new String[10];
    emp[0] = "John";
    emp[1] = "Mary";
    emp[2] = "James";
    emp[3] = "chris";
    emp[4] = "charles";
}

我刚刚创建了一个数组,其中包含一些名称。 但我希望得到的主要目标是将生成的下一个素数存储在与名称相关联的每个emp[]中。 所以对于。 emp[0]是john,我希望他能够接收primenum()方法的下一个素数。 我不确定如何做到这一点,并将爱所有的帮助被任命。


共2个答案

匿名用户

欢迎来到SO。

现在关于你的问题,我不太确定你想要什么,但我猜你想以某种方式将一个素数与你的员工姓名联系起来。 如果是这样的话,下面可能会帮到你。

创建一个自定义对象,该对象负责employee对象与素数(ID)之间的关系,如下所示:

public class EmployeeNameAndId {

    private Employee employee;

    private Integer id;

    // constructors, getters, setters here

}

现在需要在主类中使用这个对象,如下所示:

public class MainClass {

    public static void main(String[] args) {
        List<EmployeeNameAndId> l = new ArrayList<>();
        l.add(new EmployeeNameAndId("John", generatePrimeId());
        l.add(new EmployeeNameAndId("Mary", generatePrimeId());
        l.add(new EmployeeNameAndId("James", generatePrimeId());
        l.add(new EmployeeNameAndId("Chris", generatePrimeId());
    }

}

我希望这能帮助你,但如果这不是你想要的,让我知道,我会尽力帮助你。

祝你好运,学习愉快!

匿名用户

使用此解决方案:

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;

public class PrimeNumber {

    public static void main(String[] args) {
        Map<String,Integer> map=new HashMap<String,Integer>();
        map.put("John", nextPrime(1));
        map.put("Mary", nextPrime(map.get("John")));
        map.put("James", nextPrime(map.get("Mary")));
        map.put("chris", nextPrime(map.get("James")));
        map.put("charles", nextPrime(map.get("chris")));
        
        for(Entry<String, Integer> e:map.entrySet()) {
            System.out.println(e.getKey()+": "+e.getValue());
        }
    }
    
    public static int nextPrime(int input){
          int counter;
          input++;
          while(true){
            int l = (int)  Math.sqrt(input);
            counter = 0;
            for(int i = 2; i <= l; i ++){
              if(input % i == 0)  counter++;
            }
            if(counter == 0)
              return input;
            else{
              input++;
              continue;
            }
          }
        }
}