【问题标题】:Implementing methods: Writing two classes, one with a main, other with not实现方法:写两个类,一个带main,一个带not
【发布时间】:2015-12-12 14:15:46
【问题描述】:

我想用以下内容编写一个类。

  • 名字

  • ID

  • 分数 1

  • 分数2

  • 分数3

  • 平均

  • 等级(A、A-、B+、...E)。

假设所有数据成员都是私有的。

下面是我所拥有的,我将班级命名为 Student。

import java.util.Scanner;

public class Student {
       private String fname;
        private String lname;
        private int id;
        private int score1;
        private int score2;
        private int score3;
        private double average;
        private String grade;

        public void readInfo()
        {
            Scanner k = null;
            k = new Scanner (System.in);

            System.out.println ("Please enter the first name: (Enter John as first name and Doe as last name to stop) ");
            fname = k.next();
            System.out.println("Please enter the last name: ");
            lname = k.next();
            if (fname.equalsIgnoreCase("John")&&lname.equalsIgnoreCase("Doe"))
            System.exit(0);
            System.out.println("Please enter the student ID: ");
            id = k.nextInt();
            System.out.println("Please enter the first score: ");
            score1 = k.nextInt();
            System.out.println("Please enter the second score: ");
            score2 = k.nextInt();
            System.out.println("Please enter the third score: ");
            score3 = k.nextInt();
        }

        private void computeAverage()
        {
            average = (score1+score2+score3)/3;

        }
        private void computeGrade()
        {
            if (average>=90&&average<=100)
                grade = "A";
            else if (average>=80&&average<=89.9)
                grade = "B";
            else if (average>=70&&average<=79.9)
                grade = "C";
            else if (average>=60&&average<=69.9)
                grade = "D";
            else 
                grade = "F";
        }

        private String getName()
        {
            return fname + " " + lname;
        }
        private double getAverage()
        {
            return average;
        }
        public void printAll()
        {
            System.out.printf("%-9s%-10s %-9s %-3s %-3s %-3s %-5s  %-5s", "LastName","FirstName","ID","S1","S2","S3","AVG","GRADE");
            System.out.println();
            System.out.println("-----------------------------------------------------");
            System.out.printf("%-9s%-9s  %-9d %-3d %-3d %-3d %-3.2f%-2s",lname,fname,id,score1,score2,score3,average,grade);
            System.out.println();
            System.out.println("-----------------------------------------------------");

我遇到的问题是如何实际获取要在控制台上显示的信息。我继续创建了一个实例,并将其命名为 Student 类(上面列出的类)的平均值。

这是我在另一个名为“Averages”的课程中所拥有的。我不知道该怎么做。第一次真正使用Java,只学习了两个星期。我的书没有澄清任何事情。所以?我假设我仍在学习绳索并感到恼火,我无法弄清楚这可能(容易)的部分。谢谢。

import java.util.Scanner;

public class Averages {

    public static void main(String[] args) {
        Scanner k= new Scanner(System.in);

        Student[] students = new Student[36];

        Student st, st2;
        st = new Student();
        st2 = new Student();





        System.out.printf("%-9s%-10s %-9s %-3s %-3s %-3s %-5s  %-5s", "LastName","FirstName","ID","S1","S2","S3","AVG","GRADE");
        System.out.println();
        System.out.println("-----------------------------------------------------");
        //System.out.printf("%-9s%-9s  %-9d %-3d %-3d %-3d %-3.2f%-2s",lname,fname,id,score1,score2,score3,average,grade);
        System.out.println();
        System.out.println("-----------------------------------------------------");

【问题讨论】:

    标签: java class


    【解决方案1】:

    这里有一段代码可以帮助你。

    它主要用学生的数据填充数组,并计算和打印班级平均值:

    public static void main(String[] args) {
    
    int classSize = 36;
    double cumulatedAverages = 0d;
    
    Student[] students = new Student[classSize];
    
     for(int i =0;i<students.length;i++){
        Student student = new Student();
        // populate student's data
        student.readInfo();
        // make calculations
        student.computeGrade();
        student.computeAverage();
        cumulatedAverages  = cumulatedAverages + student.getAverage();
        // add the student to the array
        students[i] = student;
    }
    
    // compute the class average
    double classAverage = cumulatedAverages / classSize;
    
    System.out.printf("%s %-3.2f","Class average is",classAverage);
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-13
      • 2021-10-02
      相关资源
      最近更新 更多