模拟网上银行业务,当用户登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当前登录的账户名,并进入下一步选择操作类型。操作类型包括四种(存款:1 取款:2 余额:3 修改个人密码:4 退出:0),输入数字1、2时,将进行存取款操作,此时需要输入存取的金额,并进行正确的金额加减计算;输入数字3时,显示当前账户的余额;输入数字4时,可修改当前账户的密码;输入数字0时将退出整个系统。提示:可利用HashMap集合存储模拟的账户信息,其中key值用于存储银行卡号,value值用于存储整个账户对象。
4条回答 默认 最新
- CSDN专家-赖老师(软件之家) 2021-05-25 22:15关注
1.定义一个用户类,
2.使用map保存用户资料(相当于银行)
3.定义主界面做各种操作。
import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Scanner; /* * 1. 客户登录或注册用户 2. 查询个人账户余额 3. 取入钱款交易 4. 存入钱款交易 5. 转账交易 6. 退出账户 7. 注销账户 * 要求:1.Switch语句,循环语句,集合,继承,构造方法,抽象方法, * super,this,Scanner,静态方法等的运用、呈现。2.添加注释 * */ public class BankTest { public static void main(String[] args) { int num; Scanner input = new Scanner(System.in); UserData u=null; Map<String,UserData> userList = new HashMap<String,UserData>(); while(true) { System.out.println("***************中国银行系统***************\n"); System.out.println("1、注册 *\n"); System.out.println("2、登录 *\n"); System.out.println("3、查询个人账户 *\n"); System.out.println("4、存款 *\n"); System.out.println("5、取钱 *\n"); System.out.println("6、转账 *\n"); System.out.println("7、退出**********************************\n"); System.out.println("请选择(1~7):"); num = input.nextInt(); switch(num) { case 1: System.out.println("你选择的是开户:请输入卡号,密码,存款金额:"); u = new UserData(input.next(),input.next(),input.nextFloat()); System.out.println("开户成功,信息如下:敲任意键继续...."); System.out.println(u); userList.put(u.getId(), u); input.next(); break; case 2: System.out.println("你选择的是登录:请输入卡号,密码:"); String id = input.next(); String pwd = input.next(); u = userList.get(id); if(u==null) { System.out.println("卡号不存在:"); return; } if(u.getPassword().equals(pwd)) { System.out.println("登录成功,你的信息如下:"); System.out.println(u); } break; case 3: if(u==null) { System.out.println("用户不存。"); break; } System.out.println("你选择的是查询个人账户:信息如下:"); System.out.println(u); break; case 4: if(u==null) { System.out.println("用户不存。"); break; } System.out.println("你选择的是存款:请输入存款金额:"); float money = input.nextFloat(); u.setMoney(u.getMoney()+money); System.out.println("存款后的信息如下:"); System.out.println(u); break; case 5: if(u==null) { System.out.println("用户不存。"); break; } System.out.println("你选择的是取钱:请输入取款金额:"); money = input.nextFloat(); u.setMoney(u.getMoney()-+money); System.out.println("取款后的信息如下:"); System.out.println(u); break; case 6: if(u==null) { System.out.println("用户不存。"); break; } System.out.println("你选择的是转账:请输入对方账号:"); id = input.next(); UserData other = userList.get(id); if(other==null) { System.out.println("对方账号不存在:"); break; } System.out.println("请输入转账金额:"); money = input.nextFloat(); u.setMoney(u.getMoney()-money); other.setMoney(other.getMoney()+money); System.out.println(u); System.out.println(other); break; case 7: break; } if(num==7) break; } } } class UserData implements Serializable{ private String id; private String password; private float money; public UserData() { } public UserData(String id,String password,float money) { this.id = id; this.password = password; this.money = money; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public float getMoney() { return money; } public void setMoney(float money) { this.money = money; } @Override public String toString() { return "id:"+this.id+",密码:"+this.password+",账户余额:"+this.money; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用
悬赏问题
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 下图接收小电路,谁知道原理
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭