学生类有属性姓名(字符串类型)和选修课程信息(ArrayList对象)两个属性,和三个方法
一个用于初始化学生名字的构造方法;
一个添加选修课程的addCourse方法;
一个获取所有课程平均分的getAverageScore方法,如果没有选修课程,平均分为0;
一个toString方法,将学生信息转换为“学生名字-选修课程门数-选修课程平均分”格式的字符串。
课程类有属性科目名字(字符串类型)和分数(整型)两个属性,和两个方法
一个初始化科目名字和分数的构造方法;
一个获得成绩的方法。
编写测试类Main,依次输入三位学生的名字及其选修课程的信息。输入#时表示结束课程信息的输入。输入所有学生信息后,按照“学生名字-选修课程门数-选修课程平均分”的格式输出每位学生的信息。
输入格式:
依次输入三位学生的名字及其选修课程的信息。当课程名字输入#时,表示课程输入结束。
输出格式:
每行以“学生名字-选修课程门数-选修课程平均分”的格式输出一位学生的信息。
输入样例:
betty
aaa
90
bbb
80
mike
tommy
aaa
90
输出样例:
betty-2-85.0
mike-0-0.0
tommy-1-90.0
import java.util.ArrayList;
import java.util.Scanner;
class course
{
String name;
int grade;
course(String ininame,int inigrade)
{
name=ininame;
grade=inigrade;
}
int getgrade()
{
return grade;
}
}
class student
{
String name;
ArrayList<course> a=new ArrayList<course>();
student(String ininame)
{
name=ininame;
}
void addcourse(course x)
{
a.add(x);
}
double getaverage()
{
int sum=0;
double average;
if(a.size()==0)
{
return 0;
}
for(course k:a)
{
sum=sum+k.getgrade();
}
average=sum/a.size();
return average;
}
public String toString() {
return name+"-"+a.size()+"-"+getaverage();
}
}
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<student> a=new ArrayList<student>();
Scanner in=new Scanner(System.in);
String decision;
int counter=0;
label2:
while(counter!=3)
{
label1:
for(;;)
{
if(counter==3)
{
break label2;
}
String ininame;
ininame=in.nextLine();
student x=new student(ininame);
a.add(x);
for(;;)
{
decision=in.nextLine();
if(decision.equals("#"))
{
counter++;
break label1;
}
int inigrade=in.nextInt();
in.nextLine();
course k=new course(decision, inigrade);
x.addcourse(k);
}
}
}
for(student l:a)
{
System.out.println(l.toString());
}
}
}