欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java-综合练习题(结课之前的大作业)

程序员文章站 2022-03-19 15:58:08
例如:定义学生父类和不同阶段学生子类(本科生、研究生等),包含学生信息(学号、姓名、成绩或年龄等),子类要实现父类的方法,要有不同的表现。将对象存入集合中,可以按学号或成绩排序。编写一个程序,实现集合相关操作,要求如下:定义一个父类,并定义多个不同子类,子类分别以不同方式重写父类的方法;定义多个类型的对象,编写方法实现多态效果;将多个对象存放在一个适当的集合中;使用合适的方法对集合中的数据按一定的方式排序;使用迭代器遍历集合并输出集合的元素,将排序后输出的结果写入out.txt文件中;【....

例如:定义学生父类和不同阶段学生子类(本科生、研究生等),包含学生信息(学号、姓名、成绩或年龄等),子类要实现父类的方法,要有不同的表现。将对象存入集合中,可以按学号或成绩排序。

编写一个程序,实现集合相关操作,要求如下:

  1. 定义一个父类,并定义多个不同子类,子类分别以不同方式重写父类的方法;
  2. 定义多个类型的对象,编写方法实现多态效果;
  3. 将多个对象存放在一个适当的集合中;
  4. 使用合适的方法对集合中的数据按一定的方式排序;
  5. 使用迭代器遍历集合并输出集合的元素,将排序后输出的结果写入out.txt文件中;
  6. 【要求】集合中要使用泛型,IO操作需要有异常处理。
import java.io.*;
import java.util.Iterator;
import java.util.TreeSet;
public class w {
    public static void main(String[] args) {
        TreeSet<student> stu=new TreeSet<>();
        stu.add(new undergraduate(1001,"潘雨威",98,18));
        stu.add(new postgraduate(1002,"齐于太",130,25));
        stu.add(new undergraduate(1003,"周桑",120,18));
        stu.add(new postgraduate(1000,"张三",130,30));
        File file=new File("作业1.txt");
        try {
            file.createNewFile();
            FileOutputStream out=new FileOutputStream(file);
            OutputStreamWriter writer=new OutputStreamWriter(out);
            BufferedWriter writer1=new BufferedWriter(writer);
            Iterator<student> it=stu.iterator();
            while(it.hasNext()){
                student temp=it.next();
                String str=temp.student_id+"-"+temp.student_name+"-"+temp.student_grade+"-"+temp.student_age;
                writer1.write(str);
                writer1.newLine();
                System.out.println(str);
            }
            writer1.close();
        }catch (IOException e){
            e.printStackTrace();
        }
   }
}
class student implements Comparable{
    int student_id;
    String student_name;
    int student_grade;
    int student_age;
    public String toString(){
        return student_id+"-"+student_name+"-"+student_grade+"-"+student_age;
    }
    public int compareTo(Object obj){
        student s=(student) obj;
        if(this.student_grade<s.student_grade){
            return 1;
        }
        if(this.student_grade==s.student_grade&&this.student_id>student_id){
            return 1;
        }
        return -1;
    }
}
class undergraduate extends student {
    undergraduate(int student_id,String student_name,int student_grade,int student_age){
        this.student_age=student_age;
        this.student_id=student_id;
        this.student_name=student_name;
        this.student_grade=student_grade;
    }
}
class postgraduate extends student{
    postgraduate(int student_id,String student_name,int student_grade,int student_age){
        this.student_age=student_age;
        this.student_id=student_id;
        this.student_name=student_name;
        this.student_grade=student_grade;
    }
}

本文地址:https://blog.csdn.net/xzy15703841578/article/details/111877083

相关标签: java