JAVA编程学习记录(5.19作业)

5.19作业

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

package FileScore;
/**
 * 1 :键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件
 */
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Comparator;
import java.util.TreeSet;

public class FileScoreDemo {

	public static void main(String[] args) {
		// 创建学生类对象
		Student s = new Student();
		// 定义TreeSet匿名内部类,重写排序条件
		TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {

			@Override
			public int compare(Student o1, Student o2) {
				// 主要条件为成绩,由高到低
				int sum = o2.getSum() - o1.getSum();
				// 次要条件为学生姓名,成绩一致,按姓名排序
				int sum2 = sum == 0 ? o1.getName().compareTo(o2.getName()) : sum;
				return sum2;
			}
		});
		// 遍历获取信息,添加到Set集合中
		for (int i = 0; i < 5; i++) {
			Student s1 = s.getDate();
			ts.add(s1);
		}
		// try...catch抛出异常
		try {
			// 创建字符缓冲流类对象
			BufferedWriter bw = new BufferedWriter(new FileWriter("score.txt"));
			// 遍历集合,给文件对象写入数据
			for (Student stu : ts) {
				// 写入数据
				bw.write("姓名:" + stu.getName() + "语文成绩:" + stu.getChscore() + "数学成绩:" + stu.getMtscore() + "英语成绩:"
						+ stu.getEngscore() + "总分:" + stu.getSum());
				bw.newLine();
			}
			bw.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}
}
package FileScore;

import java.util.Scanner;

// 学生类
public class Student {
	private String name;
	private int sum;
	private int chscore;
	private int mtscore;
	private int engscore;

	public Student() {
		super();
	}

	public Student(String name, int sum, int chscore, int mtscore, int engscore) {
		super();
		this.name = name;
		this.sum = sum;
		this.chscore = chscore;
		this.mtscore = mtscore;
		this.engscore = engscore;
	}

	public String getName() {
		return name;
	}

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

	public int getSum() {
		return sum;
	}

	public void setSum(int sum) {
		this.sum = sum;
	}

	public int getChscore() {
		return chscore;
	}

	public void setChscore(int chscore) {
		this.chscore = chscore;
	}

	public int getMtscore() {
		return mtscore;
	}

	public void setMtscore(int mtscore) {
		this.mtscore = mtscore;
	}

	public int getEngscore() {
		return engscore;
	}

	public void setEngscore(int engscore) {
		this.engscore = engscore;
	}

	// 获取学生数据的方法
	public Student getDate() {
		// 创建键盘录入对象,获取学生数据
		Scanner sc = new Scanner(System.in);
		System.out.println("请依次输入学生姓名、语文成绩、数学成绩、英语成绩:");

		System.out.println("请输入姓名:");
		String n = sc.nextLine();

		System.out.println("请输入语文成绩:");
		int ch = sc.nextInt();

		System.out.println("请输入数学成绩:");
		int mt = sc.nextInt();

		System.out.println("请输入英语成绩:");
		int eng = sc.nextInt();

		int sum = ch + mt + eng;
		Student stu = new Student(n, sum, ch, mt, eng);
		return stu;
	}

}

2: 已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl”
  请编写程序读取数据内容,把数据排序后写入ss.txt中。

package ReadFile;
/**
 * 已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl”
 * 请编写程序读取数据内容,把数据排序后写入ss.txt中。
 */

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;

public class ReadFile {

	public static void main(String[] args) {
		// 创建ArrayList集合对象接收文件数据
		ArrayList<String> arr = new ArrayList<String>();

		// try...catch抛出异常
		try {
			// 创建字符缓冲输入流类对象
			BufferedReader br = new BufferedReader(new FileReader("num2test.txt"));
			// 获取文件内容,传递给字符串s
			String s = br.readLine();

			// 将字符串转字符数组并排序
			char[] ch = s.toCharArray();
			Arrays.sort(ch);

			// 用匿名对象将数组转为字符串,顺便转个大写
			arr.add(new String(ch).toUpperCase());

			// 关闭流对象
			br.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

		// 遍历集合检测是否成功排序添加
		for (int i = 0; i < arr.size(); i++) {
			System.out.println(arr.get(i));
		}

		// try...catch抛出异常
		try {

			// 创建字符缓冲输出流对象
			BufferedWriter bw = new BufferedWriter(new FileWriter("ss.txt"));
			// 遍历写入数据
			for (String s : arr) {
				bw.write(s);
			}

			// 关闭流对象
			bw.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}
}


猜你喜欢

转载自blog.csdn.net/otmqixi/article/details/80427567