ATM取款~~

  1 package com.jredu.ch03;
  2
  3 import java.util.Scanner;
  4
  5 public class Atmmmmmmmmmm {
  6
  7         static int totalMoney=20000;//用户的银行卡余额
  8
  9         public static void main(String[] args) {
 10             // TODO Auto-generated method stub
 11             Scanner input=new Scanner(System.in);
 12             //输入密码,最多输入三次
 13             for(int i=0;i<3;i++) {
 14                 System.out.println("请输入密码,您还可以再输入"+(3-i)+"次");
 15                 switch (input.nextInt()) {
 16                     case 111111:
 17                         /**
 18                          * 选择金额
 19                          */
 20                         System.out.println("输入密码正确");
 21                         while(true){
 22                             System.out.println("请选择金额:0.手动输入金额\t1.100元\t2.300元3.500元\t4.1000元\t5.3000元\t6.5000元");
 23                             String num=input.next();
 24                             switch(num) {
 25                                 case "0":
 26                                     System.out.println("请输入金额,不得低于100元,不得高于1000,必须是100元的倍数");
 27                                     int money=input.nextInt();
 28                                     if(money%100!=0||money<100||money>1000) {
 29                                         System.out.println("输入有误,请重新输入");
 30                                     } else {
 31                                         if(totalMoney-money>0) {
 32                                             totalMoney-=money;
 33                                             System.out.println("您取款"+money+"元,剩余"+totalMoney+"元");
 34                                         } else if(totalMoney-money==0) {
 35                                             totalMoney-=money;
 36                                             System.out.println("您取款"+money+"元,剩余"+totalMoney+"元");
 37                                             System.out.println("谢谢使用,再见");
 38                                             return;
 39                                         } else {
 40                                             System.out.println("余额不足,请重新选择金额");
 41                                         }
 42                                     }
 43                                     System.out.println("是否继续(y/n)");
 44                                     break;
 45                                 case "1":
 46                                     //100元
 47                                     totalMoney-=100;
 48                                     System.out.println("您取款100元,剩余"+totalMoney+"元");
 49                                     if(totalMoney>0) {
 50                                         System.out.println("是否继续(y/n)");
 51                                     } else {
 52                                         System.out.println("谢谢使用,再见");
 53                                         return;
 54                                     }
 55                                     break;
 56                                 case "2":
 57                                     //300元
 58                                     if(totalMoney-300>0) {
 59                                         totalMoney-=300;
 60                                         System.out.println("您取款300元,剩余"+totalMoney+"元");
 61                                     } else if(totalMoney-300==0) {
 62                                         totalMoney-=300;
 63                                         System.out.println("您取款300元,剩余"+totalMoney+"元");
 64                                         System.out.println("谢谢使用,再见");
 65                                         return;
 66                                     } else {
 67                                         System.out.println("余额不足,请重新选择金额");
 68                                     }
 69                                     System.out.println("是否继续(y/n)");
 70                                     break;
 71                                 case "3":
 72                                     //500元
 73                                     if(totalMoney-500>0) {
 74                                         totalMoney-=500;
 75                                         System.out.println("您取款500元,剩余"+totalMoney+"元");
 76                                     } else if(totalMoney-500==0) {
 77                                         totalMoney-=500;
 78                                         System.out.println("您取款500元,剩余"+totalMoney+"元");
 79                                         System.out.println("谢谢使用,再见");
 80                                         return;
 81                                     } else {
 82                                         System.out.println("余额不足,请重新选择金额");
 83                                     }
 84                                     System.out.println("是否继续(y/n)");
 85                                     break;
 86                                 case "4":
 87                                     //1000元
 88                                     if(totalMoney-1000>0) {
 89                                         totalMoney-=1000;
 90                                         System.out.println("您取款1000元,剩余"+totalMoney+"元");
 91                                     } else if(totalMoney-1000==0) {
 92                                         totalMoney-=1000;
 93                                         System.out.println("您取款1000元,剩余"+totalMoney+"元");
 94                                         System.out.println("谢谢使用,再见");
 95                                         return;
 96                                     } else {
 97                                         System.out.println("余额不足,请重新选择金额");
 98                                     }
 99                                     System.out.println("是否继续(y/n)");
100                                     break;
101                                 case "5":
102                                     //3000元
103                                     if(totalMoney-3000>0) {
104                                         totalMoney-=3000;
105                                         System.out.println("您取款3000元,剩余"+totalMoney+"元");
106                                     } else if(totalMoney-3000==0) {
107                                         totalMoney-=3000;
108                                         System.out.println("您取款3000元,剩余"+totalMoney+"元");
109                                         System.out.println("谢谢使用,再见");
110                                         return;
111                                     } else {
112                                         System.out.println("余额不足,请重新选择金额");
113                                     }
114                                     System.out.println("是否继续(y/n)");
115                                     break;
116                                 case "6":
117                                     //5000元
118                                     if(totalMoney-5000>0) {
119                                         totalMoney-=5000;
120                                         System.out.println("您取款5000元,剩余"+totalMoney+"元");
121                                     } else if(totalMoney-5000==0) {
122                                         totalMoney-=5000;
123                                         System.out.println("您取款5000元,剩余"+totalMoney+"元");
124                                         System.out.println("谢谢使用,再见");
125                                         return;
126                                     } else {
127                                         System.out.println("余额不足,请重新选择金额");
128                                     }
129                                     System.out.println("是否继续(y/n)");
130                                     break;
131                                 default:
132                                     System.out.println("数字输入错误,是否继续(y/n)");
133                                     //如果y继续,如果n退出
134                                     break;
135                             }
136                             while(true) {
137                                 char repeat=input.next().charAt(0);
138                                 if(repeat==‘y‘) {
139                                     break;
140                                 } else if(repeat==‘n‘) {
141                                     System.out.println("谢谢使用,再见");
142                                     return;
143                                 } else {
144                                     System.out.println("输入错误,请重新输入");
145                                 }
146                             }
147
148                         }
149                     default:
150                         //密码错误
151                         if(i==2) {
152                             //如果超过三次提示输入密码错误
153                             System.out.println("密码错误,请取卡");
154                         }
155                         break;
156                 }
157             }
158             input.close();
159         }
160
161 }

流程控制

用来控制程序中各种语句的执行顺序

Java中三种流程控制:

顺序结构、选择结构、循环结构

循环结构:while、do-while、for、foreach语句

跳转结构:break、continue、return跳出整个方法

多重if-slse选择结构

if-else与switch比较

绝大部分情况下switch会快一点,除非if-else第一个条件就为true

等值分支使用switch

while循环

符合条件循环继续执行,否则循环退出,先判断后执行

do-while 先执行一遍循环操作,在判断

do{

循环操作

}while(循环条件);

for(表达式①;②;④更新循环变量){

③循环操作

}

嵌套循环:先内循环再外循环

foreach循环

从开始到结束,效率最高,但不能像for循环那样定义范围

break:改变程序控制流

可跳出循环而执行循环后面的语句,还可用在switch

continue

只能用在循环里

跳出当前循环剩余的语句而执行下一次循环

return

作用:退出当前方法,返回上层调用方法处

每个方法都要有return语句,表示方法结束并返回结果

循环次数确定的情况下,通常选用for循环

循环次数不定,用while和do-while

时间: 2024-08-10 18:13:17

ATM取款~~的相关文章

简单的ATM取款过程

一个简单的ATM的取款过程是这样的:首先提示用户输入密码(pwd),最多只能输3次,超过三次则提示用户“密码已输入三次错误,请取卡.“结束交易.如果用户密码正确,在提示用户输入金额(money),ATM只能输出100元纸币,一次取钱要求最低不小于0元,最高10000元,如果输入的金额符合上述要求,则打印输出用户取得钱数,最后提示用户”交易完成,请取卡".否则提示"您输入的金额不合法,请重新输入:".假设 用户密码为111111. public static void main

ATM取款基础

atm.txt money=3000userName=javapwd=123 import java.io.FileReader;import java.io.FileWriter;import java.util.Properties; import javax.swing.JOptionPane; public class ATMus { public static void main(String[] sad) { JOptionPane.showMessageDialog(null, "

C#实现ATM自动取款机

本篇用C#实现ATM自动取款机的一些功能.面临的第一个问题是:如何把与自动取款机相关的有形的.无形的方面抽象出来.大致如下: (1)关于用户帐号的类:Account(2)关于银行数据库的类:BankDatabase(3)关于ATM屏幕显示的类:Screen(4)关于ATM键盘的类:Keypad(5)关于进钞.出钞口的类:DepositSlot(6)关于ATM出钱的类:CashDispendser(7)关于事务的基类:Transaction(8)关于查询的事务类:BalanceInquiry(9)

Spring学习(三)

1,Spring的事务管理机制 Spring事务管理高层抽象主要包括3个接口,Spring的事务主要是由他们共同完成的: l PlatformTransactionManager:事务管理器-主要用于平台相关事务的管理 l TransactionDefinition: 事务定义信息(隔离.传播.超时.只读)-通过配置如何进行事务管理. l TransactionStatus:事务具体运行状态-事务管理过程中,每个时间点事务的状态信息. 2, PlatformTransactionManager事

24Spring_事务管理机制

第一部分:Spring事务管理高层抽象接口 我们介绍三个接口:1.PlatformTransactionManager 2.TransactionDefinition  3.TransactionStatus PlatformTransactionManager 平台事务管理器 使用Spring管理事务,需要为不同持久层技术实现,提供不同事务管理器(实现类).下面给一个PlatformTransactionManager的实现类的表. 这个表格的左侧的事务都是PlatformTransactio

第二十八(线程的同步、守护线程、Timer 定时器)

/* 模拟ATM取款,不是线程同步机制,多线程同时对一个账户进行操作 t1 和 t2 异步编程模型:t1线程执行t1,t2线程执行的是t2,两个线程之间谁也不等于谁 同步编程模型:t1线程和t2线程执行,当t1线程必须等于t2的线程执行结果之后,t1线程才能执行 这是同步编程模型. 什么时候需要引入同步 1. 为了数据安全,尽管应用程序的使用率低,但是为了保证数据安全性,必须的加入线程同步机制 线程同步机制 使程序变成了(等同)单线程 2. 在什么条件下需要使用线程同步 <1> 必须是多线程环

设计模式学习第一天:23种设计模式(全)

C#常见的设计模式 一.概要: 模式分为三种,设计模式.体系结构模式与惯用法.其中惯用法是一种语言紧密相关的模式,例如,定界加锁模式其实是一种惯用法. 在C#项目开发过程中,很多情况下您已经使用了某些模式,但或许您并不知道自己所使用的这种解决方案是一种已经被总结归纳的模式. 工厂.策略.桥接.模板方法.代理等等23种Gof经典模式是属于设计模式,设计模式的粒度相对较小,基本上用于提高模块内部的可扩展性和可维护性需求 三层.MVC.IoC/DI等属于体系结构模式,粒度比设计模式大,它是从项目的整体

CentOS 7 使用Google-Authenticator进行多因素认证

什么是多因素认证(Multi-Factor Authentication, MFA)? MFA,顾名思义使用多种独立的验证机制,对用户进行身份验证,只有全部通过时才能授权访问.MFA的目的是建立一个多层次的防御,使未经授权的人访问计算机系统或网络更加困难.验证机制可以分为: Sth. you know 用户知道什么(知识型的身份验证) Sth. you have 用户有什么(安全性令牌或者智能卡) Sth. you are 用户是什么(生物识别验证) 以我们去ATM取款为例,我们需要插入卡片(s

zz 史上最全--各银行借记卡的年费、小额管理费、转账费等!

史上最全--各银行借记卡的年费.小额管理费.转账费等! 发布时间:2015-01-14 17:28:10 还在迷茫借记卡自费的菜主儿们~菜菜特别整理关于各银行借记卡.存折账户等的年费.小额管理费.转账费等实用信息,欢迎大家更新或者补充完善.觉得有用一定要收藏和分享哟! 工商银行 办卡费5元,年费10元/年,低于300元收小额账户管理费3元/季度,同城跨行取款2元/笔.异地存取款:存款按照结算金额的0.5%收取,最低2元,最高100元;取款按照结算金额的1%收取,最低2元,最高100元; 中国农业