游戏:ATM
Account.java
import java.util.ArrayList;
public class Account {
private int id;
private double balance;
private double annualInterestRate;
private java.util.Date dateCreated;
String name;//11.8 new
ArrayList<Transaction> transactions=new ArrayList<>();
public Account(){
id=0;
balance=0;
annualInterestRate=0;
dateCreated = new java.util.Date();
}
public Account(int id_input,double balance_input){
id=id_input;
balance=balance_input;
annualInterestRate=0;
dateCreated = new java.util.Date();
}
//11.8 new
public Account(String name_input,int id_input,double balance_input){
id=id_input;
name=name_input;
balance=balance_input;
}
//id访问器和修改器
public int getId(){
return(id);
}
public int idSet(int id_new){
id=id_new;
return(id);
}
//余额访问器和修改器
public double getBalance(){
return(balance);
}
public double balanceSet(double sum){
balance=sum;
return(balance);
}
//利率访问器和修改器
public double getAnnualInterestRate(){
return(annualInterestRate);
}
public double annualInterestRateSet(double annualInterestRate_new){
annualInterestRate=annualInterestRate_new;
return(annualInterestRate);
}
//日期访问器
public java.util.Date getDate(){
return dateCreated;
}
//获取月利率
public double getMonthlyInterestRate(){
return(annualInterestRate/12);
}
//取钱
public void withDraw(double sum){
if(sum>balance)
System.out.println("THE BALANCE IN YOUR ACCOUNT IS NOT ENOURH!");
else{
balance=balance-sum;
//11.8 new
transactions.add(0,new Transaction('W',sum,balance,"withdraw"));
System.out.println(transactions.get(0).toString());
}
}
//存钱
public void deposit(double sum){
balance=balance+sum;
transactions.add(0,new Transaction('D',sum,balance,"desposit"));
System.out.println(transactions.get(0).toString());
}
}
Transaction.java
public class Transaction {
java.util.Date dateOfTrade;
char tradeType;
double tradeAmount;
double tradeBalance;
String description;
public Transaction(char type,double Amount,double balance,String description){
dateOfTrade=new java.util.Date();
tradeType=type;
tradeAmount=Amount;
tradeBalance=balance;
this.description=description;
}
@Override
public String toString()
{
return "Happen on "+ dateOfTrade+" , "+description+" : "+tradeAmount+" and the balance is:"+tradeBalance;
}
/*public void Transaction(){
dateOfTrade=new java.util.Date();
tradeType='N';
tradeBalance=0;
description="NULL";
}
public void setTradeType(char tradeType){
this.tradeType=tradeType;
}
public char getTradeType(){
return tradeType;
}
public java.util.Date getTradeDate(){
return(dateOfTrade);
}
public void setTradeAmount(double tradeAmount){
this.tradeAmount=tradeAmount;
}
public double getTradeAmount(){
return tradeAmount;
}
public void setTradeBalance(double tradeBalance){
this.tradeBalance=tradeBalance;
}
public double getTradeBalance(double tradeBalance){
return tradeBalance;
}
public void setDescription(String description){
this.description=description;
}
public String getDescription(){
return(description);
}*/
}
ATM.java
import java.util.Scanner;
public class ATM extends Account{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//初始化
int i=0;
Account[] user = new Account[10];
for(i=0;i<10;i++) {
System.out.println("Please input the name for id "+i+":");
String name_input=input.next();
user[i]=new Account(name_input,i,100.0);
}
while(true) {
System.out.println("Enter an id:");
int id_input = input.nextInt();
while(id_input>9||id_input<0) {
System.out.println("You input error id,please input again:");
id_input = input.nextInt();
}
System.out.println("Main menu");
System.out.println("1:check balance");
System.out.println("2:withdraw");
System.out.println("3:deposit");
System.out.println("4:exit");
System.out.println("Enter a choice:");
int choice = input.nextInt();
switch(choice) {
case 1:System.out.println("Balance is:"+user[id_input].getBalance());break;
case 2:{
System.out.println("Enter an amount to withdraw:");
double sum=input.nextDouble();
user[id_input].withDraw(sum);
break;
}
case 3:{
System.out.println("Enter an amount to deposit:");
double sum=input.nextDouble();
user[id_input].deposit(sum);
break;
}
case 4:break;
}
}
}
}