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

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 = chinese;
        this.math = math;
        this.english = english;
    }

    public String getName() {
        return name;
    }

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

    public int getChinese() {
        return chinese;
    }

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

    public int getMath() {
        return math;
    }

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

    public int getEnglish() {
        return english;
    }

    public void setEnglish(int english) {
        this.english = english;
    }

    public int getTotal(){
        return (this.chinese + this.math + this.english);
    }

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

Student

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

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Comparator;
import java.util.TreeSet;

public class Demo {
    public static void main(String[] args) throws IOException {
        //创建5个学生对象
        Student s1 = new Student("孙悟空",80,80,80);
        Student s2 = new Student("猪八戒",90,90,90);
        Student s3 = new Student("玉皇大帝",100,100,100);
        Student s4 = new Student("嫦娥",100,100,100);
        Student s5 = new Student("白骨精",90,80,100);

        //按照总分从高到低存入TreeSet
        TreeSet<Student> set = new TreeSet<>(new Comparator<Student>() {
            @Override
            public int compare(Student s1, Student s2) {
                int cmp1 =   s2.getTotal() - s1.getTotal();//总分从高到低排序
                int cmp2 = cmp1 == 0 ? s2.getName().compareTo(s1.getName()) : cmp1;//保证可以出现总分相同但是名字不同的学生
                return cmp2;
            }
        });

        //将学生信息存入集合
        set.add(s1);
        set.add(s2);
        set.add(s3);
        set.add(s4);
        set.add(s5);

        //3.遍历集合并写入文件
        BufferedWriter writer = new BufferedWriter(new FileWriter("Day27_Thread01\\student.txt"));
        for (Student s :set) {
            StringBuilder sb = new StringBuilder("姓名:" + s.getName()  + ", 语文成绩:" + s.getChinese() +
                    ", 数学成绩:" + s.getMath() + ", 英语成绩:" + s.getEnglish());
            writer.write(sb.toString());
            writer.newLine();
            writer.flush();
        }
        writer.close();
    }
}

Demo

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

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;

public class Demo2 {
    public static void main(String[] args) throws IOException {
        //创建TreeSet集合
        TreeSet<Student> set = new TreeSet<>(new Comparator<Student>() {
            @Override
            public int compare(Student s1, Student s2) {
                int cmp1 =   s2.getTotal() - s1.getTotal();
                int cmp2 = cmp1 == 0 ? s2.getName().compareTo(s1.getName()) : cmp1;
                return cmp2;
            }
        });

        for (int i = 0;i < 5;i++){
            //输入学生信息
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入学生的姓名:");
            String name = sc.nextLine();
            System.out.println("请输入该学生的语文成绩:");
            int chinese = sc.nextInt();
            System.out.println("请输入该学生的数学成绩:");
            int math = sc.nextInt();
            System.out.println("请输入该学生的英语成绩:");
            int english = sc.nextInt();

            //创建学生对象并录入信息
            Student s = new Student();
            s.setName(name);
            s.setChinese(chinese);
            s.setMath(math);
            s.setEnglish(english);

            //将学生添加到集合里
            set.add(s);
        }

        //3.遍历集合并写入文件
        BufferedWriter writer = new BufferedWriter(new FileWriter("Day27_Thread01\\student.txt"));
        for (Student s :set) {
            StringBuilder sb = new StringBuilder("姓名:" + s.getName()  + ", 语文成绩:" + s.getChinese() +
                    ", 数学成绩:" + s.getMath() + ", 英语成绩:" + s.getEnglish());
            writer.write(sb.toString());
            writer.newLine();
            writer.flush();
        }

        //关闭资源
        writer.close();
    }
}

Demo2

原文地址:https://www.cnblogs.com/bug-baba/p/10558050.html

时间: 2024-10-07 22:42:29

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

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

初学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

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

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

主函数类: 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 */ /* *

有五个学生,每个学生有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

键盘录入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

键盘录入学生的成绩,将100分划分四个等级,优.良.及.不及。输出对应的等级,要有容错处理

1 import java.util.InputMismatchException; 2 import java.util.Scanner; 3 4 /* 5 键盘录入学生的成绩,将100分划分四个等级,优.良.及.不及.输出对应的等级,要有容错处理 6 */ 7 public class Demo { 8 public static void main(String[] args){ 9 Scanner sc = new Scanner(System.in); 10 try { 11 whil

按各科平均成绩和及格率的百分数,按及格率高到低的顺序排序

sql查询  按各科平均成绩和及格率的百分数,按及格率高到低的顺序排序,显示(课程号.平均分.及格率) SELECT SC.COURSE_NO,ROUND(AVG(CORE),2),(SUM(CASE WHEN CORE BETWEEN 60 AND 100 THEN 1 ELSE 0 END)/COUNT(*))*100||'%' 及格率 FROM HAND_STUDENT_CORE SC GROUP BY SC.COURSE_NO

JAVA编程:有五个学生,每个学生有3门课(语文、数学、英语)的成绩,

1 import java.io.FileReader; 2 import java.io.FileWriter; 3 import java.io.IOException; 4 import java.util.Collections; 5 import java.util.Comparator; 6 import java.util.LinkedList; 7 import java.util.Scanner; 8 9 public class Student 10 { 11 double