2

これを表に印刷するにはどうすればよいですか?私が書いた方法では、最後にすべての結果を印刷する方法がわかりません。これは私が持っているものです:

import java.util.Scanner;
public class FFLAverage{
  public static void main(String[] args){
    Scanner input = new Scanner(System.in);
    System.out.println("Input the number of students");
    int numofstu = input.nextInt();
    double totalchange = 0;
    for (int count = numofstu; count != 0; count--){
      if (count == numofstu)
        System.out.println("Last Name \t\t StartWeight \t\t End Weight \t\t Weight Change");
      System.out.print("Enter student name: ");
      String name = input.next();
      System.out.print("Input start weight: ");
      double start = input.nextDouble();
      System.out.print("Enter end weight: ");
      double end = input.nextDouble();
      double change = (start - end);
      totalchange += change;
      System.out.println(name + "\t\t" + start + "\t\t\t" + end + "\t\t\t" + change);
    }
    double avg = totalchange / numofstu;
    System.out.println("Average weight change: " + avg);
  }
}

これは出力がどのように見えるかです (コンソール)

Last Name Start Weight End Weight Weight Change
Noble     222.5        202.4     -23.1
Tyler     189.5        194.4      +4.9
Pond      345.1        190.0     -155.1
Average weight change: --57.33
4

4 に答える 4

1

ある種のデータコンテナクラスを作成して、それStudentを呼び出し、ゲッターとセッターを使用して適切なフィールド(名前、重みなど)を配置するか、それらのフィールドを宣言しますpublicnew Studentすべてのループ パスで作成し、初期化Studentされたオブジェクトを一般的なコレクションに追加しListますLinkedList<Student> students。反復が終了したら、作成されたリストを反復します。for(Student s:students)必要なデータを印刷します。

于 2013-10-23T05:40:59.260 に答える
1

この演習では、2D 配列について説明すると思います

値を 2D 配列に保存する必要があります

String[][] students = String[numofstu][4]

// inputs
// All of these inputs have to go inside a nested for loop using indexes i and j
String name = input.nextLine();
students [i][j] = name;

String beingWeight = String.valueOf(input.nextDouble());
students [i][j] = beginWeight;

String endWeight = String.valueOf(input.nextDouble());
students [i][j] = endWeight;

double wieghtChange = 
       Double.parseDouble(beginWeight)) - Double.parseDouble(endWeight));
String weightChange = String.valueOf(weightChange));
students [i][j] = weightChange;

印刷したいとき:

for (int i = 0; i < students.length; i++) {
    for (int j = 0; j < 4; j++) {
        // Print in your desired format
        System.out.print(students[i][j] + "     ");
    }
    System.out.println();
}
于 2013-10-23T05:50:22.023 に答える
1

5 つのステップ:

  1. 値を格納するクラスを作成します

    static class Student {プライベート文字列名; プライベート ダブル スタート。プライベートダブルエンド; プライベートダブルチェンジ;

        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public double getStart() {
            return start;
        }
    
        public void setStart(double start) {
            this.start = start;
        }
    
        public double getEnd() {
            return end;
        }
    
        public void setEnd(double end) {
            this.end = end;
        }
    
        public double getChange() {
            return start - end;
        }
    
    }
    
  2. 学生の各入力のオブジェクトを作成します。

        Student student = new Student();
    
  3. 学生の入力をオブジェクト内に保存する

            System.out.print("Enter student name[ "+(count+1) + "]: ");
            student.setName(input.next());
            System.out.print("Input start weight[ "+(count+1) + "]: ");
            student.setStart(input.nextDouble());
            System.out.print("Enter end weight[ "+(count+1)+ "]: ");
            student.setEnd(input.nextDouble());
    
  4. オブジェクトを配列に格納する

     students[count] = student;
    
  5. 配列を反復する

        System.out
                .println("Last Name\t\tStartWeight\t\tEnd Weight\t\tWeight Change");
        // PARSE THE ARRAY
        for (int i = 0; i < students.length; i++) {
            System.out.println(students[i].getName() + "\t\t"
                    + students[i].getStart() + "\t\t" + students[i].getEnd()
                    + "\t\t" + students[i].getChange());
        }
    

完全な実装

package com;

import java.util.Scanner;

public class FFLAverage {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Input the number of students");
        int numofstu = input.nextInt();
        double totalchange = 0;
        Student[] students = new Student[numofstu];
        for (int count = 0; count<numofstu;count++) {
            //Put data into A CLASS
            System.out.println("--------------------------------");
            Student student = new Student();
            System.out.print("Enter student name[ "+(count+1) + "]: ");
            student.setName(input.next());
            System.out.print("Input start weight[ "+(count+1) + "]: ");
            student.setStart(input.nextDouble());
            System.out.print("Enter end weight[ "+(count+1)+ "]: ");
            student.setEnd(input.nextDouble());
            totalchange += student.getChange();
            // PUT THE OBJECT IN ARRAY
            students[count] = student;
            System.out.println("--------------------------------");
        }

        System.out
                .println("Last Name\t\tStartWeight\t\tEnd Weight\t\tWeight Change");
        // PARSE THE ARRAY
        for (int i = 0; i < students.length; i++) {
            System.out.println(students[i].getName() + "\t\t"
                    + students[i].getStart() + "\t\t\t" + students[i].getEnd()
                    + "\t\t\t" + students[i].getChange());
        }

        double avg = totalchange / numofstu;
        System.out.println("Average weight change: " + avg);
    }

    static class Student {
        private String name;
        private double start;
        private double end;
        private double change;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public double getStart() {
            return start;
        }

        public void setStart(double start) {
            this.start = start;
        }

        public double getEnd() {
            return end;
        }

        public void setEnd(double end) {
            this.end = end;
        }

        public double getChange() {
            return start - end;
        }

    }
}
于 2013-10-23T05:51:40.303 に答える
1

新しいクラスを使用することをお勧めします:

    class student{
        public String name ;
        public double startWeight ;
        public double endWeight
        public student(){
             name = new String() ;
        }

        public double change(){
             return (endWeight - startWeight ) ;
        }
    }

その後、メインクラスで:

    import java.util.Scanner;
    public class FFLAverage{
      public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        System.out.println("Input the number of students");
        int numofstu = input.nextInt();
        student[] std = new student[numofstu] ;
        double totalchange = 0;
        for (int count = numofstu; count != 0; count--){
             std[count] = new student() ;


             System.out.print("Enter student name: ");
             std[count].name = input.next();
             System.out.print("Input start weight: ");
             std[count].startWeight = input.nextDouble();
             System.out.print("Enter end weight: ");
             std[count].endWeight = input.nextDouble();
       }
       for (int count = numofstu; count != 0; count--){
            if (count == numofstu)
                 System.out.println(name + "\t\t" + start + "\t\t\t" + end + "\t\t\t" + change);
            System.out.println(std[count].name + "\t\t" + std[count].startWeight + "\t\t\t" + std[count].endWeight + "\t\t\t" + std[count].change());
            totalchange+=std[count].change() ;
       }
       double avg = totalchange / numofstu;
       System.out.println("Average weight change: " + avg);
   }
  }
于 2013-10-23T06:00:08.473 に答える