作业帮 > 综合 > 作业

一个瓶子可装5升水另一个可装7升水,用Java编程怎么得到6升

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/07 17:00:40
一个瓶子可装5升水另一个可装7升水,用Java编程怎么得到6升
//瓶子
class Bottle{
private double volume; //容量
private double water = 0; //装水量
public double getVolume(){
return this.volume;
}
public double getWater(){
return this.water;
}
//构造函数
Bottle(double volume){
this.volume = volume;
}
//获取当前剩余容量
public double getHaveVolume(){
return this.volume - this.water;
}
//装满水
public void addFullWater(){
this.water = this.volume;
}
//倒掉所有水
public void pourAllWater(){
this.water = 0;
}
//倒水
public void pourWater(double water){
//
if(water < this.water){
this.water -= water;
}else{
this.water = 0;
}
}
//其他(bottle)瓶子向该(this)瓶子装水
public void addWater(Bottle bottle){
//判断其他瓶子中的水量是否大于该瓶子剩余的容量
if(bottle.getWater() > this.getHaveVolume()){
//倒出水
bottle.pourWater(this.getHaveVolume());
//装入水
this.water += this.getHaveVolume();
}else{
double runingWater = bottle.getWater();
//倒出水
bottle.pourWater(runingWater);
//装入水
this.water += runingWater;
}
}
}
public class test{
public static void main(String[] args){
Bottle b5 = new Bottle(5.0);
Bottle b7 = new Bottle(7.0);
while(true){
b7.addFullWater();
System.out.println("给7升瓶子加满水;");
System.out.println();
b5.addWater(b7);
System.out.println("把7升瓶子中的水倒入5升瓶子;7升瓶子中有"+b7.getWater()+"升水,5升瓶子中有"+b5.getWater()+"升水;");
System.out.println();
if(b7.getWater() == 6.0)break;
b5.pourAllWater();
System.out.println("倒掉5升瓶子中的水;");
System.out.println();
b5.addWater(b7);
System.out.println("把7升瓶子中的水倒入5升瓶子;7升瓶子中有"+b7.getWater()+"升水,5升瓶子中有"+b5.getWater()+"升水;");
System.out.println();
if(b7.getWater() == 6.0)break;
}
}
}