标签:
要求:有五个学生,每个学生有3门课的成绩,
从键盘输入以上数据(包括姓名,三门课成绩),
输入的格式:如:zhagnsan,30,40,60计算出总成绩,
并把学生的信息和计算出的总分数高低顺序存放在磁盘文件”stud.txt”中。
1,描述学生对象。
2,定义一个可操作学生对象的工具类。
思想:
1,通过获取键盘录入一行数据,并将该行中的信息取出封装成学生对象。
2,因为学生有很多,那么就需要存储,使用到集合。因为要对学生的总分排序。
所以可以使用TreeSet。
3,将集合的信息写入到一个文件中。
import java.io.*;
import java.util.*;
class StudentTest
{
public static void main(String[] args) throws IOException
{
Set<Student> students=StudentInfoUtil.getStudents();
StudentInfoUtil.write2file(students);
}
}
class Student implements Comparable
{
public String name;
public int yu,shu,ying;
public int zong;
Student(String name,int yu,int shu,int ying)
{
this.name=name;
this.yu=yu;
this.shu=shu;
this.ying=ying;
this.zong=yu+shu+ying;
}
public int compareTo(Object obj)
{
if(!(obj instanceof Student))
throw new RuntimeException("不是学生");
Student stu=(Student)obj;
if(this.zong<stu.zong)
return 1;
else if(this.zong==stu.zong)
return this.name.compareTo(stu.name);
return -1;
}
}
class StudentInfoUtil
{
public static Set<Student> getStudents() throws IOException
{
BufferedReader bur=new BufferedReader(new InputStreamReader(System.in));
String line=null;
Set<Student> students=new TreeSet<Student>();
while((line=bur.readLine())!=null)
{
if(line.equals("over"))
break;
String[] info=line.split(",");
Student stu=new Student(info[0],Integer.parseInt(info[1]),
Integer.parseInt(info[2]),
Integer.parseInt(info[3]));
students.add(stu);
}
bur.close();
return students;
}
public static void write2file(Set<Student> students)throws IOException
{
BufferedWriter buw=new BufferedWriter(new FileWriter("stuinfo.txt"));
for(Student stu:students)
{
buw.write(stu.name+","+stu.zong);
buw.newLine();
buw.flush();
}
buw.close();
}
}
标签:
原文地址:http://blog.csdn.net/u013951760/article/details/51336806