ATM程序设计
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程序设计的更多相关文章
- 哈尔滨理工大学第七届程序设计竞赛(G.Great Atm)
Description An old story said the evil dragon wasn't evil at all, only bewitched, and now that the r ...
- 设计模式(十二):通过ATM取款机来认识“状态模式”(State Pattern)
说到状态模式,如果你看过之前发布的重构系列的文章中的<代码重构(六):代码重构完整案例>这篇博客的话,那么你应该对“状态模式”并不陌生,因为我们之前使用到了状态模式进行重构.上一篇博客我们 ...
- 大话JS面向对象之开篇万物皆对象------(ATM取款机引发的深思)
一,总体概要 OO(面向对象)概念的提出是软件开发工程发展的一次革命,多年来我们借助它使得很多大型应用程序得以顺利实现.如果您还没有掌握并使用OO进行程序设计和开发,那么您无疑还停留在软件开发的石器时 ...
- JAVA实现ATM源代码及感想
源代码 //20173626 信1705-2 郑锦package ATM;import java.io.IOException;import java.io.File;import java.io.F ...
- ATM+购物车结构
ATM+购物车 1.需求分析 2.程序设计及目录设计 3.编写程序 4.调试程序
- day25 ATM项目(第一天)
项目的说明书 项目:ATM + 购物车 项目需求: 1.额度15000或自定义 --> 注册功能 2.实现购物商城,买东西加入购物车,调用信用卡接口结账 --> 购物功能.支付功能 3.可 ...
- 仿ATM程序软件
一.目标: ATM仿真软件 1 系统的基本功能 ATM的管理系统其基本功能如下:密码验证机制:吞锁卡机制:存取款功能:账户查询功能:转账功能等. 要求 要能提供以下几个基本功能: (1)系统内的相关信 ...
- 银行ATM存取款系统(C语言实现)
这里使用的运行工具是DEV C++.老铁们一定要看仔细了.是DEV C++ 仅供借鉴:这个是大一时期写的.大四的时候整理了一下(本人C语言学的也不太好).肯定很多不足和存在漏洞的地方.仅供借鉴.仅供借 ...
- HTML5 程序设计 - 使用HTML5 Canvas API
请你跟着本篇示例代码实现每个示例,30分钟后,你会高喊:“HTML5 Canvas?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方 ...
随机推荐
- ASP.Net Controls 用法大全
The FindControl method of the System.Web.UI.Control class appears simple enough to use. In fact, the ...
- C#获得时间段
DateTime today = dt.Date;//今天 00:00:00 DateTime tomorrow = dt.Date.AddDays(1);//明天 00:00:00 DateTime ...
- shell的EOF用法
将命令输出的结果给一个循环处理,常用的方式如下: [root@etch171 guosong]# ls |while read line;do echo $line;done processlist ...
- Linux 性能搜集【linux_reports-cpu/memory/disks/network】
为方便问题发生后,问题原因的分析排查,我们可以在服务器中事先部署如下脚本,方便故障发生后,问题原因的分析排查 脚本部署方法: 1.将脚本[linux_reports.sh]上传到服务器 2.登陆虚拟机 ...
- django实现分片上传文件
目标:利用django实现上传文件功能 1,先设置路由系统 urls.py from django.conf.urls import url,include from django.contrib i ...
- Java提高十六:TreeMap深入分析
上一篇容器元素比较Comparable&Comparator分析的时候,我们提到了TreeMap,但没有去细致分析它,只是说明其在添加元素的时候可以进行比较,从而使得集合有序,但是怎么做的呢? ...
- 深入浅出多线程——ReentrantLock (一)
ReentrantLock是一个排它重入锁,与synchronized关键字语意类似,但比其功能更为强大.该类位于java.util.concurrent.locks包下,是Lock接口的实现类.基本 ...
- 02-线性结构4 Pop Sequence
题目 Sample Input: 5 7 5 1 2 3 4 5 6 7 3 2 1 7 5 6 4 7 6 5 4 3 2 1 5 6 4 3 7 2 1 1 7 6 5 4 3 2 Sample ...
- Java面向对象回顾(1)
世界万物皆对象. 面向对象四大特性:继承.封装.多态.抽象 Java中现有类,再有对象.创建对象(对象实例化)必须先创建类. 将对象的特征对应写成类的属性. 将对象的方法对应携程类的方法. 如何创建对 ...
- 【LintCode·入门】斐波那契数列
斐波那契数列 描述 查找斐波纳契数列中第 N 个数. 所谓的斐波纳契数列是指: 前2个数是 0 和 1 . 第 i 个数是第 i-1 个数和第i-2 个数的和. 斐波纳契数列的前10个数字是: 0, ...