簡體   English   中英

實現方法:編寫兩個類,一個帶有主類,另一個不帶主類

[英]Implementing methods: Writing two classes, one with a main, other with not

我想用以下內容編寫一個類。

  • 名字

  • 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("-----------------------------------------------------");

這是一段代碼可以幫助您。

它主要用學生的數據填充數組,並計算和打印班級平均值:

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);

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM