2016-12-04 59 views
-1

你好eveyone这是第一次来这里。需要java编码指导

我有一个任务,我需要为支付卡编写代码,而且我完全丢了。该卡应做到以下几点:

  • 检查激活
  • 具有最小的平衡(5)
  • 具有极大的平衡(125)
  • 添加钱
  • 提款(收费)

当您添加一个不符合最小或最大余额的金额时,它应该打印出一行文字,说“值应该至少为5”或“最大余额ce是125“。它适用于最小线条,但是当您尝试添加超过125条线时,它会打印出线条并仍然添加数量。

这里是我的所有代码:

public class protonkaart 

{

private double balans; 
private boolean activate; 
private int min; 
private int max; 

public protonkaart() 
{ 

    balans = 0; 
    activate = false; 
    min = 5; 
    max = 125; 
} 

public double getBalans() 

{ 
    return balans; 

} 
/** 
* balansOpladen = Add money to balance 
*/ 
public void balansOpladen (double bedrag) 
{ 
    if ((bedrag >= 5) && (balans <= 125)) 
    { 
     balans += bedrag; 
    } 
    if ((bedrag <= 5)) 
    { 
     System.out.println("U moet minstens 5 euro opladen."); 
    } 
    if ((bedrag >=125)) 
    { 
     balans += 0; 
     System.out.println("U mag maximaal 125 euro opladen!"); 
    } 
} 

}

任何帮助是值得欢迎的。

+2

这不是一门功课写作服务。您需要具体说明您的代码的实际问题 - 包括您收到的错误消息。如果你的代码没有问题,并且你根本不知道从哪里开始,那么你最好问问你的老师。 –

+2

您的第一张支票不完整。想想看,如果您尝试添加一百万,但余额低于125,会发生什么情况。您的代码无法防止这种情况发生。 – pvg

+0

欢迎来到Stack Overflow!看起来你正在寻求作业帮助。虽然我们本身没有任何问题,但请观察这些[应做和不应该](http://meta.stackoverflow.com/questions/334822/how-do-i-ask-and-answer-homework-questions/338845#338845),并相应地编辑您的问题。 –

回答

1

问题是,您必须检查总和是否小于125而不是当前值。

public void balansOpladen (double bedrag) { 
    if ((bedrag + balans >= 5) && (balans + balans <= 125)) { 
     balans += bedrag; 
    } 
    if ((bedrag + balans <= 5)) { 
     System.out.println("U moet minstens 5 euro opladen."); 
    } 
    if ((bedrag + balans >=125)) { 
     System.out.println("U mag maximaal 125 euro opladen!"); 
    } 
} 

此外,我会作出一些改变这种方法是如何构成如下:

public void balansOpladen (double bedrag) { 
    if (bedrag + balans <= 5) { 
     System.out.println("U moet minstens 5 euro opladen."); 
    } else if (bedrag + balans >=125) { 
     System.out.println("U mag maximaal 125 euro opladen!"); 
    } else { 
     balans += bedrag; 
    } 
} 
+0

谢谢你的帮助,Aleb! – user255736