模拟网上银行业务,当用户登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当前登录的账户名,并进入下一步选择操作类型。操作类型包括四种(存款: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 Marscode IDE 如何预览新建的 HTML 文件
- ¥15 K8S部署二进制集群过程中calico一直报错
- ¥15 java python或者任何一种编程语言复刻一个网页
- ¥20 如何通过代码传输视频到亚马逊平台
- ¥15 php查询mysql数据库并显示至下拉列表中
- ¥15 freertos下使用外部中断失效
- ¥15 输入的char字符转为int类型,不是对应的ascall码,如何才能使之转换为对应ascall码?或者使输入的char字符可以正常与其他字符比较?
- ¥15 devserver配置完 启动服务 无法访问static上的资源
- ¥15 解决websocket跟c#客户端通信
- ¥30 Python调用dll文件输出Nan重置dll状态