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