使用For循環和數組我目前在預AP計算機科學類。我們的老師已經爲我們分配了一個今晚午夜的項目。該項目要求您製作一個程序,詢問您的姓名,您輸入的成績等級,要求您的成績,平均成績,然後返回字母值(例如A,B,C)以及您的姓名(例如「Iqbal,Noor」)。我似乎已經將所有代碼都解決了出來,並且在我進入我的成績時只出現了一個界限錯誤。但是,我的老師說修復這個錯誤的唯一方法是讓一個巨大的for循環,並把我的整個代碼在裏面。對我來說沒有意義,所以如果是這樣的話,有人可以解釋嗎?計算最終成績在Java中
如果不是這種情況,我想知道該怎麼做。我不想讓別人給我一個答案,而是引導我思考如何解決這個問題。
這裏是我到目前爲止的代碼:
import java.util.*;
public class Tester {
public static void main (String[] args){
//Prompt for first
//Prompt for last
//Prompt for # of assgmts to be averaged
//for-loop = prompt to enter # grade until all grades are entered (use [])
//loop through array again to calculate average
//print info
//prompt for multiple names and grades
Scanner kbInput = new Scanner(System.in);
System.out.println("How many students will you be entering?");
int numOfStudents = kbInput.nextInt();
String[] Students = new String[numOfStudents];
int k;
for(k = 0; k < Students.length; k++){
System.out.println("Enter your first name.");
String first = kbInput.next();
System.out.println("Enter your last name.");
String last = kbInput.next();
Students[k] = last + ", " + first;
}
String finalGrade = "";
System.out.println("How many grades will you be entering?");
int numOfGrades = kbInput.nextInt();
int[] Grades = new int[numOfGrades];
int sum = 0;
int j;
for (j = 0; j < numOfGrades; j++){
System.out.println("Enter your grades.");
Grades[j] = kbInput.nextInt();
sum+=Grades[j];
}
int average = sum/numOfGrades;
if((average >= 90) && (average <= 100)){
finalGrade = "A";
}
else if((average >= 80) && (average < 90)){
finalGrade = "B";
}
else if((average >= 75) && (average < 80)){
finalGrade = "C";
}
else if((average >= 70) && (average < 75)){
finalGrade = "D";
}
else if(average < 70){
finalGrade = "F";
}
String[] letterGrade = new String[numOfStudents];
int count;
for(count = 0; count < numOfStudents; count++){
letterGrade[count] = finalGrade;
}
}
}
編輯:這裏是項目的方向:
- 創建一個新的Java項目叫做FinalGrade一個名爲測試的類。
- 提示用戶輸入一個學生的名字,緊接着又迅速進入學生的姓氏。
- 提示用戶輸入要平均分配的數量(例如6)。
- 使用一個for循環,提示用戶輸入數字級(僅限整數),直到對學生作業的確切數字被輸入。注意:等級應該存儲在一個數組中。
- 循環返回等級陣列並計算輸入等級的平均值。
- 在屏幕上打印以下信息(按所示順序)... a。學生的姓氏 b。學生的名字 c。學生的最終成績(顯示爲一個字母等級,而不是數值) 實例輸出... 霍華德,德里克 - 一個
超越... 1.改變你的應用程序,允許多個學生和檔次的條目。
你正在努力爲你的成績輸入什麼? – Omore
你的「成績」和你的「學生」之間沒有任何關係。所以每個學生都會喜歡同一個年級!我認爲你的老師的意思是爲循環做一個大的外部循環,執行'numberOfStudents'次。在這個for循環中詢問每個* one *學生的姓名和成績。然後繼續與下一個學生。考慮創建一個擁有詹姆斯和一個學生成績的'學生'類 –
建議與您的特定問題無關:將您的代碼分解爲方法。這是一個很好的做法,有助於隔離問題,使代碼更具可讀性,劃分責任(*「分而治之」*),最重要的是,它可以更輕鬆地設計和編寫代碼。 – domsson