基本上我总体上想做的是:
您的一位教授听说了您的新兴编程专业知识,并要求您编写一个可用于帮助他们评分的 SINGLE 程序。教授给出了三门 50 分的考试和一次 100 分的期末考试。您的程序将提示用户输入学生的姓名,输入为 Firstname Lastname(即 Bob Smith)、学生的 3 次考试成绩和 1 次期末考试成绩(全部为整数)。班级规模因学期而异,但限制为 100 人(声明为常数)。
在进行任何计算或显示任何输出之前,请阅读所有学生的信息。确认 3 次考试成绩在 0-50 分之间,并且在输入时确保期末考试成绩在 0-100 分之间。将最小值和最大值声明为常数,以便根据需要轻松更新它们。如果无效,则显示错误消息并允许用户重新输入该无效分数。读入所有学生信息后,以 LASTNAME、FIRSTNAME(全部大写)的格式显示每个学生的姓名、学生的考试百分比(所有考试的总和加上可能的期末/总数)到小数点后 1 位和学生的期末成绩。
但我无法弄清楚如何将用户输入分配到一个数组中(或者 2 个数组可能是因为名字和姓氏?)但我很不知道该怎么做,这就是我现在所拥有的:
import java.util.*;
import java.text.*;
public class Proj4 {
public static void main(String[] args){
Scanner s= new Scanner(System.in);
String input;
String again = "y";
int [] exams = new int[4];
int student = 1;
do
{
String [] names = new String[student];
System.out.print("PLease enter the name of student " + student + ": " );
names[student-1] = s.nextLine();
for ( int i = 0; i < exams.length; i++){
if(i==3){
System.out.print("Please enter score for Final Exam: ");
exams[i] = s.nextInt();
}
else{
System.out.print("Please enter score for Exam " + (i+1) + ": ");
exams[i] = s.nextInt();
if((exams[0]<0||exams[0]>50)||(exams[1]<0||exams[1]>50)||(exams[2]<0||exams[2]>50)){
System.out.println("Invalid enter 0-50 only...");
System.out.print("Please re-enter score: ");
exams[i] = s.nextInt();
}
else if(exams[3]<0||exams[3]>100){
System.out.println("Invalid enter 0-100 only...");
System.out.print("Please re-enter score: ");
exams[i] = s.nextInt();
}
}
}
System.out.print("do you wish to enter another? (y or n) ");
again = s.nextLine();
if(again!="y")
student++;
}while (again.equalsIgnoreCase ("y"));
}
}
如果我的代码还有其他问题,那么帮助也很棒。