项目介绍


完成基本的银行业务功能

  存款 取款 转账 查询余额 修改密码 修改预留手机号 注销账号 退出

任务分解:

  定义三个基本类:

BankTest():银行业务主程序

Bank(): 银行类,包含主要业务逻辑

User():客户类,存储客户相关个人信息

任务逻辑图:

实现代码

银行主类(BankTest)

程序开头在这个类中

/*BankTest*/
public class BankTest {
public static void main(String[] args) {
Bank bank = new Bank();
     bank.login();
System.out.println("欢迎再次使用");
}
}

银行类(Bank)

login()函数完成了3个功能:

1.调用初始化函数。//存入初始用户信息

2.接收用户输入的卡号密码等信息

3.调用check()函数核对用户信息是否正确

import java.util.Scanner;

public class Bank {
Scanner sc = new Scanner(System.in);
User[] users = new User[5];
//String no = ;//字符串的默认值?
public void initial() {//存入初始用户信息
User user = new User();//生成用户对象
user.setCardNo("6222021702033334444");
user.setPwd("123456");
user.setIdNo("4444444444444");
user.setPhone("13900000000");
user.setName("tom");
user.setBalance(4000.0);
users[0] = user;
User user1 = new User("6222021702033334444","123456","5555555555555","13911111111","tony",5000.0);//有参构造方式生成对象
users[1] = user1; } public void login() { initial();//调用初始化函数 System.out.print("请输入卡号:");
String no = sc.next();
System.out.print("请输入密码:");
String pwd = sc.next(); User mine = check(no , pwd);//将接收的卡号和密码传给check()函数确认有无客户信息,有客户信息则返回客户对象,无客户信息则返回null
if (mine != null) {
System.out.println("已经到这里了");
this.showMenu(mine);//客户信息存在,调出银行业务菜单
return;
} else {
System.out.println("输入错误,用户不存在");
}
} //check函数,校验是否存在该用户
public User check(String no ,String pwd) {
for (int i = 0;i < users.length; i++) {
if (users[i] != null) {//数组的非空判断
if (no.equals(users[i].getCarNo()) && pwd.equals(users[i].getPwd())) {
System.out.println("用户存在");
return users[i];
}
} }
return null; }
}

客户类(User)

/*用户类*/
public class User {
private String cardNo;
private String pwd;
private String idNo;
private String phone;
private String name;
private double balance; public User() {} public User (String cardNo , String pwd , String idNo , String phone , String name , double balance) {
this.cardNo = cardNo;
this.pwd = pwd;
this.idNo = idNo;
this.phone = phone;
this.name = name;
this.balance = balance;
} public void setCardNo(String cardNo) {
this.cardNo = cardNo;
}
public String getCarNo() {
return this.cardNo;
} public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getPwd() {
return this.pwd;
} public void setIdNo(String idNo) {
this.idNo = idNo;
}
public String getIdNo() {
return this.idNo;
} public void setPhone(String phone) {
this.phone = phone;
}
public String getPhone() {
return this.phone;
} public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
} public void setBalance(double balance) {
this.balance = balance;
}
public double getBalance() {
return this.balance;
}
}

银行类(Bank)

业务功能相关代码

    public void showMenu(User mine) {
do {
System.out.println();
System.out.println();
System.out.println();
System.out.println("欢迎使用银行ATM自助服务");
System.out.println("--------------------");
System.out.println("1.开户 2.存款 3.取款 4.转账 5.查询余额 6.修改密码 7.修改手机号 0.退出");
System.out.println("--------------------");
int choice = 0; choice = sc.nextInt();
switch (choice) {
case 1:
System.out.println("执行开户功能");
break; case 3:
System.out.println("执行取款功能");
this.withdrawal(mine);
break; case 0:
System.out.println("执行退出功能"); return;
} } while (true);

银行类(Bank)

具体取款操作相关代码

    public void withdrawal(User mine) {
System.out.print("请输入取款金额:");
double moneyOut = sc.nextDouble();
if (mine.getBalance() >= moneyOut) {
System.out.println("请取款金额为:" + moneyOut + "。");
mine.setBalance(mine.getBalance()-moneyOut);
System.out.println("剩余存款为:" + mine.getBalance() + "。"); }
}

JavaSE案例-Bank的更多相关文章

  1. 小兔博客新增源码下载模块,JavaWeb项目实战,JavaScript入门教程 ,JavaSE案例等

    从今以后,所有的源码在 http://www.xiaotublog.com/downloadView.html 都可以免费下载,在下载页面还可以直接链接到相关的教程地址(如果有教程的话...). 最近 ...

  2. SQL 视图 局部变量 全局变量 条件语句 事务 触发器

    一.视图 1.视图是一张虚拟表,他所存储的不是实际数据,而是查询语句,但我们可以对视图进行像数据表一样的操作. 2.为什么使用视图呢?我的理解是:1.在远程传输数据时,可以避免过长的查询字符,减少流量 ...

  3. 用大白话聊聊JavaSE -- 如何理解Java Bean(一)

    首先,在开始本章之前,先说一个总的概念:所谓的Java Bean,就是一个java类,编译后成为了一个后缀名是 .class的文件.这就是Java Bean,很多初学者,包括当年的我自己,总是被这些专 ...

  4. Unit01: JAVA开发环境案例

    Top JAVA Fundamental DAY01 JDK及Eclipse目录结构操作 JDK的安装及配置 控制台版的JAVA HelloWorld 使用Eclipse开发Java应用程序 1 JD ...

  5. 用DOM4J解析XML文件案例

    用DOM4J解析XML文件案例,由于DOM4J不像JAXP属于JAVASE里,所以如果要使用DOM4J,则必须额外引入jar包,如图:

  6. “粪便银行”:救人拿钱两不误 A Poop Bank in Massachusetts Will Pay You $40 Every Day

    “粪便银行”:救人拿钱两不误 如果你年龄小于50岁,排便规律,而且愿意每天去美国麻省麦德福德跑一趟,那么没准你可以每天得到40美元的外快,而你需要做的事情只是生产便便. 要想得到这笔收入,请拜访“开放 ...

  7. JAVASE笔记回顾

    第一部分,JAVA基础和面向对象 part01 入门与开发环境搭建 1: 计算机基础知识(了解)(1)计算机(2)计算机硬件(3)计算机软件系统软件:windows,linux,mac应用软件:QQ, ...

  8. AP_HZ Party和Supplier、Bank表关系详解

    2014-06-26 Created By BaoXinjian

  9. javaSE第二十一天

    第二十一天    276 1:字符流(掌握)    276 (1)字节流操作中文数据不是特别的方便,所以就出现了转换流.    276 (2)转换流其实是一个字符流    276 1:InputStr ...

随机推荐

  1. 【总结】Centos中,Kerberos安装

    1.安装软件包 安装必须的工具 bison, make, binutils 下载压缩包至/usr/local目录下,并解压 [root@localhost local]# ls krb5-1.14.t ...

  2. 墨仓式进入2.0时代?爱普生商用墨仓式L4158试用

    提起"墨仓式"打印机,相信现在已经没有人需要过多的解释,墨仓式打印机在打印市场占有率不断提高就是最佳佐证.为什么用户对于墨仓式这么认可,想必是墨仓式真正洞悉了他们的需求,解决了打印 ...

  3. Redux在项目中的文件结构

    React + Redux   今天我们来唠唠在React一般项目中,使用Redux进行状态管理的时候,相对的如何存放reducer.action.api之类文件的结构与使用时机吧.本章默认看官们已经 ...

  4. C# 基础知识系列- 16 开发工具篇

    0. 前言 这是C# 基础知识系列的最后一个内容讲解篇,下一篇是基础知识-实战篇.这一篇主要讲解一下C#程序的结构和主要编程工具. 1. 工具 工欲善其事必先利其器,在实际动手之前我们先来看看想要编写 ...

  5. python数据统计分析

    1. 常用函数库   scipy包中的stats模块和statsmodels包是python常用的数据分析工具,scipy.stats以前有一个models子模块,后来被移除了.这个模块被重写并成为了 ...

  6. 自动化运维工具Ansible之Tests测验详解

    Ansible Tests 详解与使用案例 主机规划 添加用户账号 说明: 1. 运维人员使用的登录账号: 2. 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放: 3. 该用 ...

  7. WCF(一)

    在学习WCF之前要知道几个术语: 一:终结点 终结点由3个要素组成:契约,绑定,地址. 1.契约:契约属于一个服务公开接口的一部分.一个服务的契约,定义了服务端公开的服务方法,使用的传输协议,可访问的 ...

  8. Apache Hudi又双叕被国内顶级云服务提供商集成了!

    是的,最近国内云服务提供商腾讯云在其EMR-V2.2.0版本中优先集成了Hudi 0.5.1版本作为其云上的数据湖解决方案对外提供服务 Apache Hudi 在 HDFS 的数据集上提供了插入更新和 ...

  9. Openwrt:编译固件提示[mktplinkfw] error: images are too big 错误

    在编译mr3420的固件时,添加了luci.jamvm,但是最终编译的固件"openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-factory.bin& ...

  10. RabbitMQ的发布订阅模式(Publish/Subscribe)

    一.发布/订阅(Publish/Subscribe)模式 发布订阅是我们经常会用到的一种模式,生产者生产消息后,所有订阅者都可以收到.RabbitMQ的发布/订阅模型图如下: 1.该模式下生产者并不是 ...