Java 分级模式:二维数组并打印平均值
我对java非常陌生,我的老师给我们布置了这个作业,让我们可以在网上寻找如何让代码工作。我感到很失落,因为我只使用了一次数组,而双数组只使用了一次。我真的需要一些帮助和解释如何让这个程序运行 到目前为止,我的老师教我如何划分学生和分数,但他没有教我如何打印分数。还有,当您使用双数组时,如何仅计算每个学生的行而不是列的平均值 放坡模式:在一个单独的函数中,您将实现一个放坡模式。写一篇 从用户提供的文件中读取学生姓名及其考试成绩的程序。 文件中的前两个值表示学生人数,后面是测试次数。 然后,程序应计算每个学生的平均考试分数,并分配适当的分数 等级(A、B、C、D、E或F)以及每次测试的平均值。您的程序必须执行以下操作 功能。 a) 空函数计算平均分数,以确定每个学生的平均测试分数 下面是txt文件: 汤姆9167845069 苏西74 78 58 62 64 彼得55 95 81 77 61 保罗9195927786 黛安9154525392 艾米丽8271666895 娜塔莉9776718869 本62 67 99 85 94 马克53 61 72 83 73 安娜6491615368 以下是我到目前为止的情况:Java 分级模式:二维数组并打印平均值,java,multidimensional-array,Java,Multidimensional Array,我对java非常陌生,我的老师给我们布置了这个作业,让我们可以在网上寻找如何让代码工作。我感到很失落,因为我只使用了一次数组,而双数组只使用了一次。我真的需要一些帮助和解释如何让这个程序运行 到目前为止,我的老师教我如何划分学生和分数,但他没有教我如何打印分数。还有,当您使用双数组时,如何仅计算每个学生的行而不是列的平均值 放坡模式:在一个单独的函数中,您将实现一个放坡模式。写一篇 从用户提供的文件中读取学生姓名及其考试成绩的程序。 文件中的前两个值表示学生人数,后面是测试次数。 然后,程序应计
public class Grades {
private static final String FILENAME2 = "/Users/Jarvis/Documents/Students.txt";
public static void main(String[] args) {
BufferedReader br = null;
FileReader fr = null;
try {
fr = new FileReader(FILENAME2);
br = new BufferedReader(fr);
String students [] = new String[10];
int [][] grades = new int [10][5];
String[] words;
String sCurrentLine;
int counter=0;
br = new BufferedReader(new FileReader(FILENAME2));
while ((sCurrentLine = br.readLine()) != null) {
words = sCurrentLine.split(" ");
students[counter]=words[0];
System.out.print(students[0]+ " ");
for (int i=1; i < words.length; i++){
grades[counter][i-1]=Integer.parseInt(words[i]);
} //end of outer for loop
System.out.println();
} // end of while loop
} catch (IOException e) {
e.printStackTrace();
}
}//end of main
public static void calculateAverage (int grade [][]){
int temp;
int sum;
} // end of calculateAverage()
公共课成绩{
私有静态最终字符串FILENAME2=“/Users/Jarvis/Documents/Students.txt”;
公共静态void main(字符串[]args){
BufferedReader br=null;
FileReader fr=null;
试一试{
fr=新文件读取器(文件名2);
br=新的缓冲读取器(fr);
字符串学生[]=新字符串[10];
整数[][]等级=新整数[10][5];
字符串[]个单词;
弦电流线;
int计数器=0;
br=新的BufferedReader(新的文件读取器(FILENAME2));
而((sCurrentLine=br.readLine())!=null){
words=sCurrentLine.split(“”);
学生[计数器]=单词[0];
系统输出打印(学生[0]+“”);
for(int i=1;i
首先,您需要在循环的底部添加计数器++;
至于平均值,这将计算每个学生的平均成绩(假设此格式为grade[student][grade]
),然后打印学生的编号grade[student]
,后面是他们的平均成绩grades.get();
public静态void-calculateAverage(整数等级[]){
ArrayList averageGrades=新ArrayList();
整数和=0;
对于(int student=0;student
计数器应为计数器++。
public static void calculateAverage (int grade[][]){
ArrayList<Double> averageGrades = new ArrayList<Double>();
int sum = 0;
for(int student = 0; student < grade.length; student++){
for(int i = 0; i < grade[student].length; i++){
if(i == 0){
sum = grade[student][i];
}else if(i == grade[student].length - 1){
sum += grade[student][i]; //Add next grade to sum
averageGrades.add((double) (sum/i)); //Divide the sum by the number of grades (average)
}else{
sum += grade[student][i]; //Add next grade to sum
}
}
}
for(int counter = 0; counter < averageGrades.size(); counter++){
//Cycle through the grades and print them after the student name (grade[counter])
System.out.println(grade[counter] + " " + averageGrades.get(counter));
}
}