基本的に私が全体的にやろうとしていることは次のとおりです。
あなたの教授の 1 人が、あなたがプログラミングの専門知識を新たに獲得したと聞いて、採点に役立てるために使用できる単一のプログラムを作成するように依頼しました。教授は 3 つの 50 点の試験と 1 つの 100 点の最終試験を行います。プログラムは、生徒の名前、ファーストネーム、ラストネーム (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"));
}
}
私のコードにも何か問題がある場合は、それを助けてください。