华恩JAVA班第17天
import java.util.*;
public class BankApp
{
static BankService bankService = newBankService();
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
boolean flag = true;
while (flag)
{
printWecomeInfo();
println("请选择操作项:");
int value =sc.nextInt();
if(value == 1){
//显示下一级菜单
operBusiness(sc);
}else if(value == 2){
flag =false;
}else{
printWecomeInfo();
}
}
}
public static void operBusiness(Scannersc){
boolean flag = true;
Random rnd = new Random(1000);
while (flag)
{
printSysMenuInfo();
println("请选择操作项:");
int value =sc.nextInt();
switch (value)
{
case1:
println("开户业务: ");
println("请输入户名: ");
String name = sc.next();
println("请输入年龄: ");
int age = sc.nextInt();
println("请输入性别: ");
String sex = sc.next();
println("请输入手机: ");
String phone = sc.next();
println("请输入地址: ");
String address = sc.next();
Account account = new Account(name,
age,sex,phone,address);
if(bankService.checkAccount(account)){
int no = rnd.nextInt(1000);
println("生成的卡号:"+no);
println("输入卡的密码:");
String pwd = sc.next();
Card card = new Card(String.valueOf(no),0d);
account.setCard(card);
card.setAccount(account);
card.setPassword(pwd);
bankService.createAccount(account);
}else{
println("账户名称不正确!");
}
break;
case2:
qk(sc);
break;
case3:
//存款时需要提供卡号
ck(sc);break;
case4:
zz(sc);break;
case5:
cx(sc);break;
case9:
flag = false;break;
default:
println("输入错误");break;
}
}
}
public static void cx(Scanner sc){
println("请输入卡号;");
String bo1 = sc.next();
//校验卡号是否存在
Card card = bankService.checkCard(bo1);
if(card == null){
println("卡不存在");return ;
}
println("请输入密码;");
String psw = sc.next();
if (!bankService.checkCardpsw(card,psw))
{
println("密码错误!!");
return ;
}
System.out.println(card.getAccount());
System.out.println(card);
}
public static void zz(Scanner sc){
println("请输入您的卡号;");
String bo1 = sc.next();
//校验卡号是否存在
Card card = bankService.checkCard(bo1);
if(card == null){
println("卡不存在");return ;
}
println("请输入密码;");
String psw = sc.next();
if (!bankService.checkCardpsw(card,psw))
{
println("密码错误!!");
return ;
}
println("请输入转账金额:");
double je = sc.nextDouble();
if(bankService.checkMoney(card,je)){
println("请输入目标卡号;");
String bo2 = sc.next();
//校验卡号是否存在
Card card2 =bankService.checkCard(bo2);
if(card2 == null){
println("卡不存在");return ;
}
println("目标的信息是");
System.out.println(card2.getAccount());
println("是否确定\n1.确定.\n2.返回");
int b = sc.nextInt();
if(b == 1)
{ card.outMoney(je);
card2.inMoney(je);
println("转账成功");
println(card.toString());
}else {
return;
}
}else{
println("余额不足!");
}
}
//取款
public static void qk(Scanner sc){
println("请输入卡号;");
String bo = sc.next();
//校验卡号是否存在
Card card = bankService.checkCard(bo);
if(card == null){
println("卡不存在");return ;
}
println("请输入密码;");
String psw = sc.next();
//校验密码是否匹配
if (!bankService.checkCardpsw(card,psw))
{
println("密码错误!!");
return ;
}
println("请输入取款金额:");
double je = sc.nextDouble();
//校验余额是否足够
if(bankService.checkMoney(card,je)){
card.outMoney(je);
println("取款成功");
//输出银行卡信息
println(card.toString());
}else{
println("余额不足!");
}
}
//存款
public static void ck(Scanner sc){
println("请输入卡号;");
String bo = sc.next();
//校验卡号是否存在
Card card = bankService.checkCard(bo);
if(card == null){
println("卡不存在");return ;
}
println("请输入金额!");
double money = sc.nextDouble();
card.inMoney(money);
println("存款成功!");
println(card.toString());
}
//开户
public static void printSysMenuInfo(){
println("*******************");
println("*业务操作提示 *");
println("*1:开户 *");
println("*2:取款 *");
println("*3:存款 *");
println("*4:转账 *");
println("*5:查询 *");
println("*9:返回 *");
println("*******************");
}
public static void printWecomeInfo(){
println("*******************");
println("*欢迎进入银行系统 *");
println("*操作提示: *");
println("*1:登陆 *");
println("*2:退出 *");
println("*******************");
}
public static void println(String content){
System.out.println(content);
}
}
public class Account
{
private String name;
private int age;
private String sex;
private String phone;
private String address;
private Card card;
public String getName(){
return this.name;
}
public String getSex(){
return this.sex;
}
public int getAge(){
return this.age;
}
public String getPhone(){
return this.phone;
}
public String getAddress(){
return this.address;
}
public Account(String name ,int age ,
String sex , String phone ,Stringaddress){
this.name = name;
this.age = age;
this.sex = sex;
this.phone = phone;
this.address = address;
}
public void setCard(Card card){
this.card =card;
}
public Card getCard(){
return this.card;
}
public String toString(){
//此代码效率极差
//todo
String out = "**************\n";
out += "*账户信息列表*\n";
out+= "*户名: "+this.name+"*\n";
out+= "*年龄: "+this.age+"*\n";
out+= "*性别: "+this.sex+"*\n";
out+= "*电话: "+this.phone+"*\n";
out+= "*地址: "+this.address+"*\n";
out+= "*-------------*\n";
return out;
}
}
class BankService
{
private Account[] accounts = newAccount[20];
public void createAccount(Account account){
boolean flag = false ;
for (int i = 0;i
{
if (accounts[i] == null)
{
accounts[i]= account ;
flag = true;
break;
}
}
if(!flag){
System.out.println("账户已满");
}else{
System.out.println(account);
System.out.println("注册成功");
}
}
public boolean checkAccount(Accountaccount){
if(account.getName() == null ||
account.getName().equals("")){
return false;
}
if(account.getSex() == null ||
account.getSex().equals("")){
return false;
}
return true;
}
public Card checkCard(String card){
for (int i = 0;i
{
if (accounts[i] != null&&accounts[i].getCard()!=null
&&accounts[i].getCard().getCardNo().equals(card))
{
returnaccounts[i].getCard();
}
}
return null;
}
public boolean checkCardpsw(Card card,Stringpassword){
if(card.getPassword().equals(password))
return true;
return false;
}
public boolean checkMoney(Card card, doublemoney){
if(card.getMoney()
return false;
return true;
}
}
public class Card
{
private Account account;
private String cardNo;
private Double money;
private String password;
public void setAccount(Account account){
this.account = account;
}
public Account getAccount(){
return this.account;
}
public Card(String cardNo){
this.cardNo = cardNo;
}
public Card(String cardNo,double money){
this(cardNo);
this.money = money;
}
public Double getMoney(){
return this.money;
}
public void inMoney(Double money){
this.money += money;
}
public void outMoney(Double money){
this.money -= money;
}
public String getCardNo(){
return this.cardNo;
}
public void setPassword(String password){
this.password = password;
}
public String getPassword(){
return this.password;
}
public String toString(){
//todo
String out ="*---------银行卡信息----------*\n";
out+= "*银行卡信息 *\n";
out += "卡号 "+this.cardNo+" *\n";
out += "银行卡余额 "+this.money+" *\n";
out += "*-------------------*\n";
return out;
}
}