一个不知名大学生,江湖人称菜狗
original author: jacky Li
Email : 3435673055@qq.com

Time of completion:2022.12.20
Last edited: 2022.12.20

目录

一、实验目的

二、实验内容

三、总体设计(设计原理、设计方案及流程等)

四、参考代码

有关银行子类的代码1  BankAccount

有关该项目的主体实现代码2  Main

五、运行效果

作者有言


课程名称

面向对象程序设计(Java)

指导教师

***

学号

姓名

实验地点

***

实验时间

***

项目名称

模拟银行存取款业务

实验类型

综合性

一、实验目的

(1)全面检验面向对象编程思想,巩固Java面向对象、集合和常用API类等方面知识的应用;

(2)加强实践动手能力,能够将从书本上学习到的理论知识用到了实践上。

二、实验内容

模拟网上银行业务,当用户登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当前登录的账户名,并进入下一步选择操作类型。操作类型包括四种(存款:1  取款:2  余额:3  修改个人密码:4  退出:0),输入数字1、2时,将进行存取款操作,此时需要输入存取的金额,并进行正确的金额加减计算;输入数字3时,显示当前账户的余额;输入数字4时,可修改当前账户的密码;输入数字0时将退出整个系统。提示:可利用HashMap集合存储模拟的账户信息,其中key值用于存储银行卡号,value值用于存储整个账户对象。

三、总体设计(设计原理、设计方案及流程等)

该部分听从友友建议已删除,该代码只能用于参考

四、参考代码

有关银行子类的代码1  BankAccount

/*original author: jacky LiEmail : 3435673055@qq.comTime of completion:2022.12.20Last edited: 2022.12.20
*/package bank;/*** 银行账户实体类**/
public class BankAccount {private String name;private String bankId;private String password;private double money;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getBankId() {return bankId;}public void setBankId(String bankId) {this.bankId = bankId;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public double getMoney() {return money;}public void setMoney(double money) {this.money = money;}@Overridepublic String toString() {return "账户名:" + name + "\n银行卡号:" + bankId + "\n银行卡密码:" + password + "\n余额:" + money;}public BankAccount(String name, String bankId, String password, double money) {super();this.name = name;this.bankId = bankId;this.password = password;this.money = money;}public BankAccount() {super();}}

有关该项目的主体实现代码2  Main

/*original author: jacky LiEmail : 3435673055@qq.comTime of completion:2022.12.20Last edited: 2022.12.20
*/package bank;import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;public class Main {// 储存账户信息private static Map<String, BankAccount> accounts;private static Scanner scanner = new Scanner(System.in);private static BankAccount bankAccount;/*** 初始化账户信息* * @return 初始化结果*/public static boolean init() {BankAccount account1 = new BankAccount("张三", "11234", "123", 1000.99);BankAccount account2 = new BankAccount("李四", "22134", "456", 2000);BankAccount account3 = new BankAccount("王五", "33124", "789", 100.99);accounts = new HashMap<String, BankAccount>();accounts.put(account1.getBankId(), account1);accounts.put(account2.getBankId(), account2);accounts.put(account3.getBankId(), account3);// 返回初始化结果return accounts.isEmpty() ? false : true;}/*** 系统入口* * @param args*/public static void main(String[] args) {System.out.println("银行系统正在启动...");if (init()) {System.out.println("--系统启动成功--");System.out.println("输入卡号:");String id = scanner.next();System.out.println("输入密码:");String psw = scanner.next();if (login(id, psw)) {// 进入系统System.out.println("--登录成功--");menu(bankAccount);} else {System.out.println("--登录失败--");}} else {System.out.println("--系统启动失败--");}}/*** 返回登录结果* * @param id* @param psw* @return*/private static boolean login(String id, String psw) {bankAccount = accounts.get(id);return null == bankAccount ? false : true;}/*** 功能菜单* * @param account*/private static void menu(BankAccount account) {System.out.println("--当前账户:" + account.getName() + "--");main: while (true) {System.out.println("1:存款   2:取款    3:余额    4:修改密码  0:退出");int item = scanner.nextInt();switch (item) {case 0:scanner.close();System.out.println("--退出系统--");break main;case 1:System.out.println("--存款系统--");saveMoney(accounts, account);break;case 2:System.out.println("--取款系统--");ereduceMoney(accounts, account);break;case 3:System.out.println("--余额系统--");showMoney(account);break;case 4:System.out.println("--修改密码--");rePassword(accounts, account);break;default:System.out.println("--错误的指令--");break;}}}/*** 修改密码* * @param accounts2* @param account*/private static void rePassword(Map<String, BankAccount> accs, BankAccount account) {System.out.println("输入旧的密码:");String oldPsw = scanner.next();if (oldPsw.equals(account.getPassword())) {System.out.println("输入新的密码:");String newPsw = scanner.next();account.setPassword(newPsw);accs.put(account.getBankId(), account);System.out.println("--修改成功--");} else {System.out.println("--旧密码错误--");}}private static void showMoney(BankAccount account) {System.out.println(account);}/*** 取款* * @param accounts2* @param account*/private static void ereduceMoney(Map<String, BankAccount> accounts2, BankAccount account) {System.out.println("输入取款金额:");double money = scanner.nextDouble();double now = account.getMoney();if (money <= now) {account.setMoney(now - money);accounts2.put(account.getBankId(), account);System.out.println("--取款成功--");} else {System.out.println("--余额不足--");}}private static void saveMoney(Map<String, BankAccount> accounts2, BankAccount account) {System.out.println("输入存入金额:");double money = scanner.nextDouble();account.setMoney(account.getMoney() + money);accounts2.put(account.getBankId(), account);System.out.println("--存款成功--");}
}

五、运行效果

作者有言

如果感觉博主讲的对您有用,请点个关注支持一下吧,将会对此类问题持续更新……

java实验报告之模拟银行存取款业务相关推荐

  1. java模拟银行存取_JAVA基础案例 模拟银行存取款业务

    模拟银行存取款业务 编写一个Java应用程序,模拟网上银行登录及存取款业务.登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当前登录的账户名,并进入下一步选择操作类型.操作 ...

  2. java模仿银行账务业务_Java基础案例 - 模拟银行存取款业务

    博学谷--让IT教学更简单,让IT学习更有效 模拟银行存取款业务 编写一个Java应用程序,模拟网上银行登录及存取款业务.登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当 ...

  3. 模拟银行存款java,模拟银行存取款业务

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 public class Account { // 初始化存款 float count = 0f;// 当前账户余额 int money1;// 存款数, ...

  4. 模拟银行存取款业务 java

    实训题5:模拟银行存取款业务 实训目的:本项目的主要功能是模拟银行的存取款业务,当用户登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当前登录的账户名,并进入下一步选择操作 ...

  5. 基于Java语言实现模拟银行存取款业务系统

    资源下载地址:https://download.csdn.net/download/sheziqiong/85820969 1.项目简介 本项目的主要功能是模拟银行的存取款业务,当用户登录时需判断银行 ...

  6. 模拟银行存取款业务 简要代码

    本项目的主要功能是模拟银行的存取款业务,当用户登录时需判断银行卡号和银行卡密码,当输入的 卡号和密码都正确时,登录成功,提示当前登录的账户名,并进入下一步选择操作类型.操作类型包括四种(存款:1取款: ...

  7. python代码设计测试用例_[CP_01] Python循环结构案例:模拟银行存取款业务,设计执行测试用例...

    目录结构 一.案例描述 二.需求分析 1. 业务流程图 2. 业务项&测试场景 三.代码实现 四.用例设计&执行(简化模式) 1. 登录业务 2. 存款业务 3. 取款业务 4. 退卡 ...

  8. 模拟银行存取款业务(GUI版)

    一.实验目的 (1)全面检验面向对象编程思想,巩固Java面向对象.集合和常用API类等方面知识的应用: (2)加强实践动手能力,能够将从书本上学习到的理论知识用到了实践上. 二.实验内容 模拟网上银 ...

  9. java银行业务_java模拟银行存取款业务

    //创建基接口BankAccount,包含 存款方法playIn(),取款方法withdraw(),查询余额方法getBalance(). interfaceBankAccount{void play ...

最新文章

  1. 关于 hashcode 和 equals
  2. 全球资金看好中国的AI(人工智能)
  3. 多进程python_python -- 多进程
  4. 手把手教你写网络爬虫(4)Scrapy入门
  5. 开盘即破发,网易有道赴美上市,继续发力在线教育
  6. WordPress网站弹窗插件PopupPress插件
  7. 3、什么是控制反转(IoC),什么是依赖注入
  8. Linux学习(第十七周)
  9. 24Ghz毫米波雷达,人体存在检测轨迹检测雷达传感模块,应用智能家居
  10. Electron 使用Widevine CDM插件
  11. Xshell5 注册码 ,Xftp5 注册码,Xmanager5注册码
  12. 宿舍管理系统简单的增删改查
  13. 设定自己的100个人生目标
  14. 机器人仿真的应用价值
  15. C语言系列(11)——数组(02)
  16. 百度地图JavaScript API获取用户当前经纬度和详细地理位置,反之通过详细地理位置获取当前经纬度...
  17. 俄勒冈大学计算机科学专业,2020年俄勒冈大学排名TFE Times美国最佳计算机科学硕士专业排名第68...
  18. Calculate a+b
  19. C++面试常见题目问与答(汇总一)
  20. UE4地编基础-材质蓝图篇

热门文章

  1. DCloud之Android平台应用启动时读写手机存储、访问设备信息(如IMEI)等权限策略控制
  2. 编写matlab语句计算试题,MATLAB测验考试题
  3. android 名片识别 简书,nodejs实现名片识别
  4. spring-boot-redis-cache集成总结及源码分析
  5. 抖音上线“冬季山货节”,不声不响把拼多多老家“偷了”?
  6. 暄桐教练日课·21天《灵飞经》报名啦
  7. 谜语(发送给你的爱人吧)
  8. 极线几何(Epipolar Geometry)
  9. c++ 线程函数(类成员函数作为线程函数使用)
  10. 职业生涯手记——序章