6-1 卡车载重
分数 20
全屏浏览题目
切换布局
作者 刘凤良
单位 天津仁爱学院
某大型家电企业拥有一批送货卡车,运送电视机、空调、洗衣机等家电。编程计算每个卡车所装载货物的总重量。
要求如下:
1.创建一个ComputeWeight接口,接口中有方法:double computeWeight();
2.创建三个类Television、AirConditioner和WashMachine。这些类都实现了ComputeWeight接口,能够提供自重。其中TV的自重为16.6kg,AirConditioner的自重为40.0kg,WashMachine的自重为60.0kg。
3.创建一个Truck类,私有成员变量goods是一个ComputeWeight型的数组,包含了该货车上的所有家电,公有方法getTotalWeight()返回goods中所有货物的重量之和。
方法接口定义:
double computeWeight(); double getTotalWeight();
裁判测试程序样例:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int n=input.nextInt(); int type; ComputeWeight [] goods=new ComputeWeight[n]; //n件货物 for(int i=0;i<goods.length ;i++){ type=input.nextInt(); //读入家电类型 if (type==1) goods[i]=new Television(); else if (type==2) goods[i]=new AirConditioner(); else if (type==3) goods[i]=new WashMachine(); } Truck truck =new Truck(goods); System.out.printf("货车装载的货物总量:%8.2f kg",truck.getTotalWeight()); } } /* 请在这里填写答案 */
输入格式:
家电数量
家电种类编号
注意:各个家电的编号为:Television:1 , AirConditioner:2 , WashMachine:3
输出格式:
货车装载的货物总量: xxx.xx kg
输入样例:
10 1 2 3 3 2 1 3 3 3 2
输出样例:
货车装载的货物总量: 453.20 kg
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
interface ComputeWeight { double computeWeight(); } class Television implements ComputeWeight { public double computeWeight() { return 16.6; } } class AirConditioner implements ComputeWeight { public double computeWeight() { return 40.0; } } class WashMachine implements ComputeWeight { public double computeWeight() { return 60.0; } } class Truck { private ComputeWeight[] goods; Truck(ComputeWeight[] goods) { this.goods = goods; } public double getTotalWeight() { double sum=0; for(int i=0;i<goods.length;i++) { sum+=goods[i].computeWeight(); } return sum; } }
6-2 可定制排序的矩形
分数 20
全屏浏览题目
切换布局
作者 温彦
单位 山东科技大学
从键盘录入表示矩形个数的数字n,然后录入n个矩形的长和宽,然后对这n个矩形按照面积从大到小排序,并输出排序后的每个矩形的面积。要求:请设计Rectangle类,包含相应的构造函数和成员函数,实现Comparable接口
输入描述:
矩形个数,每个矩形的长和宽
输出描述:
由大到小排序的每个矩形的面积
裁判测试程序样例:
import java.util.Comparator; import java.util.Arrays; import java.util.Scanner; /*你的代码被嵌在这里*/ public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //输入矩形个数 int num_rectangle = scan.nextInt(); Rectangle[] recs = new Rectangle[num_rectangle]; //输入每个矩形的长和宽 for(int i=0;i<num_rectangle;i++){ int length = scan.nextInt(); int width = scan.nextInt(); Rectangle rec = new Rectangle(length,width); recs[i] = rec; } //按照面积由大到小排序 Arrays.sort(recs); //打印前n-1个矩形的面积 for(int i=0;i<recs.length-1;i++){ System.out.print(recs[i].getArea()+","); } //打印最后一个矩形的面积 System.out.print(recs[recs.length-1].getArea()); scan.close(); } }
输入样例:
在这里给出一组输入。例如:
3 1 2 3 4 2 3
输出样例:
在这里给出相应的输出。例如:
12,6,2
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
class Rectangle implements Comparable<Rectangle> { private int a; private int b; Rectangle(int a,int b) { this.a = a; this.b = b; } public int getArea() { return a*b; } public int compareTo(Rectangle other) { if(this.getArea()<other.getArea()) return 1; else if(this.getArea()>other.getArea()) return -1; else return 0; } }
7-1 整数排序(升序)
分数 15
全屏浏览题目
作者 保明庚
单位 云南农业职业技术学院
输入5个整数,对所有整数进行排序,按照升序输出。
输入格式:
输入5个整数。
输出格式:
按照升序输出5个整数。
输入样例1:
35 22 49 18 32
输出样例1:
18 22 32 35 49
输入样例2:
5 3 58 65 74
输出样例2:
3 5 58 65 74
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
import java.util.Scanner; import java.util.Arrays; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while(in.hasNext()) { int[] a = new int[5]; for(int i=0;i<5;i++) { a[i] = in.nextInt(); } Arrays.sort(a); for(int i=0;i<5;i++) { System.out.println(a[i]); } } } }
7-2 使用一维数组求平均值
分数 20
全屏浏览题目
作者 tr
单位 成都信息工程大学
本题目要求使用一维数组,存储5个整数,输出5个整数的平均值。
输入格式:
输入一组整数。
输出格式:
对每一组输入,在一行中输出平均值。
输入样例:
1 2 3 4 5
输出样例:
在这里给出相应的输出。例如:
3.0
代码长度限制
20 KB
时间限制
400 ms
内存限制
64 MB
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int[] a = new int[5]; double sum=0; for(int i=0;i<5;i++) { a[i] = in.nextInt(); sum+=a[i]; } System.out.println(sum/5); } }
7-3 超市贴花
分数 15
全屏浏览题目
作者 翁恺
单位 浙江大学
某超市有一种促销手段,购买金额超过一定阈值就随机给一个贴花。贴花有不同种类的,种类以编号表示,编号是一个1到100之间的数字。当收集到连续编号的三张贴花时,就可以换一个小礼物。
小明经常去某超市购物,积攒了不少贴花,你帮他看看,能换多少小礼物。
输入格式:
首先是一个正整数N(1<N<100),表示小明手上的贴花的数量。
然后是N个正整数Pi(1⩽Pi⩽1000,每个数字表示一张贴花的编号。输出格式:
输出一个数字,表示小明可以换的小礼物的数量。如果不能换小礼物,就输出
0
。输入样例:
6 3 2 4 6 6 4
输出样例:
1
2 3 4是一个组合,之后剩下的4 6 6不是连续的编号
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
import java.util.Scanner; import java.util.Arrays; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int N = in.nextInt(); int[] P = new int[N]; for(int i=0;i<N;i++) { P[i] = in.nextInt(); } Arrays.sort(P); int num=0; for(int i=0;i<N-2;i++) { if(P[i]==P[i+1]) i=i+1; if(P[i]+1==P[i+1]&&P[i+1]+1==P[i+2]) num+=1; } System.out.println(num); } }
7-4 数组与对象
分数 10
全屏浏览题目
作者 ami
单位 临沂大学
定义一个Person类
- 包含name
- 在Person类完成无参构造方法,在无参构造方法设置name值为none
- 有参构造方法给name传值
- 为name属性添加set和get方法
- <
public String toString(){
return "name:"+name;
}
2 在Main类的main方法中
- 创建Person类对象数组,其中数组长度为2
- 并为Person对象数组赋值,其中第一个元素对象为无参person对象,第二个元素对象为有参person对象,姓名为用户键盘给出
- 并循环输出两个对象的信息(调用toString方法),一个对象输出一行
输入格式:
输入姓名
输出格式:
输出姓名,一行一个对象
输入样例:
在这里给出一组输入。例如:
jerry
输出样例:
在这里给出相应的输出。例如:
name:none name:jerry
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
import java.util.Scanner; class Person { private String name; Person() { name = "none"; } Person(String name) { this.name = name; } public void setName(String name) { this.name = name; } public String getName() { return name; } public String toString() { return "name:"+name; } } public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); Person[] p = new Person[2]; p[0] = new Person(); p[1] = new Person(in.next()); System.out.println(p[0].toString()); System.out.println(p[1].toString()); } }