/**
* User
* @author Lenovo
*
*/
public class User {
private String cardId; //卡号
private String userName; //用户名
private String identity; //身份证号
private String passWord; //密码
private String phone; //手机号
private double balnace; //余额
//无叁构造
public User() {
// TODO Auto-generated constructor stub
}
//带叁构造方法
public User(String cardId, String userName, String identity, String passWord, String phone, double balnace) {
super();
this.cardId = cardId;
this.userName = userName;
this.identity = identity;
this.passWord = passWord;
this.phone = phone;
this.balnace = balnace;
}
//生成get和set方法
public String getCardId() {
return cardId;
}
public void setCardId(String cardId) {
this.cardId = cardId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getIdentity() {
return identity;
}
public void setIdentity(String identity) {
this.identity = identity;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public double getBalnace() {
return balnace;
}
public void setBalnace(double balnace) {
this.balnace = balnace;
}
}
import java.util.Scanner;
/**
* 银行类
* @author Lenovo
*
*/
public class Bank {
//保存用户的数据
private User[] users = new User[5];
//记录用户的个数,用于循环遍历
private int size;
//初始化方法
public void initial() {
//创建一个用户1
User user1 = new User();
user1.setCardId("31555555555550"); //卡号
user1.setUserName("小小"); //用户名
user1.setPassWord("123456"); //密码
// user1.setPhone("155168852"); //手机号
user1.setBalnace(1000); //金额
user1.setIdentity("4600051515151515151"); //身份证
//创建用户2
User user2 = new User("77888877", "大大", "4600991199000234", "654321", "15533120496", 100);
//把用户的全部属性复制进入数组中
users[0] = user1;
users[1] = user2;
//计算数组的长度
size = users.length;
}
//无叁构造
public Bank() {
// TODO Auto-generated constructor stub
//调用inintial()方法
initial();
// System.out.println("初始化完成");
}
//用户登录
public void login() {
Scanner input = new Scanner(System.in);
System.out.println("===亲爱的用户你好,欢迎您使用xxx系统===");
System.out.println("请输入您的账号:");
String CardId = input.next();
System.out.println("请输入您的密码:");
String PassWorld = input.next();
//遍历数组
User u = null; //保存找到的用户
for (int i = 0; i < size; i++) { //size:记录数组的几个,所以循环要小于size 不然会有空指针异常
//判断 原密码和用户输入的密码相等
if(users[i].getCardId().equals(CardId)&&users[i].getPassWord().equals(PassWorld)) {
//把用户全部的属性都赋值给u
u = users[i];
break;
//账号正确但是密码不正确
}else if(users[i].getCardId().equals(CardId)&&!users[i].getPassWord().equals(PassWorld)){
System.out.println("您的密码错误,请您重新输入密码:");
//有三次机会
for (int j = 0; j < 4; j++) {
//提示用户输入重新输入密码
String PassWorld2 = input.next();
//如果正确了,就继续循环
if(users[i].getPassWord().equals(PassWorld2)) {
u = users[i];
break;
//还有的机会
}else {
System.out.println("你还有"+(3-j)+"次机会");
}
}
//机会用完了,就显示输入登陆失败
System.out.println("您的输入的密码以达到最大范围,登录失败");
//退出
break;
//账户和密码都不正确,之久退出
}else {
System.out.println("登录失败,账号或者密码错误");
break;
}
}
//u的值不为空时 登录成功 也就是把登录的账号的全部属性都直接赋值给了u
if(u!=null) {
//成功
//显示菜单
//调用showMenu方法
showMenu(u);
}else {
// System.out.println("账号或密码错误...");
}
}
//显示菜单 传入叁数u
public void showMenu(User u) {//账号密码正确的用户进入
Scanner input = new Scanner(System.in);
System.out.println("登录成功!!!");
System.out.println("============欢迎进入xxx银行系统==================");
//死循环 循环查询操作业务
while(true) {
System.out.println("请你选择你要操作的选项:");
System.out.println("===1.存款 \t2.取款 \t3.转账\t4.查询余额\t5.修改密码\t0.退出=====");
int choice = input.nextInt();
//选择操作你要操作的业务
switch (choice) {
case 1:
//调用存钱方法
saveMoney(u);
break;
case 2:
//调用取钱方法
whitdrawMoney(u);
break;
case 3:
//调用转账方法
transfer(u);
break;
case 4:
//调用查询余额方法
Query(u);
break;
case 5:
//调用修改密码方法
changePassword(u);
break;
case 0:
//直接退出整个系统
System.out.println("===退出成功,欢迎您下次再来===");
return;
default:
break;
}
}
}
//1.存钱
public void saveMoney(User u) {
Scanner input = new Scanner(System.in);
System.out.println("请输入你要存的金额:");
double m = input.nextDouble();
//判断,如果钱小于0就存钱失败,大于0就存钱成功
if(m>0) {
//原来的钱加上存入的钱
u.setBalnace(u.getBalnace()+m);
//输出存入后的钱数
System.out.println("存钱成功, 您的余额为:"+u.getBalnace());
}else {
System.out.println("存钱失败,金额必须大于0");
}
}
//2.取钱
public void whitdrawMoney(User u) {
Scanner input = new Scanner(System.in);
System.out.println("请你输入你要取款的金额:");
//获取要取出的钱数
double m = input.nextDouble();
//取出的钱要小于原账户的钱数
if(u.getBalnace()>=m) {
//原来的钱减去取出来的钱
u.setBalnace(u.getBalnace()-m);
//输出取钱后的余额
System.out.println("取钱成功!!! 您目前剩余的余额为:"+u.getBalnace());
//余额不足,重新操作
}else {
System.out.println("取钱失败,你目前的余额不足,请从新输入...");
}
}
//3.转账
public void transfer(User u) {
Scanner input = new Scanner(System.in);
System.out.println("请输入对方的卡号");
//获取对方的卡号
String cardId = input.next();
//遍历users是否有对方的卡号
for (int i = 0; i < size; i++) {
//判断输入的卡号是否存在
if(users[i].getCardId().equals(cardId)) {
System.out.println("请输入你要转账的金额:");
//获取你要转账的金额
double m = input.nextDouble();
//原账户减去转账的金额
u.setBalnace(u.getBalnace()-m);
//对方账号加上转账的金额
users[i].setBalnace(users[i].getBalnace()+m);
//转账成功后,剩下的余额
System.out.println("转账成功!!!,您的余额为:"+u.getBalnace());
break;
//卡号不正确,重新输入
}else {
System.out.println("你输入的卡号有误,请从新输入...");
}
}
}
//4.查询余额
public void Query(User u) {
System.out.println("您目前的余额为:"+u.getBalnace());
}
//5.修改密码
public void changePassword(User u) {
Scanner input = new Scanner(System.in);
System.out.println("请输入你要修改的新密码");
//获取新密码
String newPassword = input.next();
//如果密码小于6位数就提示修改失败
if(newPassword.length()>=6) {
//改变密码
u.setPassWord(newPassword);
System.out.println("修改密码成功!!!!");
}else {
System.out.println("修改失败!!你的新密码长度不够,必须要6个字符以上");
}
}
}
//测试类
public class TestBank {
public static void main(String[] args) {
Bank bank = new Bank();
bank.login();
}
}
java 一个简单的银行系统
最新推荐文章于 2024-10-01 21:38:45 发布
本文介绍了一个Java编写的用户与银行系统交互的示例,包括User类的属性管理和构造,Bank类的用户登录、菜单操作(存款、取款、转账和查询)、以及修改密码功能。展示了如何使用构造函数、getter和setter方法以及Scanner进行用户输入处理。
摘要由CSDN通过智能技术生成