题目5.有如下Student 对象,
private String name;
private int age;
private int score;
private String classNum;
其中,classNum 表示学生的班号,例如“class05”。 有如下List
List list = new ArrayList();
list.add(new Student(“Tom”, 18, 100, “class05”));
list.add(new Student(“Jerry”, 22, 70, “class04”));
list.add(new Student(“Owen”, 25, 90, “class05”));
list.add(new Student(“Jim”, 30,80 , “class05”));
list.add(new Student(“Steve”, 28, 66, “class06”));
list.add(new Student(“Kevin”, 24, 100, “class04”));
在这个list 的基础上,完成下列要求:
1) 计算所有学生的平均年龄
2) 计算各个班级的平均分
题目分析;要创建三个类
第一个类是来写student类
来写关于student的属性的
第二个类是写班级的类用来表示班级的
第三个类用来测试所写的,并加入实际的数据
第一个类
public class student {
private String name;//私有化
private int age;
private int score;
private String classnum;
public student() {//空参构造
super();
// TODO Auto-generated constructor stub
}
public student(String name, int age, int score, String classnum) {//有参构造
super();
this.name = name;
this.age = age;
this.score = score;
this.classnum = classnum;
}
public String getName() {//set和get方法来取私有化的东西
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public String getClassnum() {
return classnum;
}
public void setClassnum(String classnum) {
this.classnum = classnum;
}
@Override
public String toString() {
return “student [name=” + name + “, age=” + age + “, score=” + score + “, classnum=” + classnum + “]”;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((classnum == null) ? 0 : classnum.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + score;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
student other = (student) obj;
if (age != other.age)
return false;
if (classnum == null) {
if (other.classnum != null)
return false;
} else if (!classnum.equals(other.classnum))
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (score != other.score)
return false;
return true;
}
第二个类
private String bj;
private List list=new ArrayList<>();//构造list集合并初始化
@Override
public String toString() {
return “classnum [bj=” +bj + “, list=” + list + “]”;
}
public classnum() {
}
public String getbj() {
return bj;
}
public void setNo(String bj) {
this.bj = bj;
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
}
第三个类
ArrayList list=new ArrayList<>();
list.add(new student(“tom”,18,100,“class05”));
list.add(new student(“jerry”,22,70,“class04”));
list.add(new student(“owen”,25,90,“class05”));
list.add(new student(“jim”,30,80,“class05”));
list.add(new student(“steve”,28,80,“class06”));
list.add(new student(“kevin”,24,100,“class04”));
classnum class04=new classnum();
classnum class05=new classnum();
classnum class06=new classnum();
class04.setNo("class04");
class05.setNo("class05");
class06.setNo("class06");
for (student student : list) {//区分班级
if(student.getClassnum().equals(class04.getbj())){
class04.getList().add(student);
}else if(student.getClassnum().equals(class05.getbj())) {
class05.getList().add(student);
}else {
class06.getList().add(student);
}
}
int gc=0;
for (student student : list) {//获取平均年龄
gc+=student.getAge();
}
System.out.println("平均年龄是"+gc/list.size());
double ykd=0;
for (student aa : class04.getList()) {//获取平均成绩
ykd+=aa.getScore();
}
System.out.println("class04的平均成绩是"+ykd/class04.getList().size());
double yk=0;
for (student aa : class05.getList()) {
yk+=aa.getScore();
}
System.out.println("class05的平均成绩是"+yk/class05.getList().size());
double yd=0;
for (student aa : class06.getList()) {
yd+=aa.getScore();
}
System.out.println("class06的平均成绩是"+yd/class06.getList().size());
}
}