(95)键盘输入学生信息,存入文件
2017-07-26 17:17
344 查看
有5个学生,每个学生有三门课程,从键盘输入以上数据(包括姓名、三门课成绩)输入格式:如zhangsan,30,40,50计算出总成绩,并将学生的信息和计算出的总分数从高到底存放在磁盘文件“stu.txt”
1,描述学生对象
2,定义一个可以操作学生对象的工具类
思想:
1,通过获取键盘录入一行数据,并将该行中的信息取出封装成学生对象
2,因为你学生有很多,那么就需要存储,使用集合,因为要对学生的总分数进行排序,所以可以用用TreeSet
3,将集合的信息写入到文件
1,描述学生对象
2,定义一个可以操作学生对象的工具类
思想:
1,通过获取键盘录入一行数据,并将该行中的信息取出封装成学生对象
2,因为你学生有很多,那么就需要存储,使用集合,因为要对学生的总分数进行排序,所以可以用用TreeSet
3,将集合的信息写入到文件
//学生类 public class Student implements Comparable<Student> { private String name; private int chinGrade; private int mathGrade; private int engGrade; private int sumGrade; Student(String name,int chinGrade,int mathGrade,int engGrade ){ this.name=name; this.chinGrade=chinGrade; this.mathGrade=mathGrade; this.engGrade=engGrade; sumGrade= chinGrade+mathGrade+ engGrade; } //可能被二叉树使用 public int compareTo(Student stu) { if(this.sumGrade>stu.sumGrade) return -1; if(this.sumGrade==stu.sumGrade) return this.name.compareTo(stu.name); return 1; } public int getSumGrade() { return sumGrade; } public String getName() { return name; } //可能被哈希用到 public int hashCode() { return name.hashCode()+sumGrade*85; } public boolean equals(Object obj) { if(!(obj instanceof Student )) throw new ClassCastException(); Student stu=(Student)obj; return this.getName().equals(stu.getName())&&this.sumGrade==stu.sumGrade; } public String toString() { return "姓名:"+name+" 语文:"+chinGrade+" 数学:"+mathGrade+" 英语"+engGrade+" 总分:"+sumGrade; } } // import java.io.*; import java.util.*; public class StuDemo { public static TreeSet<Student> getStudents() throws IOException{ return getStudents(null); } public static TreeSet<Student> getStudents(Comparator<Student> cmp) throws IOException//将数据写入集合 { TreeSet<Student> ts=null; if(cmp==null) ts=new TreeSet<Student>(); else ts=new TreeSet<Student>(cmp); int count=1; while(count<=5) { System.out.println("请输入第"+count+"名学生的信息"); BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in)); String line=bufr.readLine(); String[] every=line.split(","); //将键盘输入的数据封装成对象 ts.add(new Student(every[0],Integer.parseInt(every[1]),Integer.parseInt(every[2]),Integer.parseInt(every[3]))); count++; } return ts; } public static void write2File(TreeSet<Student> ts)throws IOException//将集合中的数据写入文件 { //将集合中的数据写入文件中 FileWriter fos=new FileWriter("E:\\grade.txt");//因为要用到一行一行的写,所以用Writer BufferedWriter bufw=new BufferedWriter(fos); bufw.write("学生成绩以及排名如下:"); bufw.newLine(); Iterator<Student> it=ts.iterator(); while(it.hasNext()) { Student stu=it.next(); bufw.write(stu.toString()); bufw.newLine(); bufw.flush(); } bufw.close(); } public static void main(String[] args)throws IOException { //Comparator<Student> cmp=Collections.reverseOrder(new MyComp()); //TreeSet ts=getStudents(cmp);//用比较器比较 TreeSet ts=getStudents();//用compareTo比较 write2File(ts); } } //升序比较器 public class MyComp implements Comparator<Student>{ public int compare(Student stu1,Student stu2){ if(stu1.getSumGrade()>stu2.getSumGrade()) return 1; if(stu1.getSumGrade()>stu2.getSumGrade()) return stu1.getName().compareTo(stu2.getName()); return -1; } }
相关文章推荐
- 学生信息键盘输入成绩并反转比较器进行降序排列存入TreeSet写入文件示例
- (1) 输入学生的基本信息,计算每个学生的平均分,并将学生信息存入磁盘文件“stud”中; (2) 将文件stud中的数据按平均分从高到低的顺序进行排序,并将排序结果存放到文件“stud_sort”中
- 假设有10位同学,各有3门课程的成绩。从键盘输入每位同学的学号、姓名和3门课程的成绩,然后把数据保存到磁盘文件,再将磁盘文件中的学生信息读入并显示
- 输入N个学生的信息(包括:学号,姓名,5科成绩,总分),统计所有学生的总分,存入二进制文件stu_sc.dat中。然后读取该文件,查找总分最高的学生,并输出该生的所有信息。
- 小整理-学生管理系统加强版.连接数据库(并通过键盘输入存放学生信息到数据库)
- Python:监控键盘输入、鼠标操作,并将捕获到的信息记录到文件中
- Python:监控键盘输入、鼠标操作,并将捕获到的信息记录到文件中
- 从键盘输入两个学生数据,写入一个文件中, 再读出这两个学生的数据显示在屏幕上。
- 编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt
- 有五个学生,每个学生有3门课(语文、数学、英语)的成绩, * 写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩)
- 文件操作:有五个学生,每个学生有 3 门课的成绩,从键盘输入以上数据(包 括学生号,姓名,三门课成绩),计算出平均成绩,将所输入有的数据和计算出 的平均分数存放在磁盘文件 "stud "中
- java 从键盘输入一个关键字,在 D:盘查找文件,如果文件名中包含该关键字,则输出这个文件的绝对路径,如果都没有找到,则输出找不到相关信息。
- 建立一个文件,在文件中输入学生信息,查找文件,输出学生的信息
- 如何从键盘输入学生信息,并赋值给数组
- 从键盘输入若干个字符,逐个存到磁盘文件中,直到输入‘\n’为止,并将建立的文本文件的内容在存入文件的同时,在屏幕上显示出来。。
- PHP之键盘输入四个学生的学号 姓名 语文 数学 英语信息 ,计算出每个学生的平均成绩,输出
- 用java实现输入学生的学号得出txt文件里该学号学生的信息
- 编写程序,从键盘输入各位职工的工资数据,存入磁盘文件Salary.dat中,然后从该文件读出职工的工资数据,并计算输出每位职工的实发工资。实发工资的计算方法如下:实发工资=基本工资+加班工奖金-扣除
- 建立一个学生结构数组来记录学生信息(学号ID,姓名和C语言成绩),要求动态建立一个结构数组,数组长度从键盘输入,自行给数组元素赋值并打印学生信息,最后不要忘记释放内存。 结构st
- 输入学生信息并存储新文件