需求:模拟银行账户业务,创建包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
谢谢使用!
我写的代码,乱糟糟的了。。,。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);
}
}另一段代码(功能相同,思路改变了,但不能循环输出菜单了。。)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);
}}
我觉得第二段代码比较好理解一些,希望高手给指点一下,谢谢!(如果写代码,请加点注释,谢谢)

解决方案 »

  1.   

    兄弟:看清楚题目啊,
    模拟银行账户业务,创建包ban.com,编写Account类,添加带参方法存款和取款,存款初始为0,取款时需要判断余额是否充足存款和去取款时方法,你的代码里面我没有看到这两个方法啊?
      

  2.   


    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();
    }
    }
    看看这个吧,就是没有做容错处理,
      

  3.   

    不错啊,我刚看了JVM的GC回收机制,就看到你用: System.exit(0);了。。
    巧合啊。、。
      

  4.   

    是JVM实例的消亡,不是GC。记错了。。