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

student-ai 2012-05-25 02:59:21
需求:

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

}


我觉得第二段代码比较好理解一些,希望高手给指点一下,谢谢!(如果写代码,请加点注释,谢谢)
...全文
1014 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
古市轩 2012-05-26
  • 打赏
  • 举报
回复
System.exit(0);表示正常终止JVM!
student-ai 2012-05-25
  • 打赏
  • 举报
回复
是JVM实例的消亡,不是GC。。。。记错了。。
[Quote=引用 2 楼 的回复:]

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 Sc……
[/Quote]
student-ai 2012-05-25
  • 打赏
  • 举报
回复
不错啊,我刚看了JVM的GC回收机制,就看到你用: System.exit(0);了。。
巧合啊。、。
[Quote=引用 2 楼 的回复:]

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 Sc……
[/Quote]
hnu_0720 2012-05-25
  • 打赏
  • 举报
回复
简单的写了一个,你看看可以不
[Quote=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);
}
}

[/Quote]
古市轩 2012-05-25
  • 打赏
  • 举报
回复

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();
}
}


看看这个吧,就是没有做容错处理,
hnu_0720 2012-05-25
  • 打赏
  • 举报
回复
兄弟:看清楚题目啊,
模拟银行账户业务,创建包ban.com,编写Account类,添加带参方法存款和取款,存款初始为0,取款时需要判断余额是否充足

存款和去取款时方法,你的代码里面我没有看到这两个方法啊?

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧