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?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方 ...
随机推荐
- SQL命令语句进行大数据查询如何进行优化
SQL 大数据查询如何进行优化? 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索 2.应尽量避免在 where 子句中对字段进行 null 值 ...
- 在foreach的判断条件里执行方法会有效率问题吗?
楼猪平时一有空就有看别人代码的习惯,从许多优秀规范的代码中学习到了很多简约高效的写法和画龙点睛的思想精华.但是有的时候也会觉得某些写法很值得玩味.比如刚看到一段代码,在foreach的条件判断里加了一 ...
- 【python】内置函数总结(一)
1.判断真假的函数:bool()2.Python中所谓的迭代协议就是next方法的对象会前进到下一个结果,在一系列结果的末尾会引发StopIteration异常.在Python中,任何类型的对象都被认 ...
- select * from 的一些心得
如何简单运用好 select * from语句,在不同的函数下,有不同的先后顺序. 语法格式 (代表先后顺便) (2)select 字段名 查询什么东西 (1)from 表名,从哪个表查询 例如:查询 ...
- Android OOM异常解决方案
一,什么是OOM异常: OOM(out of Memory)即内存溢出异常,也就是说内存占有量超过了VM所分配的最大,导致应用程序异常终止: 二,为什么会产生OOM异常呢? OOM异常是Android ...
- ssm+maven 框架整合
开篇简言:maven的存在让ssm框架简单了一个量级,BaseDao的存在又让项目简化了一个量级,希望看到这篇文章的都能深入的了解上面两项,好了,进入主题,构造一个ssm框架 1.准备工具 mave ...
- 从cdn说起
为什么要使用cdn 雅虎军规有一条规则建议我们是用cdn.随便在网上搜索,可以找到使用的cdn的好处. 再次强调第一条黄金定律,减少网页内容的下载时间.提高下载速度还可以通过CDN(内容分发网络)来提 ...
- insert时报Cannot add or update a child row: a foreign key constraint fails (`yanchangzichan`.`productstatusrecord`, CONSTRAINT `p_cu` FOREIGN KEY (`cid`) REFERENCES `customer` (`cid`))错误
mybatis在insert时报Cannot add or update a child row: a foreign key constraint fails (`yanchangzichan`.` ...
- 第一份开发工作,边学边做android
我刚刚毕业,在培训学校学的Java web开发,虽然学的没有大学生那么丰富细致,没有他们理论基础扎实,但是这是我学习软件开发的唯一方式了. 从小学我学习就是倒数2.3等,所有人都认为我是个没法学习的孩 ...
- linux添加新硬盘并格式化
1.查看当前系统硬盘及分区情况 (注:Linux中SCSI的第1个硬盘/dev/sda,第2个硬盘/dev/sdb依此类推) 2. 初始化分区sdb为物理卷pv pvcreate /dev/sdb ...