Java实现银行存取款
"感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友。您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!"
代码
```Java
import java.util.Scanner;
// 定义 poc 类
class poc{
private int op =1000;
String name = "小邓";
public int getOp() {
return op;
}
public void setOp(int op) {
this.op = op;
}
public void mation(){
System.out.println(
name+"账户当前的余额为"+this.getOp()
);
}
}
public class key {
public static void main(String[] args) {
poc p = new poc();
Scanner sc = new Scanner(System.in);
System.out.println("1.存钱2.取钱3.查看当前银行卡信息");
while (true) { //为真处于一直在运行的状态
int a = sc.nextInt();
if (a == 1) {
System.out.println("账户余额为"+ p.getOp()+"请选择存款金额");
int moneny = sc.nextInt();
p.setOp(p.getOp()+moneny);
System.out.println("存款成功金额为"+p.getOp()+"元");
System.out.println("1.存钱2.取钱 3.查看当前银行卡信息");
} else if (a == 2) {
System.out.println("账户余额为"+ p.getOp()+"请输入取款金额");
int withdraw = sc.nextInt();
p.setOp(p.getOp()-withdraw);
System.out.println("余下金额为"+p.getOp());
System.out.println("1.存钱2.取钱3.查看当前银行卡信息");
} else {
p.mation();
System.out.println("1.存钱2.取钱 3.查看当前银行卡信息");
}
}
}
}
```
以上是此功能的全部代码,功能的点只有存钱 + 取钱 .但在实际开发中肯定要考虑代码安全.要对金额取出有限制及不能出现负数或者其他字符的情况.当然这种小小练习是不用考虑,只管练手就是了
0x1
功能点比较简单,我的思路是:
1.定义类将成员变量作为金额
2.实例化类 通过判断操作从而进行下一步操作
在 3-20处定义了 poc类,里面定义了 成员变量 op作为金额 且初始金额为1000进行私密, 成员name作为用户名称是一个死数据。 8-13行就是基于金额op的Set和Get构造方法, 15行则是我自己加入的功能点,成员方法调用后会显示处当前银行卡的用户名称及金额,当然也可以自定义其他功能点
class poc{
// 定义好存取款所需要的个人信息
private int op =1000;
String name = "小邓";
public int getOp() {
return op;
}
public void setOp(int op) {
this.op = op;
}
// 遍历个人信息方法
public void mation(){
System.out.println(
name+"账户当前的余额为"+this.getOp()
);
}
}
接下来就是在我们的主类mian的逻辑. 23行我首先拿到 class poc类的对象. 24行属于一个键盘录入语句,数据完全是用户自己输入,存入多少取出多少, 25 打印语句让用户知道已经可以开始操作, 26行的whlie是此处的点睛一笔,因为这个程序要一直在运行,存入和取出是基于一次的,不能是存完程序就结束了, whlie为真保证的是程序可以一直运行下去。
public class key {
public static void main(String[] args) {
poc p = new poc();
Scanner sc = new Scanner(System.in);
System.out.println("1.存钱2.取钱3.查看当前银行卡信息");
while (true) { //为真处于一直在运行的状态
xxxxxxxx
}
}
}
0x2
做完以上的步骤就到了最核心的功能点存钱取出, 此处的功能点全部是在whlie中. 27 行我先是通过键盘录入拿到了输入的数字判断操作是那种, 1 是存钱 2 是取出 3查看信息28 行的if判断就是在判断操作.是为1还是2 , 如果 用户输入是1 的话那么就是进行存钱操作 此时会提醒我们存款金额

存钱金额的操作是用 poc类的op属性完成,将 op私密后我们通过 set存入数据,再由get输入数据,.此处功能点是再 30 -33行,由我逐行分析代码
由于金额肯定是我们控制的,30行中我们就是定义了 money作为我们输入的金额存储到了里面.**假设此时我们输入的金额是800那么moeny就是800块,我们现在需要把这笔钱给到荷包里面去,就是给到 op,那么 就是 ** p.setOp(p.getOp()+moneny); setOp是存入数据, p.getOp是因为初始就有1000元,在这个基础上加上moneny 就相当于我们钱成功存入了
int moneny = sc.nextInt();
p.setOp(p.getOp()+moneny);
System.out.println("存款成功金额为"+p.getOp()+"元");
System.out.println("1.存钱2.取钱 3.查看当前银行卡信息");
我们操作试验成功存入金额两处打印语句,前者输入金额让人有一个直观的感受,后者提示用户存钱已经完成可以继续做别的操作,前面我们是已经将while为真那么这个操作可以一直进行

0x3
存钱的操作逻辑就是这样写,用户取钱的操作同样也是先判断操作是1还是2 ,是2则开始取钱,接受到取出的数量.再去用op的set构造方法进行结算与存钱相反那么肯定是减去这个金额 p.setOp(p.getOp()-withdraw);

int withdraw = sc.nextInt();
p.setOp(p.getOp()-withdraw);
System.out.println("余下金额为"+p.getOp());
System.out.println("1.存钱2.取钱3.查看当前银行卡信息");
做完存钱取钱操作最后的操作3就没什么技术,就是判断到用户输入的是3 那么就打印出目前的余额, p.mation(); 直接通过对象调用方法就是此功能点结合起码也可以正常运行,以上就是关于功能点的全部讲解

Java实现银行存取款的更多相关文章
- java并发编程——通过ReentrantLock,Condition实现银行存取款
java.util.concurrent.locks包为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器.该框架允许更灵活地使用锁和条件,但以更难用的语法为代价. Lock 接口 ...
- Python 小案例实战 —— 简易银行存取款查询系统
Python 小案例实战 -- 简易银行存取款查询系统 涉及知识点 包的调用 字典.列表的混合运用 列表元素索引.追加 基本的循环与分支结构 源码 import sys import time ban ...
- C语言实现的简单银行存取款程序 请输入如下数字命令
#include <stdio.h> int main(void) { //提供变量 cmd balance(余额) deposit(存款) withdraw(取款) //利用while做 ...
- python3.6项目:银行存取款系统
card1 ="1001"#卡号pwd1="1001"#密码ban1=10000#余额card2 ="1002"pwd2="100 ...
- 银行ATM存取款系统(C语言实现)
这里使用的运行工具是DEV C++.老铁们一定要看仔细了.是DEV C++ 仅供借鉴:这个是大一时期写的.大四的时候整理了一下(本人C语言学的也不太好).肯定很多不足和存在漏洞的地方.仅供借鉴.仅供借 ...
- Go语言的函数07---闭包练习(ATM存取款)
package main import "fmt" /* @ATM(闭包练习) ·写一个Atm(函数),返回存款,取款两个内层函数 ·存款,取款两个函数,都以一个金额为参数,返回存 ...
- 学习练习 java面向对象存取款查询余额
package com.hanqi; public class Account { String ZhangHao; double CunKuanYuE; Account(String ZhangHa ...
- java 使用线程做一个简单的ATM存取款实例.(转)
线程 Thread 类,和 Runable 接口 比较两者的特点和应用领域. 可以,直接继承线程Thread类.该方法编写简单,可以直接操作线程,适用于单重继承情况,因而不能在继承其他类 实现Runn ...
- 实验01——java模拟银行ATM系统
用java写的一个模拟银行系统,比较初级. ATM.java package cn.tedu.yinhang; import java.util.Scanner; /** * @author 赵瑞鑫 ...
- Java 多线程 锁 存款 取款
http://jameswxx.iteye.com/blog/806968 最近想将java基础的一些东西都整理整理,写下来,这是对知识的总结,也是一种乐趣.已经拟好了提纲,大概分为这几个主题: ja ...
随机推荐
- 3D模型+BI分析,打造全新的交互式3D可视化大屏开发方案
背景介绍 在数字经济建设和数字化转型的浪潮中,数据可视化大屏已成为各行各业的必备工具.然而,传统的数据大屏往往以图表和指标为主,无法真实地反映复杂的物理世界和数据关系.为了解决这个问题,3D模型可视化 ...
- PV的回收策略、访问策略和状态
PersistentVolume(PV)的回收策略.访问策略和状态是Kubernetes存储管理中的重要概念. 回收策略 Retain:当PV的回收策略设置为Retain时,即使对应的Persiste ...
- Linux 运维工程师面试真题-1-必会Linux 操作系统知识
Linux 运维工程师面试真题-1-必会Linux 操作系统知识 运维的整个面试流程其实是非常繁杂的,为了方便大家准备,我们特地在这里给大家整理了 一些 Linux 系统运维相关的面试题,有些问题没有 ...
- UE虚幻引擎:生成云平台指定路径下的EXE文件
市面上大量优秀的游戏都是基于UE制作的,UE虚幻引擎制作的作品可以在windows.mac.linux以及ps4.x-boxone.ios.android甚至是html5等平台上运行.本文介绍了UE虚 ...
- npm ERR! code ENOENT npm ERR! syscall open npm ERR! path C:\Users\shuzi\Desktop\保密文件项目\test-ui/package.json npm ERR! errno -4058
打开一个新的项目,因为当前项目文件夹下没有npm,"dev": "npm run start:dev",所以所以没有展示对应的运行图,如下图: 打开一个新的前端 ...
- .Net 8.0 除gRPC之外的另一个选择,IceRPC之快束开始HelloWorld
作者引言 很高兴啊,我们来到了第一篇,程序员的HelloWorld,快速开始RPC之游 快速入门 演示如何在几分钟内,使用IceRPC,构建和运行一个完整的客户端-服务器(C/S)应用程序. 必要条件 ...
- docker相关命令杂理
- 2020.11.16docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] #保存现有的镜像 # docker commit -a "r ...
- KingbaseES中truncate和oracle中truncate区别
truncate命令在KingbaseES中本质上区别于oracle.因为oracle中,数据文件datafile可以被表所共享,每张表被分配各自的连续的extents.而在KingbaseES中,数 ...
- Android将数据导入到已有的excel表格_0
用到的jxl2.6.12 jar 包下载地址: https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl/2.6.12
- MySQL创建和操纵表
表创建基础 CREATE TABLE customers ( cust_id int NOT NULL AUTO_INCREMENT , cust_name char(50) NOT NULL , c ...