上星期四实验课老师让设计一个学生类,要求输入若干个学生信息,包括姓名,学号,科目成绩,要求进行排序,输出总分,姓名,学号,名次,总分一样的并列,我现在写了一个最简单的,这是我第一次上传,内容十分简单,上传纯属纪念,记住成长的脚步,希望多多提意见,以此进步。
import java.util.Scanner;
public class Score {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Student[] stu = new Student[5];
for (int i=0; i<5; i++)
{
System.out.print("请输入姓名:");
String name = input.next();
System.out.print("请输入学号: ");
int number = input.nextInt();
System.out.print("请输入数学成绩: ");
double math = input.nextDouble();
System.out.print("请输入英语成绩: ");
double english = input.nextDouble();
System.out.print("请输入计算机成绩: ");
double computer = input.nextDouble();
stu[i] = new Student(name, number, math, english, computer);
}
stu[0].sort(stu);
stu[0].prin(stu);
}
}
class Student {
private String name;
private int number;
private double math;
private double english;
private double computer;
private double sum;
public Student(String name, int number, double math, double english, double computer) {
this.name = name;
this.number = number;
this.math = math;
this.english = english;
this.computer = computer;
this.sum = math + english + computer;
}
public void sort(Student[] st) {
for (int i=0; i<4; i++) {
for (int j=0; j<4-i; j++) {
if (st[j].sum < st[j+1].sum) {
Student temp;
temp = st[j];
st[j] = st[j+1];
st[j+1] = temp;
}
}
}
}
public void prin(Student[] st) {
System.out.println("成绩情况如下: ");
System.out.println("姓名 学号 总分 名次");
int count = 1;
for (int k=0; k<5; k++) {
System.out.println(st[k].name + " " + st[k].number +" " + st[k].sum + " " + count);
count++;
if (k < 4) {
if (st[k].sum == st[k+1].sum)
count--;
}
}
}
}
输入:gao1 201401 100 100 100
gao2 201402 100 89 100
gao3 201403 100 100 100
gao4 201404 100 80 90
gao5 201405 100 100 90
输出: 姓名 学号 总分 名次
gao1 201401 300 1
gao3 201403 300 1
gao5 201405 290 2
gao2 201402 289 3
gao4 201404 270 4