
java开发——银行项目基本实现功能(基础)
发布日期:2021-05-12 23:56:46
浏览次数:21
分类:精选文章
本文共 6010 字,大约阅读时间需要 20 分钟。
1.程序入口
package com.fy.day11.bank;/** * 银行案例的测试类(程序的起始) * @author fangyuan * */public class TestBank { public static void main(String[] args) { Bank bank =new Bank();//创建了一家银行网点 bank.welcomeMenu(); bank.getRandomCardNo(); bank.showAll(); }}
2. Bank类
package com.fy.day11.bank;/** * 银行类() * @author fangyuan * */import java.util.Scanner;import java.util.Random;public class Bank { //中国建设银行 Scanner input = new Scanner(System.in);//实例变量(实例方法共享) //保存已注册的用户数据 User[] users = new User[5]; int size = 3; int currentIndex; public Bank() { //第一行逻辑 初始化实例变量 User user = new User(); user.setCardNo("6222020200001234567"); user.setIdentify("11111111111111111"); user.setUsername("张三"); user.setPassword("123456"); user.setPhone("12399999999"); user.setBalance(2000.0); users[0] = user; users[1] = new User(); users[1].setCardNo("6222020200001234568"); users[1].setIdentify("11111111111111111"); users[1].setUsername("李四"); users[1].setPassword("123456"); users[1].setPhone("13999994444"); users[1].setBalance(3000.0); users[2] = new User("6222020200001234560","11111111111111111","王五","123456","13666666666",5000.0); } //欢迎页 public void welcomeMenu() { System.out.println("-----------------------------------------------------------------------"); System.out.println("1.登录 2.注册"); System.out.println("请输入操作码:"); int choice = input.nextInt(); switch(choice) { case 1: this.login(); break; case 2: this.register(); this.login(); break; default: System.out.println("输入有误,请重新输入!"); } } //登录 public void login() { System.out.println("请输入卡号:"); String no = input.next(); System.out.println("请输入密码:"); String pwd = input.next(); User u = check(no,pwd); if(u != null) { this.showMenu(u); }else { System.out.println("用户名或者密码错误"); } } //注册 public void register() { System.out.println("请输入姓名:"); String uname = input.next(); String id; do { System.out.println("请输入身份证号:"); id = input.next(); }while(id.length() !=18); String phone; do { System.out.println("请输入电话号码:"); phone = input.next(); }while(phone.length() != 11); System.out.println("请输入密码:"); String pwd = input.next(); System.out.println("请输入预存金额:"); Double money = input.nextDouble(); //根据用户输入的信息 + 随机卡号 完成对象的封装 String myCardNo = this.getRandomCardNo(); User user = new User(); user.setCardNo(myCardNo); user.setUsername(uname); user.setIdentify(id); user.setPhone(phone); user.setPassword(pwd); user.setBalance(money); //将该对象存储到users数组中// if() {}//扩容判断 users[size] = user; size++; System.out.println("注册成功,您的卡号是:" + myCardNo); } public String getRandomCardNo() { String prefix = "622202020000"; Random random = new Random(); int r = random.nextInt(9000000); System.out.println(prefix + (r + 1000000)); return null; } //验证 public User check(String no,String pwd) { for(int i = 0; i < size; i++) { //验证卡号和密码// if(users[i] != null) {//非空判断 if( no.equals(users[i].getCardNo()) && pwd.equals(users[i].getPassword())) { //查找到该用户,用户存在 //存在 return users[i]; } } //} return null;//不存在} //显示菜单 public void showMenu(User u) { int choice; do { System.out.println("-----------------------------------------------------------------------"); System.out.println("---1.修改预留手机号 2.存款 3.取款 4.转账 5.查询余额 6.修改密码 7.注销用户 0.退出---"); System.out.println("请输入操作码:"); choice = input.nextInt(); switch(choice) { case 1: System.out.println("执行开户"); break; case 2: System.out.println("执行存款"); break; case 3: this.withdrawal(u);; break; case 4: System.out.println("执行转账"); break; case 5: System.out.println("执行查询余额"); break; case 6: System.out.println("执行修改密码"); break; case 7: this.cancel(u); break; case 0: return; default: System.out.println("输入有误,请重新输入!"); break; } }while(true);} //注销 public void cancel(User user) { int index = size + 1; //查找该用户所在的数组下标 for(int i = 0; i < size; i++) { if(users[i] != null) { //非空判断 index = i; break; } } //移动该元素之后的每个元素 for(int i = index; i < size - 1; i++) { users[i] = users[i+1]; } size--; }//取款 public void withdrawal(User mine) { System.out.println("请输入取款金额:"); double money = input.nextDouble(); if(money < mine.getBalance()) { //可以取款 mine.setBalance(mine.getBalance() - money); System.out.println("取款成功,当前余额为:" + mine.getBalance()); }else { System.out.println("余额不足"); } } public void showAll() { for(int i = 0; i < size; i++) { System.out.println(users[i].getUsername()); } }}
3. User类
package com.fy.day11.bank;/** * 类的组成、私有属性、公共访问方法、构造方法 * 实体类:Entity 作用:存储数据 * @author fangyuan * */public class User { private String cardNo;//卡号 private String identify;//身份证号 private String username;//用户名 private String password;//密码 private String phone;//手机号码 private double balance;//余额 public User() { } public User(String cardNo,String identity,String username,String password,String phone,double balance, String identify) { this.cardNo = cardNo; this.identify = identify; this.username = username; this.password = password; this.phone = phone; this.balance = balance; } public void setCardNo(String cardNo) { this.cardNo = cardNo; } public String getCardNo() { return this.cardNo; } public void setIdentify(String identify) { this.identify = identify; } public String getIdentify() { return this.identify; } public void setUsername(String username) { this.username = username; } public String getUsername() { return this.username; } public void setPassword(String password) { this.password = password; } public String getPassword() { return this.password; } public void setPhone(String phone) { this.phone = phone; } public String getPhone() { return this.phone; } public void setBalance(double balance) { this.balance = balance; } public double getBalance() { return this.balance; } }
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月21日 03时15分04秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MySQL错误日志(Error Log)
2021-05-09
解决:angularjs radio默认选中失效问题
2021-05-09
windows环境下安装zookeeper(仅本地使用)
2021-05-09
缓冲区溢出实例(一)--Windows
2021-05-09
Python中字符串前添加r ,b, u, f前缀的含义
2021-05-09
Hadoop学习笔记—Yarn
2021-05-09
JSONPath小试牛刀之Snack3
2021-05-09
Jenkins - 部署在Tomcat容器里的Jenkins,提示“反向代理设置有误”
2021-05-09
wxWidgets源码分析(3) - 消息映射表
2021-05-09
wxWidgets源码分析(5) - 窗口管理
2021-05-09
wxWidgets源码分析(7) - 窗口尺寸
2021-05-09
wxWidgets源码分析(8) - MVC架构
2021-05-09
wxWidgets源码分析(9) - wxString
2021-05-09
[白话解析] 深入浅出熵的概念 & 决策树之ID3算法
2021-05-09
[梁山好汉说IT] 梁山好汉和抢劫银行
2021-05-09
[源码解析] 消息队列 Kombu 之 基本架构
2021-05-09
[源码分析] 消息队列 Kombu 之 启动过程
2021-05-09
抉择之苦
2021-05-09
wx.NET CLI wrapper for wxWidgets
2021-05-09