日期:2014-05-20  浏览次数:20774 次

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

模拟银行账户业务,创建包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);
    }

}