要求:

代码:

 package com.jianglai.atm;

 import java.util.Scanner;

 public class ATM {

     public static void main(String[] args) {

         Scanner in = new Scanner(System.in);
/**
* 1. 判断用户密码是否正确
*/
int pwd = 111111;//用户密码
int i = 1;
for (i = 1; i < 4; i++) {
System.out.print("请输入密码:");
int u_pwd = in.nextInt();//用户输入的密码
//判断密码
if(u_pwd == pwd){
break;
}else {
System.out.print("密码输入错误,");
}
//判断输入密码次数是否超过3次,超过三次提示信息结束程序。
if(i==3){
System.out.println("密码输入超过3次,请取卡。");
return;
} } /**
* 2. 进行取款操作
*/
System.out.println();
System.out.println("*********请根据序号取款*********");
System.out.println();
int money = 0;//取款金钱数
int moenySum = 0;//取款的总金额数
int choosNum = 0;//用户选择的序号 boolean flag = true; while (flag) { String con ;//用户输入Y或N System.out.println("0-手动输入金额");
System.out.println("1-100元\t\t2-300元\t\t3-500元");
System.out.println("4-1000元\t\t5-3000元\t\t6-5000元");
System.out.print("请选择:");
choosNum = in.nextInt();
//根据序号进行操作
switch (choosNum) {
case 0:
System.out.print("请输入金额:");
money = in.nextInt();//用户输入的金额
//判断用户输入的金额是否符合规定
if((money >= 100&& money <= 1000)&&(money%100==0)){
System.out.print("取款完成,是否继续(y/n):");
con = in.next();
}else {
money = 0;//用户输入的金钱不符合规定,将输入的钱数重置,再进行下一步
System.out.print("金额输入错误,是否继续(y/n):");
con = in.next();
money = 0;
}
break;
case 1:
money = 100;
System.out.print("取款完成,是否继续(y/n):");
con = in.next();
break;
case 2:
money = 300;
System.out.print("取款完成,是否继续(y/n):");
con = in.next();
break;
case 3:
money = 500;
System.out.print("取款完成,是否继续(y/n):");
con = in.next();
break;
case 4:
money = 1000;
System.out.print("取款完成,是否继续(y/n):");
con = in.next();
break;
case 5:
money = 3000;
System.out.print("取款完成,是否继续(y/n):");
con = in.next();
break;
case 6:
money = 5000;
System.out.print("取款完成,是否继续(y/n):");
con = in.next();
break; default:
System.out.print("输入错误,是否继续(y/n):");
con = in.next();
break;
}
//总金额累加
moenySum += money; //验证总金额(moneySum)是否大于20000 if(moenySum>20000){
moenySum = moenySum-money;
System.out.print("您的取款金额超过20000,取款失败,是否继续(y/n):");
con = in.next();
}else if (moenySum==20000) {
flag = false;
break;//等于20000的时候自动结束
} //验证是否继续 Y/N(n/y) Y就继续,N就结束
while (true) {
if(con.equals("n")||con.equals("N")){
flag = false;
break;
}else if(con.equals("y")||con.equals("Y")) {
flag = true;
break;
}else {
System.out.print("您输入字符有误,是否继续(y/n):");
con = in.next();
}
} }
//输出最后的金额和提示信息
System.out.println("您的总取款金额为:"+moenySum+"¥");
System.out.println("感谢使用!!!"); } }

效果图:

for循环练习-----ATM取款的更多相关文章

  1. 简单的ATM取款过程

    一个简单的ATM的取款过程是这样的:首先提示用户输入密码(pwd),最多只能输3次,超过三次则提示用户“密码已输入三次错误,请取卡.“结束交易.如果用户密码正确,在提示用户输入金额(money),AT ...

  2. ATM取款~~

    package com.jredu.ch03; import java.util.Scanner; public class Atmmmmmmmmmm { static int totalMoney= ...

  3. 两种atm取款方式

    1.//函数 密码 账号function User(username, password, account){ this.username = username; this.password = pa ...

  4. ATM取款小项目

    项目要求: 1.用户需要从控制台输入账号密码,账号或者密码不正确报异常 2.每日取款的金额有限制(100,30000),否则报异常 3.每次取款都要有记录,并在下一次取款时显示出来 思路: 1.先在& ...

  5. 高仿中国银行ATM系统

    温馨提示由于代码太多只是上传了ATM客户端部分,管理员和超级管理员还有数据库部分上传了工程包,可以直接点击https://i.cnblogs.com/Files.aspx去里面找.package At ...

  6. 带你揭开ATM的神秘面纱

    相信大家都用过ATM取过money吧,但是有多少人真正是了解ATM的呢?相信除了ATM从业者外了解的人寥寥无几吧,鄙人作为一个从事ATM软件开发的伪专业人士就站在我的角度为大家揭开ATM的神秘面纱吧. ...

  7. C#实现ATM自动取款机

    本篇用C#实现ATM自动取款机的一些功能.面临的第一个问题是:如何把与自动取款机相关的有形的.无形的方面抽象出来.大致如下: (1)关于用户帐号的类:Account(2)关于银行数据库的类:BankD ...

  8. python之循环与判断

    1,for 循环,语法 举例: for i in range(1, 5, 2): # 0,1,2,3,4 print(i) for a in range(5):# --(0,5,1) 0,1,2,3, ...

  9. Java程序设计基础笔记 • 【第5章 循环结构】

    全部章节   >>>> 本章目录 5.1 while循环结构 5.1.1 循环简介 5.1.2 while循环 5.1.3 while循环的使用 5.1.4 while循环的注 ...

随机推荐

  1. OpenMp之reduction求和

    // OpenMP1.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include"omp.h" #include& ...

  2. 怎样利用JDBC连接并操作Oracle数据库

    之前学习.NET的时候.以前利用ODBC进行连接数据库,而在Java中通常採用JDBC连接数据库,这里以oracle数据库为例简单的总结一下利用JDBC怎样连接并操作数据库. 1.连接 public ...

  3. hdu1525 Euclid&#39;s Game , 基础博弈

    http://acm.hdu.edu.cn/showproblem.php?pid=1525 题意: 两人博弈,给出两个数a和b, 较大数减去较小数的随意倍数.结果不能小于0,将两个数随意一个数减到0 ...

  4. zzulioj--1790-- 弹珠游戏(数学水题!)

    弹珠游戏 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 14  Solved: 10 SubmitStatusWeb Board Descriptio ...

  5. RAC连接时的2种方式Connect Time Failver和taf

    1. Client-side Connect Time Failover  在客户端的tnsname中配置多个地址,当用户连接时会按照次序尝试各个地址,直到连接成功,连接好后,不再检测地址是否可用,如 ...

  6. 计算sigma

    1.计算平均值Avg Avg = (a0 + a1 + ......+ an-1) / n 2.计算sigma sigma = sqrt( ( (a0-avg) ^2   + (a1-avg) ^2 ...

  7. Caffe Loss分析

    Caffe_Loss 损失函数为深度学习中重要的一个组成部分,各种优化算法均是基于Loss来的,损失函数的设计好坏很大程度下能够影响最终网络学习的好坏.派生于 \(LossLayer\),根据不同的L ...

  8. HDU 1548 A strange lift【BFS】

    题意:给出一个电梯,给出它的层数f,给出起点s,终点g,以及在每一层能够上或者下w[i]层,问至少需要按多少次按钮到达终点. 和POJ catch that cow一样,直接用了那一题的代码,发现一直 ...

  9. SpringBoot学习笔记(13)----使用Spring Session+redis实现一个简单的集群

    session集群的解决方案: 1.扩展指定server 利用Servlet容器提供的插件功能,自定义HttpSession的创建和管理策略,并通过配置的方式替换掉默认的策略.缺点:耦合Tomcat/ ...

  10. 路飞学城Python-Day16