编写程序,要求统计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;
}
}
该程序使用Java编写,用于输入10个学生的姓名、学号和6门科目的成绩,然后计算每个学生的总成绩并进行排序。程序包含三个类:Demo作为主程序,Rank类用于实现成绩排序,而Student类则表示学生及其成绩信息。Rank类通过冒泡排序方法实现了成绩的升序排列,并输出了每位学生的排名和总成绩。
1670

被折叠的 条评论
为什么被折叠?



