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


文章评论