用java语言写一个程序:输入男女生的人数及各自姓名用随机数生成各自的号码男生或女生中的号码不得重复号码相同的男女生输出匹配成功信息
以下是一个用Java语言编写的程序,实现输入男女生的人数及各自姓名,用随机数生成各自的号码,并输出匹配成功信息。
import java.util.*;
public class MatchStudents {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入男生的人数:");
int maleCount = scanner.nextInt();
scanner.nextLine();
System.out.print("请输入女生的人数:");
int femaleCount = scanner.nextInt();
scanner.nextLine();
List<String> maleNames = new ArrayList<>();
List<String> femaleNames = new ArrayList<>();
System.out.println("请输入男生的姓名:");
for (int i = 0; i < maleCount; i++) {
maleNames.add(scanner.nextLine());
}
System.out.println("请输入女生的姓名:");
for (int i = 0; i < femaleCount; i++) {
femaleNames.add(scanner.nextLine());
}
List<Integer> maleNumbers = generateRandomNumbers(maleCount);
List<Integer> femaleNumbers = generateRandomNumbers(femaleCount);
Map<String, Integer> maleMap = new HashMap<>();
Map<String, Integer> femaleMap = new HashMap<>();
for (int i = 0; i < maleCount; i++) {
maleMap.put(maleNames.get(i), maleNumbers.get(i));
}
for (int i = 0; i < femaleCount; i++) {
femaleMap.put(femaleNames.get(i), femaleNumbers.get(i));
}
for (String maleName : maleNames) {
int maleNumber = maleMap.get(maleName);
for (String femaleName : femaleNames) {
int femaleNumber = femaleMap.get(femaleName);
if (maleNumber == femaleNumber) {
System.out.println(maleName + "和" + femaleName + "匹配成功,号码为:" + maleNumber);
}
}
}
}
private static List<Integer> generateRandomNumbers(int count) {
List<Integer> numbers = new ArrayList<>();
Random random = new Random();
for (int i = 0; i < count; i++) {
int number;
do {
number = random.nextInt(100) + 1;
} while (numbers.contains(number));
numbers.add(number);
}
return numbers;
}
}
在这个程序中,我们首先使用Scanner类获取输入的男生和女生的人数。然后,通过循环分别获取男生和女生的姓名,并将其存储在maleNames和femaleNames列表中。
接下来,我们使用generateRandomNumbers方法生成男生和女生的随机号码,并将姓名和号码存储在maleMap和femaleMap中。
最后,我们使用嵌套循环遍历男生和女生的姓名,如果找到相同的号码,则输出匹配成功的信息。
注意:为了确保男生和女生的号码不重复,我们使用generateRandomNumbers方法生成随机号码,并使用Map来存储姓名和号码的对应关系。
希望对你有帮助
原文地址: https://www.cveoy.top/t/topic/hX3X 著作权归作者所有。请勿转载和采集!