java程序模拟atm机_Java项目实现模拟ATM机
本文实例为大家分享了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
java程序模拟atm机_Java项目实现模拟ATM机相关推荐
- java web atm机_Java项目实现模拟ATM机
本文实例为大家分享了Java实现模拟ATM机的具体代码,供大家参考,具体内容如下 项目名称 模拟ATM机 项目描述 简单实现ATM机功能 代码实现 测试类 public class Test { // ...
- java批量处理数据库语句_Java项目中调用bat批处理进行多用户数据库备份
Java项目中调用bat批处理配合使用BCP进行多用户数据的备份 一.项目需求 最近项目中需要对数据库(Sql Server系列数据库)进行备份.项目中的需求不是简单的整个数据库的备份,而是根据用户来 ...
- java程序员面试技术_java程序员面试应该具备的一些基本技能
这里列举一些Java程序员面试应该要具备的一些基本技能,仅当参考. 1.基本语法 包括static.final.transient等关键字的作用,foreach循环的原理等等.越简单的问题越能看出一个 ...
- java程序员那些提升_Java程序员如何进行自我提升?
只有不断积累项目经验以及提高自己的技术,如果一直没有明确自己的职业规划,请扪心自问: 1.我到底适不适合当一名程序员? 2.我到底应不应该一辈子以程序员为职业? 3.我对编程到底持有的是一种什么样的态 ...
- Java程序员 面试如何介绍项目经验? Java程序员应该如何介绍自己的项目经验和自我介绍?面试如何突出自己
Java程序员项目经验介绍:背景:姓名:张三:年龄:25:籍贯:安徽: 毕业学校:南京审计学院:工作经验:2年:求职城市:北京面试官你好,我叫张三,今年25岁,来自安徽,毕业于南京审计学院计算机专业, ...
- java程序员基础算法_java程序员必知的十种程序算法
<java程序员必知的十种程序算法>由会员分享,可在线阅读,更多相关<java程序员必知的十种程序算法(11页珍藏版)>请在人人文库网上搜索. 1.java程序员必学的十种程序 ...
- 下面选项中不是开发java程序的步骤是_Java基础试题及其答案2
Java试题 1) java程序中,main方法的格式正确的是().(选择一项) a)static void main(String[] args) b)public void main(String ...
- java程序员个人能力介绍_Java操作员能力问题
java程序员个人能力介绍 Java Operators Aptitude Questions and Answers: This section provides you Java Operator ...
- java程序开发个人笔记_Java程序开发入门笔记
Java程序开发入门笔记 如果你是这一个错误的话:错误:编码GBK的不可映射字符 这是因为我们编写的代码一般都是utf-8的格式而控制台用的不是utf-8格式所以就会出现中文输出的错误.这个时候我们可 ...
最新文章
- 一个优秀的CIO,应该具备如何的知识体系和管理能力?
- Android --- 图片的特效处理
- 成功解决The scripts freeze_graph.exe, saved_model_cli.exe, tensorboard.exe, tflite_convert.exe, toco.exe
- 怎样知道邮箱的端口_AllenNLP源码拓展——训练结束向邮箱发邮件
- linux常见命令_Linux系统常见命令
- USC提出拟牛顿法深度学习优化器Apollo,效果比肩SGD和Adam
- PHP数据结构算法实例
- 课时47.datalist标签(了解)
- ajax前台传json到后台解析的方法以及注意事项
- 第1章 程序设计和C语言
- 手机听筒被灰尘堵塞了如何清洗?
- [17] 楼梯(Stairs)图形的生成算法
- python课程思维导图_零基础Python学习思维导图,记得收藏
- vue自学入门-2(vue创建项目)
- cvLoadImage()的调用参数设置
- 2020个人年度总结
- SSH Secure File Transfer 传输错误解决方法
- 在Win10系统中防火墙如何设置IP白名单
- Jmeter录制脚本fiddler fiddler录制jmeter脚本
- Go 插件系统,一个凉了快半截的特性?
热门文章
- mAP与IOU的简单介绍
- OpenCV学习笔记(三):多通道图像分离、混合算子:split(),merge()
- cocos2dx实现经典飞机大战
- JS 逆向 --- 过无限debugge、hook、js混淆还原、控制流混淆
- 掌控谈话~拔刺(说出你对我的指控)
- php 获取两个日期相隔几周,怎么样计算2个日期之间相差几周
- mysql先删后增并发时出现死锁_MySQL死锁案例分析一(先delete,再insert,导致死锁)...
- mysql 5.7安装完密码是多少_关于mysql5.7.18的安装并修改初始密码的图文教程
- c# 从地址拷贝byte_面试必备的 “零拷贝” 问题!从头给你说!
- bean注入失败的几种情况和解决思路:NoSuchBeanDefinitionException: No qualifying bean of type