package com.arthur.object;

import java.util.Scanner;

/***
* 简单的ATM存取款程序 1.登陆页面 2.登陆 3.菜单:1,查询,2,存款,3,取款,4,修改密码,5退出 初始密码:123 用户名:admin
*/
public class ATM2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

// 1.输出登陆页面

String pwd = "";
String pass = "";// 密码
double monnery = 12000;
String go = "y";
int end = 0;
for (int i = 1; i < 5; i++) {
// 判断密码输入次数

// 判断密码登陆
if (i > 3) {
System.out.println("密码输入次数过多,请稍后再试......");
break;
}

System.out.println("请输入密码");

pass = scanner.next();
if (!pass.equals("123")) {
System.out.println("输入错误,请重新输入");
} else {

System.out.println("登陆成功!");// 判断密码登陆结束
System.out.println("\t**************\t\t\t\t\t****************");
System.out.println("******************************\tATM取款程序\t********************************");
System.out.println("\t**************\t\t\t\t\t****************");
break;
}
}
do {
System.out.println("业务如下:");
System.out.println("1.查询 2.存款 3.取款 4.修改密码 5.退出");
System.out.println("请输入相对应的业务代码:");
int select = scanner.nextInt();
switch (select) {
case 1:// 查询余额
System.out.println("余额是:" + monnery + "元");
break;
case 2:// 存款
System.out.println("请输入金额:");
double deposit = scanner.nextDouble();// 存款
if (deposit <= 0) {
System.out.println("金额不能为负数");
continue;
}
if (deposit % 100 != 0) {
System.out.println("存款金额必须为100倍数");
continue;
}
monnery += deposit;
System.out.println("存款成功,余额为:" + monnery + "元");
break;
case 3:// 取款
System.out.println("请输入金额:");
double withdraw_money = scanner.nextDouble();

if (withdraw_money < 0) {
System.out.println("取款不能为负数!");
continue;
}
if (withdraw_money % 100 != 0) {
System.out.println("取款必须为100倍数");
continue;
}


if (withdraw_money > 10000 ) {
System.out.println("每次取款不能超过1000元");
continue;
}
if(withdraw_money > monnery){
System.out.println("余额不足!");
}

monnery -= withdraw_money;// 取款
System.out.println("取款成功,剩余金额为:" + monnery + "元");
break;
case 4:// 修改密码
System.out.println("请输入原密码:");
pass = scanner.next();
if (pass.equals("123")) {
System.out.println("请输入新密码:");
String new_pass = scanner.next();
System.out.println("请再次输入新密码:");
String new2_pass = scanner.next();
if (new_pass.equals(new2_pass)) {// 比较两次输入新密码是否相同
pass = new_pass;
System.out.println("密码修改成功!新密码为:" + new_pass);
} else {
System.out.println("密码修改失败!");
}
} else {
System.out.println("原密码不对...");
}
break;
case 5:

end = -1;
break;
default:
System.out.println("输入操作代码不对,请重新输入");

break;

}
if (end == -1) {
System.out.println("退出成功!");
break;
}
if (end != -1) {
System.out.println("是否继续?(y/n)");
go = scanner.next();
}

} while (go.equals("y"));

if (go.equals("n")) {
System.out.println("退出成功!");
}

}

}

ATM程序设计的更多相关文章

  1. 哈尔滨理工大学第七届程序设计竞赛(G.Great Atm)

    Description An old story said the evil dragon wasn't evil at all, only bewitched, and now that the r ...

  2. 设计模式(十二):通过ATM取款机来认识“状态模式”(State Pattern)

    说到状态模式,如果你看过之前发布的重构系列的文章中的<代码重构(六):代码重构完整案例>这篇博客的话,那么你应该对“状态模式”并不陌生,因为我们之前使用到了状态模式进行重构.上一篇博客我们 ...

  3. 大话JS面向对象之开篇万物皆对象------(ATM取款机引发的深思)

    一,总体概要 OO(面向对象)概念的提出是软件开发工程发展的一次革命,多年来我们借助它使得很多大型应用程序得以顺利实现.如果您还没有掌握并使用OO进行程序设计和开发,那么您无疑还停留在软件开发的石器时 ...

  4. JAVA实现ATM源代码及感想

    源代码 //20173626 信1705-2 郑锦package ATM;import java.io.IOException;import java.io.File;import java.io.F ...

  5. ATM+购物车结构

    ATM+购物车 1.需求分析 2.程序设计及目录设计 3.编写程序 4.调试程序

  6. day25 ATM项目(第一天)

    项目的说明书 项目:ATM + 购物车 项目需求: 1.额度15000或自定义 --> 注册功能 2.实现购物商城,买东西加入购物车,调用信用卡接口结账 --> 购物功能.支付功能 3.可 ...

  7. 仿ATM程序软件

    一.目标: ATM仿真软件 1 系统的基本功能 ATM的管理系统其基本功能如下:密码验证机制:吞锁卡机制:存取款功能:账户查询功能:转账功能等. 要求 要能提供以下几个基本功能: (1)系统内的相关信 ...

  8. 银行ATM存取款系统(C语言实现)

    这里使用的运行工具是DEV C++.老铁们一定要看仔细了.是DEV C++ 仅供借鉴:这个是大一时期写的.大四的时候整理了一下(本人C语言学的也不太好).肯定很多不足和存在漏洞的地方.仅供借鉴.仅供借 ...

  9. HTML5 程序设计 - 使用HTML5 Canvas API

    请你跟着本篇示例代码实现每个示例,30分钟后,你会高喊:“HTML5 Canvas?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方 ...

随机推荐

  1. 使用wwise音效引擎的好处

    用过一段时间的wwise,做以下几个具体功能的时候比较方便: 1.当策划需求一个声音需要随机播放多个随机音源的其中一个时,例如脚步声.普通攻击声,当这类声音一直播放的都是同一个音源的时候,人会产生听觉 ...

  2. jQuery学习笔记之Ajax用法详解

    这篇文章主要介绍了jQuery学习笔记之Ajax用法,结合实例形式较为详细的分析总结了jQuery中ajax的相关使用技巧,包括ajax请求.载入.处理.传递等,需要的朋友可以参考下 本文实例讲述了j ...

  3. JS初学运用

    JS一点认知: JavaScrip组成:ECMAScript  核心 BOM ---Browser Object Model 游览器对象模型 DOM  文档模型  document JavaScrip ...

  4. SpringMVC---CookieValue

    配置文件承接一二章 @CookieValue的作用 用来获取Cookie中的值 1.value:参数名称 2.required:是否必须 3.defaultValue:默认值 原网址:https:// ...

  5. 自定义统一api返回json格式(app后台框架搭建三)

    在统一json自定义格式的方式有多种:1,直接重写@reposeBody的实现,2,自定义一个注解,自己去解析对象成为json字符串进行返回 第一种方式,我就不推荐,想弄得的话,可以自己去研究一下源码 ...

  6. 封装一个通过class获取元素的方法--我的JS原生库(1)

    function getByClass(oParent,sClass){ var aEle = oParent.getElementsByTagName('*'); var result = []; ...

  7. 了解Python列表的一些方法

    首先定义一个名字列表,然后使用print() BIF在屏幕上显示这个列表. 接下来,使用len() BIF得出列表中有多少个数据项,然后再访问并显示第2个数据项的值: 创建了列表之后,可以使用列表方法 ...

  8. 利用反射机制设计Dao

    本文主要介绍如何通过Java反射机制设计通用Dao,针对中间使用到的方法进行介绍,不对反射做全面的介绍. 测试方法大家可以直接拷贝去试一下,特地写成比较通用的,注意参数就好了,当然最后还是会附上完整的 ...

  9. CPU 虚拟化

    前面 虚拟化技术总览 中从虚拟平台 VMM 的角度,将虚拟化分为 Hypervisor 模型和宿主模型,如果根据虚拟的对象(资源类型)来划分,虚拟化又可以分为计算虚拟化.存储虚拟化和网络虚拟化,再细一 ...

  10. jQuery常用事件及扩展

    jquery中的常用事件 blur([[data],fn])     --失去焦点触发(鼠标)focus([[data],fn])  --得到焦点触发(鼠标)change([[data],fn]) - ...