import java.util.Scanner;
class Student
{
public String name;
public float chenji;
Student(String n2,float c2)
       { name=n2;  chenji=c2; }
void setDate(String n2,float c2)
    {name=n2;chenji=c2;}
void outputStudent()
    {System.out.println(name+"同学的JAVA成绩为"+chenji);}
}class Stu extends Student
{   public String name;
    public float sports,java,english;
Student(String n2,float c2,float c3,float c4)
{ name=n2; java=c2; sports=c3; english=c4; }
void setDate(String n2,float c2,float c3,float c4)
    {name=n2;java=c2; sports=c3; english=c4;}
void outputStudent()
    {System.out.println(name+"同学的sports成绩为" +sports + "\n同学的java成绩为" +java+ "\n同学的english成绩为" + english;);}
}
public class Example1
{
public static void main(String[]args)
{
float avger=0;
float sum=0;
Student[] game083_2=new Student[8];
        System.out.println("请分别输入同学的姓名和sports成绩,java成绩,english成绩");
for(int i=0;i<game083_2.length;i++)
         {
              Scanner in=new Scanner(System.in);
      String n1=in.nextLine();
       float c1=in.nextFloat();
       game083_2[i]=new Student(n1,c1,c2,c3,c4);
       game083_2[i].outputStudent();
     }
 for (int i=0;i< game083_2.length;i++ )
 { sum=sum+game083_2[i].chenji;
 }
 avger=sum/ game083_2.length;
         System.out.println("全班的总成绩是"+sum);
         System.out.println("全班的平均成绩是"+avger);
}
}算单科成绩的弄出来了。编写多科时候出错。..如果不修改class Student
{
public String name;
public float chenji;
Student(String n2,float c2)
       { name=n2;  chenji=c2; }
void setDate(String n2,float c2)
    {name=n2;chenji=c2;}
void outputStudent()
    {System.out.println(name+"同学的JAVA成绩为"+chenji);}
},用重写的,上面写的应该再哪里修改?谢谢

解决方案 »

  1.   

    增加一个object数组,存放科目.
    再加一个方法,输入各科的成绩.
      

  2.   

    class Stu extends Student 
    {  public String name; 
        public float sports,java,english; 
    Student(String n2,float c2,float c3,float c4) 
    { name=n2; java=c2; sports=c3; english=c4; } 

    void setDate(String n2,float c2,float c3,float c4) 
        {name=n2;java=c2; sports=c3; english=c4;} 
    void outputStudent() 
        {System.out.println(name+"同学的sports成绩为" +sports + "\n同学的java成绩为" +java+ "\n同学的english成绩为" + english;);} 
    } 这构造方法能通过 ?
      

  3.   

    public class Example1 

    public static void main(String[]args) 

    float avger=0; 
    float sum=0; 
    Student[] game083_2=new Student[8]; 
            System.out.println("请分别输入同学的姓名和sports成绩,java成绩,english成绩"); 
    for(int i=0;i <game083_2.length;i++) 
            { 
                  Scanner in=new Scanner(System.in); 
          String n1=in.nextLine(); 
          float c1=in.nextFloat(); 
          game083_2[i]=new Student(n1,c1,c2,c3,c4); 
          game083_2[i].outputStudent(); 
        } 
    for (int i=0;i < game083_2.length;i++ ) 
    { sum=sum+game083_2[i].chenji; 

    avger=sum/ game083_2.length; 
            System.out.println("全班的总成绩是"+sum); 
            System.out.println("全班的平均成绩是"+avger); 


    这是不可能的,你的student类何来得带4各参数的构造方法
      

  4.   

    晕倒,改了一半我都不想改了,错误太多了建议楼主至少先要把OOP基础东西学好一点。
      

  5.   

    楼主,偶更正下上述某些人的看话,都学习了三个月的Java既然写出这种代码,真的有点鄙视你...
      

  6.   

    楼主你用的教材是JavaHowTOProgramme吗?
      

  7.   

    用下重构(refactor)在运用一下junit。你学三个 月就更牛了!