我有一个 excel 电子表格,里面有用户的名字、姓氏以及上个月他们正确回答日常琐事问题的次数。我想要做的是根据抽奖系统选出获胜者,用户每正确回答一个问题就会获得一个参赛资格。我有办法用 Java 来实现,但如果可能的话,我想用 excel 来实现。以下是我的 Java 代码,如果它有助于解释:
public static void main(String[] args) throws FileNotFoundException {
File file = new File("TriviaParticipantsList.txt");
Scanner scanner = new Scanner(file);
int x = 0;
int j = 0;
int i = 0;
while(scanner.hasNextLine())
{
String line = scanner.nextLine();
Scanner scan = new Scanner(line);
i = scan.nextInt();
String name = scan.nextLine();
if(line.charAt(0)==0)
{
//do nothing if no questions were answered
}
else
{
for(j=0; j<i; j++)
{
System.out.print(j+x); //Print out "ticket number"
System.out.println(" " + name); //Print out owner name of ticket
}
}
x=x+i;
}
scanner.close();
System.out.println(x); //Verify correct number of entries
int winner = (int) (Math.random()*x); //Select random number based on number of entries
System.out.println(winner); //Display value, look through list to find who number belongs to!
}
任何帮助是极大的赞赏!
答案1
我可以想象(就像“我没有尝试过”)正确答案的累积总和与随机数查找相结合可能会达到目的。
Name | Correct | Sum
P1 3 3
P2 2 5
P3 4 9
创建一个带有随机数的单元格,可能还有一个按钮来触发重新计算,或者让它用随机数的公式填充单元格或类似的东西。
然后,您应该能够执行返回“P2”的查找,例如,如果您抽到数字 4。编辑:查看查找函数的帮助,了解如何使其返回正确的值,我相信它可以满足您的要求。否则,您可能需要使用辅助列来解决这个问题。
随机数当然必须从 1 到累积和的最大值。
希望这能有所帮助 ;-)