步骤:
1)设计一个程序需要用到的几个类,分析这几个类之间的关系。
2)设计一个计算平均分并给出等级的程序,需要用到输入类(InputGrade)、计算平均分类(Averagegrade)、根据平均分评判等级类(Degree)、流水线类(Line)、输出平均分和等级类(Grage)。
3)设计Degree类,主要是编写一个方法degree(double average)。
4)设计Averagegrade类,编写构造函数和calculate(double[] a)方法,将结果传给Degree类的degree()方法。
5)设计InputGrade类,编写构造函数和inputGrade()方法,将结果传给Averagegrade的calculate()方法。
6)设计Line类,编写构造函数和编写giveDegree()方法。
7)设计Grade类,在主类中调用Line类的giveDegree()方法。
8)运行程序,检验输出结果的正确性。
设计思路:设计一个计算平均分并给出等级的程序,需要用到输入类(InputGrade)、计算平均分类(Averagegrade)、根据平均分评判等级类(Degree)、流水线类(Line)、输出平均分和等级类(Grage)。设计Degree类,主要是编写一个方法degree(double average,方法中利用if... else if.. else...根据平均分判定等级。设计Averagegrade类,实例化一个Degree类的对象deg,编写构造函数,利用构造函数为之后的调用构造函数可以实例化对象做准备,编写calculate(double[] a)方法,就是算一个平均值,将结果通过deg对象调用传给Degree类的degree()方法。设计InputGrade类,实例化一个Averagegrade类的对象aver,编写构造函数,同样的也在构造函数中为之后传入Averagegrade的对象做准备,编写inputGrade()方法,在这个方法中通过Scanner实现屏幕的输入,将结果通过aver调用传给Averagegrade的calculate()方法。设计Line类,实例化以上三个类的对象,编写构造函数,在构造函数中调用以上三个类的构造函数进行传值,其实就是传入对象,编写giveDegree()方法,通过one对象调用InputGrade类的inputGrade()方法。设计Grade类,在主类中调用Line类的giveDegree()方法,实现整个程序的输出。
package shiyanbaogao2;
public class Averagegrade {
Degree deg;
Averagegrade(Degree deg)//构造函数,为了实例化Degree的一个对象
{
this.deg=deg;
}
public void calculate(double[] a)
{
double sum=0;
for(int i=0;i<3;i++)//这里的目的是求和
{
sum=sum+a[i];
}
double average=sum/3;//求出平均分
System.out.println("您的成绩平均分:"+average);//输出平均分
deg.degree(average);//调用Degree类的degree方法,把平均分average传入函数
}
}
package shiyanbaogao2;
public class Degree {
public void degree(double average)
{//这里就是根据平均分来对应到等级的操作,利用if else if else语句
if(average<60)
{
System.out.println("您的成绩的等级为:不及格");
}
else if(average<80 && average>=60)
{
System.out.println("您的成绩的等级为:及格");
}
else if(average<90 && average>=80)
{
System.out.println("您的成绩的等级为:良好");
}
else
{
System.out.println("您的成绩的等级为:优秀");
}
}
}
package shiyanbaogao2;
public class Grade {
public static void main(String[] args) {
// TODO Auto-generated method stub
Line line=new Line();//实例化Line的一个对象
line.giveDegree();//利用line调用Line类的函数
}
}
package shiyanbaogao2;
import java.util.Scanner;
public class InputGrade {
Averagegrade aver;
InputGrade(Averagegrade aver)//构造函数,为了实例化Averagegrade的一个对象
{
this.aver=aver;
}
public void inputGrade() {
System.out.println("请按照语文 数学 英语的顺序输入自己的成绩:");
Scanner scan=new Scanner(System.in);
double []a=new double[3];//将语文 数学 英语三科的成绩传入数组a
for(int i=0;i<3;i++)
{
a[i]=scan.nextDouble();
}
aver.calculate(a);//调用Averagegrade的calculate()方法,将数组a传入函数
}
}
package shiyanbaogao2;
public class Line {
InputGrade one;//实例化InputGrade的一个对象
Averagegrade two;//实例化Averagegrade的一个对象
Degree three;//实例化Degree的一个对象
Line(){
three=new Degree();//调用Degree的构造方法
two=new Averagegrade(three);//将three传入Averagegrade的构造方法
one=new InputGrade(two);//将two传入InputGrade的构造方法
}
public void giveDegree() {
one.inputGrade();//用InputGrade实例化的一个对象one调用InputGrade的函数
}
}
结果: