键盘录入5个学生的信息根据总分从高到低输出在控制台

第一部分:

public class Student {    private String name;    private Integer chinese;    private Integer math;    private Integer english;

public Student(){        super();    }    public Student(String name,Integer chinese,Integer math,Integer english){        super();        this.name = name;        this.chinese = chinese;        this.math = math;        this.english = english;    }

public String getName() {        return name;    }

public void setName(String name) {        this.name = name;    }

public Integer getChinese() {        return chinese;    }

public void setChinese(Integer chinese) {        this.chinese = chinese;    }

public Integer getMath() {        return math;    }

public void setMath(Integer math) {        this.math = math;    }

public Integer getEnglish() {        return english;    }

public void setEnglish(Integer english) {        this.english = english;    }    public int getSum(){        return this.chinese+this.math+this.english;    }

@Override    public String toString() {        return "Student{" +                "name=‘" + name + ‘\‘‘ +                ", chinese=" + chinese +                ", math=" + math +                ", english=" + english +                ‘}‘;    }}

第二部分:
import java.util.Comparator;import java.util.Scanner;import java.util.TreeSet;

public class TreeSetDemo {    public static void main(String[] args){        TreeSet<Student> st = new TreeSet<>(new Comparator<Student>() {            @Override            public int compare(Student s1, Student s2){                //总分从高到低                int num = s2.getSum()-s1.getSum();                //总分相同不一定语文相同                int num2 = num == 0 ? s1.getChinese()-s2.getChinese():num;                //总分相同不一定数学相同                int num3 = num2 == 0 ? s1.getMath()-s2.getMath():num2;                //总分相同不一定英语相同                int num4 = num3 == 0 ? s1.getEnglish()-s2.getEnglish():num3;                //姓名还不一定相同                int num5 = num4 == 0 ? s1.getName().compareTo(s2.getName()):num4;                return num5;            }        });        System.out.println("学生信息录入开始");        //键盘录入学生的对应值        for (int x=1;x<=    5;x++){            Scanner sc = new Scanner(System.in);            System.out.println("请输入第"+x+"个学生的姓名:");            String name = sc.nextLine();            System.out.println("请输入第"+x+"个学生的语文成绩:");            String chinese = sc.nextLine();            System.out.println("请输入第"+x+"个学生的数学成绩:");            String math = sc.nextLine();            System.out.println("请输入第"+x+"个学生的英语成绩:");            String english = sc.nextLine();

//把数据封装到学生对象中            Student student = new Student();            student.setName(name);            student.setChinese(Integer.parseInt(chinese));            student.setMath(Integer.parseInt(math));            student.setEnglish(Integer.parseInt(english));

//把学生对象添加到集合            st.add(student);        }        System.out.println("学生信息录入完毕");        System.out.println("学生信息从高到低排序如下:");        System.out.println("姓名\t语文成绩\t数学成绩\t英语成绩" );        //遍历集合        for (Student s: st){            System.out.println(s.getName() + "\t\t" + s.getChinese() + "\t\t" + s.getMath() + "\t\t" + s.getEnglish());        }    }}

输出结果:

学生信息录入开始
请输入第1个学生的姓名:
唐僧
请输入第1个学生的语文成绩:
100
请输入第1个学生的数学成绩:
90
请输入第1个学生的英语成绩:
80
请输入第2个学生的姓名:
孙悟空
请输入第2个学生的语文成绩:
99
请输入第2个学生的数学成绩:
98
请输入第2个学生的英语成绩:
97
请输入第3个学生的姓名:
猪八戒
请输入第3个学生的语文成绩:
88
请输入第3个学生的数学成绩:
66
请输入第3个学生的英语成绩:
55
请输入第4个学生的姓名:
沙僧
请输入第4个学生的语文成绩:
60
请输入第4个学生的数学成绩:
50
请输入第4个学生的英语成绩:
40
请输入第5个学生的姓名:
龙马
请输入第5个学生的语文成绩:
85
请输入第5个学生的数学成绩:
80
请输入第5个学生的英语成绩:
70
学生信息录入完毕
学生信息从高到低排序如下:
姓名 语文成绩 数学成绩 英语成绩
孙悟空 99        98            97
唐僧   100       90             80
龙马    85        80             70
猪八戒 88        66            55
沙僧   60         50             40

Process finished with exit code 0

原文地址:https://www.cnblogs.com/WTBK/p/9426063.html

时间: 2024-08-28 08:13:01

键盘录入5个学生的信息根据总分从高到低输出在控制台的相关文章

Java基础知识强化之集合框架笔记49:键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台

1. 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台: 分析: A: 定义学生类    B: 创建一个TreeSet集合       C: 总分从高到底如何实现呢?        D: 键盘录入5个学生信息       E: 遍历TreeSet集合 2. 代码示例: (1)Student.java: 1 package cn.itcast_08; 2 3 public class Student { 4 // 姓名 5 private String na

键盘录入多名学生的信息: 格式:姓名,数学成绩,语文成绩,英文成绩,按总分由高到低 将学生的信息进行排列到文件中

主函数类: package cn.io; import java.io.File; import java.io.IOException; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Set; public class iosort { /** * @param args * @throws IOException */ /* *

键盘录入学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件

1.先写一个Student类 public class Student { private String name; private int chinese; private int math; private int english; public Student() { super(); } public Student(String name, int chinese, int math, int english) { this.name = name; this.chinese = ch

写程序完成输入学生学号,姓名,以及成绩信息,并由高到低排序

要求:写程序完成输入学生学号,姓名,以及成绩信息,根据学生成绩由高到低排序. #include <stdio.h>#include <string.h>typedef struct student_score{ int id; char name[20]; int score; }STU;  //定义结构体 int main(int argc, const char *argv[]){ int i,j; int num; STU tmp,stu[100]; printf("

有五个学生,每个学生有3门课(语文、数学、英语)的成绩, * 写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩)

/* * 3. 有五个学生,每个学生有3门课(语文.数学.英语)的成绩, * 写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩), * 然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中. * 要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息 * */ import java.io.*; import java.util.*; public class Test3 { publi

IO流的练习4 —— 键盘录入学生成绩信息,进行排序后存入文本中

需求: 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件 分析: A:创建学生类 B:创建集合对象 TreeSet<Student> C:键盘录入学生信息存储到集合 D:遍历集合,把数据写到文本文件 首先创建个学生类 1 package zl_Test; 2 /** 3 * 这是个记录学生成绩类 4 * @author LZL 5 * 6 */ 7 public class Student { 8 private String name; 9 priva

javase(Properties集合及学生对象信息录入文本中案例)

1.Properties集合 Properties和IO流的结合使用 1 public void load(Reader reader) 2 public void store(Writer writer,String comments) 3 /* 4 * 这里的集合必须是Properties集合: 5 * public void load(Reader reader):把文件中的数据读取到集合中 6 * public void store(Writer writer,String commen

java编程一个可以 进行多个选择题测验成绩(从高到低依次输出学生下标和成绩(可以重复))

成绩可重复,从高到低输出,不会重复输出 public class GradeExam { public static void main(String[] args) { char[][] answers = { {'A','B','A','C','C','D','E','E','A','D'}, {'D','B','A','B','C','A','E','E','A','D'}, {'E','D','D','A','C','B','E','E','A','D'}, {'C','B','A','

初学Java4:从键盘录入学生信息(仅姓名和成绩)并输出

//从键盘录入学生信息(仅姓名和成绩)并输出.public class StuInformation {//此处命名用StuScore可能更恰当 String name; double score;}import java.util.Scanner; public class TextStuInformation { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int i = 0, j