将列表更改为数组以计算平均成绩等
Changing a list into an array to calculate grade averages etc
我必须创建一个程序,在一种方法中使用数组来获取用户输入的学生成绩。然后,在另一种方法中,我必须取得这些成绩并计算最小值、最大值、平均值等。
请记住我在 java 仍然是初学者。
------------菜单问题解决了:
--- 我在使菜单正常工作时也遇到了问题。它需要打印出来并重复,直到用户键入 5 退出。 -
编辑编码:
import java.util.Scanner;
{
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Please enter the number of students: ");
int numStudents = keyboard.nextInt();
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
int total = 0;
for (int i=0; i<numStudents; i++){
System.out.println("Please enter the grade of student" + (i+1));
int grade = keyboard.nextInt();
max = Math.max(max, grade);
min = Math.min(min, grade);
total += grade;
}
double average = total/numStudents;
//menu here//
System.out.println("Please choose form the following options: ");
System.out.println("1- Display minimum grade");
System.out.println("2- Display maximum grade");
System.out.println("3- Display average");
System.out.println("4- Display the standard deviation");
System.out.println("5- Exit");
System.out.print("-> ");
int menu = keyboard.nextInt();
if(menu==1)
{
System.out.println("The maximum grade is: " + max);
}
if(menu==2)
{
System.out.println("The minimum grade is: " + min);
}
if(menu==3)
{
System.out.println("The average is: " + average);
}
if(menu==4)
{
System.out.println("The standard deviation is: ");
}
if(menu==5)
{
System.out.println("Exit");
}
do{
System.out.println("Please choose form the following options: ");
System.out.println("1- Display minimum grade");
System.out.println("2- Display maximum grade");
System.out.println("3- Display average");
System.out.println("4- Display the standard deviation");
System.out.println("5- Exit");
System.out.print("-> ");
int menu1 = keyboard.nextInt();
if(menu==1)
{
System.out.println("The maximum grade is: " + max);
}
if(menu1==2)
{
System.out.println("The minimum grade is: " + min);
}
if(menu1==3)
{
System.out.println("The average is: " + average);
}
if(menu1==4)
{
System.out.println("The standard deviation is: ");
}
if(menu1==5)
{
System.out.println("Exit");
return;
}
}while(menu!=5);
}
}
在您使用 java 时,请尝试使用 OOP 概念来解决这种情况。如果您需要更多说明,请告诉我,解决此系统将非常容易。
使用 getter 和 setter 方法创建 class 作为学生或其他东西。
然后将您的最小值、最大值、平均值逻辑分成不同的 class。
这将是一条清晰的道路。
你的有冗余code.You没必要写两次菜单。
此外,您需要使用 System.exit(0) 来退出您的程序,而不是 return。
在你的 while 条件下应该是 (menu1!=0),但是你写的是 (menu!=0) 。
您也可以改用 break 语句。
看起来你已经成功了(标准差部分除外),但你的代码有点多余。您将菜单打印两次,这是没有必要的。
也许创建一个方法,如:
public static int printMenu()
{
System.out.println("Please choose form the following options: ");
System.out.println("1- Display minimum grade");
System.out.println("2- Display maximum grade");
System.out.println("3- Display average");
System.out.println("4- Display the standard deviation");
System.out.println("5- Exit");
System.out.print("-> ");
return 0;
}
然后用 while 循环重新格式化您的条件语句,例如:
while (menu != 5)
{
if(menu==1)
{
System.out.println("The maximum grade is: " + max);
}
if(menu==2)
...
printMenu();
menu = keyboard.nextInt();
}
我必须创建一个程序,在一种方法中使用数组来获取用户输入的学生成绩。然后,在另一种方法中,我必须取得这些成绩并计算最小值、最大值、平均值等。
请记住我在 java 仍然是初学者。
------------菜单问题解决了: --- 我在使菜单正常工作时也遇到了问题。它需要打印出来并重复,直到用户键入 5 退出。 -
编辑编码:
import java.util.Scanner;
{
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Please enter the number of students: ");
int numStudents = keyboard.nextInt();
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
int total = 0;
for (int i=0; i<numStudents; i++){
System.out.println("Please enter the grade of student" + (i+1));
int grade = keyboard.nextInt();
max = Math.max(max, grade);
min = Math.min(min, grade);
total += grade;
}
double average = total/numStudents;
//menu here//
System.out.println("Please choose form the following options: ");
System.out.println("1- Display minimum grade");
System.out.println("2- Display maximum grade");
System.out.println("3- Display average");
System.out.println("4- Display the standard deviation");
System.out.println("5- Exit");
System.out.print("-> ");
int menu = keyboard.nextInt();
if(menu==1)
{
System.out.println("The maximum grade is: " + max);
}
if(menu==2)
{
System.out.println("The minimum grade is: " + min);
}
if(menu==3)
{
System.out.println("The average is: " + average);
}
if(menu==4)
{
System.out.println("The standard deviation is: ");
}
if(menu==5)
{
System.out.println("Exit");
}
do{
System.out.println("Please choose form the following options: ");
System.out.println("1- Display minimum grade");
System.out.println("2- Display maximum grade");
System.out.println("3- Display average");
System.out.println("4- Display the standard deviation");
System.out.println("5- Exit");
System.out.print("-> ");
int menu1 = keyboard.nextInt();
if(menu==1)
{
System.out.println("The maximum grade is: " + max);
}
if(menu1==2)
{
System.out.println("The minimum grade is: " + min);
}
if(menu1==3)
{
System.out.println("The average is: " + average);
}
if(menu1==4)
{
System.out.println("The standard deviation is: ");
}
if(menu1==5)
{
System.out.println("Exit");
return;
}
}while(menu!=5);
}
}
在您使用 java 时,请尝试使用 OOP 概念来解决这种情况。如果您需要更多说明,请告诉我,解决此系统将非常容易。
使用 getter 和 setter 方法创建 class 作为学生或其他东西。
然后将您的最小值、最大值、平均值逻辑分成不同的 class。
这将是一条清晰的道路。
你的有冗余code.You没必要写两次菜单。 此外,您需要使用 System.exit(0) 来退出您的程序,而不是 return。 在你的 while 条件下应该是 (menu1!=0),但是你写的是 (menu!=0) 。 您也可以改用 break 语句。
看起来你已经成功了(标准差部分除外),但你的代码有点多余。您将菜单打印两次,这是没有必要的。
也许创建一个方法,如:
public static int printMenu()
{
System.out.println("Please choose form the following options: ");
System.out.println("1- Display minimum grade");
System.out.println("2- Display maximum grade");
System.out.println("3- Display average");
System.out.println("4- Display the standard deviation");
System.out.println("5- Exit");
System.out.print("-> ");
return 0;
}
然后用 while 循环重新格式化您的条件语句,例如:
while (menu != 5)
{
if(menu==1)
{
System.out.println("The maximum grade is: " + max);
}
if(menu==2)
...
printMenu();
menu = keyboard.nextInt();
}