java程序设计编程题_20165237 2017-2018-2 《Java程序设计》第十周考试补做及编程题...

20165237 2017-2018-2 《Java程序设计》第十周考试补做及编程题

知识点

1、链表是由若干个称作节点的对象组成的一种数据结构,每个节点含有一个数据和下一个节点的引用 。

2、Collections类提供的用于排序和查找的类方法如下: public static sort(Listlist) 该方法可以将list中的元素升序排列。 int binarySearch(Listlist, T key,CompareToc) 使用折半法查找list是否含有和参数key相等的元素,如果key链表中某个元素相等,方法返回和key相等的元素在链表中的索引位置(链表的索引位置从0考试),否则返回-1。

数据结构-排序:

题目:

在数据结构和算法中,排序是很重要的操作,要让一个类可以进行排序,有两种方法:

有类的源代码,针对某一成员变量排序,让类实现Comparable接口,调用Collection.sort(List)

没有类的源代码,或者多种排序,新建一个类,实现Comparator接口 调用Collection.sort(List, Compatator)

针对下面的Student类,使用Comparator编程完成以下功能:

在测试类StudentTest中新建学生列表,包括自己和学号前后各两名学生,共5名学生,给出运行结果(排序前,排序后)

对这5名同学分别用学号和总成绩进行增序排序,提交两个Comparator的代码

课下提交代码到码云

class Student {

private String id;//表示学号

private String name;//表示姓名

private int age;//表示年龄

private double computer_score;//表示计算机课程的成绩

private double english_score;//表示英语课的成绩

private double maths_score;//表示数学课的成绩

private double total_score;// 表示总成绩

private double ave_score; //表示平均成绩

public Student(String id, String name){

this.id = id;

this.name = name;

}

public Student(String id, String name, char sex, int age){

this(id, name);

this.sex = sex;

this.age = age;

}

public String getId(){

return id;

}//获得当前对象的学号,

public double getComputer_score(){

return computer_score;

}//获得当前对象的计算机课程成绩,

public double getMaths_score(){

return maths_score;

}//获得当前对象的数学课程成绩,

public double getEnglish_score(){

return english_score;

}//获得当前对象的英语课程成绩,

public void setId(String id){

this.id=id;

}// 设置当前对象的id值,

public void setComputer_score(double computer_score){

this.computer_score=computer_score;

}//设置当前对象的Computer_score值,

public void setEnglish_score(double english_score){

this.english_score=english_score;

}//设置当前对象的English_score值,

public void setMaths_score(double maths_score){

this.maths_score=maths_score;

}//设置当前对象的Maths_score值,

public double getTotalScore(){

return computer_score+maths_score+english_score;

}// 计算Computer_score, Maths_score 和English_score 三门课的总成绩。

public double getAveScore(){

return getTotalScore()/3;

}// 计算Computer_score, Maths_score 和English_score 三门课的平均成绩。

}

class Undergraduate extends Student{

private String classID;

public Undergraduate(String id, String name, char sex, int age,String classID){

super(id,name,sex,age);

this.classID=classID;

}

public String getClassID(){

return classID;

}

public void setClassID(String classID){

this.classID=classID;

}

}

补做截图:

e771d11ace168e52c0ccc5ef96197ac1.png

git log :

f1cb2fffce36e411a04c9e111e6e353e.png

(程序的运行结果截图)

(1)使用堆栈结构输出an的若干项,其中an=2an-1+2an-2,a1=3,a2=8

9ec5e4cb23d721b879948f235f12eba4.png

(2)编写一个程序,将链表中的学生英语成绩单存放到一个树集中,使得按程序自动排序,并输出排序结果

22f8a39a18b69127bdc840937677bbab.png

(3)有10个U盘,有两个重要的属性:价格和容量。编写一个应用程序,使用TreeMap

4da066b62e5112211a303754e9b4ca20.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值