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?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方 ...
随机推荐
- c#中的Out, params,ref 细说并沉淀
1. Out,params,ref之前先记录平时用的最多的按值传递参数的情况,当然默认情况下参数传入函数的默认行为也是按值传递的. 1: //默认情况下参数会按照值传递 2: static int a ...
- JVM命令
jstack--jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息: jinfo--jinfo可以输出并修改运行时的java 进程的opts.用处比较简单 ...
- 转载:Allegro实用技巧之模块复用
http://bbs.ednchina.com/BLOG_ARTICLE_3031842.HTM?click_from=8800032437,9950148743,2016-01-04,EDNCOL, ...
- setTimeout和setInterval实现滚动轮播中,清除定时器的思考
PS:希望各路大神能够指点 setTimeout(function,time):单位时间内执行一次函数function,以后不执行:对应清除定时器方法为clearTimeout; setInterva ...
- 巧学DBhelper
这几天在教我很重要的人学习,她属于那种超级小白,很超级的那种. 教她的过程中 发现有的知识点 不管这么教都不会.DBhelper就是不知道怎么记. 当时我就想到 杰哥(程杰)的出的大话系列,和他写书的 ...
- iOS面试题最全梳理
OC的理解与特性 OC作为一门面向对象的语言,自然具有面向对象的语言特性:封装.继承.多态.它既具有静态语言的特性(如C++),又有动态语言的效率(动态绑定.动态加载等).总体来讲,OC确实是一门不错 ...
- asp.net core 实现一个简单的仓储
一直有自己写个框架的想法,但是一直没有行动起来,最近比较闲,正好可以开工了. 现在已经完成了两部分.1.一个简单仓储,实现使用的是ef 2.IOC部分,这里是把内置的ioc替换成了aotofac,这部 ...
- 认识 Less
CSS(层叠样式表)是一项出色的技术,它使得网页的表现与内容完全分离,使网站维护工作变得更容易,不会因为内容的改变而影响表现,也不会因为表现的改变而影响内容. 作为一门标记性语言,CSS 的先天性优点 ...
- apache mysql无法启动解决办法
最近在调试几个代码,需要不停的启动关闭服务器和mysql.在连续的几次开关后,无法启动了,每次启动后就直接关闭. 刚开始是怀疑是不是端口被占用了,查看端口后,并没有端口被占用的情况.查看mysql错误 ...
- RabbitMQ Cluster群集安装配置
#RabbitMQ Cluster群集安装配置 openstack pike 部署 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ########## ...