1.
public class TestBank
{
public static void main(String[] args)
{
Bank bank = new Bank();
bank.traverse();
bank.registrationMenu();
bank.traverse();
}
}
2.
import java.util.Scanner;
import java.util.Random;
public class Bank
{
int size = 3;//有效数组下标
User[] users = new User[5];
public Bank(){
User user = new User();
user.setCardNo("6223123456");
user.setIdentity("123456789101112131");
user.setUsername("赵公民");
user.setPassword("123456");
user.setPhone("12345678911");
user.setBalance(1000D);
users[0] = user;
users[1] = new User("6223123789" , "123456789101112131" , "杨辉" , "123456" , "12345678911" , 2122.0);
users[2] = new User("6223456789" , "123456789101112131" , "冯光芒" , "123456" , "12345678911" , 221.0);
}
public void registrationMenu(){
System.out.println("请输入您想要的操作1.登录2.注册:");
int i = input.nextInt();
switch(i){
case 1:
this.login();
break;
case 2:
this.registered();
this.login();
break;
default:
System.out.println("输入有误,请重新输入");
}
}
Scanner input = new Scanner(System.in);
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 User check(String cardno , String password){//验证
for (int i = 0;i < size ;i++){
if (cardno.equals( users[i].getCardNo() ) && password.equals(users[i].getPassword())){
return users[i];
}
}return null;
}
public void registered(){//注册
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);
String pwd;
do{
System.out.println("请输入密码:");
pwd = input.next();
}while(pwd.length() != 6);
double balance;
do{
System.out.println("请输入想存入的金额:");
balance = input.nextDouble();
}while(balance < 0);
User user3 = new User();
user3.setCardNo(this.cardNumber());
user3.setUsername(uname);
user3.setIdentity(id);
user3.setPhone(phone);
user3.setPassword(pwd);
user3.setBalance(balance);
users[size] = user3;//将注册对象存入数组
size++;
System.out.println("注册成功,您的卡号为:" +user3.getCardNo());
}
public String cardNumber(){//获得卡号
String before = "6223";
Random random = new Random();
int r = random.nextInt(900000);
return before + (r + 100000);
}
public void showMenu(User u){//菜单
int a;
do{
System.out.println("-------------------------------------------------------------------------------");
System.out.println("请您输入您所需要的服务(1.消户2.存款3.取款4.转账5.查询余额6.修改密码0.退出:");
System.out.println("-------------------------------------------------------------------------------");
a = input.nextInt();
switch(a){
case 1:
this.cancel(u);
break;
case 2:
this.deposit(u);
break;
case 3:
this.withdrawal(u);
break;
case 4:
transfer(u);
break;
case 5:
this.queryBalance(u);
break;
case 6:
this.pWord(u);
break;
case 0:
System.out.println("退出");
return;
default:
System.out.println("输入有误,请重新输入");
break;
}
}while(a>0 || a<6);
}
public void cancel(User user){//消户
int voide = 0;
for(int i = 0;i < size;i++){
if (users[i] == user){
voide = i;
}
}
for(int i = voide;i < size - 1;i++){
users[i] = users[i + 1];
}size--;
}
public void deposit(User depos){//存款
System.out.println("请输入存款金额:");
double money = input.nextDouble();
depos.setBalance(depos.getBalance() + money);
System.out.println("存款成功,总金额为:" +depos.getBalance());
}
public void withdrawal(User mine){//取款
System.out.println("请输入取款金额:");
double money = input.nextDouble();
if(money < mine.getBalance())
{
mine.setBalance(mine.getBalance() - money);
System.out.println("取款成功,剩余金额为:");
System.out.println(mine.getBalance());
}
else{
System.out.println("金额不足");
}
}
public void transfer(User tran){//转账
System.out.println("请输入对方卡号:");
String no = input.next();
System.out.println("请输入对方密码:");
String pwd = input.next();
User m = check(no , pwd);
if (m != null){
System.out.println("请输入转账金额:");
double money = input.nextDouble();
tran.setBalance(tran.getBalance() - money);
System.out.println("转账成功,剩余金额为:" +tran.getBalance());
m.setBalance(m.getBalance() + money);
System.out.println("对方金额为:" +m.getBalance());
}else{
System.out.println("转账的卡号或密码错误");
}
}
public void queryBalance(User qbalance){//查询余额
System.out.println("您的余额为:" +qbalance.getBalance());
}
public void pWord(User pwd){//修改密码
System.out.println("请输入将要修改的密码:");
String newpassword = input.next();
pwd.setPassword(newpassword);
System.out.println("您的密码修改成功,新密码为:" +pwd.getPassword());
}
public void browse(){//遍历
for (int i = 0; i < size;i++){
System.out.println(users[i].getUsername());
}
}
}
3.
public class User
{
private String cardNo;//卡号
private String identity;//身份证号
private String username;//用户名
private String password;//密码
private String phone;//手机号码
private double balance;//余额
public User(){}
public User(String cardNo , String identity , String username , String password , double balance){
this.cardNo = cardNo;
this.identity = identity;
this.username = username;
this.password = password;
this.phone = phone;
this.balance = balance;
}
public User(String cardNo , String identity , String username , String password , String phone , double balance){
this.cardNo = cardNo;
this.identity = identity;
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 setIdentity(String identity){
this.identity = identity;
}
public String getIdentity(){
return this.identity;
}
//-------------------------------------
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;
}
}