ATM_tests
ATM取款机练习程序
一、程序分析
自顶向下、逐步细化
按照程序执行的流程,将程序分解为若干个功能相对独立的函数(方法),每个函数(方法)负责某一功能,然后根据程序执行的流程,将函数(方法)组装(调用)。
分析程序中的数据,(全局数据、变量)全局变量指的在多个方法中使用的数据。
二、程序结构
显示一些欢迎信息;然后提示用户输入银行卡号和密码,进行身份的验证;如果验证失败,直接退出,输出提示信息。如果验证通过,显示主菜单、然后根据用户选择的操作执行相应的操作,执行完成后,再次返回到主菜单。
1.方法
显示欢迎信息
功能:在屏幕上输出一些信息“欢迎使用本ATM自助服务系统” 参数:不需要
返回值:无返回值身份验证
功能:让用户输入银行卡号和密码,进行判断,用户最多可以输入三次,三次全错非法用户,否则是合法用户
参数:无
返回值:如果验证通过,返回true;否则返回false 主菜单
功能:在屏幕上输出主菜单
1-------------查询
2-------------取款
3-------------存款 4-------------退出 参数:不需要
返回值:无返回值查询余额
功能:在屏幕上输出当前银行卡内的余额 参数:不需要
返回值:无返回值
存款
功能:实现存款功能,用户输入存款金额,然后执行存款操作(增加银行卡内余额,增加ATM机内余额),存 款结束后,显示当前余额 参数:不需要
返回值:无返回值取款
功能:实现取款功能,用户输入取款金额(金额必须为100的整倍数),然后判断用户卡内余额是否大于等于取款金额。如果大于等于取款金额,然后判断机内余额是否够用。
参数:不需要 返回值:无返回值
2.数据
银行卡号:String类型 默认值:123456789 银行卡密码:String类型 默认值:888888 卡内余额:float类型 默认值:50000元机内余额:int类型 默认值:40000元
三、程序实现
if(n.equals(cardNumber) && p.equals(passWd)){ return true;
}else{
System.out.println("银行卡号或密码有误,请重新输入");
}
}
return false;
}
/**
* 主菜单
*/
public void menu(){
System.out.println();
System.out.println("\t\tATM取款机主菜单");
System.out.println("1----------查询");
System.out.println("2----------取款");
System.out.println("3----------存款");
System.out.println("4----------退出");
System.out.println("请选择你的操作:");
}
/**
- 查询余额
*/
public void showMoney(){
System.out.println("卡内余额:"+cardMoney+"元"); }
/** - 取款操作
*/
public void takeMoney(){
int money=0;
do{
System.out.println("请输入取款金额");
money=sc.nextInt();//接收用户从键盘输入的取款金额
}while(money%100!=0);
if(money>cardMoney){
System.out.println("无法完成操作,卡内余额不足!!!");
}else if(money>atmMoney){
System.out.println("无法完成操作,机内余额不足!!!");
}else{
cardMoney=cardMoney-money;//取款,修改卡内余额
atmMoney=atmMoney-money;//修改机内余额
showMoney();//显示取款后的余额
}
}
/**- 存款操作
*/
public void saveMoney(){
int money=0;
do{
System.out.println("请输入存款金额");
money=sc.nextInt();
}while (money%100!=0);
- 存款操作
ATM_tests的更多相关文章
随机推荐
- kaggle——Bag of Words Meets Bags of Popcorn(IMDB电影评论情感分类实践)
kaggle链接:https://www.kaggle.com/c/word2vec-nlp-tutorial/overview 简介:给出 50,000 IMDB movie reviews,进行0 ...
- jquery和zepto有何区别?
1.针对移动端程序,Zepto有一些基本的触摸事件可以用来做触摸屏交互(tap事件.swipe事件),Zepto是不支持IE浏览器的. 2.DOM操作的区别:添加id时jQuery不会生效而Zepto ...
- Codeforces Edu Round 52 A-E
A. Vasya and Chocolate 模拟题.数据会爆\(int\),要开\(long\) \(long\) #include <iostream> #include <cs ...
- Filebeat+Logstash自定义多索引
方案一:推荐 [root@elk-node-1 filebeat]# cat filebeat.yml|egrep -v "^$|^#|#" filebeat.inputs: - ...
- 第二篇:docker 简单入门(二)
本篇目录 写在最前面的话 最常用的docker命令 获取远程仓库镜像 写在最前面的话 如上图大家看到的这样,以后此类文章请到其他平台查阅,由于博客园提示说,内容太多简单,所以以后简单的内容我会放在cs ...
- C语言服务器编程必备常识
入门 包含了正确的头文件只能编译通过,没链接正确的库链接会报错. 一些常用的库gcc会自动链接. 库的缺省路径/lib /usr/lib /usr/local/lib 不知道某个函数在那个库可以nm ...
- selenium IDE使用-1
selenium 硒 Mercury汞,外国人喜欢取这化学的名字 一.selenium概述 1.selenium是开源免费的,针对web应用程序功能自动化测试的工作. 2.做功能自动化的原因:回归测试 ...
- 移动端SCSS
一.什么是SASS SASS是一种强化CSS的辅助工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单可维护. #二.安装和使用(VS Code中) #1.安装 下载扩展文件 ...
- Kubernetes K8S之Helm部署、使用与示例
Kubernetes K8S之Helm部署.使用.常见操作与示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 2 ...
- Python 的 10 个开发技巧!太实用了
1. 如何在运行状态查看源代码? 查看函数的源代码,我们通常会使用 IDE 来完成. 比如在 PyCharm 中,你可以 Ctrl + 鼠标点击 进入函数的源代码. 那如果没有 IDE 呢? 当我们想 ...