读书人

模拟账户查询,兑现存取款

发布时间: 2012-06-20 20:37:21 作者: rapoo

模拟账户查询,实现存取款
需求:

模拟银行账户业务,创建包ban.com,编写Account类,添加带参方法存款和取款,存款初始为0,取款时需要判断余额是否充足。

示例:

1.存款 2.取款 0.退出
请选择你需要办理的业务:1
请输入存款金额:1000
存款成功

***当前余额为:1000.0元***

1.存款 2.取款 0.退出
请选择你需要办理的业务:1
请输入存款金额:1000
存款成功

***当前余额为:2000.0元***


【就是在红色字体这个地方卡住了。。循环功能很难实现这个,最要命的是要求用带参方法,要是用set,get方法可能更好做一些。。】

1.存款 2.取款 0.退出
请选择你需要办理的业务:
请输入取款金额:500
取款成功

***当前余额为:1500.0元***

1.存款 2.取款 0.退出
请选择你需要办理的业务:0
谢谢使用!


我写的代码,乱糟糟的了。。,。。。。

Java code
package cn.puruidong.accp_13;/** * @author PuRuidong * *//* * 包含错误! */import java.util.Scanner;public class Account {    private int num ; //录入菜单数字    private double money ; //存款金额    private double offmoney ; //取款    private double sum ;        public int show (int num , double money ,double offmoney,double sum){        num = 0 ; //菜单选择        offmoney = 0.0 ; //取款        money = 0.0 ; //存款的初始值        sum = 0.0 ;        Scanner input = new Scanner (System.in);        boolean zhi = true ; //定义Boolean变量,确定循环        System.out.println("1:存款\t2.取款\t0.退出");        System.out.println("请选择你需要办理的业务:");        do {            num = input.nextInt();//录入菜单数字        switch (num){        case 1 :            System.out.println("请输入存款金额:");            money = input.nextDouble();//录入存款            if (money >0){ //存款必须大于0                System.out.println("存款成功");                zhi = true ;//值为真,继续运行                sum = money+sum ; //存款累加                //money = 0.0 ;            } else {                System.out.println("存款输入错误,请重新输入!");                zhi = true ;                break;            }            System.out.println();            break;         case 2 :{            System.out.println("请输入你的取款金额:");            offmoney = input.nextDouble ();            if (offmoney>money){                System.out.println("取款成功");                System.out.println("***当前余额是:"+(money-offmoney)+"***");                zhi = true ;            }else {                System.out.println("抱歉,余额不足!");                zhi = false ;            }        }        break;        case 0 :            System.out.println("谢谢使用!");            zhi = false ;//值为假退出循环            break;        }        System.out.println("***当前余额为:"+sum+"元***");        System.out.println("1:存款\t2.取款\t0.退出");        System.out.println("请选择你需要办理的业务:");        num = input.nextInt();//录入菜单数字        continue ;        } while (zhi==false);                return num ;    }    public static void main(String[] args) {        Account center = new Account ();         int num = 0;         double money = 0.0;         double offmoney = 0.0;         double sum = 0.0 ;        center.show(num, money, offmoney, sum);    }}



另一段代码(功能相同,思路改变了,但不能循环输出菜单了。。)

Java code
package cn.puruidong.accp_13;import java.util.Scanner;public class TestAccount {    private int caidan ;    private double money ;    private double offmoney ;    private double sum ;    private boolean zhi ;        public TestAccount (){        super();    }        public int show (){        Scanner input = new Scanner (System.in);        System.out.println("1.存款\t2.取款\t3.退出");        System.out.println("请选择你需要的办理的业务:");        caidan = input.nextInt();        return caidan;    }        public double cunkuan (double sum){        Scanner input = new Scanner (System.in);        do {            caidan = input.nextInt();            if (caidan==1){                System.out.println("请输入存款金额:");                money = input.nextDouble();                System.out.println("存款成功");                sum = money + sum ;            }            System.out.println("***当前余额是"+sum+"******");            System.out.println("1.存款\t2.取款\t3.退出");            System.out.println("请选择你需要的办理的业务:");        } while (caidan==0);        return sum ;        }            public double qukuan (double offmoney){        Scanner input = new Scanner (System.in);        for (int i =1;i<100;i++){        if (caidan==2){            System.out.println("请输入取款金额");            offmoney = input.nextDouble();            if (sum>offmoney&&zhi==true){                System.out.println("取款成功!");            }else {                System.out.println("余额不足!");            }        }        }        if (zhi==true){            System.out.println("***当前余额是:"+(sum-offmoney)+"*****");        }        return offmoney ;    }        public void tuichu (){        if (caidan==3){            System.out.println("谢谢使用!");        }        zhi = false ;    }            public static void main(String[] args) {        TestAccount center = new TestAccount ();        double sum =0.0 ;        double offmoney = 0.0 ;        boolean zhi = true ;        do{            center.show();            center.cunkuan(sum);            center.qukuan(offmoney);            center.tuichu();        }while (zhi==false);    }} 



我觉得第二段代码比较好理解一些,希望高手给指点一下,谢谢!(如果写代码,请加点注释,谢谢)

[解决办法]
Java code
package org.lw.test;import java.util.Scanner;public class Account {    private static double sum = 0.0;        public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        int operation = 0;        double money = 0.0;                while(true){            System.out.println("1:存款\t2.取款\t0.退出");            System.out.print("请选择你需要办理的业务:");            operation = sc.nextInt();            switch(operation){            case 0:                System.exit(0);                break;            case 1:                System.out.print("请输入存款金额:");                money = sc.nextDouble();                cunKuan(money);                break;            case 2:                System.out.print("请输入取款金额:");                money = sc.nextDouble();                quKuan(money);                break;            }        }    }    private static void cunKuan(double money) {                sum += money;        System.out.println("存款成功!");        System.out.println("***余额为:" + sum + " ***");        System.out.println();    }    private static void quKuan(double money) {                if(money>sum){            System.out.println("抱歉,余额不足!");        }else{            sum -=money;            System.out.println("取款成功!");            System.out.println("***余额为:" + sum + " ***");        }        System.out.println();    }}
[解决办法]
简单的写了一个,你看看可以不
java code
package ban.com;

import java.util.Scanner;

public class Account {
private double money = 0;
public boolean SaveMoney(double saveMoney )//存钱
{
if ( saveMoney > 0 ){
this.money +=saveMoney;
return true;
}
return false;
}
public boolean GetMoney(double getMoney)//取钱
{
if ( this.money >= getMoney){
this.money -= getMoney;
return true;
}
return false;
}
public double getGalance(){//查询余额
return this.money;
}
public static void main(String args[] ){
int num = 0;
double money;
Account moneyAccount = new Account();
Scanner input = new Scanner (System.in);
do {
System.out.println("***当前余额为:"+moneyAccount.getGalance()+"元***");
System.out.println("1:存款\t2.取款\t0.退出");
System.out.println("请选择你需要办理的业务:");
try {
num = input.nextInt();//录入菜单数字
} catch (Exception e) {
num = 0;
}
if ( num == 1 ){
System.out.println("请输入存款金额:");
try {
money = input.nextDouble();//录入存款
if (moneyAccount.SaveMoney(money)){
System.out.println("存款成功");
}
else {
System.out.println("存款失败,存款金额必须大于0");
}
} catch (Exception e) {
System.out.println("存款失败,请确定输入正确!");
}
}
else if (num ==2 ){
System.out.println("请输入取款金额:");
try {
money = input.nextDouble();//录入存款
if (moneyAccount.GetMoney(money)){
System.out.println("取款成功");
}
else {
System.out.println("取款失败,余额不足");
}
} catch (Exception e) {
System.out.println("取款失败,请确定输入正确!");
}
}
} while (num != 0);
}
}

读书人网 >J2SE开发

热点推荐