利用Java代码实现银行的 查询 存储 取款 转账 等功能
首先需要创建如下结构:

用户信息

package com.gyx;import java.util.ArrayList;
import java.util.List;
import java.util.Map;/*** 用户表 用来保存用户信息*/
public class Entity {//用户1private static String account ="10086";private static String password ="10086";private static double balance =1000;private static String name ="张三";//用户2private static String account1 ="146204";private static String password1 ="146204";private static double balance1 =2000;private static String name1 = "李四";public static String getAccount() {return account;}public static void setAccount(String account) {Entity.account = account;}public static String getPassword() {return password;}public static void setPassword(String password) {Entity.password = password;}public static double getBalance() {return balance;}public static void setBalance(double balance) {Entity.balance = balance;}public static String getName() {return name;}public static void setName(String name) {Entity.name = name;}public static String getAccount1() {return account1;}public static void setAccount1(String account1) {Entity.account1 = account1;}public static String getPassword1() {return password1;}public static void setPassword1(String password1) {Entity.password1 = password1;}public static double getBalance1() {return balance1;}public static void setBalance1(double balance1) {Entity.balance1 = balance1;}public static String getName1() {return name1;}public static void setName1(String name1) {Entity.name1 = name1;}
}

登录类(Logic):

package com.gyx;import java.io.IOException;
import java.util.Scanner;/*** 登录页面* 逻辑分析: 1、显示一段欢迎的信息。 2、提示输入卡号 3、输入密码 4、显示主菜单。**/
public class Logic {public static void main(String[] args) throws IOException {System.out.println("=====================");System.out.println("<<<----欢迎使用ATM------>>>>");System.out.println("=====================");//调用登录方法login();}//登录方法private static void login() throws IOException {for (int i = 0; i < 3; i++) {//提示输入账账户System.out.println("<<<---请输入账户--->>>");Scanner scanner = new Scanner(System.in);String acc = scanner.next();//提示用户输入密码System.out.println("<<<---请输入密码--->>>");String pwd = scanner.next();//判断用户输入信息是否和后台相同if (Entity.getAccount().equals(acc) &&                             Entity.getPassword().equals(pwd)){//如果相同 则进入成功界面Succed succed = new Succed();succed.showMenu();break;}else {System.out.println("账户或密码错误,重新输入");if (i==2){//错误三次 则退出循环System.err.println("error-账户已被锁定");}}}}
}

登录成功

package com.gyx;import org.junit.Test;import java.io.IOException;
import java.util.Scanner;
//登录成功页面
public class Succed {public void showMenu() throws IOException {while (true){//选择服务类型System.out.println("==============================");System.out.println("<<<---请选择服务项目--->>");System.out.println("**1.查询余额**    **2.取款**");System.out.println("**3.存    款**    **4.转账**");System.out.println("**5.打    印**    **6.退卡**");//选择服务项目Scanner scanner =new Scanner(System.in);//键盘输入int id = scanner.nextInt();//选择项目1switch (id){case 3:Deposit deposit = new Deposit();deposit.depos();break;case 4:Turn turn = new Turn();turn.tur();break;case 5:System.out.println("您的账户信息已打印");Print print = new Print();print.pri();break;case 6:System.out.println("欢迎下次使用");System.exit(0);break;default:}Withdrawal withdrawal = new Withdrawal();withdrawal.select(id);}}}

查询余额及取款(Withdrawal)

package com.gyx;import java.io.IOException;
import java.util.Scanner;/*** 余额 及存款方法*/
public class Withdrawal {public void select(int id) throws IOException {switch (id){case 1://h获得余额double balance = Entity.getBalance();System.out.println("您的余额为:" + balance);break;case 2:System.out.println("<<<---请选择取款金额--->>>");System.out.println("**1.300**    **2.800**");System.out.println("**3.1500**   **4.3000**");//获取键盘输入Scanner scanner = new Scanner(System.in);int i = scanner.nextInt();fetch(i);break;default:;}}//取款方法private void fetch(int i) throws IOException {switch (i){case 1://获取余额减去取款金额if(Entity.getBalance() <300){System.out.println("余额不足,请重新选择");Succed succed = new Succed();succed.showMenu();}double bala = Entity.getBalance() - 300;Entity.setBalance(bala);System.out.println("取款成功,余额为"+ Entity.getBalance());break;case 2://获取余额减去取款金额if(Entity.getBalance() <800) {System.out.println("余额不足,请重新选择");Succed succed = new Succed();succed.showMenu();}//获取余额减去取款金额double bala1 = Entity.getBalance() - 800;System.out.println("取款成功,余额为"+ bala1);break;case 3://获取余额减去取款金额if(Entity.getBalance() <1500) {System.out.println("余额不足,请重新选择");Succed succed = new Succed();succed.showMenu();}//获取余额减去取款金额double bala2 = Entity.getBalance() - 1500;System.out.println("取款成功,余额为"+ bala2);break;case 4://获取余额减去取款金额if(Entity.getBalance() <3000) {System.out.println("余额不足,请重新选择");Succed succed = new Succed();succed.showMenu();}//获取余额减去取款金额double bala3 = Entity.getBalance() - 3000;System.out.println("取款成功,余额为"+ bala3);break;default:;}}
}

存款(Deposit)

package com.gyx;import java.util.Scanner;/*** 存款*/
public class Deposit {public void depos(){System.out.println("========================");System.out.println("<<<---请选择存款金额--->>>");System.out.println("**1.300**    **2.800**");System.out.println("**3.1500**   **4.3000**");Scanner scanner = new Scanner(System.in);//选择金额int i = scanner.nextInt();in(i);}private void in(int i) {double balance = Entity.getBalance();switch (i){case 1:balance = balance +300;Entity.setBalance(balance);System.out.println("存款成功,余额为:"+ Entity.getBalance());break;case 2:balance = balance +800;Entity.setBalance(balance);System.out.println("存款成功,余额为:"+ Entity.getBalance());break;case 3:balance = balance +1500;Entity.setBalance(balance);System.out.println("存款成功,余额为:"+ Entity.getBalance());break;case 4:balance = balance +3000;Entity.setBalance(balance);System.out.println("存款成功,余额为:"+ Entity.getBalance());break;default:;}}
}

转账(Turn)

package com.gyx;import java.io.IOException;
import java.util.Scanner;/*** 转账功能*/
public class Turn {public void tur() throws IOException {System.out.println("<<<---请输入转账用户--->>>");Scanner scanner = new Scanner(System.in);int i = scanner.nextInt();System.out.println("<<<---请输入转账金额--->>>");double i1 = scanner.nextInt();//调用用户余额double balance = Entity.getBalance();if (balance < i1){System.out.println("余额不足,转账失败");Succed succed = new Succed();succed.showMenu();}else {balance = balance - i1;Entity.setBalance(balance);System.out.println("转账成功,余额为" + Entity.getBalance());}}
}

打印(Print)

package com.gyx;import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;/*** 打印用户信息*/
public class Print {public void pri() throws IOException {FileWriter writer = new FileWriter("bill.txt",true);writer.write("姓名:" + Entity.getName());writer.write("卡号:" + Entity.getAccount());writer.write("密码:" + Entity.getPassword());writer.write("余额:" + Entity.getBalance());writer.close();}
}

最好写一个功能运行测试一遍,以免造成不必要的错误
有任何问题都可私聊博主,我会及时解决

基于面向对象的ATM自动取款机(未完善)相关推荐

  1. 基于C++的ATM自动取款机设计

    一.ATM自动取款机设计要求 1.实现ATM取款机的基本功能,如给用户提供开户.查询余额.取款.修改密码.吃卡.退出系统等服务,可根据实际情况添加(如缴费.转账等服务). 2.对于用户要求输入相应的帐 ...

  2. 银行ATM自动取款机模拟程序C语言——课程设计实习

    绪论 ATM即自动取款机的意识,ATM是最普遍的自助银行设备,可以提供最基本的银行服务之一,即出钞交易,有些全功能的产品还可以提供信封存款业务.在ATM自动取款机上也可以进行账户查询和改密的业务.作为 ...

  3. C语言ATM自动取款机系统项目的设计与开发

    文章目录 基于C语言的ATM自动取款机系统项目设计与开发 一.ATM自动取款机系统功能分析与介绍 二.开发ATM自动取款机系统的工具以及创建项目的过程 2.1.本项目使用Visual Studio 2 ...

  4. 通过Java设计与实现ATM自动取款机系统

    设计一个ATM自动取款机系统. 要求如下:实现欢迎界面.登录.存款.取款.查询.修改密码功能. /** *@author Ben1002 *@version jdk1.8.0_131 */ packa ...

  5. 【历史上的今天】9 月 2 日:互联网的“诞生日”;三星逐步跌落神坛;世界上第一个 ATM 自动取款机

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 将计算机网络相互连接在一起称为"网络互联",在其基础上连接覆盖全世界的"网络互联" ...

  6. 【历史上的今天】9 月 2 日:互联网的“诞生日”;三星逐步跌落神坛;世界上第一个ATM自动取款机

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 将计算机网络相互连接在一起称为"网络互联",在其基础上连接覆盖全世界的"网络互联" ...

  7. Java语言实现 ATM 自动取款机系统

    ATM自动取款机 ​​​ 实现 ATM 自动取款机系统,本系统有如下功能: 1.登陆    用户通过输入卡号和密码登陆本系统,如果输入错误,提示错误并重新输入,连续三次错误吞卡. 2.取款    系统 ...

  8. 写一个简单的自动取款机c语言程序,C语言编程模仿银行ATM自动取款机功能

    编程模仿银行ATM自动取款机功能,要求能实现以下功能: 1. 输入储户基本信息(既开户功能,开户成功需要打印储户基本信息): 2. 开户成功后打印欢迎界面,比如"开户成功,欢迎使用**银行自 ...

  9. 模拟atm取款机 php,C语言模拟ATM自动取款机系统

    C语言实验报告 题目名称:C语言模拟ATM自动取款机系统 一:问题描述: C语言模拟实现ATM自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输 ...

最新文章

  1. KG-知识图谱入门-王昊奋课程详细笔记(附课件、课程链接与详细笔记) 内有资源
  2. 很慢怎么办_数学不好怎么办?脑子笨逻辑思维不好,反应很慢该怎么办?
  3. 排序算法系列:Shell 排序算法
  4. 一个完整的canvas画图
  5. boost::intrusive::rbtree_algorithms用法的测试程序
  6. 如何分析堆外内存使用情况_堆上与堆外的内存使用情况
  7. java向有序数组里插数_Java向有序数组中插入一个元素,,使其仍按有序排列,并求出这个插入元素的下标...
  8. QTWebkit中的webkit/qt/api文档
  9. mini2440驱动分析之PWM
  10. 注入器 过检测_福特全顺V348检测车报价
  11. 【转载】linux下如何使用sftp命令
  12. java 交互式 shell_Java9 Shell工具(JShell)
  13. layDate——初步使用
  14. 【matlab】Simulink 微分模块的线性化问题
  15. 保险与赌博的差异,航延险是赌博吗?
  16. Docker学习手记-1
  17. unity 四元数旋转各元素值的计算方法
  18. java设计模式 之适配器模式
  19. DOM之parentNode与offsetParent
  20. mathcad 15.0安装教程

热门文章

  1. github上十二款最著名的Android播放器开源项目
  2. 创客教育中的空间设计实物原理
  3. 机器学习中ground truth的含义
  4. hi3519文件系统中ping不通局域网
  5. CRM是什么意思?CRM管理软件选型必知的3大“要点”
  6. IPv6 NAT-PT配置【下一代互联网03】
  7. 对java后端的一些学习建议
  8. java将字符串放置到剪切板
  9. Docker:基于ubuntu18.04的介绍,安装与使用 - 最新无死角
  10. mysql的group语句_MySQL中distinct与group by语句的一些比较及用法讲解