ATM


Accounts.java

*****************************************************************************************************************************************************************************************************************************

package yaoxia.atm.java;



public class Accounts {

private String password;
private String name;
private float money;
private boolean isEnable;

public boolean isEnable() {
return isEnable;
}
public void setEnable(boolean isEnable) {
this.isEnable = isEnable;
}
public float getMoney() {
return money;
}
public void setMoney(float money) {

if(money<=0){
money=0;
}

this.money = money;
}

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}



}

****************************************************************************************************************************************************************************************************************************

Atm.java

****************************************************************************************************************************************************************************************************************************


package yaoxia.atm.java;


import java.util.Scanner;


public class Atm {
Scanner input=new Scanner(System.in);
Bank bank=new Bank();

public void start(){

System.out.println("----------主菜单----------");

System.out.println("1.开户");
System.out.println("2.插卡");
System.out.println("3.系统管理");
System.out.println("4.退出系统");

System.out.println("请选择菜单");
String choose=input.next();

if("1".equals(choose)){
creatAccount();
}else if("2".equals(choose)){
login();
}else if("3".equals(choose)){
managementSystem();
}else if("4".equals(choose)){

}else{
System.out.println("请输入正确的选项");
start();
}

}

/**
* 管理系统
*/

private void managementSystem() {
System.out.println("请输入管理账号");
String name=input.next();

if("yaoxia".equals(name)){
showAdministratormenu();
}

}


/**
* 管理系统菜单
*/

private void showAdministratormenu() {
System.out.println("1.显示用户");
System.out.println("2.冻结用户");
System.out.println("3.恢复用户");
System.out.println("4.退出系统");

System.out.println("请选择菜单");
String choose=input.next();

if("1".equals(choose)){
showAdministratorAccount();
}else if("2".equals(choose)){
freezeUser();
}else if("3".equals(choose)){
thawAccount();
}else if("4".equals(choose)){
System.exit(0);
}else{
System.out.println("请选择正确的菜单");
showAdministratormenu();
}
}

/**
* 解冻用户(thaw解冻)
*/

private void thawAccount() {
Accounts[] accounts=bank.accountsMessage();

for(Accounts acc:accounts){

if(acc!=null){
System.out.println("账号"+"\t\t\t\t是/否\t冻结");
System.out.println(acc.getName()+"\t\t\t\t"+(acc.isEnable() ?"是":"否"));
}
}
System.out.println("请输入要解冻的用户账号");
String name=input.next();

Accounts newAccount=null;
for(Accounts acc:accounts){

if(name.equals(acc.getName())){
newAccount=acc;
break;
}

}
if(newAccount!=null){
newAccount.setEnable(true);
System.out.println("解冻成功!");
showAdministratormenu();
}else{
System.out.println("账号错误!请核实!");
showAdministratormenu();
}

}


/**
* 管理员冻结用户
*/

private void freezeUser() {
Accounts[] accounts=bank.accountsMessage();

for(Accounts acc:accounts){

if(acc!=null){
System.out.println("账号"+"\t\t\t\t是/否\t冻结");
System.out.println(acc.getName()+"\t\t\t\t"+(acc.isEnable() ?"是":"否"));
}
}
System.out.println("请输入冻结用户账号");
String name=input.next();

Accounts newAccount=null;
for(Accounts acc:accounts){

if(name.equals(acc.getName())){
newAccount=acc;
break;
}

}
if(newAccount!=null){
newAccount.setEnable(false);
showAdministratormenu();
}else{
System.out.println("账号错误!请核实!");
showAdministratormenu();
}





}


/**
* 给管理员显示所有用户
*/

private void showAdministratorAccount() {

Accounts[] accounts=bank.accountsMessage();

for(Accounts acc:accounts){

if(acc!=null){
System.out.println("账号"+"\t\t\t\t是/否\t冻结");
System.out.println(acc.getName()+"\t\t\t\t"+(acc.isEnable() ?"是":"否"));
}

}
showAdministratormenu();
}


/**
* 插卡
*/


private void login() {
System.out.println("请输入账号");
String name=input.next();

System.out.println("请输入密码");
String password=input.next();

Accounts account=bank.getAccountByNameByPassword(name, password);

if(account!=null){
System.out.println("登陆成功!");
showMenu(account);
}else{
System.out.println("账号或密码错误!");
start();
}

}




/**
* 成功登陆后给用户显示可操作菜单
*/

private void showMenu(Accounts account) {

System.out.println("1.查询余额");
System.out.println("2.取款");
System.out.println("3.存款");
System.out.println("4.转账");
System.out.println("5.修改密码");
System.out.println("6.返回主菜单");

System.out.println("请选择菜单");
String choose=input.next();

if("1".equals(choose)){
showMoney(account);
}else if("2".equals(choose)){
getMoney(account);
}else if("3".equals(choose)){
saveMoney(account);
}else if("4".equals(choose)){
tranAccount(account);
}else if("5".equals(choose)){
changePassword(account);
}else if("6".equals(choose)){
start();;
}else{
System.out.println("请选择正确的菜单");
}
}

/**
* 已登录用户修改密码
* @param account
*/

private void changePassword(Accounts account) {
System.out.println("请输入旧密码");
String password=input.next();

if(password.equals(account.getPassword())){

System.out.println("请输入新密码");
String newPassword=input.next();

System.out.println("请在输入一次新密码");
String newPassword1=input.next();

if(newPassword.equals(newPassword1)){

account.setPassword(newPassword);
System.out.println("密码修改成功!");

}else{
System.out.println("新密码两次输入不一致!");

}
}else{
System.out.println("密码错误!");
}
showMenu(account);
}




/**
* 已登录用户转账
* @param account
*/

private void tranAccount(Accounts account) {
System.out.println("请输入要转入的账号");
String inName=input.next();

//因不可跨行转、取,要去Bank中查有无该用户
Accounts inAccount=bank.getAccountByName(inName);

if(inAccount==null){
System.out.println("用户不存在!请查证后再输入!");
showMenu(account);;
}else{
System.out.println("请输入要转入的金额");
float money=input.nextFloat();

float newMoney=account.getMoney()-money;
account.setMoney(newMoney);

float newInMoney=inAccount.getMoney()+money;
inAccount.setMoney(newInMoney);

System.out.println("您的余额:"+newMoney+"\n您要转入的账户余额:"+newInMoney);
showMenu(account);
}




}




/**
* 已登录用户存款
* @param account
*/

private void saveMoney(Accounts account) {
System.out.println("请输入存款金额");
float money=input.nextFloat();

if(money<=0){
System.out.println("请输入正确的存款金额");
saveMoney(account);

}else {
float newMoney=account.getMoney()+money;
account.setMoney(newMoney);

System.out.println("您的余额:"+newMoney);
showMenu(account);;
}

}




/**
* 已登录用户取款
* @param account
*/

private void getMoney(Accounts account) {

System.out.println("请输入取款金额");
float money=input.nextFloat();

if(money>account.getMoney()){

System.out.println("余额不足!");
showMenu(account);;
}else if(money<=0){
System.out.println("请输入正确的取款金额");
getMoney(account);

}else{
float newMoney=account.getMoney()-money;
account.setMoney(newMoney);
System.out.println("您的余额:"+newMoney);
showMenu(account);
}

}




/**
* 已登录用户查询余额
* @param account
*/


private void showMoney(Accounts account) {

System.out.println("用户"+account.getName()+"您好!\n您的余额:"+account.getMoney());
showMenu(account);

}




/**
*  开户
*/

private void creatAccount() {
System.out.println("请输入账号");
String name=input.next();

//转到Bank查找该账号是否已存在
Accounts account=bank.getAccountByName(name);

if(account==null){
System.out.println("恭喜!此账号可用");

System.out.println("请输入密码");
String password=input.next();

System.out.println("请输入首次存额");
float money=input.nextFloat();

account=new Accounts();
account.setName(name);
account.setPassword(password);
account.setMoney(money);
account.setEnable(true);

boolean isOk=bank.saveAccount(account);

if(isOk){
System.out.println("账户存储成功!");

}else{
System.out.println("系统繁忙!");

}
start();
}else{
System.out.println("用户名已存在,请重新输入");
creatAccount();
}


}


}

*************************************************************************************************************************************************************

Bank.java

*************************************************************************************************************************************************************

package yaoxia.atm.java;


public class Bank {
Accounts[] accounts=new Accounts[100];

/**
* 根据账号查找是否该账号已经存在
* @param name
* @return Accounts
*/

public Accounts getAccountByName(String name){

for(Accounts acc:accounts){

if(acc!=null&&name.equals(acc.getName())){
return acc;
}

}
return null;

}

/**
* 在银行存入新开的账户
* @param account
* @return flag
*/

public boolean saveAccount(Accounts account){

boolean flag=false;
for(int i=0;i<accounts.length;i++){
 
if(accounts[i]==null){
accounts[i]=account;
flag=true;
break;
}
 
}
return flag;

}

public Accounts getAccountByNameByPassword(String name,String password){

for(Accounts acc:accounts){

if(acc!=null&&name.equals(acc.getName())&&password.equals(acc.getPassword())){
return acc;
}

}

return null;

}
/**
* 将用户信息反映到atm机上,助于管理员管理
*/

public Accounts[] accountsMessage(){
return accounts;

}
}

*************************************************************************************************************************************************************

Test.java

*************************************************************************************************************************************************************

package yaoxia.atm.java;


public class Test {
public static void main(String[] args) {
Atm atm=new Atm();
atm.start();
}


}


*************************************************************************************************************************************************************

估计有些毛病我没查出,若有发现,请帮指出,谢谢!

*************************************************************************************************************************************************************





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值