黑马程序员技术交流社区
标题:
小练习
[打印本页]
作者:
蓝色风信子
时间:
2016-6-4 22:13
标题:
小练习
public class Student implements Comparable<Student>
{
private String name;
private double yuwen;
private double math;
private double english;
public Student(String name,double yuwen, double math, double english)
{
super();
this.name=name;
this.yuwen = yuwen;
this.math = math;
this.english = english;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public double getYuwen()
{
return yuwen;
}
public void setYuwen(double yuwen)
{
this.yuwen = yuwen;
}
public double getMath()
{
return math;
}
public void setMath(double math)
{
this.math = math;
}
public double getEnglish()
{
return english;
}
public void setEnglish(double english)
{
this.english = english;
}
@Override
public int compareTo(Student stu)
{
return (int)((stu.english+stu.math+stu.yuwen)-(this.yuwen+this.math+this.english));
}
}
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
import java.util.TreeSet;
/*
* 有五个学生,每个学生有3门课(语文、数学、英语)的成绩,写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩),
* 然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中。
* 要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息。
*
* 分析:
* 将学生存储到集合中,按成绩排序,然后遍历集合,通过IO流写入文件
* */
public class Demo4
{
public static void main(String[] args) throws IOException
{
//定义TreeSet集合存储学生,可以根据学生总成绩对学生进行排序
TreeSet<Student> ts=new TreeSet<>();
add(ts);
method(ts);
}
//键盘录入学生信息,并存储到集合中
public static void add(TreeSet<Student> ts)
{
Scanner sc=new Scanner(System.in);
while(true)
{
System.out.println("请输入学生姓名:");
System.out.println("结束信息录入请输入over");
String name=sc.next();
if(name.equals("over"))
return;
System.out.println("请输入语文成绩");
double yuwen=sc.nextDouble();
System.out.println("请输入数学成绩");
double math=sc.nextDouble();
System.out.println("请输入英语成绩");
double english=sc.nextDouble();
ts.add(new Student(name,yuwen,math,english));
}
}
//遍历集合,通过字符流缓冲区将学生成绩信息写入到文件中.
public static void method(TreeSet<Student> ts) throws IOException
{
BufferedWriter br=new BufferedWriter(new FileWriter("C:\\Users\\pan\\Desktop\\stu.txt"));
for(Student s : ts)
{
br.write(s.getName()+": 语文"+s.getYuwen()+" 数学"+s.getMath()+" 英语"+s.getEnglish()+" 总分"+(s.getEnglish()+s.getMath()+s.getYuwen()));
br.newLine();
br.flush();
}
br.close();
}
}
复制代码
作者:
ylw787442926
时间:
2016-6-4 22:21
过来学习学习,顺便支持一下
作者:
nanliner
时间:
2016-6-4 23:28
支持一下
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2