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. WPF 完美截图 <一>

    最近比较懒,一直没继续,此处省略一万字,下面开始正题. 简单介绍下截图的思路: 核心是利用 public CroppedBitmap(BitmapSource source, Int32Rect so ...

  2. Python字符串之StringIO和struct

    StringIO: 提供类文件接口的字符串缓冲区,可选用性能更好的cStringIO版本: http://docs.python.org/2.7/library/stringio.html#modul ...

  3. setTimeout和setInterval的使用

    引自(http://www.cnblogs.com/qiantuwuliang/archive/2009/06/20/1507304.html) 这两个方法都可以用来实现在一个固定时间段之后去执行Ja ...

  4. 使用Gulp构建前端自动化方案

    前言 在刚入门前端的时候,我们并不清楚前端有工具可以帮我们自动化打包压缩文件,当时只关注能实现功能就可以了,也不太在意前端性能优化的问题,随着项目功能的复杂,项目也变得越来越大,页面的执行速度也开始变 ...

  5. postgresql的psql常用命令-4

    psql是PostgreSQL的一个命令行交互式客户端工具 1. 查看postgresql账号 [root@localhost ~]#cat /etc/passwdroot:x:0:0:root:/r ...

  6. SSM框架下结合 log4j、slf4j打印日志

    首先加入log4j和slf4j的jar包 <!-- 日志处理 <!-- slf4j日志包--> <dependency> <groupId>org.slf4j ...

  7. tensorflow 学习笔记(转)

    转自:http://blog.csdn.net/qq_32166627/article/details/52734387 侵删. tensorflow中有一类在tensor的某一维度上求值的函数.如: ...

  8. Android APK反编译 apktool使用教程

    2017年棋牌游戏突然就火了,正所谓春江水暖鸭先知本猿处在软件行业中就能清晰的感受到市场的变化,最近老家那边也是玩的风生水起,于是最近闲暇时光想到反编译下这些棋牌软件,看看代码实现的思路 (注:反编译 ...

  9. QuickTime视频解析问题

    在QuickTime中可以解析出视频并播放视频,解析的格式后缀名为.mov,之后将该视频导入到Unity Project中,显示未解析到视频文件,本来应该会自动生成MovieTexture材质,但是并 ...

  10. lazy ideas in programming(编程中的惰性思想)

    lazy形容词,懒惰的,毫无疑问是一个贬义词.但是,对于计算机领域,lazy却是非常重要的优化思想:把任务推迟到必须的时刻,好处是避免重复计算,甚至不计算.本文的目的是抛砖引玉,总结一些编程中的laz ...