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解法
问题描述:n个人排成一圈.从某个人开始,依次报数,数到m的人被杀死.下一个人重新从1开始报数,数到m的人被杀死.直到剩下最后一个人. 解决思路:从数学角度去看,每一次报数决定谁去死是一个n.m的求余数 ...
- http错误代码含义中英文对照
Http错误代码含义中文 概要当用户试图通过 HTTP 或文件传输协议 (FTP) 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字 ...
- <转>Unity3D研究院之C#使用Socket与HTTP连接服务器传输数据包
最近项目中需要使用HTTP与Socket,把自己这段时间学习的资料整理一下.有关Socket与HTTP的基础知识MOMO就不赘述拉,不懂得朋友自己谷歌吧.我们项目的需求是在登录的时候使用HTTP请求, ...
- 【转】oracle中rowid的用法 (全面)
ROWID是数据的详细地址,通过rowid,oracle可以快速的定位某行具体的数据的位置. ROWID可以分为物理rowid和逻辑rowid两种.普通的堆表中的rowid是物理rowid,索引组织表 ...
- 分布式大数据高并发的web开发框架
一.引言 通常我们认为静态网页html的网站速度是最快的,但是自从有了动态网页之后,很多交互数据都从数据库查询而来,数据也是经常变化的,除了一些新闻资讯类的网站,使用html静态化来提高访问速度是不太 ...
- Linux内核笔记——内存管理之块内存分配
内核版本:linux-2.6.11 伙伴系统 伙伴系统是linux用于满足对不同大小块物理内存分配和释放请求的解决方案. 内存管理区 linux将物理内存分成三个内存管理区,分别为ZONE_DMA Z ...
- 谷歌浏览器如何查看或获取Cookie字符串
注:此博客仅供非web开发人员查看,以下内容都基于谷歌浏览器. 在网页空白处点击鼠标右键,在弹出菜单中选择[审查元素],可以看到网页下方出现审查元素相关界面. 在审查元素相关界面,点击[Network ...
- db2循环
db2普通循环结构 while循环 while 条件 do 循环体 end while; LOOP循环 SET V_INDEX = 0; AUTHLOOP: LOOP V_INDEXV_INDEX = ...
- c# 局域网文件传输实例
一个基于c#的点对点局域网文件传输小案例,运行效果截图 //界面窗体 using System;using System.Collections.Generic;using System.Compon ...
- java反射学习之一反射机制概述
一.反射机制背景概述 1.反射(reflection)是java被视为动态语言的一个关键性质 2.反射机制指的是程序在运行时能获取任何类的内部所有信息 二.反射机制实现功能概述 1.只要给定类的全名, ...