《JAVA练习题目11》学生类有属性姓名(字符串类型)和选修课程信息(ArrayList<Course>对象)两个属性,和三个方法

学生类有属性姓名(字符串类型)和选修课程信息(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());
		}
		
	}

}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值