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.消去键可…

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

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

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

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

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…

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

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

php 缩略图 失真,WORDPRESS缩略图失真变形模糊的解决方法

众所周知&#xff0c;网站最怕改版&#xff0c;其中一个主要的原因就是缩略图的问题&#xff0c;旧模板的缩略图尺寸不一定适合新版的模板缩略图尺寸要求&#xff0c;尽管后台的设置-多媒体-缩略图尺寸修改了&#xff0c;可这是新上传的图片才会生成新的尺寸的缩略图&#xff0…

php表单 提交数据,PHP表单提交数据

1.PHP表单处理PHP 超全局变量 $_GET 和 $_POST 用于收集表单数据GET 和 POST 都创建数组(例如&#xff0c;array( key > value, key2 > value2, key3 > value3, ...))。此数组包含键/值对&#xff0c;其中的键是表单控件的名称&#xff0c;而值是来自用户的输入数据。…

php ci框架 模板引擎,详解CodeIgniter框架实现的整合Smarty引擎DEMO

CodeIgniter框架实现的整合Smarty引擎DEMO示例本文实例讲述了CodeIgniter框架实现的整合Smarty引擎。分享给大家供大家参考&#xff0c;具体如下&#xff1a;Smarty的模板机制很强大&#xff0c;一般情况下CI框架无需整合其他模板标签&#xff0c;因为PHP本身就是一种标签&…

padodb time.inc.php,怎样实现PHP中ADODB事务处理

这次给大家带来怎样实现PHP中ADODB事务处理&#xff0c;实现PHP中ADODB事务处理的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。一、代码adodb.inc.php可从官方网站http://adodb.sourceforge.net/ 下载。或者点击此处本站下载。conn.php&#xff1a;&…

双用户windows linux系统,Windows与Linux合二为一?终于能在windows上运行Linux了!

原标题&#xff1a;Windows与Linux合二为一&#xff1f;终于能在windows上运行Linux了&#xff01;目前在PC端操作系统市场份额中&#xff0c;微软旗下的windows系统占据超过50%的比例。作为微软旗下发布的产品之一&#xff0c;windows系统深受用户喜爱。从经典的XP和win7&…

linux的用户及权限管理,用户及权限管理

一、Linux用户、组的概念1.用户管理员:root,0其他用户:1-65535系统用户:1-499,守护进程获取资源进行权限分配普通用户:500,交互式登陆2.组管理员组:root,0其他用户:1-65535系统用户组:1-499普通用户组:500note:关于uid,gid的范围可以参考/etc/login.def3.Linux安全上下文进程所…

linux内存使用策略swap,Linux Swap使用分析

Linux操作系统性能分析主要包含磁盘IO、CPU、内存以及网络流量&#xff0c;而这里主要针对系统内存的使用进程情况做个分析。一、如何查看系统内存使用情况1、根据常用命令查看系统内存使用概况free -gtotal used free shared buffers cachedMem: …

csky linux 编译内核,TQ2440的EmbedSky_hello模块编译内核问题及解决

已在内核代码中添加EmbedSky_hello驱动为例&#xff0c;进行内核编译时候出现了一下几个问题&#xff1a;1、在 /opt/EmbedSky/linux 2.6.30.4/drivers/char目录下修改“Kconfig”文件&#xff0c;添加如下内容&#xff1a;config EmbedSky_HELLOtristate "TQ2440/SKY2440…

linux设备树例程,iTOP-iMX6-设备树内核-实时时钟RTC以及Linux-c测试例程

当 Linux 开发者谈论一个实时时钟&#xff0c;他们通常指的是某种能记录墙上时间&#xff0c;并且有备用电池&#xff0c;以至于在系统关机的时候仍然可以工作的器件。Linux 有两个系列广泛兼容的用户空间 RTC 设备节点&#xff1a;• /dev/rtc &#xff1a; PC 机及兼容机系统…

linux jdk bin下载,Linux下安装jdk-6u45-linux-x64.bin

最近在学习linux下java开发&#xff0c;在搭环境的过程中发现网上很多配置都是错误的&#xff0c;现在写出来&#xff0c;供参考&#xff1a;从Oracle上下载jdk-6u45-linux-x64.bin1.下载文件:jdk-6u45-linux-x64.bin,将文件做成光盘挂载[rootlocalhost ~]mount /dev/cdrom /mn…

查看linux上redis的运行状态,Redis教程(七)使用info查看服务状态

一、Redis info命令介绍Redis info命令是Redis自带的一个用于查看服务状态的命令&#xff0c;这个命令类似于top一样可以查看redis服务的整个状态&#xff0c;并且分为了5大类&#xff1a;二、Redisinfo命令语法redis-cli -a redis_pass info #查看所有模块信息redis-cli -a re…

linux应用参数 冒号,Lua-面向对象中函数使用时冒号(:)和点(.)的区别

Lua-面向对象中函数使用时冒号(:)和点(.)的区别&#xff0c;我们先来看一段简单的代码&#xff1a;local Animal {}functionAnimal:Eat( food )print("Animal:Eat", self, food)endfunctionAnimal.Sleep( time )print("Animal.Sleep", self, time)endAnima…

欧框语言框架标准C2,CEFR欧洲语言共同参考框架

http://www.v4.cc/News-3997660.htmlCEFR全称是Common European Framework of Reference for Languages&#xff0c;是由欧洲语言测试者协会(ALTE)于2001年首次发布的一套建议标准&#xff0c;用来评估语言学习者在所学语言的成就&#xff0c;同时也给予一个教育上的评估方针。…

c语言简短的泡沫排序法编程,冒泡排序--简单(c语言)

//// main.cpp// bubble//// Created by duanqibo on 2019/7/17.// Copyright © 2019年 duanqibo. All rights reserved.// 冒泡排序 c语言#include #include #include #include #define N 4typedef struct student{int num;char name[20];char sex[2];int age;}stu[…