Java储蓄账户类及测试类,模拟存款

老师布置了一个实验题:编写储蓄账户类及测试类,模拟存款,参考以下运行方式:

1.新开5个储蓄账户,各储蓄账户的编号、户名在新开储蓄账户时初始化,假设每位用户新开储蓄账户时都存入了一笔钱。

2.提示用户从键盘输入储蓄帐号编号。

3.若输入的储蓄账户编号与新开的5个储蓄账户编号之一匹配,则提示用户从键盘输入存款金额,存款金额必须大于0,否则显示错误提示,直到用户输入的存款金额大于0为止。

4.相应储蓄账户的余额被更新。

5.存款完成后,提示存款成功,显示该储蓄账户的编号、户名、余额。

6.若输入的储蓄账户编号与新开的5个储蓄帐号均无法匹配,显示错误提示,并询问是否继续存款。

7.用户输入yes,继续执行步骤2,否则显示退出信息。基本要求:储蓄账户的余额必须确保大于等于0。

并且老师提示到会用java.util.Map; java.util.HasMap;请自行查询API文档。这或许是为了加点难度吧。

通过查资料了解到Map是从键到值的映射,键不允许重复,每个键最多只能一个映射值。所以java.util.Map是用于步骤3,检测输入帐号是否与已开的5个帐号之一匹配的。想详细了解Map请自己查一下吧!

下面直接上代码吧!

package depositSystem;         //我新建的包
import java.util.Scanner;
public class depositAccount {          //定义储存账户类
	int AccountNumber;                 //账户号
	String AccountName;                //户名
	double Balance;                    //余额
	depositAccount(int AcNum,String AcNa,double B){       
		AccountNumber=AcNum;
		AccountName=AcNa;
		Balance=B;
	}
	
	void deposit() {                  //存款方法
		Scanner read=new Scanner(System.in);
	    double b=read.nextDouble();
		while(b<0) {
			System.out.println("存款金额需大于0额!再给你一次机会!");
			b=read.nextDouble();
		}
		Balance+=b;
		System.out.println("存款成功!");
		}
	void show() {                    //显示储蓄账户信息
		System.out.println("账号:"+AccountNumber);
		System.out.println("用户名:"+AccountName);
		System.out.println("余额:"+Balance);
	}
}

下面是测试类代码

package depositSystem;

import java.util.Map;
import java.util.HashMap;
import java.util.Scanner;

public class depositTest {

	public static void main(String[] args) {
	depositAccount user1=new depositAccount(2020001,"关羽",100);
	depositAccount user2=new depositAccount(2020002,"张飞",100);
	depositAccount user3=new depositAccount(2020003,"黄忠",100);
	depositAccount user4=new depositAccount(2020004,"赵云",100);
	depositAccount user5=new depositAccount(2020005,"马超",100);
	Scanner scanner=new Scanner(System.in);
	int a;
	String x="yes";
	Map<Integer,depositAccount>map=new HashMap<>(); //初始化Map,以帐号类型为健,储蓄类为值
	map.put(2020001,user1);       //put方法把对应的数据放进Map中储存 
	map.put(2020002,user2);
	map.put(2020003,user3);
	map.put(2020004,user4);
	map.put(2020005,user5);
	while(x.equals("yes")) {      //equals判断字符串x中的字符是否为yes,返回bool值为类型
	System.out.println("请输入你的账号:");
	a=scanner.nextInt();
	if(map.get(a)!=null){         //get方法通过键找对应的值
		System.out.println("请输入存款金额:");
		map.get(a).deposit();
		map.get(a).show();
		x="exit";
	}
	else {
		System.out.println("用户名错误!");
		System.out.println("是否重新输入账号?\n输入yes继续,否则退出。");
		x=scanner.next();       //更新字符串X
	}
	}
	System.out.println("感谢你的使用,祝您生活愉快!");
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值