Java 自动提款机

Java 自动提款机,java,Java,Java学徒我尝试重新创建一个自动提款机。到目前为止一切都很顺利,我的班级必须参加一神论考试,但他(它)在16投2中不及格。我看不出错误会从何而来。有谁能帮我把它公布出来,并尽可能地帮我?代码如下: public class DABiP { int nbBillet100; int nbBillet50; int nbBillet20 ; int nbBillet10 ; int nbPiece2; int nbPiece1; //Constructeur privé private

Java学徒我尝试重新创建一个自动提款机。到目前为止一切都很顺利,我的班级必须参加一神论考试,但他(它)在16投2中不及格。我看不出错误会从何而来。有谁能帮我把它公布出来,并尽可能地帮我?代码如下:

public class DABiP {
int nbBillet100;
int nbBillet50;
int nbBillet20 ;
int nbBillet10 ; 
int nbPiece2; 
int nbPiece1; 

//Constructeur privé
private DABiP(int b10, int b5, int b2, int b1, int p2, int p1){
    nbBillet100 = b10;
    nbBillet50  = b5;
    nbBillet20  = b2;
    nbBillet10  = b1;
    nbPiece2    = p2;
    nbPiece1    = p1;
}
//DABiP initialisé avec 100 unités de chaque, soit 18300euros
public DABiP(){
    this(100, 100, 100, 100, 100, 100);
}

/************************************************************
* SEULES LES METHODES QUI SUIVENT DOIVENT ETRE MODIFIEES
*************************************************************/

//Calculer le montant restant dans le DABiP
public int calculerMontantRestantDansDABiP(){
    int a;

    a = nbBillet100 * 100 + nbBillet50 * 50 + nbBillet20 * 20 + nbBillet10 * 10 + nbPiece2 * 2 + nbPiece1 * 1;

    return a;
}
//Retirer une somme d'argent du DABiP
public boolean retrait(int somme){

    int x = 0;

    if(somme > calculerMontantRestantDansDABiP()) {
        return false;   
    }
    else if(somme < 0) {
        return false;
    }

    else{
        if(somme/100 > 1){
            x = somme/100;
            if(nbBillet100 - x >= 0){
                nbBillet100 = nbBillet100 - x;
                somme = somme - 100 * x;
            }
            else {
                x = nbBillet100;
                nbBillet100 = 0;
                somme = somme - 100 * x;
            }
        }

        if(somme/50 > 1){
            x = somme/50;
            if(nbBillet50 - x >= 0){
                nbBillet50 = nbBillet50 - x;
                somme = somme - 50 * x;
            }
            else{
                x = nbBillet50;
                nbBillet50 = 0;
                somme = somme - 50 * x;
            }
        }

        if(somme/20 > 1){
            x  = somme/20;
            if(nbBillet20 - x >= 0){
                nbBillet20 = nbBillet20 - x;
                somme = somme - 20 * x;
            }
            else{
                x = nbBillet20;
                nbBillet20 = 0;
                somme = somme - 20 * x;
            }
        }

        if(somme/10 > 1){
            x = somme/10;
            if(nbBillet10 - x >= 0){
                nbBillet10 = nbBillet10 - x;
                somme = somme - 10 * x;
            }
            else{
                x = nbBillet10;
                nbBillet10 = 0;
                somme = somme - 10 * x;
            }
        }

        if(somme/2 > 1){
            x = somme/2;
            if(nbPiece2 - x >= 0){
                nbPiece2 = nbPiece2 - x;
                somme = somme - 2 * x;
            }
            else{
                x = nbPiece2;
                nbPiece2 = 0;
                somme = somme - 2 * x;
            }
        }

        if(somme >= 1){
            x = somme;
            if(nbPiece1 - x >= 0){
                nbPiece1 = nbPiece1 - x;
                somme = somme - x;
            }
            else{
                x = nbPiece1;
                nbPiece1 = 0;
                somme = somme - x;
            }
            }
    return true;
    }

}
公共类DABiP{
国际NBT100;
国际nbt50;
int NBT20;
int NBT10;
int NB2;
int NB1;
//私人建筑公司
私有DABiP(内部b10、内部b5、内部b2、内部b1、内部p2、内部p1){
NBT100=b10;
nbt50=b5;
NBT20=b2;
NBT10=b1;
nb2=p2;
NB1=p1;
}
//DABiP缩写为©avec 100单位©s de chaque,索伊特18300欧元
公共DABiP(){
这(100100100100100100100100);
}
/************************************************************
*这些方法都是经过修改的
*************************************************************/
//蒙塔特伯爵酒店
公共int计算器MontantRestantDansDABIP(){
INTA;
a=nbBillet100*100+nbBillet50*50+nbBillet20*20+nbBillet10*10+nbPiece2*2+nbPiece1*1;
返回a;
}
//退休者银发
公共布尔重传(int-somme){
int x=0;
if(somme>calculerMontantRestantDansDABiP()){
返回false;
}
else if(somme<0){
返回false;
}
否则{
如果(somme/100>1){
x=somme/100;
如果(NBT 100-x>=0){
nbBillet100=nbBillet100-x;
somme=somme-100*x;
}
否则{
x=NBT100;
NBT100=0;
somme=somme-100*x;
}
}
如果(somme/50>1){
x=somme/50;
如果(nbt50-x>=0){
nbBillet50=nbBillet50-x;
somme=somme-50*x;
}
否则{
x=nbt50;
nbt50=0;
somme=somme-50*x;
}
}
如果(somme/20>1){
x=somme/20;
如果(NBT 20-x>=0){
nbbilet20=nbbilet20-x;
somme=somme-20*x;
}
否则{
x=NbT 20;
NBT20=0;
somme=somme-20*x;
}
}
如果(somme/10>1){
x=somme/10;
如果(NBT10-x>=0){
nbBillet10=nbBillet10-x;
somme=somme-10*x;
}
否则{
x=nbt10;
NBT10=0;
somme=somme-10*x;
}
}
如果(somme/2>1){
x=somme/2;
如果(2-x>=0){
nbPiece2=nbPiece2-x;
somme=somme-2*x;
}
否则{
x=Nb2;
nb2=0;
somme=somme-2*x;
}
}
如果(somme>=1){
x=体细胞;
如果(1-x>=0){
nbPiece1=nbPiece1-x;
somme=somme-x;
}
否则{
x=1;
NB1=0;
somme=somme-x;
}
}
返回true;
}
}
}

我的测试:

public class Notation {
public static void main(String[] args) throws InterruptedException {
    DABiP dab;
    double note     = 0;
    double score    = 0;

    //Test 1
    System.out.print("Test 01: ");
    dab         = new DABiP();
    if(dab.calculerMontantRestantDansDABiP() == 18300){
        score++;
        System.out.println("ok");
    }
    else{
        System.out.println("non");
    }

    //Test 2
    System.out.print("Test 02: ");
    dab.nbBillet100 = 95;
    if(dab.calculerMontantRestantDansDABiP() == 17800){
        score++;
        System.out.println("ok");
    }
    else{
        System.out.println("non");
    }

    //Test 3
    System.out.print("Test 03: ");
    dab.nbBillet50  = 97;
    dab.nbPiece2    = 96;
    dab.nbPiece1    = 97;
    if(dab.calculerMontantRestantDansDABiP() == 17639){
        score++;
        System.out.println("ok");
    }
    else{
        System.out.println("non");
    }

    //Test 4
    System.out.print("Test 04: ");
    int tab[] = {100, 50, 20, 10, 2, 1};
    int p = 0;
    for(int i = 0; i < 10; i++){
        int rand = tab[(int)(Math.random()*100)%tab.length];
        int nb = (int)(Math.random()*100)%6;
        p += (rand==100?100*nb:0);
        p += (rand==50?50*nb:0);
        p += (rand==20?20*nb:0);
        p += (rand==10?10*nb:0);
        p += (rand==2?2*nb:0);
        p += (rand==1?1*nb:0);
        dab.nbBillet100-=(rand==100?nb:0);
        dab.nbBillet50-=(rand==50?nb:0);
        dab.nbBillet20-=(rand==20?nb:0);
        dab.nbBillet10-=(rand==10?nb:0);
        dab.nbPiece2-=(rand==2?nb:0);
        dab.nbPiece1-=(rand==1?nb:0);
    }
    if(dab.calculerMontantRestantDansDABiP() == 17639-p){
        score++;
        System.out.println("ok");
    }
    else{
        System.out.println("non");
    }

    //Test 5
    System.out.print("Test 05: ");
    dab.nbBillet100 = 0;
    dab.nbBillet50  = 0;
    dab.nbBillet20  = 0;
    dab.nbBillet10  = 0;
    dab.nbPiece2    = 0;
    dab.nbPiece1    = 0;
    if(dab.calculerMontantRestantDansDABiP() == 0){
        score++;
        System.out.println("ok");
    }
    else{
        System.out.println("non");
    }

    //Test 6
    System.out.print("Test 06: ");
    dab = new DABiP();
    boolean r = dab.retrait(0);
    if(r && dab.nbBillet100 == 100 && dab.nbBillet50 == 100 && dab.nbBillet20 == 100 && dab.nbBillet10 == 100 && dab.nbPiece2 == 100 && dab.nbPiece1 == 100){
        score++;
        System.out.println("ok");

    }
    else{
        System.out.println("non");
    }

    //Test 7
    System.out.print("Test 07: ");
    dab = new DABiP();
    r = dab.retrait(40);
    if(r && dab.nbBillet100 == 100 && dab.nbBillet50 == 100 && dab.nbBillet20 == 98 && dab.nbBillet10 == 100 && dab.nbPiece2 == 100 && dab.nbPiece1 == 100){
        score++;
        System.out.println("ok");

    }
    else{
        System.out.println("non");
    }

    //Test 8
    System.out.print("Test 08: ");
    dab = new DABiP();
    r = dab.retrait(367);
    if(r && dab.nbBillet100 == 97 && dab.nbBillet50 == 99 && dab.nbBillet20 == 100 && dab.nbBillet10 == 99 && dab.nbPiece2 == 97 && dab.nbPiece1 == 99){
        score++;
        System.out.println("ok");

    }
    else{
        System.out.println("non");
    }

    //Test 9
    System.out.print("Test 09: ");
    dab = new DABiP();
    r = dab.retrait(18300);
    if(r && dab.nbBillet100 == 0 && dab.nbBillet50 == 0 && dab.nbBillet20 == 0 && dab.nbBillet10 == 0 && dab.nbPiece2 == 0 && dab.nbPiece1 == 0){
        score++;
        System.out.println("ok");

    }
    else{
        System.out.println("non");
    }

    //Test 10
    System.out.print("Test 10: ");
    dab = new DABiP();
    r = dab.retrait(18301);
    if(!r && dab.nbBillet100 == 100 && dab.nbBillet50 == 100 && dab.nbBillet20 == 100 && dab.nbBillet10 == 100 && dab.nbPiece2 == 100 && dab.nbPiece1 == 100){
        score++;
        System.out.println("ok");

    }
    else{
        System.out.println("non");
    }

    //Test 11
    System.out.print("Test 11: ");
    dab = new DABiP();
    r = dab.retrait(19634);
    if(!r && dab.nbBillet100 == 100 && dab.nbBillet50 == 100 && dab.nbBillet20 == 100 && dab.nbBillet10 == 100 && dab.nbPiece2 == 100 && dab.nbPiece1 == 100){
        score++;
        System.out.println("ok");

    }
    else{
        System.out.println("non");
    }

    //Test 12
    System.out.print("Test 12: ");
    dab = new DABiP();
    dab.nbBillet100 = 2;
    r = dab.retrait(300);
    if(r && dab.nbBillet100 == 0 && dab.nbBillet50 == 98 && dab.nbBillet20 == 100 && dab.nbBillet10 == 100 && dab.nbPiece2 == 100 && dab.nbPiece1 == 100){
        score+=2;
        System.out.println("ok");

    }
    else{
        System.out.println("non");
    }

    //Test 13
    System.out.print("Test 13: ");
    dab = new DABiP();
    dab.nbBillet100 = 2;
    dab.nbBillet50  = 1;
    dab.nbBillet20  = 5;
    dab.nbBillet10  = 6;
    dab.nbPiece2    = 50;
    r = dab.retrait(407);
    if(r && dab.nbBillet100 == 0 && dab.nbBillet50 == 0 && dab.nbBillet20 == 0 && dab.nbBillet10 == 1 && dab.nbPiece2 == 47 && dab.nbPiece1 == 99){
        score+=2;
        System.out.println("ok");

    }
    else{
        System.out.println("non");
    }

    //Test 14
    System.out.print("Test 14: ");
    dab = new DABiP();
    dab.nbBillet100 = 0;
    dab.nbBillet50  = 0;
    dab.nbBillet20  = 0;
    dab.nbBillet10  = 0;
    dab.nbPiece2    = 0;

    r = dab.retrait(57);
    if(r && dab.nbBillet100 == 0 && dab.nbBillet50 == 0 && dab.nbBillet20 == 0 && dab.nbBillet10 == 0 && dab.nbPiece2 == 0 && dab.nbPiece1 == 43){
        score+=2;
        System.out.println("ok");

    }
    else{
        System.out.println("non");
    }

    //Test 15
    System.out.print("Test 15: ");
    dab = new DABiP();
    r = dab.retrait(-1634);
    if(!r && dab.nbBillet100 == 100 && dab.nbBillet50 == 100 && dab.nbBillet20 == 100 && dab.nbBillet10 == 100 && dab.nbPiece2 == 100 && dab.nbPiece1 == 100){
        score++;
        System.out.println("ok");

    }
    else{
        System.out.println("non");
    }

    //Test 16
    System.out.print("Test 16: ");
    dab = new DABiP();
    dab.nbBillet100 = 5;
    dab.nbBillet50 = 0;
    dab.nbBillet20 = 0;
    dab.nbBillet10 = 0;
    dab.nbPiece2 = 0;
    dab.nbPiece1 = 5;
    r = dab.retrait(12);
    if(!r && dab.nbBillet100 == 5 && dab.nbBillet50 == 0 && dab.nbBillet20 == 0 && dab.nbBillet10 == 0 && dab.nbPiece2 == 0 && dab.nbPiece1 == 5) {
        score+=2;
        System.out.println("ok");
    }
    else {
        System.out.println("non");
    }


    /**
     * NOTATION
     */

    System.out.println("--------------------------");
    System.out.println("Note: "+score+"/20");


}
公共类表示法{
公共静态void main(字符串[]args)引发InterruptedException{
达比普·达布;
双音符=0;
双倍得分=0;
//测试1
系统输出打印(“测试01:”);
dab=新的DABiP();
如果(dab.calculerMontantRestantDansDABiP()==18300){
分数++;
System.out.println(“ok”);
}
否则{
系统输出打印项次(“非”);
}
//测试2
系统输出打印(“测试02:”);
dab.nbBillet100=95;
如果(dab.calculerMontantRestantDansDABiP()=17800){
分数++;
System.out.println(“ok”);
}
否则{
系统输出打印项次(“非”);
}
//测试3
系统输出打印(“测试03:”);
dab.NBT=50=97;
dab.2=96;
dab.1=97;
如果(dab.calculerMontantRestantDansDABiP()=17639){
分数++;
System.out.println(“ok”);
}
否则{
系统输出打印项次(“非”);
}
//测试4
系统输出打印(“测试04:”);
int tab[]={100,50,20,10,2,1};
int p=0;
对于(int i=0;i<10;i++){
int rand=tab[(int)(Math.random()*100)%tab.length];
int nb=(int)(Math.random()*100)%6;
p+=(rand==100?100*nb:0);
p+=(rand==50?50*nb:0);
p+=(rand==20?20*nb:0);
p+=(rand==10?10*nb:0);
p+=(rand==2?2*nb:0);
p+=(rand==1?1*nb:0);
dab.nbBillet100-=(兰德==100?nb:0);
dab.NBBILET50-=(兰特=50?nb:0);
dab.nbBillet20-=(兰特==20?nb:0);
dab.nbBillet10-=(兰德==10?nb:0);
dab.nbPiece2-=(rand==2?nb:0);
dab.nbPiece1-=(rand==1?nb:0);
}
如果(dab.calculerMontantRestantDansDABiP()=17639-p){
分数++;
System.out.println(“ok”);
}
否则{
系统输出打印项次(“非”);
}
//测试5
系统输出打印(“测试05:”);
dab.nbBillet100=0;
dab.nbt50=0;
dab.NBT 20=0;
dab.NBT10=0;
dab.2=0;
dab.1=0;
如果(dab.calculerMontantRestantDansDABiP()==0){
分数++;
System.out.println(“ok”);
}
否则{
系统输出打印项次(“非”);
}
//测试6
系统输出打印(“测试06:”);
dab=新的DABiP();
布尔r=dab.retrit(0);
如果(r&&dab.nbbilet100==100&&dab.nbbilet50==100&&dab.nbbilet20==100&&dab.nbbilet10==100&&dab.nbPiece2==100&&dab.nbPiece1==100){
分数++;
System.out.println(“ok”);
}
否则{
系统输出打印项次(“非”);
}
if(somme/100 > 1){ ...
if(somme/100 >= 1){ ...
if(somme >= 1){
        x = somme;
        if(nbPiece1 - x >= 0){
            nbPiece1 = nbPiece1 - x;
            somme = somme - x;
        }
        else{
            x = nbPiece1;
            nbPiece1 = 0;
            somme = somme - x;
        }
    }
if(somme >= 1){
            x = somme;
            if(nbPiece1 - x >= 0){
                nbPiece1 = nbPiece1 - x;
                somme = somme - x;
            }
            else{
                x = nbPiece1;
                nbPiece1 = 0;
                somme = somme - x;

                // ADD A CHECK HERE
                if(somme > 0){
                    return false;
                }
            }
        }