程序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)); } }}