编写程序,要求统计10人姓名、学号、6门科目分别的成绩,并计算总成绩且按高低名次排序,输出每个人的排名及总成绩。(程序中至少包含三个类)
package New;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
Student[] stu = new Student[10];
Rank rank = new Rank();
for(int i=0;i<10;i++) {
stu[i] = new Student();
}
for(int i=0;i<10;i++) {
System.out.println("请输入第"+(i+1)+"位学生的姓名");
String name = sc.next();
System.out.println("请输入第"+(i+1)+"位学生的学号");
int num = sc.nextInt();
stu[i].setName(name);
stu[i].setNum(num);
for(int j=0;j<6;j++) {
System.out.println("请输入第"+(j+1)+"门成绩");
double grade = sc.nextDouble();
stu[i].grade[j]=grade;
}
}
for(int i=0;i<10;i++) {
stu[i].sum();
}
rank.jiaohuan(stu);
rank.show();
}
}
public class Rank {
public Rank() {}
int rank;
Student temp = new Student();
Student[] after = new Student[10];
Student[] before = new Student[10];
public void jiaohuan(Student[] before) {
for(int i=0;i<10;i++)
{
after[i] = before[i];
}
for(int i=0;i<9;i++) {
for(int j=0;j<9-i;j++) {
if(after[j+1].sum>after[j].sum) {
temp = after[j];
after[j] = after[j+1];
after[j+1] = temp;
}
}
}
}
public void show() {
for(int i=0;i<10;i++) {
System.out.print("排名:"+(i+1)+" ");
System.out.println("姓名:"+after[i].name+" 学号:"+after[i].num+" 总成绩:"+after[i].sum);
}
}
}
public class Student{
public Student() {}
String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
int num;
public void setNum(int num) {
this.num = num;
}
public int setNum() {
return num;
}
double[] grade = new double[6];
public void setGrade(double[] grade){
this.grade = grade;
}
public double getGrade() {
return grade[6];
}
double sum;
public double sum() {
double sum = 0.0;
for(int i = 0;i<6;i++)
{
sum+=grade[i];
}
this.sum=sum;
return sum;
}
}