Truck Television Computer 和 WashMachine 之间的LoveStory

题目:
卡车要装载一批货物,货物有3种商品:电视、计算机和洗衣机。需要计算出大货车和小货车各自所装载的3种货物的总重量。
要求:(1)有一个IGoods接口,该接口中有一个方法:public double getWeight();
(2)有3个实现该接口的类:Television、Computer和WashMachine。这3个类通过实现IGoods接口的getWeight()方法给出自重。(Television、Computer和WashMachine 的重量分别为45.5,65.5和145);
(3)有一个Truck类,该类用IGoods接口类型的数组作为成员,那么该数组的单元就可以存放Television对象、Computer对象以及WashMachine对象的引用。程序能输出Truck对象所装载的货物的总重量。

程序模板
//Road.java
interface IGoods{
	public double getWeight();
}
class Television implements IGoods{
//实现getWeight()方法


}
class Computer implements IGoods{
//实现getWeight()方法


}
class WashMachine implements IGoods{
//实现getWeight()方法


}
class Truck{
	private IGoods[] goods;
	private double totalWeights;
	public Truck(IGoods[] goods) {
		this.goods=goods;
	}
	public double getTotalWeights(){
		this.totalWeights=0;
		//计算totalWeights





		return this.totalWeights;
	}
}


这个很简单啦 我就不写了
主要是第二小问
修改上述程序,为Truck类增加一个maxLoad成员变量(最大载重量),随机往车上摆放货物,直至装满,打印该车装载三种货物的数量。
参考方案:建立一个包含3个元素的IGoods数组goodsType[],分别存放三种电器的实例,然后用goodsType[rnd]表示一件随机电器放入货物列表~~(rnd为1-3的随机整数)~~ (这里老师写错了 rnd应该是0-2);Truck类的私有成员变量goods考虑用ArrayList泛型。
下面代码贴图片了 估计看到这题的就是下一届了趴…
我先贴一下我的代码 很丑陋 勿喷勿喷:
///在这描述

就是那个for循环晕乎乎der 还有那个Truck写的很诡异 看了老师的代码之后发现简洁了很多 果然我是菜鸡本菜无敌呜呜呜

在这里插入图片描述
老师给的代码:
老师说思路在Truck类应该要添加一个getload方法 虽然题目没说但是应该会想到(呜呜反正我没想这样添加)
还有个注意点就是main里面的循环啦 使用了while(true)这亚子来判断(小心用这个方法) 就酱紫

package ep07;

import java.util.ArrayList;
import java.util.Scanner;

public class Truck {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        System.out.println("请输入x:");
        Scanner in=new Scanner(System.in);
        double x= in.nextDouble();
        Trucky bigTruck=new Trucky(x);
        IGoods[] goodsTypeGoods=new IGoods[3];
        goodsTypeGoods[0]=new Television();
        goodsTypeGoods[1]=new Computer();
        goodsTypeGoods[2]=new WashMachine();
        int rnd;
        int t=0,c=0,ww=0;
        while(true) {           //注意注意
        	rnd=(int)(Math.random()*3);
        	if(bigTruck.getload(goodsTypeGoods[rnd])) {
        		switch(rnd) {                        
        		case 0:t++;break;
        		case 1:c++;break;
        		case 2:ww++;break;
        		}
        	}
        	else {
				break;
			}
        	
        }
        System.out.println("汽车的载重量:"+bigTruck.getTotalWeight());
    	System.out.println("Telvison:\t"+t+"  Computer:\t  "+c+"  WashMachine:\t  "+ww);
	}

}
interface IGoods{
	public double getWeight();
}
class Television implements IGoods{
	public double getWeight() {
	 return 45.5;	
	}
}
class Computer implements IGoods{
	public double getWeight() {
		return 65.5;
	}
}
class WashMachine implements IGoods{
	public double getWeight() {
		return 145;
	}
}
class Trucky{
	private double maxload;
	//private double getTotalWeight;
	private ArrayList<IGoods> goods=new ArrayList<IGoods>();
	public Trucky(double maxload) {
		this.maxload=maxload;
	}
	public double getTotalWeight() {
	     double getTotalWeight=0;
		 for(int i=0;i<goods.size();i++) {
			getTotalWeight+=goods.get(i).getWeight(); 
		 }
		 return getTotalWeight;
	}
	public boolean getload(IGoods go) {
		if(go.getWeight()+this.getTotalWeight()<=maxload) {
			goods.add(go);
			return true;
		}
		return false;
}
	
}

新人一枚~请多指教

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实验1 Java语言基础 4 一、实验目的 4 二、实验要求 4 三、实验内容 4 (一) 声明不同数据类型的变量 4 (二) 了解变量的使用范围 5 (三) 使用关系运算符和逻辑运算符 5 (四) 使用表达式语句与复合语句 6 (五) 使用选择语句 6 (六) 使用循环语句 8 实验2 面向对象编程 11 一、实验目的 11 二、实验要求 11 三、实验内容 11 (一)创建 Applet 应用小程序 11 (二)创建对象并使用对象 12 (三)编写显示当前日期和时间的程序 13 (四)使用修饰符 14 (五)方法中参数传递 15 (六)类的继承性 16 (七)类的多态性 18 实验3 包、接口与异常处理 22 一、实验目的 22 二、实验要求 22 三、实验内容 22 (一)了解并使用 Java 的系统包 22 (二)创建并使用自定义包 22 (三)使用接口技术 24 (四)了解异常处理机制 25 实验4 常用系统类的使用 27 一、实验目的 27 二、实验要求 27 三、实验内容 27 (一)了解 Applet 的生命周期 27 (二)使用数学函数类 28 (三)使用日期类 29 实验5 建立图形用户界面 32 一、实验目的 32 二、实验要求 32 三、实验内容 32 (一)创建图形用户界面 32 (二)了解事件处理机制 34 (三)建立独立运行的窗口界面并使用匿名类 36 (四)使用 Swing 组件 39 (五)使用自定义对话框与内部类 41 实验6 图形处理 44 一、实验目的 44 二、实验要求 44 三、实验内容 44 (一)使用图形类 Graphics 44 实验7图形处理(二) 47 一、实验目的 47 二、实验要求 47 三、实验内容 47 (一)幻灯机效果——连续显示多幅图像 47 (二)使用滚动条改变背景颜色 48 (三)Applet 与 Application 合并运行 49 (四)创建电闪雷鸣的动画 50 实验8 流与文件 53 一、实验目的 53 二、实验要求 53 三、实验内容 53 (一)使用标准数据流的应用程序 53 (二)使用文件输入输出流的应用程序 54 (三)使用随机文件类的应用程序 54 (四)使用数据输入输出流与文件输入输出流类的应用程序 55 (五)使用对象输入输出流的应用程序 56 实验9 线程 58 一、实验目的 58 二、实验要求 58 三、实验内容 58 (一)Thread子类的方法实现多线程 58 (二)实现Runnable接口的方法实现多线程 59 实验10 数据库的连接:JDBC 61 一、实验目的 61 二、实验要求 61 三、实验内容 61 (一)配置ODBC数据源 61 (二)编写程序,按照下表的结构建立"student"表 61 (三)编写程序,完成填写功能 62 (四)编写程序,完成查询功能 62
好的,这是一个 Java 编程的问题。以下是实现该功能的代码示例: 首先,我们需要定义一个 ComputerWeight 接口,该接口中有一个方法:computerWeight()。 ```java public interface ComputerWeight { double computerWeight(); } ``` 接下来,我们需要定义三个实现该接口的类:TelevisionComputerWashMachine。这三个类通过实现接口 computerTotalSales 给出自重。 ```java public class Television implements ComputerWeight { private double weight; public Television(double weight) { this.weight = weight; } @Override public double computerWeight() { return weight; } } public class Computer implements ComputerWeight { private double weight; public Computer(double weight) { this.weight = weight; } @Override public double computerWeight() { return weight; } } public class WashMachine implements ComputerWeight { private double weight; public WashMachine(double weight) { this.weight = weight; } @Override public double computerWeight() { return weight; } } ``` 最后,我们需要定义一个 Truck 类,该类以 computerWeight 接口类型的数组作为成员(Truck 类面向接口),那么该数组的单元就可以放 Television 对象的引用、Computer 对象的引用或 WashMachine 对象的引用。程序能输出 Truck 对象所装载的货物的总质量。 ```java public class Truck { private ComputerWeight[] goods; public Truck(ComputerWeight[] goods) { this.goods = goods; } public double getTotalWeight() { double totalWeight = 0; for (ComputerWeight item : goods) { totalWeight += item.computerWeight(); } return totalWeight; } } ``` 现在,我们可以编写主函数,创建对象并计算货物总质量。 ```java public class Main { public static void main(String[] args) { Television television = new Television(50); Computer computer = new Computer(20); WashMachine washMachine = new WashMachine(80); ComputerWeight[] goods = {television, computer, washMachine}; Truck truck = new Truck(goods); double totalWeight = truck.getTotalWeight(); System.out.println("The total weight of goods is: " + totalWeight); } } ``` 以上就是实现题目要求的代码。希望能够帮助你解决问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值