java银行系统
一、设计类和Testdome
由题意得,有Atm,bank,bankcard类
应该在ATMI机中操作所以
`public class TestDome {
public static void main(String[] args) {
Atm atm =new Atm() ;
atm .operate();
}
}`
二、设计各类属性和行为
1、bankcard
public class BankCard {
private int id;
private int passwd;
private double money;
public BankCard (int id,int passwd ){
this .id =id;
this .passwd =passwd ;
}
public BankCard (int id ){
this .id=id ;
}
public int getId() {
return id;
}
public int getPasswd() {
return passwd;
}
public void setMoney(double money) {
this.money = money;
}
public double getMoney() {
return money;
}
}
2、bank
import java.util.Arrays;
public class Bank {
private BankCard []bankCards ;
private BankCard []bankCard;
private int size;
public Bank (){
bankCards =new BankCard[Constant .INSIZE ];
// bankCard =new BankCard[Constant .INMONEY ] ;
}
public boolean sreach(int id,int passwd){
for(int i=0;i<size;i++){
//这里不能是bankcard.lenght 否则空指针异常
if(bankCards [i].getId() ==id&&bankCards [i].getPasswd() ==passwd ){
return true ;
}
}
return false ;
}
public boolean sreach(int id){
for(int j=0;j<size ;j++){
if(bankCards [j].getId() ==id){
return true ;
}
}return false ;
}
public void add(int id,int passwd ){
if(size ==bankCards .length ){
bankCards = Arrays.copyOf(bankCards ,bankCards .length *2);
}
bankCards [size ++]=new BankCard(id,passwd);
}
public void add(int id){
}
}
3、Atm
public class Atm {
private Bank bank;
// private int[] information;
private static Scanner scanner = new Scanner(System.in);
private BankCard bankCard ;
public Atm() {
bank = new Bank();
}
private boolean login(int id, int passwd) {
return bank.sreach(id, passwd);
}
private boolean register(int id, int passwd) {
if (bank.sreach(id, passwd)) {
return false;
}
bank.add(id, passwd);
return true;
}
private void addmoney ( ){
System.out.println("请输入金额");
int money=scanner .nextInt() ;
bankCard .setMoney(money );
System.out.println("存款成功");
}
private void takemoney (){
System.out.println("请输入金额");
int money=scanner .nextInt() ;
if(money<bankCard .getMoney() ) {
bankCard.setMoney(bankCard.getMoney() - money);
System.out.println("取款成功");
}else {
System.out.println("余额不足");
}
}
private void transfer (){
System.out.println("输入您要转账的用户id");
int id=scanner .nextInt() ;
BankCard bankCard1 =new BankCard(id);
if(bank .sreach(id ) ){
System.out.println("请输入要转账的金额");
int money=scanner .nextInt() ;
if(money <bankCard .getMoney() )
bankCard .setMoney(bankCard .getMoney() -money );
bankCard1 .setMoney(bankCard1 .getMoney() +money ) ;
}
else {
System.out.println("余额不足转账失败");
}
}
private void enquire (){
System.out.println(bankCard .getMoney() ) ;
}
public void operate() {
while (true) {
System.out.println("请输入1登录 2注册 3退出登录");
int choice1 = scanner.nextInt();
if (choice1 == 3) {
return;
}
System.out.println("请输入您的id 和 密码");
int id = scanner.nextInt();
int passwd = scanner.nextInt();
bankCard =new BankCard(id,passwd );
switch (choice1) {
case 1:
if (login(id, passwd)) {
System.out.println("登录成功");
while (true) {
System.out.println("请选择1存款 2取款 3打款 4查询余额 5退出登录");
int choice2 = scanner.nextInt();
if(choice2 ==5){
return ;
}
switch (choice2 ){
case 1:addmoney( );break;
case 2:takemoney( );break;
case 3:transfer();break;
case 4:enquire();break;
}
}
}
else {
System.out.println("登录失败");}
break;
case 2:
if (register(id, passwd)) {
System.out.println("注册成功");
}else {
System.out.println("注册失败");}
break;
}
}
}
}
4、常量Constent
public static final int INSIZE=10;
5、注意事项
a、死循环条件应该加到适当位置
b、注意函数重写
c、注意传参
d、break记得加