【问题描述】
编写学生类,包括学号、姓名和三门课程成绩、学生总人数,其中学生总人数为静态数据成员(初始值为0)。标准方法,无参和带参构造方法 (每调用一次总人数加1),计算每个学生总分方法,String toString()方法(将学生的所有属性信息连接成一个长字符串)
编写测试类创建2个学生,一个调用无参构造方法创建(学号、姓名初始值为”unknown”,成绩初始值为0),另一个调用带参构造方法创建(数据从键盘输入,先输入数据再创建对象),计算总分并打印学生的所有信息。平均分保留2位小数
要求:
•1.数据成员定义为私有 •2.在创建对象前,调用方法输出学生总人数,创建两个对象后,再输出学生总人数
【输入形式】
一个学生的相关信息
【输出形式】
2个学生的相关信息及学生总数信息
【样例输入】
202121115001 zhaoyun 87 80 93
【样例输出】
Before objects creation,number of Student:0
stuNo:unknown
name:unknown
math:0
english:0
java:0
total:0
avg:0.00
stuNo:202121115001
name:zhaoyun
math:87
english:80
java:93
total:260
avg:86.67
After objects creation,number of Student:2
运行结果:
源码:
package si;
import java.util.Scanner;
public class SI {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
String ID = in.next();
String name = in.next();
int math = in.nextInt();
int english = in.nextInt();
int java = in.nextInt();
System.out.println("Before objects creation,number of Student:"+StuInfo.sum);
StuInfo su1 = new StuInfo();
//su1.show;
System.out.println(su1.toString());
System.out.println();
StuInfo su2 = new StuInfo(ID,name,math,english,java);
//su2.show;
System.out.println(su2.toString());
System.out.println("After objects creation,number of Student:"+StuInfo.sum);
}
}
class StuInfo{
private String name;
private String ID;
private int math;
private int english;
private int java;
static int sum = 0;
// public void show() {
//System.out.printf("stuNo:"+ID+"\nname:"+name+"\nmath:"+math+"\nenglish:"+english+"\njava:"
//+java+"\ntotal:"+sum()+"\navg:"+"%.2f",avg());
// System.out.println();
//}
public String toString() {
String s = "stuNo:"+ID+"\nname:"+name+"\nmath:"+math+"\nenglish:"+english+"\njava:"
+java+"\ntotal:"+sum()+"\navg:"+String.format("%.2f",avg());
return s;
}
public StuInfo(){
this.name = "unknown";
this.ID = "unknown";
this.math = 0;
this.english = 0;
this.java = 0;
sum+=1;
}
public StuInfo(String ID,String name,int math,int english,int java) {
this.ID = ID;
this.name = name;
this.math = math;
this.english = english;
this.java = java;
sum+=1;
}
public int sum() {
return math+english+java;
}
public double avg() {
return sum()/3.0;
}
}
END:橄榄枝