A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 逝风 中级黑马   /  2015-11-1 21:04  /  252 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. /*

  2. 有五个学生,每个学生3门课的成绩,
  3. 从键盘输入数据(姓名,三门课成绩),
  4. 并把学生的信息和计算出的总分高低顺序放在“stud。txt”

  5. 1,描述学生对象,
  6. 2,定义一个课操作学生对象的工具类。

  7. 思想:
  8. 1,通过键盘录入一组数据,并将该行信息取出封装成学生对象
  9. 2,因为学生有很多,那么就需要储存,使用到集合。因为要排序
  10.         TreeSet
  11. 3,将集合的信息写入到一个文件中。
  12. */

  13. import java.io.*;
  14. import java.util.*;


  15. class Student                  //建立学生对象,并进行封装。
  16. {
  17.         private String name;                         //进行私有化
  18.         private int cn,math,english;
  19.         private int sum;
  20.         void student(String name,int cn,int math,int english)
  21.         {
  22.                 this.name=name;
  23.                 this.cn=cn;                                  // 赋值
  24.                 this.math=math;
  25.                 this.english=english;
  26.                 sum=cn+math+english;                //不要忘记创建sum
  27.        
  28.         }                  

  29.         public String getname()                         //调用参数
  30.         {
  31.                 return name;
  32.        
  33.         }
  34.         public int getsum()
  35.         {
  36.                 return sum;
  37.         }

  38.         public int hashCode()                                  // 哈希值一定要复写
  39.         {
  40.                 return name.hashCode+sum*56;
  41.                
  42.         }

  43.         public boolean equals(Object obj)
  44.         {
  45.                 if (!(obj instanceof Student))
  46.                 {
  47.                         throw new ClassCastException("类型不匹配") ;
  48.                 }

  49.                  Student s = (Student) obj;

  50.                  return this.name.equals(s.name) && this.sum==s.sum;
  51.         }

  52.         public String toString()
  53.         {
  54.                 return "student["+name+"'"+cn+","+math+"'"+english+"]" ;
  55.         }


  56. }



  57. class CompareStudent                        // 创建比较方法,及其写入
  58. {
  59.         public static Set<Student> getStudents() throws IOException
  60.         {
  61.                 BufferedReader bufr=new BufferedReader(
  62.                 new InputStreamReader(System.in) );

  63.        

  64.           Set<Student> ts=new TreeSet<Student>();
  65.            String len=null;
  66.            while ((len=bufr.readLine())!=null)
  67.                          {
  68.                                  if ("over".equals(len))
  69.                                  {
  70.                                          break;
  71.                                  }
  72.                                  String [] info = len.split(",") ; //切割“,”,用于读取

  73.                                  Student stu = new Student(info[0],Integer.parseInt(info[1]),
  74.                                                                                          Integer.parseInt(info[2]),
  75.                                                                                         Integer.parseInt(info[3]))        ;
  76.                                 ts.add(stu);

  77.                          }

  78.          bufr.close();
  79.          return ts;
  80.          //bufw.close();
  81.          }

  82.          public static void write2File(Set<Student> ts)
  83.         {
  84.            BufferedWriter  bufw= new BufferedWriter(
  85.                 new FileWriter("Student.txt"))        ;
  86.                                                           
  87.            for (Student stu:ts )
  88.            {
  89.                    bufw.write(stu.toString());
  90.                     bufw.write(stu.getsum());
  91.            }
  92.          
  93.          }



  94. }




  95. class  CopStudent                                         //主函数 调用
  96. {
  97.         public static void main(String[] args)
  98.                 throws IOException
  99.         {
  100.                 CompareStudent.        getStudents();
  101.         }
  102. }
复制代码

2 个回复

倒序浏览
6666666666
回复 使用道具 举报
占个坑先
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马