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 ...
随机推荐
- Linux 服务器Python后台运行服务(ssh断开不退出)
壹: 最近用python搭建一个物联网数据存储的微服务,部署到ubuntu上去,所以,python后台运行是一个必不可少的环节. 贰: 这个只需要是一个命令即可: 命令1(记录所有日志): nohup ...
- gcc makefile 模板
一 基本概况 在做基本的c代码测试的时候,经常会遇到gcc做编译,作为一个工程师,不存点模板,每次都是自己写的话,那不是非常的浪费体力,程序员本来就累了.在这上面浪费不少时间,吃力不讨好啊. 保存一些 ...
- [C++]使用auto遍历判断是否是最后一个元素
一.背景 略 二.代码 for(auto& it:vec){ if(&it==&vec.back()){ cout<<"is the last eleme ...
- Spring Boot学习日记17
尝试整合JDBC spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/mybati ...
- 记录--vue3 + mark.js | 实现文字标注功能
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 页面效果 具体实现 新增 1.监听鼠标抬起事件,通过window.getSelection()方法获取鼠标用户选择的文本范围或光标的当前位 ...
- hackme 【攻防世界】Reverse
题目: 丢到PE里, 无壳,64bit 丢到IDA里,shift+F12,查看字符串,找到一个很可疑的字符串 跟进去看看,找到目标函数,我另外搜索了一下,没有mian函数,sub_400F8E应该就是 ...
- Oracle的md5
CREATE OR REPLACE FUNCTION MD5(passwd IN VARCHAR2) RETURN VARCHAR2 IS retval varchar2(32); BEGIN ret ...
- C# 强大的网页处理类NSoup
地址: https://github.com/GeReV/NSoup using System; using System.Collections.Generic; using System.Comp ...
- kingbaseES V8R6 备份恢复案例 -- sys_rman备份“DSO support..."故障
案例说明: 在通过sys_rman执行备份时,出现"DSO support...."错误,如下图所示: sys_log日志: 适用版本: KingbaseES V8R6 一.问题分 ...
- #分治,Kruskal#洛谷 3206 [HNOI2010]城市建设
题目 动态改边权求最小生成树 \(n\leq 2*10^4,m\leq 5*10^4,q\leq 5*10^4\) 分析 乍一看是线段树分治,但有一个很大的问题就是局部的Kruskal不一定是最后的选 ...