Java 基础 利用数组来实现银行注册开户、存钱、取钱
Java 基础 利用数组来实现银行注册开户、存钱、取钱
1、主界面 放置于BankSystem类中
思路:
(1)用输入语句完成主界面的编写
(2)用Scanner实现键盘录入数据
(3)用switch语句完成操作的选择
(4)用循环再次回到主界面
public class BankSystem {public static void main(String[] args) {//输出语句完成主界面while (true) {System.out.println("----------欢迎来到银行自助系统--------");System.out.println(" 系统功能:");System.out.println(" A、开户");System.out.println(" B、存钱");System.out.println(" C、取钱");System.out.println(" D、退出");System.out.println(" 请输入你的选择:");//用Scanner实现键盘录入数据Scanner sc = new Scanner(System.in);String line = sc.nextLine();//用switch语句完成操作选择switch (line) {case "A"://System.out.println("开户");BankUtil.addUser();break;case "B"://System.out.println("存钱");BankUtil.severmoney();break;case "C"://System.out.println("取钱");BankUtil.costmoney();break;case "D":System.out.println("谢谢使用");
// break;System.exit(0);//JVM退出default:System.out.println("请输入正确选项!");break;}}}}
2、开户功能、存钱功能、取钱功能 放置在BankUtil工具类中
public class BankUtil {public static int ID = 100;public static int k = 0;//初始化数组以后每次加1static Users[] userodd = new Users[0];//创建集合对象,用于存储用户数据//copy方法:将老数组放置新数组中public static Users[] arraycopy() {Users[] user = new Users[userodd.length + 1];for (int i = 0; i < userodd.length; i++) {user[i] = userodd[i];}return user;}//定义一个方法,用于开户添加用户信息public static void addUser() {//键盘录入用户信息Scanner sc = new Scanner(System.in);System.out.println("请输入你的姓名:");String name = sc.nextLine();Scanner sc2 = new Scanner(System.in);System.out.println("请输入你的初始余额:");double rest = sc2.nextDouble();System.out.println("请输入你的密码:");String password = sc.nextLine();//把用户所填信息添加到数组中userodd = arraycopy();//把对象放进对象数组Users user = new Users(name, rest, password);//用户ID自增user.setIdcard(BankUtil.ID++);//数组长度加一userodd[BankUtil.k++] = user;//给出添加成功提示System.out.println("恭喜你,开户成功!");System.out.println("银行卡账号:" + user.getIdcard());System.out.println("姓名:" + user.getName());System.out.println("余额:" + user.getRest());System.out.println("开过户的用户有");//遍历数组,输出当前开过户的用户信息for (Users x : userodd) {System.out.println(x);}}public static void severmoney() {//键盘录入用户信息Scanner sc = new Scanner(System.in);System.out.println("请输入你的卡号:");int Idc = sc.nextInt();Scanner sc3 = new Scanner(System.in);System.out.println("请输入你的密码:");String password = sc3.nextLine();Scanner sc2 = new Scanner(System.in);System.out.println("请输入你要存的金额:");double money = sc2.nextDouble();
// 引入flag 变量解决遍历数组无法判断输出错误提示的问题boolean flag = true;while (flag) {for (int i = 0; i < userodd.length; i++) {if (Idc == userodd[i].getIdcard() && password.equals(userodd[i].getPassword())) {userodd[i].severmoney(money);System.out.println("存款成功!");System.out.println("银行卡账号:" + userodd[i].getIdcard());System.out.println("姓名:" + userodd[i].getName());System.out.println("余额:" + userodd[i].getRest());System.out.println();flag = false;}}break;}if (flag) {System.out.println("您输入的账号或密码不正确!请重新输入:");severmoney();}}public static void costmoney() {//键盘录入用户信息Scanner sc = new Scanner(System.in);System.out.println("请输入你的卡号:");int Idc = sc.nextInt();Scanner sc3 = new Scanner(System.in);System.out.println("请输入你的密码:");String password = sc3.nextLine();Scanner sc2 = new Scanner(System.in);System.out.println("请输入你要取的金额:");double money = sc2.nextDouble();boolean flag = true;while (flag) {for (int i = 0; i < userodd.length; i++) {if (Idc == userodd[i].getIdcard() && password.equals(userodd[i].getPassword())) {if (money <= userodd[i].getRest()) {userodd[i].costmoney(money);System.out.println("取款成功!");System.out.println("银行卡账号:" + userodd[i].getIdcard());System.out.println("姓名:" + userodd[i].getName());System.out.println("余额:" + userodd[i].getRest());System.out.println();flag = false;}}}break;}if (flag) {System.out.println("您输入的账号或密码不正确!请重新输入:");costmoney();}}}
用户数组 储存用户信息 放置于Users 类中
public class Users {//银行卡号private int idcard;//姓名private String name;//余额private double rest;//密码private String password;@Overridepublic String toString() {return "Users{" +"idcard=" + idcard +", name='" + name + '\'' +", rest=" + rest +", password='" + password + '\'' +'}';}//存取钱金额private double money;public void severmoney(double money){this.rest+=money;}public void costmoney(double money){this.rest-=money;}public Users() {}public Users(String name, double rest, String password) {this.name = name;this.rest = rest;this.password = password;}public int getIdcard() {return idcard;}public void setIdcard(int idcard) {this.idcard = idcard;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getRest() {return rest;}public void setRest(double rest) {this.rest = rest;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public double getMoney() {return money;}public void setMoney(double money) {this.money = money;}
}
Java 基础 利用数组来实现银行注册开户、存钱、取钱相关推荐
- Java基础之数组与集合
Java基础之数组与集合 一.数组 二.冒泡排序算法 三.选择排序算法 四.二维数组 五.Arrays 工具 六.宠物管理系统 七.集合 Collection 八.List 九.重写 equals 方 ...
- Java基础——利用DMO4J编写一个商品管理系统
题目:这里有一份XML文件用于储存商品信息,编写一个商品管理系统,可以对XML文件进行增删查改的操作. <?xml version="1.0" encoding=" ...
- Java基础-遍历数组
Java基础-遍历数组 1.语法简介 2.一维数组 3.二维数组 4.三维数组 1.语法简介 在Java中,对for语句的功能给予了扩充.加强,以便更好的遍历数组. 语法格式如下: for(声明循环变 ...
- javascript案例31——简易ATM机、简易银行、存钱取钱。
一.案例描述 模拟简易的ATM机,模拟银行取钱存钱. 题目描述有四个功能: 存钱 取钱 显示余额 退出 注意: 默认里面本身有100块钱. 如果存钱,就用输入的钱数加上先前的钱,然后弹出余额. 如果取 ...
- 一文带你深入理解【Java基础】· 数组
写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...
- java基础(十) 数组类型
###1. 数组类简介 在java中,数组也是一种引用类型,即是一种类. 我们来看一个例子,理解一下数组类: public static void main(String[] args) {Class ...
- Java基础:数组的声明,循环,赋值,拷贝。
数组的声明 一般有两种形式的声明: int[] a; int a[]; 这两种声明都没错,但是大多数都使用第一种声明,因为变量名是独立的,不带任何符号. 声明一个数组,并没有将a正在的初始化为一个数组 ...
- Java基础之数组练习
1.java能动态分配数组吗? 答:可以.int i = 12;int[] myInt = new int[i]; 2.我怎么知道数组的长度? 答:'.length'属性获取 3.数组有没有lengt ...
- Java银行开户,取钱,存钱,查询余额,退出。。。。。
一:上码 package com.wyj.two;import java.util.Scanner;/*** 封装的练习*/ public class Demo8 {public static voi ...
最新文章
- ERROR: Unable to load class 'org.gradle.api.internal.component.Usage'.
- ML 03、机器学习的三要素
- SQL Server 数据库的整理优化的基本过程(二)
- 面试时算法题的解答思路
- android JSONObject的使用
- swift string转int_swift中结构体和类的区别(值类型和引用类型的区别)
- vector的逆序输出(神奇的vector)
- Memcache简介
- 关于解决MyEclipse的耗内存的办法
- 基于python下django框架 实现校园二手书籍交易系统详细设计
- TFTPD32不能传输数据的解决与尝试
- 贪心算法设计作业调度c语言,c语言贪心算法
- matlab如何事先申明结构体数组,【matlab定义结构体数组】
- 百度实习生招聘笔试题1
- fNIRS | 非平稳波形的预处理方法
- 点云上的深度学习及其在三维场景理解中的应用————PointNet(一)
- XGBoost原理介绍
- 组织打羽毛球活动的一些心得
- Linux入门+环境搭建云服务器
- 使用css3中的var()实现改变scss的变量值
热门文章
- linux远程部分文件传输不了,远程传输文件(linux之scp简单操作)
- 提供3Dmax,Zbrush,C4D,MAYA,MD,进来看看
- Java相关课程系列笔记之一Java学习笔记
- 在 ASP.NET Core 中上传文件
- CubeMX生成的代码烧录一次后无法再烧录(识别)STM32,需按住reset后放开才能烧录
- C++/Qt读取二进制STL文件
- pylon保存图片_pylon界面中文说明-德国basler工业相机.pdf
- 金融业信贷风控算法5-时间序列模型概述
- cmake 检测到cuda版本与实际版本不相符
- 详解微信「看一看」多模型内容策略与召回