Java 使用System.out.printf和数组显示成绩表
我正在努力完成我的程序,我正在寻求帮助。我应该能够输出一个包含我的学生姓名、所有考试成绩、测验成绩、家庭作业成绩和最终平均成绩的表格。我很难弄清楚如何使用System.out.printf正确格式化表格。现在我遇到了一个问题,我不知道如何循环我的数组,所以它们会不断打印出多达200个学生的姓名和成绩 我试着通过做3个独立的学生成绩来说明这一点,但我遇到了一个问题,即我所有的考试、测验和硬件数组都不能解析为一个变量。这让我很困惑,因为我已经将它们从字符串更改为双精度。如果有帮助的话,这里是我用来尝试将输入切换为双倍的代码Java 使用System.out.printf和数组显示成绩表,java,arrays,Java,Arrays,我正在努力完成我的程序,我正在寻求帮助。我应该能够输出一个包含我的学生姓名、所有考试成绩、测验成绩、家庭作业成绩和最终平均成绩的表格。我很难弄清楚如何使用System.out.printf正确格式化表格。现在我遇到了一个问题,我不知道如何循环我的数组,所以它们会不断打印出多达200个学生的姓名和成绩 我试着通过做3个独立的学生成绩来说明这一点,但我遇到了一个问题,即我所有的考试、测验和硬件数组都不能解析为一个变量。这让我很困惑,因为我已经将它们从字符串更改为双精度。如果有帮助的话,这里是我用来尝
// declare Double[] exams using length numExams
Double[] exams = new Double[numExams];
// iterates through Array exams and adds values from allInfo
for (int k = 0; k < exams.length; k++) {
exams[k] = Double.parseDouble(allInfo.get(1 + k)
.substring(1));
// prints out (delete this when you finish program)
//System.out.print(exams[k] + "\t");
}
//System.out.println(" ");
// declare Double[] quizzes using length numQuizzes
Double[] quizzes = new Double[numQuizzes];
// iterates through Array quizzes and adds values from
// allInfo
for (int k = 0; k < quizzes.length; k++) {
quizzes[k] = Double.parseDouble(allInfo.get(
1 + numExams + k).substring(1));
// prints out (delete this when you finish program)
//System.out.print(quizzes[k] + "\t");
}
//System.out.println(" ");
// declare Double[] HW using length numHW
Double[] hw = new Double[numHW];
// iterates through Array hw and adds values from allInfo
for (int k = 0; k < hw.length; k++) {
hw[k] = Double.parseDouble(allInfo.get(
1 + numExams + numQuizzes + k).substring(1));
最好的方法是使用POJA。创建一个包含所有必填字段的Sudent POJO。然后创建一个Student对象数组并遍历它。但是对于您当前的代码,请使用以下解决方案 维护所有4个数组的索引(即学生姓名、我的所有考试成绩、测验成绩、家庭作业成绩)
int studentNameIndex=0;
int examGradeIndex=0;
int-quizGradeIndex=0;
int homeworkGradeIndex=0;
int-gradeAverageIndex=0;
System.out.println(“显示学生成绩和统计数据”);
//我的成绩表标题的格式设置
System.out.printf(“%-10s”,“Name”);
System.out.printf(“%-5s”,“检查”);
System.out.printf(“%-5s”,“检查”);
System.out.printf(“%-5s”,“检查”);
System.out.printf(“%-5s”,“测验”);
System.out.printf(“%-5s”,“测验”);
System.out.printf(“%-5s”,“测验”);
系统输出打印F(“%-7s”,“硬件”);
系统输出打印F(“%-7s”,“硬件”);
系统输出打印F(“%-7s”,“硬件”);
System.out.printf(“%-5s”,“Grade\n”);
for(int index=0;index
问题在于行中的“\n”
System.out.printf("%-5.1f",gradeAverage[2] + "\n");
取代
System.out.printf("%-5.1f \n",gradeAverage[1]);
还是用这个
System.out.printf("%-5.1f",gradeAverage[2]);
System.out.printf("\n");
非常感谢你!这比我做的容易多了。我还有一个问题。你将如何计算你的平均成绩,然后进行加权平均成绩?数组把我搞得一团糟,很难获得考试、测验和家庭作业的平均成绩,然后再获得加权平均成绩。使用POJO计算平均成绩时不会出现任何混乱。为了正确回答你的问题,请告诉我你加权分数的公式。
System.out.printf("%-5.1f \n",gradeAverage[1]);
System.out.printf("%-5.1f",gradeAverage[2]);
System.out.printf("\n");