import java.util.Scanner;
public class FinallText {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
//定义学生总数
int n=3;
//定义学生科目数
int m=2;
//创建学生类型的数组,设置每一个学生
Student[] stu=new Student[3];
for(int i=0;i<n;i++){
//创建每个对象为一个学生
stu[i]=new Student(m);
/*只有一个next表示输入字符串
* 这里调用name和num方法来输入学生名字和学号 */
System.out.println("请输入第"+(i+1)+"名学生的姓名");
stu[i].name=sc.next();
System.out.println("请输入第"+(i+1)+"名学生的学号");
stu[i].num=sc.next();
for(int j=0;j<m;j++){
System.out.println("请输入第"+(i+1)+"名学生的第"+(j+1)+"科成绩");
stu[i].Grade[j]=sc.nextInt();
}
}
Calculate cal=new Calculate();
cal.getSort(stu,n,m);
}
}
public class Student {
//定义名字、各科分数(数组,因为有六科)、学号以及总分的变量
String name;
int[] Grade;
String num;
int sum;
Student(int m) {
this.Grade=new int[m];
}
//定义名字、学号、总分的方法
public void setName(String name){
this.name=name;
}
public void setNum(String num){
this.num=num;
}
public int getSum(int m) {
for (int i = 0; i < m; i++) {
this.sum += Grade[i];
}
return this.sum;
}
}
public class Calculate {
int i;
//设置分类输出的方法
public void getSort(Student[] s,int n,int m) {
//设置学生,分配信息并且进行总名次排序
Student x;
for (this.i = 1; i < n; i++) {
for (int j = 0; j < n-1; j++) {
//调用sum方法来排序
if (s[j].sum < s[j + 1].sum) {
x = s[j];
s[j] = s[j + 1];
s[j + 1] = x;
}
}
}
System.out.println(" 姓名 学号 总分 排名");
for (int j = 0; j < n; j++) {
//%s是占位符,输出的是字符串类型,数字表示占了几个位置
System.out.printf("%6s %10s %6d %2s",s[j].name,s[j].num,s[j].getSum(m),(j+1));
System.out.println("");
}
}
}
package ask;
import java.util.Scanner;
public class FinallText {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 定义学生总数
int n = 3;
// 定义学生科目数
int m = 2;
// 创建学生类型的数组,设置每一个学生
Student[] stu = new Student[3];
for (int i = 0; i < n; i++) {
// 创建每个对象为一个学生
stu[i] = new Student(m);
/*
* 只有一个next表示输入字符串 这里调用name和num方法来输入学生名字和学号
*/
System.out.println("请输入第" + (i + 1) + "名学生的姓名");
stu[i].name = sc.next();
System.out.println("请输入第" + (i + 1) + "名学生的学号");
stu[i].num = sc.next();
for (int j = 0; j < m; j++) {
System.out.println("请输入第" + (i + 1) + "名学生的第" + (j + 1) + "科成绩");
stu[i].Grade[j] = sc.nextInt();
}
}
Calculate cal = new Calculate();
cal.getSort(stu, n, m);
}
}
class Student {
// 定义名字、各科分数(数组,因为有六科)、学号以及总分的变量
String name;
int[] Grade;
String num;
int sum;
Student(int m) {
this.Grade = new int[m];
}
// 定义名字、学号、总分的方法
public void setName(String name) {
this.name = name;
}
public void setNum(String num) {
this.num = num;
}
public int getSum(int m) {
this.sum = 0;
for (int i = 0; i < m; i++) {
this.sum += Grade[i];
}
return this.sum;
}
}
class Calculate {
// 设置分类输出的方法
public void getSort(Student[] s, int n, int m) {
// 设置学生,分配信息并且进行总名次排序
Student x;
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
s[i].getSum(m);
s[j].getSum(m);
// 调用sum方法来排序
if (s[i].sum < s[j].sum) {
x = s[j];
s[j] = s[i];
s[i] = x;
}
}
}
System.out.println(" 姓名 学号 总分 排名");
for (int j = 0; j < n; j++) {
// %s是占位符,输出的是字符串类型,数字表示占了几个位置
System.out.printf("%6s %10s %6d %2s", s[j].name, s[j].num, s[j].getSum(m), (j + 1));
System.out.println("");
}
}
}
请输入第1名学生的姓名
1
请输入第1名学生的学号
1
请输入第1名学生的第1科成绩
20
请输入第1名学生的第2科成绩
20
请输入第2名学生的姓名
2
请输入第2名学生的学号
2
请输入第2名学生的第1科成绩
30
请输入第2名学生的第2科成绩
30
请输入第3名学生的姓名
3
请输入第3名学生的学号
3
请输入第3名学生的第1科成绩
10
请输入第3名学生的第2科成绩
10
姓名 学号 总分 排名
2 2 60 1
1 1 40 2
3 3 20 3
哇!!!谢谢大佬!!!帮大忙了!!!