程序1:教师学生评分

学校要进行年终总结,需要对教师和学生的评分结果进行统计。学生的统计数据有三个,教师的统计数据有四个。请你实现一个统计系统,对输入的数据进行整理。
请你实现一个Person类表示人员,并实现一些必要的方法,再实现Teacher类和Student类,通过类的继承机制完成这个任务。
输入格式:
首先输入一个数字N,表示输入统计的人数。
接下来是N行,每行是用空格隔开的一系列数字。
输出格式:
N行,每行是一个标识符加一个平均得分(向下取整的整数),用空格隔开。
学生的标识符是Student,教师的标识符是Teacher。
输入样例:
2
2 3 4
2 3 4 5
输出样例:
Student 3
Teacher 3

我的程序只得了90分不知道为何,求解。

import java.util.*;  class Person{    final String Identity = "persion";    int[] score;    public void getScore() {        for(int m=0;m<score.length;m++) {             this.score[m] = score[m];         }    }    public String getIdentity() {        return Identity;    }    public int average() {        int sum = 0;        int avg = 0;        for(int number = 0; number<this.score.length; number++)        {            sum += this.score[number];        }        avg = (int)Math.floor(sum/this.score.length);        return avg;    }}class Student extends Person{    final String Identity = "Student";    public String getIdentity() {        return Identity;    }    public int[] setScore(int[] score) {        return this.score = score;    }}class Teacher extends Person{    final String Identity = "Teacher";    public String getIdentity() {        return Identity;        }    public int[] setScore(int[] score) {        return this.score = score;    }}public class Main {    public static void main(String[] args) {        // TODO Auto-generated method stub        Scanner in = new Scanner(System.in);        int number = Integer.parseInt(in.nextLine());        String[] str = new String[number];        for(int i =0;i<number;i++)        {            str[i] = in.nextLine();        }        for(int n=0;n<number;n++) {            String[] temp = str[n].split(" ");                        if(temp.length == 3) {                int[] score = new int[3];                for(int m=0; m<3; m++) {                    score[m] = Integer.parseInt(temp[m]);                }                Student student =new Student();                student.setScore(score);                System.out.println(student.getIdentity() +                 " " + student.average());            }            if(temp.length == 4) {                int[] score =new int[4];                for(int m = 0; m<4; m++) {                    score[m] = Integer.parseInt(temp[m]);                }                Teacher teacher = new Teacher();                teacher.setScore(score);                System.out.println(teacher.getIdentity() +                 " " + teacher.average());            }        }    }}

程序作业2:图形面积计算

我们有一些图形的边长数据,这些图形包括三角新和矩形,请你编写一个程序求出它们的面积。
请你实现一个基础图形类Graph,然后实现三角形类Triangle和矩形类Rectangle,继承自Graph。根据输入的边数实现不同的对象,并计算面积。
输入格式:
一行,一个整数n,表示图形个数。
n行,每行是用空格隔开的整数。
输出格式:
n行,每行是一个图形的面积。
输入样例:
2
5 5
6 6 6
输出样例:
25
15

import java.util.*;//导入库class Graph{    int[] bc;}class Triangle extends Graph{    public int[] setBc(int[] bc) {        return this.bc = bc;    }    public int acreage() {        int acre = 0;        double p = (bc[0]+bc[1]+bc[2])/2.0;;        return acre = (int) Math.sqrt(p*(p-bc[0])*(p-bc[1])*(p-bc[2]));    }    public boolean triangletorf(int i1, int i2, int i3) {        if(i1+i2<i3||i1+i3<i2||i2+i3<i1)        {            return false;        }        else            return true;    }        }class Rectangle extends Graph{    public int[] setBc(int[] bc) {        return this.bc = bc;    }    public int acreage() {        int acre = 0;        return acre =(int) Math.floor(bc[0]*bc[1]);    }    }public class Main {    public static void main(String[] args) {        // TODO Auto-generated method stub        Scanner input = new Scanner(System.in);        int number = Integer.parseInt(input.nextLine());;        String[] str = new String[number];        for(int i =0; i<number;i++) {            str[i] = input.nextLine();        }        for(int j=0;j<number;j++) {            String[] temp = str[j].split(" ");//以空格为标志对每一行的字符串进行分割,分割成子字符串            //开始判断图像,首先是矩形            if(temp.length ==2) {                int[] bc = new int[2];                for(int m=0; m<2; m++) {                    bc[m] = Integer.parseInt(temp[m]);//同样的,字符穿转换成int型                }                Rectangle rect = new Rectangle();                //student.setScore(score);                rect.setBc(bc);                System.out.println(rect.acreage());                //设置长度,输出长度,由于相应类函数还没有写,所以暂时不写                            }            if(temp.length == 3) {                int[] bc = new int[3];                for(int m=0;m<3;m++) {                    bc[m] = Integer.parseInt(temp[m]);                }                Triangle tri = new Triangle();                tri.setBc(bc);                if(tri.triangletorf(bc[0], bc[1], bc[2])) {                    System.out.println(tri.acreage());                }                                //设置长度,输出长度,由于相应函数还没有写,所以暂时不写            }        }            }}

程序作业3:多类型排序

我们现在有一些数据,是整数和字符串混杂的。现在需要你将他们分开,并且分别进行排序。
输入格式:
一行,一个数字n,表示元素的格式。
n行,每行一个字符串整数,也可以是其他字符串。
输出格式:
n行,前面一部分为输入的整数字符串按从小到大排序输出,后面一部分为非整数字符串按照字典序从小到大输出。
输入样例:
5
12
ab
bd
32
t
输出样例:
12
23
ab
bd
t

import java.util.*;/*感谢崔崔写出此程序*/public class Main {    public static void main(String[] args) {        Scanner s = new Scanner(System.in);        int number = Integer.parseInt(s.nextLine());//将字符串5转化为数字5        ArrayList str = new ArrayList();        ArrayList i=new ArrayList();        int m=0,n=0;        for(int j =0;j<number;j++)        {            //int c1=0,c2=0;            if(s.hasNextInt()) {                i.add(s.nextInt());                m++;            }            else {                String a = s.next();                str.add(a);                n++;            }        }        Collections.sort(i);        for(int l=0;l<i.size();l++) {            System.out.println(i.get(l));        }        Collections.sort(str);        for(int k=0;k<str.size();k++) {            System.out.println(str.get(k));        }            }}