有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在java控制台中以表格形式显示arraylist

我想以表格形式显示arraylist学生的数据。我有这个代码,但它只显示我在表中输入的最后一组数据。我的代码怎么了

public class gradesummary extends student{

    static ArrayList<student> studentList = new ArrayList<student>();

    @SuppressWarnings("resource")
    public static void main(String[] args){
        student student = new student();

        Scanner in = new Scanner(System.in);

        for (int x=0; x<=10; x++){
            System.out.print("Student Name: ");
            try {
                    student.name = in.nextLine();
                } 
            catch (Exception e) 
                {
                    e.printStackTrace();
                } 
            System.out.print("Section: ");
            try {
                    student.section = in.nextLine();
                } 
            catch (Exception e) 
                {
                    e.printStackTrace();
                } 
            System.out.print("Midterm Grade: ");
            try {
                    student.mgrade = in.nextDouble();
                } 
            catch (Exception e) 
                {
                    e.printStackTrace();
                } 
            System.out.print("Second Quarter Grade: ");
            try {
                    student.sqgrade = in.nextDouble();
                } 
            catch (Exception e) 
                {
                    e.printStackTrace();
                } 
            System.out.print("Final Exam Grade: ");
            try {
                    student.fegrade = in.nextDouble();
                } 
            catch (Exception e) 
                {
                    e.printStackTrace();
                } 

            student.fgrade = (student.mgrade*1/5)+(student.sqgrade*3/10)+(student.fegrade*9/20);
            studentList.add(student);
            in.nextLine();
        }
        Show(studentList);
    }

    private static void Show(ArrayList<student> studentList2) {
        new student();
        System.out.println("               Name           Section          Midterm Grade          Second Quarter Grade         Final Exam Grade         Final Grade     ");
        for (int i=0;i<=10;i++)
        {
            student student1 = studentList.get(i);
            System.out.println ("                      " +student1.name+ "          "+student1.section+"           "+student1.mgrade+"         "+student1.sqgrade+"        "+student1.fegrade+"       "+student1.fgrade+" " );
        }  
    }              
}

这是我班的学生

public class student {

String name;
String section;
Double mgrade;
Double sqgrade;
Double fegrade;
Double fgrade;
}

How can I make the table data straight? more organize?

我怎样才能把表格数据弄清楚?更有条理?这样地: enter image description here


共 (1) 个答案

  1. # 1 楼答案

    您只创建一个学生,并且始终覆盖该学生的数据。您必须在获得所有输入后创建一个新学生

        student.fgrade = (student.mgrade*1/5)+(student.sqgrade*3/10)+(student.fegrade*9/20);
        studentList.add(student);
        student = new student();
        in.nextLine();
    

    同时从节目中删除new student()。我还建议使用另一个变量名