黑马程序员技术交流社区
标题:
怎么老出错。。
[打印本页]
作者:
逝风
时间:
2015-11-1 21:04
标题:
怎么老出错。。
/*
有五个学生,每个学生3门课的成绩,
从键盘输入数据(姓名,三门课成绩),
并把学生的信息和计算出的总分高低顺序放在“stud。txt”
1,描述学生对象,
2,定义一个课操作学生对象的工具类。
思想:
1,通过键盘录入一组数据,并将该行信息取出封装成学生对象
2,因为学生有很多,那么就需要储存,使用到集合。因为要排序
TreeSet
3,将集合的信息写入到一个文件中。
*/
import java.io.*;
import java.util.*;
class Student //建立学生对象,并进行封装。
{
private String name; //进行私有化
private int cn,math,english;
private int sum;
void student(String name,int cn,int math,int english)
{
this.name=name;
this.cn=cn; // 赋值
this.math=math;
this.english=english;
sum=cn+math+english; //不要忘记创建sum
}
public String getname() //调用参数
{
return name;
}
public int getsum()
{
return sum;
}
public int hashCode() // 哈希值一定要复写
{
return name.hashCode+sum*56;
}
public boolean equals(Object obj)
{
if (!(obj instanceof Student))
{
throw new ClassCastException("类型不匹配") ;
}
Student s = (Student) obj;
return this.name.equals(s.name) && this.sum==s.sum;
}
public String toString()
{
return "student["+name+"'"+cn+","+math+"'"+english+"]" ;
}
}
class CompareStudent // 创建比较方法,及其写入
{
public static Set<Student> getStudents() throws IOException
{
BufferedReader bufr=new BufferedReader(
new InputStreamReader(System.in) );
Set<Student> ts=new TreeSet<Student>();
String len=null;
while ((len=bufr.readLine())!=null)
{
if ("over".equals(len))
{
break;
}
String [] info = len.split(",") ; //切割“,”,用于读取
Student stu = new Student(info[0],Integer.parseInt(info[1]),
Integer.parseInt(info[2]),
Integer.parseInt(info[3])) ;
ts.add(stu);
}
bufr.close();
return ts;
//bufw.close();
}
public static void write2File(Set<Student> ts)
{
BufferedWriter bufw= new BufferedWriter(
new FileWriter("Student.txt")) ;
for (Student stu:ts )
{
bufw.write(stu.toString());
bufw.write(stu.getsum());
}
}
}
class CopStudent //主函数 调用
{
public static void main(String[] args)
throws IOException
{
CompareStudent. getStudents();
}
}
复制代码
作者:
我若为神
时间:
2015-11-1 21:10
6666666666
作者:
特立独行
时间:
2015-11-1 22:31
占个坑先
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2