[英]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.