Java程序设计 作业3

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类

  1. 包含name
  2. 在Person类完成无参构造方法,在无参构造方法设置name值为none
  3. 有参构造方法给name传值
  4. 为name属性添加set和get方法
  5. <
    public String toString(){
    return "name:"+name;
    }


2 在Main类的main方法中

  1. 创建Person类对象数组,其中数组长度为2
  2. 并为Person对象数组赋值,其中第一个元素对象为无参person对象,第二个元素对象为有参person对象,姓名为用户键盘给出
  3. 并循环输出两个对象的信息(调用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());
	}
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值