package atm_1;

import java.awt.SystemTray;
import java.nio.charset.CharsetEncoder;
import java.util.Scanner;

public class ATM {
private static int password=666666;//正确密码进入atm需要密码验证三
private static boolean ismain=true;//主界面一直循环,
private static boolean ischeck=true;//密码界面一直循环。
private static int rmb=10000;
private static int dollar=1000;

public static int enterWord(String str){ //用户输入
System.out.println(str);
Scanner sc=new Scanner(System.in);
return sc.nextInt();
}//控制台接受密码
/**
* 登录系统
*/
public static void check(){
int chance=3;//三次机会
while(ischeck)//循环表示,如果在三次机会内输入正确密码进入主界面
{
int word=enterWord("please enter password:");
if(word==password)
{
zmain();//输入正确
}
else{
//输入错误
chance--;
System.out.println("你还有"+chance+"次机会");
if(chance==0)
ischeck=false;
System.out.println("三次机会用完,请到柜台人工办理");
}
}
}
/**
* 余额查询操作
*/
public static void chaXun() {//查询余额
boolean ischaXun=true;
while(ischaXun){
System.out.println("选择查询的币种");
System.out.println("1,人民币");
System.out.println("2,美元");
int is=enterWord("输你的选择");
switch (is) {
case 1:
System.out.println("人民币账户余额为"+rmb+"");
break;
case 2:
System.out.println("美元账户余额为"+dollar+"");
break;
}
ischaXun=goOn("查询");
}
}

/**
* 取款操作
*/
public static void quKuan() {//取款操作
boolean isquKuan=true;
while(isquKuan){
System.out.println("选择取款的币种");//判断取什么种类
System.out.println("1,人民币");
System.out.println("2,美元");
int s=enterWord("输你的选择");
switch (s) {
case 1:
int m=enterWord("输你的取款人民币金额");//输入取款金额,判断取款的数与余额的关系,同时满足为一百的整数。
if(m>rmb)
System.out.println("取款金额超过余额,重新输入!");
else if(m%100!=0)
System.out.println("请输入一百的整数,请重新输入!");
else
rmb-=m;
System.out.println("人民币还剩下"+rmb+"元");
break;

case 2:
int dm=enterWord("输你的取款金额");
if(dm>dollar)
System.out.println("取款金额超过余额,重新输入!");
else if(dm%100!=0)
System.out.println("请输入一百的整数,请重新输入!");
else
dollar-=dm;
System.out.println("美元还剩下"+dollar+"元");
break;
}
isquKuan=goOn("取款");
}

}
/**
* @param 继续操作
* @return
*/
public static boolean goOn(String str) {//封装函数
boolean isgoOn=true;
System.out.println("是否继续"+str);//取款操作完选择接下来的操作
System.out.println("1,继续");
System.out.println("2,返回主界面");
int c=enterWord("输入你的选择");
if(c==2){
isgoOn=false;
}
return isgoOn;
}

/**主界面操作
* @author Administrator
*
*/
public static void zmain() {//密码正确,进入主界面
while(ismain){//用于死循环使界面一直出现,
System.out.println("1,查询余额");
System.out.println("2,取款");
System.out.println("3,退出");
int i=enterWord("输入你选择的数字");
switch (i){
case 1:
chaXun();
break;
case 2:
quKuan();
break;
case 3:
ischeck=false;
ismain=false;
System.out.println("欢迎使用,再见!!");
break;
}
}
}
/**主函数
* @author Administrator
*
*/
public static void main(String[] args){
check();
}
}

java学习1ATM的更多相关文章

  1. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  2. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  3. 分享篇——我的Java学习路线

    虽然之前我是开发出身,但是我学习的语言是Objective-c,这个语言使用起来范围比较窄,对于自动化学习来说也是无用武之地,所以我自己学习了Java,对于一个有开发经验的人来说学习一门新语言相对来说 ...

  4. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  5. Java学习心得之 HttpClient的GET和POST请求

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 HttpClient的GET和POST请求 1. 前言2. GET请求3 ...

  6. 0032 Java学习笔记-类加载机制-初步

    JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...

  7. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  8. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  9. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

随机推荐

  1. MVC学习(四)几种分页的实现(1)

     这里,我使用的是Code-First,MVC3. 我们在数据库里建一个表MyTestPages,只有一个整型字段Id. 在写一个Model类MyTestPages,代码如下 public class ...

  2. 4-windows 用cmd 如何输入命令 进入文件夹

    比如是你要到d盘的 tmp目录,那么敲入 cd d:\tmp 回车,然后在敲入 d:回车即可

  3. java String 中替换"\"为"\\"

    表示路径的字符串  c:\work\test\afd.out, 要形成 c:\\work\\test\\afd.out   用 String str = strBsf.replaceAll(" ...

  4. js 标准对象

    在JavaScript的世界里,一切都是对象. 但是某些对象还是和其他对象不太一样.为了区分对象的类型,我们用typeof操作符获取对象的类型,它总是返回一个字符串: typeof 123; // ' ...

  5. mysql-5.7.19免安装版的配置方法

    1. 下载MySQL Community Server 5.6.13 2. 解压MySQL压缩包     将以下载的MySQL压缩包解压到自定义目录下,我的解压目录是:     "D:\Pr ...

  6. PAT 1068 万绿丛中一点红(20)(测试点分析+思路分析)

    1068 万绿丛中一点红(20 分) 对于计算机而言,颜色不过是像素点对应的一个 24 位的数值.现给定一幅分辨率为 M×N 的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点,并且该点的 ...

  7. Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.

    环境:Ubuntu 16.04.1 + Django  1.11.15 + Apache 2.4.18 + python 3.5 此篇文章内容提到的第几步,对照以下链接中的步骤 百度云的ubuntu1 ...

  8. BZOJ 3007 [SDOI2012]拯救小云公主 - 对偶图 + 并查集

    Solution 答案具有单调性, 显然可以二分答案. 有两个注意点 : 英雄是可以随便走的, 也就是不是网格图... 还有坐标不能小于$1$ QAQ 开始时英雄在左下角, 公主在右上角, 我们反过来 ...

  9. jsonp,ajax,json问题

    JSONP技术 JSONP是解决跨域问题的一种常见方式 跨域问题,因为浏览器有同源策略,所以当不同域间进行数据交互的时候就会出现跨域问题 同源策略:只有在同协议.同域名.同端口的情况下才能进去数据交互 ...

  10. MySQL学习笔记-数据库文件

    数据库文件 MySQL主要文件类型有如下几种 参数文件:my.cnf--MySQL实例启动的时候在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还介绍了参数类 ...