| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1419 人关注过本帖
标题:Class类中有错,数组的定义和初始化哪里错了,求大神指教
只看楼主 加入收藏
听闻
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-10-19
结帖率:100%
收藏
 问题点数:0 回复次数:2 
Class类中有错,数组的定义和初始化哪里错了,求大神指教
import java.util.Scanner;
public class Classtest {
    public static void main(String[] agrs) {
        Class.search p=new Class().new search();
        System.out.println("请输入一位学生学号(学号在1-10之间):");
        Scanner tt=new Scanner(System.in);
        int read=tt.nextInt();
        tt.close();
        p.sea(read);
        Class q=new Class();
        System.out.println("班级的平均分:"+q.average);
        System.out.printf("班级的最高分和最低分分别为:%4d%4d",q.max,q.min);
}
}

public class Student {
    int sno;
    String name;
    int grade;
    public int getSno() {
        return sno;
    }
    public void setSno(int sno) {
        this.sno = sno;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getGrade() {
        return grade;
    }
    public void setGrade(int grade) {
        this.grade = grade;
    }
    public Student (){
    }
    public Student(int sno,String name,int grade){
    this.sno=sno;
    this.name=name;
    this.grade=grade;
    }
    public Student(int sno,String name){
        this(sno,name,0);
    }
   
    }

public class Class {

    Student []a=new Student[10];
    a[0]=new Student(1,"王冬",72);
    a[1]=new Student(2,"雨浩",76);
    a[2]=new Student(3,"叶辰",86);
    a[3]=new Student(4,"唐三",83);
    a[4]=new Student(5,"王菲",94);
    a[5]=new Student(6,"杨洋",80);
    a[6]=new Student(7,"欧阳淼",77);
    a[7]=new Student(8,"汪峰",85);
    a[8]=new Student(9,"杨琳",64);
    a[9]=new Student(10,"马龙",79);
    class  search{
        public void sea(int x) {
            for(int i=0;i<a.length;i++) {
                if(a[i].sno==x)
                System.out.printf("输出的学生成绩为:%d\n",a[i].grade);
            }
            }
            }   
    int sum=0,average;
    int max=a[0].grade, min=a[0].grade;
    for(int i=0;i<a.length;i++) {
        sum=sum+a[i].grade;
        }
    for(int j=0;j<a.length;j++) {
        if(max<a[j].grade)
            max=a[j].grade;
        }
    for(int k=0;k<a.length;k++) {
        if(min>a[k].grade)
            min=a[k].grade;
        }
    average=sum/a.length;
   
   
}



   


   
搜索更多相关主题的帖子: Class public new int Student 
2017-10-19 12:56
Iamnemo
Rank: 1
等 级:新手上路
威 望:1
帖 子:6
专家分:5
注 册:2014-2-28
收藏
得分:0 
需要把average,max,min都写成Class的public方法。
如果硬要在Class中弄那十个同学,要把Student换成static,然后用static{}创建那些同学。
那个内部类也写成一个方法吧。
程序代码:
public class Class {
    static Student[] a = new Student[10];

    static {
        a[0] = new Student(1, "王冬", 72);
        a[1] = new Student(2, "雨浩", 76);
        a[2] = new Student(3, "叶辰", 86);
        a[3] = new Student(4, "唐三", 83);
        a[4] = new Student(5, "王菲", 94);
        a[5] = new Student(6, "杨洋", 80);
        a[6] = new Student(7, "欧阳淼", 77);
        a[7] = new Student(8, "汪峰", 85);
        a[8] = new Student(9, "杨琳", 64);
        a[9] = new Student(10, "马龙", 79);
    }

    public void searchNew(int x) {
        for (int i = 0; i < a.length; i++) {
            if (a[i].sno == x)
                System.out.printf("输出的学生成绩为:%d\n", a[i].grade);
        }
    }
    class search {
        public void sea(int x) {
            for (int i = 0; i < a.length; i++) {
                if (a[i].sno == x)
                    System.out.printf("输出的学生成绩为:%d\n", a[i].grade);
            }
        }
    }

    public double average() {
        double sum = 0;
        double res = 0.0;
        for (int i = 0; i < a.length; i++) {
            sum = sum + a[i].grade;
        }
        res = sum / a.length;
        return res;
    }

    public int max() {
        int max = a[0].grade;
        for (int j = 0; j < a.length; j++) {
            if (max < a[j].grade)
                max = a[j].grade;
        }
        return max;
    }

    public int min() {
        int min = a[0].grade;
        for (int k = 0; k < a.length; k++) {
            if (min > a[k].grade)
                min = a[k].grade;
        }
        return min;
    }
}

再补一句这么写其实不怎么好。

[此贴子已经被作者于2017-10-19 23:54编辑过]

2017-10-19 23:53
听闻
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-10-19
收藏
得分:0 
回复 2楼 Iamnemo
太感谢了!
2017-10-20 10:20
快速回复:Class类中有错,数组的定义和初始化哪里错了,求大神指教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018316 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved