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 ...
随机推荐
- php安装程序
php安装程序 制作原理和步骤 检查目录或文件权限 修改或者添加配置文件 检查配置文件的正确性 导入数据库 锁定或删除安装文件 用到函数 iswritable("data/config.ph ...
- checkbox和文本上下对齐
只需要分别给checkbox和文本加上这个样式就可以了: vertical-align:middle;
- Linux内核笔记--深入理解文件描述符
内核版本:linux-2.6.11 文件描述符(file descriptor)在Linux编程里随处可见,设备读写.网络通信.进程通信,fd可谓是关键中的关键. 深入理解可以增加我们使用它的信心. ...
- MariaDB 双主复制的配置
环境 Master1/Master2 系统 IP 数据库版本 Master1 CentOS6.7 10.10.3.211 mariadb-10. ...
- 【BZOJ】3996: [TJOI2015]线性代数
题意 给出一个\(N \times N\)的矩阵\(B\)和一个\(1 \times N\)的矩阵\(C\).求出一个\(1 \times N\)的01矩阵\(A\),使得\[ D = ( A * B ...
- 【BZOJ3036】绿豆蛙的归宿 概率与期望
最水的概率期望,推荐算法合集之<浅析竞赛中一类数学期望问题的解决方法> #include <iostream> #include <cstdio> using na ...
- windows下面安装Python和pip终极教程
在大二的时候接触过一段时间的Python,最近又开始玩起了这门语言.总的来说,个 人很喜欢Python的语言风格,但是这门语言对于windows并不算很友好,因为如果是初学者在windows环境下安装 ...
- WCF自动添加消息头
客户端自定义消息查看器实现IClientMessageInspector接口在消息发送之前添加消息头 class ClientMessageInspector : System.ServiceMode ...
- 使用mybatis-generator生成代码
文档地址: http://mbg.cndocs.tk/index.html 以下是一个简单的配置内容. 一.在maven配置文件中添加mybatis-generator插件 1 2 3 4 5 ...
- BFS/DFS算法介绍与实现(转)
广度优先搜索(Breadth-First-Search)和深度优先搜索(Deep-First-Search)是搜索策略中最经常用到的两种方法,特别常用于图的搜索.其中有很多的算法都用到了这两种思想,比 ...