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的更多相关文章
随机推荐
- (干货)构建镜像之Dockerfile
Dockerfile是一个文本文件,记录了镜像构建的所有步骤. 饭提示:学习Dockerfile构建镜像,就是在学习Dockerfile文件构建的命令+shell脚本语句 Dockerfile简单介绍 ...
- TimSort源码详解
Python的排序算法由Peter Tim提出,因此称为TimSort.它最先被使用于Python语言,后被多种语言作为默认的排序算法.TimSort实际上可以看作是mergeSort+binaryS ...
- PHP 读取XML大文件格式并将其存入数据库中
<?php $xml = new XMLReader(); $xmlfile="./full_database.xml";#文件路径 $xml->open( ...
- 虚拟局域网Vlan配置实战
VLAN 的基本概念 Access 类型的接口 Trunk 类型的接口 接口类型小结 以太网交换机的二层接口类型 Access口接收帧 Access口发送帧 Trunk口接收帧 Trunk口发送帧 H ...
- K8S安装Kubesphere
准备工作 安装Helm curl -L https://git.io/get_helm.sh | bash 创建账户 cat > heml-rbac.yaml << EOF apiV ...
- 06-flask-文件上传案例
前端代码 Demo.html <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- ES6新增数据类型Symbol
Symbol的含义? ES6(2015) 引入了第七种原始数据类型Symbol,Symbol英文文意思为 符号.象征.标记.记号,在 js 中更确切的翻译应该为独一无二的 Symbol的使用? Sym ...
- [日常摸鱼]bzoj1444 [JSOI2009]有趣的游戏——AC自动机+矩阵
今天学校跳蚤市场摆摊聚众吸毒打call,东西卖了一百多好开心_(:з」∠)_ (然后大家中午就去吃了一顿好的x) 下午听演讲然后现在来填坑orz(其实是昨晚的坑) 题目:bzoj1444 先用字符串构 ...
- Flink统计日活
.keyBy(0) .window(TumblingProcessingTimeWindows.of(Time.days(1), Time.hours(-8))) .trigger(Continuou ...
- Hibernate Tools插件在线安装
1.查看你的Eclipse的版本:Help | About Eclipse Version: Oxygen.2 Release(4.11.0) 2.HibernateTools的下载地址为:http: ...