java程序模拟atm机_Java项目实现模拟ATM机

21b50ae70e18503be9689347a7d4412f.png

本文实例为大家分享了Java实现模拟ATM机的具体代码,供大家参考,具体内容如下

项目名称

模拟ATM机

项目描述

简单实现ATM机功能

代码实现

测试类

public class Test {

//模拟多功能ATM机

public static void main(String[] args) {

ATM atm = new ATM();

atm.opearte();

}

}

主类:实现主方法

public class ATM {

private Bank bank;

public ATM(){

bank = new Bank();

}

private void success(BankCard bankCard) {

while (true) {

System.out.println("请选择:1、查询余额,2、取款,3、存款,4、转账,5、退卡");

Scanner scanner = new Scanner(System.in);

int choice = scanner.nextInt();

if (choice == 5) {

return;

}

switch (choice) {

case 1:

int money = bank.printf(bankCard);

System.out.println("余额:" + money);

break;

case 2:

System.out.println("请输入取款金额:");

money = scanner.nextInt();

bankCard.withdraw(money);

break;

case 3:

System.out.println("请输入存款金额:");

money = scanner.nextInt();

bankCard.deposit(money);

break;

case 4:

System.out.println("请输入对方账户id:");

int id = scanner.nextInt();

BankCard card = bank.transfer(id);

if(card != null){

System.out.println("请输入转账金额:");

money = scanner.nextInt();

if(money <= bankCard.getMoney()){

bankCard.withdraw(money);

card.deposit(money);

}else {

System.out.println("转账失败");

}

}else {

System.out.println("未找到该账户");

}

break;

default:

}

}

}

private void login(){ //登录

System.out.println("请输入账号,密码");

Scanner scanner = new Scanner(System.in);

int id = scanner.nextInt();

int password = scanner.nextInt();

BankCard bankCard = bank.search(id,password);

if(bankCard != null){

System.out.println("登录成功");

success(bankCard);

}else {

System.out.println("登录失败,请注册");

}

}

private void register(){ //注册

System.out.println("请输入账号,密码");

Scanner scanner = new Scanner(System.in);

int id = scanner.nextInt();

int password = scanner.nextInt();

BankCard bankCard = bank.search(id,password);

if(bankCard != null){

System.out.println("该账号已存在,请直接登录");

}else {

bank.addcard(id,password);

System.out.println("注册成功");

}

}

public void opearte() {

while (true) {

System.out.println("请选择:1、登录,2、注册,3、退出");

Scanner scanner = new Scanner(System.in);

int choice = scanner.nextInt();

if (choice == 3) {

return;

}

switch (choice) {

case 1:

login();

break;

case 2:

register();

break;

default:

}

}

}

}

银行类:一个银行对应多个ATM机

public class Bank {

private BankCard[] bankCards;

private final int INITSIZE = 10;

private int size;

public Bank(){

bankCards = new BankCard[INITSIZE];

size = 0;

}

public BankCard search(int id,int password){ //搜索

BankCard[] bankCard = bankCards;

for(int i=0;i

if(bankCards[i].getId() == id && bankCards[i].getPassword() == password){

return bankCard[i];

}

}

return null;

}

public void addcard(int id,int password){ //注册

BankCard bankCard = new BankCard(id, password);

if (size == bankCards.length){

bankCards = Arrays.copyOf(bankCards,bankCards.length * 2);

}

bankCards[size++] = bankCard;

}

public int printf(BankCard bankCard){ //显示余额

return bankCard.getMoney();

}

public BankCard transfer(int id){

for(int i=0;i

if(bankCards[i].getId() == id){

return bankCards[i];

}

}

return null;

}

}

银行卡类:不同账户的操作

public class BankCard {

private int id;

private int password;

private int money;

private int size = 0;

public BankCard(int id,int password){

this.id = id;

this.password = password;

money = 0;

}

public int getId(){

return id;

}

public int getPassword(){

return password;

}

public int getMoney(){

return money;

}

public void withdraw(int money){ //取款

if(this.money >= money){

this.money -= money;

}else {

System.out.println("取款失败");

}

}

public void deposit(int money){ //存款

this.money += money;

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持云海天教程。

原文链接:https://blog.csdn.net/Sampson_S/article/details/105166915

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506898.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java计算器流程图_帮帮忙:Java小计算器代码,及需求分析.流程图.

展开全部package example;import java.awt.*;import java.awt.event.*;public class Calculator extends Frame {/*** 本实例实现功能如下 1.普通加减乘除运算 2.小数点的情况已经解32313133353236313431303231363533e58685e5aeb931333236393738决 3.开始按0已经解决 4.消去键可…

mysql 5.6.22编译_saltstack全编译安装mysql5.6.22

关闭selinux和firewalld&#xff0c;iptables开放4505和4506端口目的&#xff1a;通过salt-master实现对salt-minion的批量自动安装mysql步骤(都在master执行)&#xff1a;1&#xff0c;检测连通性salt ‘*‘ test.ping2&#xff0c;下载mysql的源码包至/srv/salt/mysql/files/…

java 邮件跟踪_如何跟踪邮件已读状态(Java)

>图片的展示形式&#xff1a;html中图片元素表示&#xff1a;其中src部分是比较好玩的&#xff0c;我们可以用图片服务器链接地址&#xff0c;例如&#xff1a;我们也可以使用base64的图片字符串&#xff0c;例如&#xff1a;>利用图片加载来跟踪用户打开邮件状态&#x…

vs2012 entity framework mysql_MVC4,MVC3,VS2012+ entity framework Migration from Sqlserver

在开发的初期个人认为因VS与Sqlserver的配合很默契&#xff0c;即可以方便的实现Code First&#xff0c;又可以使用SqlServer Manager很漂亮的进行建模与变更&#xff0c;也许是个人的使用习惯MS的界面做的很好&#xff0c;乎开源的产品美感上都追不上商用版。 所以个人比较喜欢…

用java做一个截图工具_Java制作屏幕截图软件(还可以保存到剪切板内)

原标题&#xff1a;Java制作屏幕截图软件(还可以保存到剪切板内)package com.kaige123;import java.awt.Rectangle;import java.awt.Robot;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.image.BufferedIm…

java c语言 for_Java能写C语言编译器吗

用java是可以写语言编译器的&#xff0c;用任何语言工具写都可以。各语言开发工具间只有开发效率的差异&#xff0c;没有可行不可行的区别。编译器其实就是一个翻译工具&#xff0c;它可以把代码直接翻译成二进制文件交给CPU执行(二进制指令就是CPU的指令集&#xff0c;当然可以…

手机 java服务器ip地址_java获取系统当前服务器IP地址

BZOJ-1008 越狱 数论快速幂1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 6192 Solved: 2636 [Submit][Status] ...VBScript - CUD registry key and valuehttp://msdn.microsoft.com/en-us/library/aa384906(vvs.85).aspx HKEY_LOCAL_MACHINE &H…

linux定时结束java进程_使用zt-exec库定时清理linux休眠进程

在几个月前上线的一个采集项目&#xff0c;构架是基于java selenium chromedriver chrome实现的采集。至于为哈不直接用jsoup或httpclient实现采集功能&#xff0c;是因为很多被采集页面都是通过js来渲染内容的&#xff0c;所以必须用webdriverchrome来模拟真正的浏览器访问…

java的流传输的进度条_JAVA程序设计(17)----- 制作文件拷贝软件 进程 输入流输出流 NIO 进度条 底层拷贝 多线程...

使用NIO对文件进行底层拷贝(按照字节)多线程技术初级应用 不阻塞程序运行package com.lovo.homework01;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOu…

java 安卓调试_【转】Android 调试技术

一、JAVA层单步调试二、Native层单步调试三、JAVA层堆栈打印1. 在指定的函数内打印相关java调用 Log.d(TAG,Log.getStackTraceString(new Throwable()));2. 普通JAVA进程堆栈 ActivityManagerService.dumpStackTraces保存在系统设置dalvik.vm.stack-trace-file指定的文件data/a…

java spring4 jar包_spring jar包官方下载|

spring-web jar包是用来SSH配置的jar包 配置了监听器&#xff0c;还出现严重: Error configuring application listener of class org.springframework.web.context.ContextLoader就需要它&#xff0c;欢迎有需要的用户前来it猫扑下载&#xff01;spring-web.jar作用spring-web…

java 找不到符号 con_我的java程序运行时,提示找不到符号,求解!

我的java程序运行时&#xff0c;提示找不到符号&#xff0c;求解!关注:163 答案:4 mip版解决时间 2021-02-07 23:57提问者人潮拥挤你不在2021-02-06 23:57import java.awt.*;import java.awt.event.*;import java.applet.Applet;import java.applet.AudioClip;public class M…

java字符串为空抛出异常_Java 判断字符串是否为空的四种方法,及效率比较。

以下是Java 判断字符串是否为空的四种方法:方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低:if(s null ||"".equals(s));方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法:if(s null || s.length() < 0);方法三: Java SE 6.0 才开始提供的方法, …

java抽组件_Java实现的基于模板的网页结构化信息精准抽取组件:HtmlExtractor

HtmlExtractor由2个子项目构成&#xff0c;html-extractor和html-extractor-web。html-extractor实现了数据抽取逻辑&#xff0c;是从节点&#xff0c;html-extractor-web提供web界面来维护抽取规则&#xff0c;是主节点。html-extractor是一个jar包&#xff0c;可通过maven引用…

mysql索引过多为什么会慢_mysql – 为什么索引使这个查询更慢?

摘要问题是由于b-trees的性质,字段不适合索引.说明假设你有一张表有500,000个掷硬币的结果,其中抛掷是1(头)或0(尾)&#xff1a;CREATE TABLE toss (id int NOT NULL AUTO_INCREMENT,result int NOT NULL DEFAULT 0,PRIMARY KEY ( id ))select result, count(*) from toss grou…

pythonweb管理电脑_Python远程控制局域网计算机网络远程控制软件Python的开发,python,电脑,web...

[Python] 纯文本查看 复制代码import web import osimport timefrom PIL import ImageGrabimport numpy as npimport cv2urls (/reboot_html/(.*), reboot_html,/jp_html/(.*), jp_html,/shutdown_html/(.*), shutdown_html,/(js|css|images)/(.*), static)app web.applicati…

ctf的php,CTF中常见的PHP漏洞

1.MD5()漏洞php在处理字符串时会利用&#xff01;&#xff0c;||&#xff0c;进行hash值的比较 他把每一个“0E’开头的哈希值都解释为0&#xff0c;因此如果两个不同的密码经过hash处理之后都是以‘0e’开头&#xff0c;那么PHP会认为两者是相同的&#xff0c;南京邮电大学一次…

php ob 缓存,php中ob函数缓冲机制深入理解

下面就php中ob函数缓冲机制通过文字说明加代码分析的形式给大家展示如下&#xff1a;对于一个刚刚入门的php程序员来说&#xff0c;php缓冲区是几乎透明的。在他们心目中&#xff0c;一个echo print_r 函数&#xff0c;数据便会‘嗖的一声飞到浏览器上&#xff0c;显示出来。我…

php极光推送教程,laravel框架使用极光推送消息操作示例

本文实例讲述了laravel框架使用极光推送消息。分享给大家供大家参考&#xff0c;具体如下&#xff1a;最近需要使用极光推送往客户端推消息&#xff0c;所以这里记录下使用过程。极光推送的服务端文档&#xff1a;https://docs.jiguang.cn/jpush/server/push/server_overview/极…

php 强制刷新,web端实现后退强制刷新功能代码

本文主要和大家介绍了微信web端后退强制刷新功能的实现代码,需要的朋友可以参考下&#xff0c;希望能帮助到大家。具体代码如下所示&#xff1a;//生成uuidvar uuidChars "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split("");fu…