ATM模拟器(附代码及运行结果)
源代码:
import java.util.Scanner;
class Account{
String identify;
String name;
String date;
String key;
double balance;
Account(String id,String na,String da,String ke,double ba)
{
identify=id;
name=na;
date=da;
key=ke;
balance=ba;
}
Account()
{
identify="ljj19960419";
name="ljj";
date="2016/11/16";
key="123456";
balance=1024.0;
}
public void back() //退卡
{
}
public void get() //取款
{
System.out.println("请输入取款金额:\n 100 请输入1\n 200 请输入2\n 500 请输入3\n 1000 请输入4\n 其他金额 请输入5\n 退卡 请输入6\n 返回 请输入7\n");
Scanner scan = new Scanner(System.in);
String n = scan.nextLine();
switch(n){
case "1":
if(balance<100)
{
System.out.println("余额不足!");break;
}
else
{
balance-=100;System.out.println("取款成功!余额为:"+balance);break;
}
case "2":
if(balance<200)
{
System.out.println("余额不足!");break;
}
else
{
balance-=200;System.out.println("取款成功!余额为:"+balance);break;
}
case "3":
if(balance<500)
{
System.out.println("余额不足!");break;
}
else
{
balance-=500;System.out.println("取款成功!余额为:"+balance);break;
}
case "4":
if(balance<1000)
{
System.out.println("余额不足!");break;
}
else
{
balance-=1000;System.out.println("取款成功!余额为:"+balance);break;
}
case "5":
System.out.print("请输入取款金额:");
Scanner scan1 = new Scanner(System.in);
int a = scan1.nextInt();
if(balance<a)
{
System.out.println("余额不足!");break;
}
else
{
balance-=a;System.out.println("取款成功!余额为:"+balance);break;
}
case "6":
back();break;
case "7":
break;
}
System.out.println("返回主界面 请输入1\n退卡 请输入2\n");
Scanner scan7 = new Scanner(System.in);
int f = scan7.nextInt();
if(f==1)
{
System.out.println("请选择操作:");
System.out.println("存款 请按1");
System.out.println("取款 请按2");
System.out.println("转账汇款 请按3");
System.out.println("查询余额 请按4");
System.out.println("退卡 请按5");
Account data =new Account();
Scanner scan8 = new Scanner(System.in);
int g = scan8.nextInt();
switch(g){
case 1:
data.save();break;
case 2:
data.get();break;
case 3:
data.trans();break;
case 4:
data.inquiry();break;
case 5:
data.back();break;
}
}
else
{
back();
}
}
public void save() //存款
{
System.out.println("请输入存款金额:");
Scanner scan2 = new Scanner(System.in);
double b =scan2.nextDouble();
balance+=b;
System.out.println("存款成功!余额为:"+balance);
System.out.println("返回主界面 请输入1\n退卡 请输入2\n");
Scanner scan7 = new Scanner(System.in);
int f = scan7.nextInt();
if(f==1)
{
System.out.println("请选择操作:");
System.out.println("存款 请按1");
System.out.println("取款 请按2");
System.out.println("转账汇款 请按3");
System.out.println("查询余额 请按4");
System.out.println("退卡 请按5");
Account data =new Account();
Scanner scan8 = new Scanner(System.in);
int g = scan8.nextInt();
switch(g){
case 1:
data.save();break;
case 2:
data.get();break;
case 3:
data.trans();break;
case 4:
data.inquiry();break;
case 5:
data.back();break;
}
}
else
{
back();
}
}
public void trans() //转账
{
System.out.println("请输入转账行号:");
Scanner scan3 = new Scanner(System.in);
String c = scan3.nextLine();
System.out.println("请输入转账金额:");
Scanner scan4 = new Scanner(System.in);
double d =scan4.nextDouble();
if(balance<d)
{
System.out.println("余额不足,转账失败!");
}
else
{
double e = balance-d;
System.out.println("您已成功向行号为"+c+"的账户转账"+d+"元。当前余额为"+e+"元。");
}
System.out.println("返回主界面 请输入1\n退卡 请输入2\n");
Scanner scan7 = new Scanner(System.in);
int f = scan7.nextInt();
if(f==1)
{
System.out.println("请选择操作:");
System.out.println("存款 请按1");
System.out.println("取款 请按2");
System.out.println("转账汇款 请按3");
System.out.println("查询余额 请按4");
System.out.println("退卡 请按5");
Account data =new Account();
Scanner scan8 = new Scanner(System.in);
int g = scan8.nextInt();
switch(g){
case 1:
data.save();break;
case 2:
data.get();break;
case 3:
data.trans();break;
case 4:
data.inquiry();break;
case 5:
data.back();break;
}
}
else
{
back();
}
}
public void inquiry() //查询余额
{
System.out.println("您当前余额为"+balance+"元。");
System.out.println("返回主界面 请输入1\n退卡 请输入2\n");
Scanner scan7 = new Scanner(System.in);
int f = scan7.nextInt();
if(f==1)
{
System.out.println("请选择操作:");
System.out.println("存款 请按1");
System.out.println("取款 请按2");
System.out.println("转账汇款 请按3");
System.out.println("查询余额 请按4");
System.out.println("退卡 请按5");
Account data =new Account();
Scanner scan8 = new Scanner(System.in);
int g = scan8.nextInt();
switch(g){
case 1:
data.save();break;
case 2:
data.get();break;
case 3:
data.trans();break;
case 4:
data.inquiry();break;
case 5:
data.back();break;
}
}
else
{
back();
}
}
}
public class ATM {
public static void main(String[] args) {
System.out.println("**********************");
System.out.println("欢迎使用银行ATM服务柜机!");
System.out.println("**********************");
System.out.print("请输入密码:");
Scanner scan5 = new Scanner(System.in);
String f = scan5.nextLine();
if(f.equals("123456"))
{
System.out.println("请选择操作:");
System.out.println("存款 请按1");
System.out.println("取款 请按2");
System.out.println("转账汇款 请按3");
System.out.println("查询余额 请按4");
System.out.println("退卡 请按5");
Account data =new Account();
Scanner scan6 = new Scanner(System.in);
int g = scan6.nextInt();
switch(g){
case 1:
data.save();break;
case 2:
data.get();break;
case 3:
data.trans();break;
case 4:
data.inquiry();break;
case 5:
data.back();break;
}
}
else
{
System.out.println("该卡已被锁定,无法操作。嘿嘿嘿~");
}
}
}
结果截图:
1、密码错误

2、密码正确
1)存款并返回主界面

2)取款不成功

3)取款成功

4)转账汇款不成功

5)转账汇款成功

6)查询余额

7)退卡

以上就是这个ATM模拟器的大致功能,有不足之处,望在评论区不吝赐教。
这个程序经过适当的修润也可以通过小窗口的形式弹出来结果。这样运行的结果可以显得更加地方便与直观。但是,这样不便于理解源代码。大家不妨尝试一下。
ATM模拟器(附代码及运行结果)的更多相关文章
- c#万能视频播放器(附代码)
原文:c#万能视频播放器(附代码) c#万能视频播放器 本人之前很多的文章中均提到了使用libvlc为播放器内核制作的播放器,也许有些朋友对此感兴趣,于是我用c#写了一个调用libvlc api实现的 ...
- 数据挖掘领域十大经典算法之—C4.5算法(超详细附代码)
https://blog.csdn.net/fuqiuai/article/details/79456971 相关文章: 数据挖掘领域十大经典算法之—K-Means算法(超详细附代码) ...
- SpringCloud-创建服务消费者-Feign方式(附代码下载)
场景 SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- JPA中实现双向多对多的关联关系(附代码下载)
场景 JPA入门简介与搭建HelloWorld(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103473937 ...
- Promise入门到精通(初级篇)-附代码详细讲解
Promise入门到精通(初级篇)-附代码详细讲解 Promise,中文翻译为承诺,约定,契约,从字面意思来看,这应该是类似某种协议,规定了什么事件发生的条件和触发方法. Pr ...
- 分布式消息总线,基于.NET Socket Tcp的发布-订阅框架之离线支持,附代码下载
一.分布式消息总线以及基于Socket的实现 在前面的分享一个分布式消息总线,基于.NET Socket Tcp的发布-订阅框架,附代码下载一文之中给大家分享和介绍了一个极其简单也非常容易上的基于.N ...
- C#_技巧:计算代码块运行的时间
System.Diagnostics下类Stopwatch,给程序代码块运行计时, 利用start()和stop()方法来标记代码快. 该命名空间下还有一些其他类,可以对程序进行诊断(diagnosi ...
- 分享5种风格的 jQuery 分页效果【附代码】
jPaginate 是一款非常精致的分页插件,提供了五种不同风格的分页效果,支持鼠标悬停翻页,快速分页功能.这款插件还提供了丰富的配置选项,你可以根据需要进行设置. 效果演示 源码下载 各个 ...
- Python进阶:函数式编程实例(附代码)
Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...
随机推荐
- Format
strTimeZone := Format('%s ~ %s',[formatdatetime('yyyy-mm-dd',dtpStartTime.DateTime), formatdatetime( ...
- AJAX 同步异步笔记
就在刚才,做一个很简单的Demo, 预览MP4视频文件 这就是一个video标签嘛,然后再动态的给src赋值嘛.这还不是so easy? 好,说做就做.先简单的测试一下.先给src赋值一下. 嗯,可以 ...
- Codeforces CF#628 Education 8 C. Bear and String Distance
C. Bear and String Distance time limit per test 1 second memory limit per test 256 megabytes input s ...
- 如何使CEF支持Flash
方法一:复制Chrome浏览器下的pepperFlash,通过cef命令行参数设置路径. public Form1() { InitializeComponent(); InitializeChrom ...
- 阿里云ECS(Centos)开启X11的步骤
阿里云ECS(Centos)开启X11的步骤 1.修改sshd_config X11Forwarding yes 2.yum -y install xorg-x11-xauth xorg-x11-ut ...
- javaFx:使用弹出对话框 Alert
javaFx8 自带的对话框非常好用,类似的使用方式如下: /** * 弹出一个通用的确定对话框 * @param p_header 对话框的信息标题 * @param p_message 对话框的信 ...
- 关于nginx.pid丢失的解决办法
在停掉nginx的过程中突然出现如下的提示:
- centos中yum安装mysql路径
1. 使用命令service mysqld stop 停止mysql 查看mysql数据库的默认路径:/var/lib/mysql 使用cp -afir /var/lib/mysql/* /us ...
- .保护Express应用程序
毫无疑问,Node.js已经变的愈加成熟,尽管这样,开发者仍然缺乏大量的安全指南.在这篇文章中,我将分享一些有关Node.js安全要点给大家,希望大家能够谨记于心. 1.避免使用Eval Eval并不 ...
- 测试函数用Return 返回值和用函数名返回值的区别
'*************************************************************************'**模 块 名:工程1 - Form1'**说 ...