/*
* 1、 有五个学生,每个学生有3门课(语文、数学、英语)的成绩,写一个程序接收从键盘输入学生的信息,
* 输入格式为:name,30,30,30(姓名,三门课成绩),然后把输入的学生信息按总分从高到低的顺序写入
* 到一个名称"stu.txt"文件中。要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息。
* 分析:
* 1.输入格式格式为name,30,30,30,一定用到构造函数
* 2.把输入的学生信息按总分从高到低的顺序写入,用到集合中的排序,而且有对应关系,所以用TreeMap
* 3.到一个名称"stu.txt"文件中,用到流的知识
*/
import java.io.*;
import java.util.*;
public class Test01
{
public static void main(String[] args) {
String str="c:/stu.txt";
StudentCopy(str);
}
public static void StudentCopy(String str){
Map<Student,Double> map=new TreeMap<Student,Double>();
for(int x=1;x<3;x++){
Scanner input=new Scanner(System.in);
System.out.println("请输入第个学生的姓名:");
String getName=input.next();
System.out.println("请输入第个学生的语文成绩:");
double getChinese=input.nextDouble();
System.out.println("请输入第个学生的英语成绩:");
double getEnglish=input.nextDouble();
System.out.println("请输入第个学生的数学成绩:");
double getMath=input.nextDouble();
double getTotalScore=(getChinese+getEnglish+getMath)/3;
map.put(new Student(getName,getChinese,getEnglish,getMath), getTotalScore);
FileOutputStream fos=null;
try {
fos=new FileOutputStream(str);
Set set=map.entrySet();
Iterator it=set.iterator();
while(it.hasNext()){
String dd=((Student) it.next()).toString();
fos.write(dd.getBytes());
System.out.println();
}
fos.flush();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(fos!=null){
try {
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
}
//Student类
class Student{
private String name;
private double ChineseScore;
private double MathScore;
private double EnglishScore;
//private double TotalScore=ChineseScore+MathScore+EnglishScore;
public Student(String name,double ChineseScore,double MathScore,double EnglishScore){
this.name=name;
this.ChineseScore=ChineseScore;
this.MathScore=MathScore;
this.EnglishScore=EnglishScore;
}
}
你们复制到你们的机器上试试 |