pta作业心得3
一、前言:
1.第七次题目主要是正则表达式的运用,难度一般;
2.第八次作业主要是对类各种关系的处理和运用;
二、设计与分析:
1.ATM第一次作业的源码:
import java.util.ArrayList;
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
ArrayList<ATM> atms = new ArrayList<>();
atms.add(new ATM("中国建设银行","01"));
atms.add(new ATM("中国建设银行","02"));
atms.add(new ATM("中国建设银行","03"));
atms.add(new ATM("中国建设银行","04"));
atms.add(new ATM("中国工商银行","05"));
atms.add(new ATM("中国工商银行","06"));
User user1 = new User("杨过");
user1.addaccount(new Account("中国建设银行","3217000010041315709",10000.00));
user1.getAccounts().get(0).addcards(new Card("6217000010041315709","88888888"));
user1.getAccounts().get(0).addcards(new Card("6217000010041315715","88888888"));
user1.addaccount(new Account("中国建设银行","3217000010041315715",10000.00));
user1.getAccounts().get(1).addcards(new Card("6217000010041315718","88888888"));
User user2 = new User("郭靖");
user2.addaccount(new Account("中国建设银行","3217000010051320007 ",10000.00));
user2.getAccounts().get(0).addcards(new Card("6217000010051320007","88888888"));
User user3 = new User("张无忌");
user3.addaccount(new Account("中国工商银行","3222081502001312389",10000.00));
user3.getAccounts().get(0).addcards(new Card("6222081502001312389","88888888"));
user3.addaccount(new Account("中国工商银行","3222081502001312390",10000.00));
user3.getAccounts().get(1).addcards(new Card("6222081502001312390","88888888"));
user3.addaccount(new Account("中国工商银行","3222081502001312399",10000.00));
user3.getAccounts().get(2).addcards(new Card("6222081502001312399","88888888"));
user3.getAccounts().get(2).addcards(new Card("6222081502001312400","88888888"));
User user4 = new User("韦小宝");
user4.addaccount(new Account("中国工商银行","3222081502051320785",10000.00));
user4.getAccounts().get(0).addcards(new Card("6222081502051320785","88888888"));
user4.addaccount(new Account("中国工商银行","3222081502051320786",10000.00));
user4.getAccounts().get(0).addcards(new Card("6222081502051320786","88888888"));
User user[] = new User[]{user1, user2, user3, user4};
ArrayList<String> list = new ArrayList<>();
for(;;)
{
String temp = input.nextLine();
if(temp.equals("#"))
{
break;
}
list.add(temp);
}
int a = list.size();
for(int i = 0;i < a;i++)
{
String end[] = list.get(i).split("\\s+");
int len = end.length;
if(len == 1)
{
int how = 0;
for(int j = 0;j < 4;j++)
{
for(int k = 0;k < user[j].getAccounts().size();k++)
{
for(int m = 0;m < user[j].getAccounts().get(k).getCards().size();m++)
{
if(end[0].equals(user[j].getAccounts().get(k).getCards().get(m).getCardnumber()))
{
System.out.printf("¥%.2f\n",user[j].getAccounts().get(k).getMoney());
how = 1;
}
}
}
}
if(how == 0)
{
System.out.println("Sorry,this card does not exist.");
}
}
if(len == 4)
{
int x = 0,y = 0,z = 0;
int how = 0,what = 0,where = 1;
for(int j = 0;j < 4;j++)
{
for(int k = 0;k < user[j].getAccounts().size();k++)
{
for(int m = 0;m < user[j].getAccounts().get(k).getCards().size();m++)
{
if(end[0].equals(user[j].getAccounts().get(k).getCards().get(m).getCardnumber()))
{
how = 1;
x = j;
y = k;
z = m;
}
}
}
}
if(how == 0)
{
System.out.println("Sorry,this card does not exist.");
break;
}
else
{
if(end[1].equals("88888888"))
{
for(int j = 0;j < atms.size();j++)
{
if(end[2].equals(atms.get(j).getAtmnumber()))
{
if(user[x].getAccounts().get(y).getBank().equals(atms.get(j).getBank()))
{
Double figure= Double.parseDouble(end[3]);
if(user[x].getAccounts().get(y).compare(figure))
{
if(figure > 0)
{
user[x].getAccounts().get(y).changemoney(figure);
System.out.print(user[x].getName() + "在" + atms.get(j).getBank() + "的" + atms.get(j).getAtmnumber() + "上取款¥");
System.out.printf("%.2f\n",figure);
System.out.print("当前余额为¥");
System.out.printf("%.2f\n",user[x].getAccounts().get(y).getMoney());
}
else
{
user[x].getAccounts().get(y).changemoney(figure);
System.out.print(user[x].getName() + "在" + atms.get(j).getBank() + "的" + atms.get(j).getAtmnumber() + "上存款¥");
System.out.printf("%.2f\n",figure);
System.out.print("当前余额为¥");
System.out.printf("%.2f\n",user[x].getAccounts().get(y).getMoney());
}
break;
}
else
{
System.out.println("Sorry,your account balance is insufficient.");
where = 0;
break;
}
}
else
{
System.out.println("Sorry,cross-bank withdrawal is not supported.");
where = 0;
break;
}
}
}
if(what == 0)
{
System.out.println("Sorry,the ATM's id is wrong.");
break;
}
}
else
{
System.out.println("Sorry,your password is wrong.");
break;
}
}
if(where == 0)
{
break;
}
}
}
}
}
class Bank
{
private String bank;
public Bank(String bank)
{
this.bank = bank;
}
public String getBank() {
return bank;
}
public void setBank(String bank) {
this.bank = bank;
}
}
class ATM extends Bank
{
private String atmnumber;
public ATM(String bank,String atmnumber)
{
super(bank);
this.atmnumber = atmnumber;
}
public String getAtmnumber() {
return atmnumber;
}
public void setAtmnumber(String atmnumber) {
this.atmnumber = atmnumber;
}
}
class User
{
private String name;
private ArrayList<Account> accounts;
public User(String name)
{
this.name = name;
accounts = new ArrayList<Account>();
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public void addaccount(Account account)
{
accounts.add(account);
}
public ArrayList<Account> getAccounts() {
return accounts;
}
}
class Account extends Bank
{
private String accountnumber;
private Double money;
private ArrayList<Card> cards;
public Account(String bank,String accountnumber,Double money)
{
super(bank);
this.accountnumber = accountnumber;
this.money = money;
cards = new ArrayList<Card>();
}
public String getAccountnumber() {
return accountnumber;
}
public void setAccountnumber(String accountnumber) {
this.accountnumber = accountnumber;
}
public Double getMoney() {
return money;
}
public void setMoney(Double money) {
this.money = money;
}
public void addcards(Card card) {
cards.add(card);
}
public ArrayList<Card> getCards() {
return cards;
}
public void changemoney(Double figure)
{
this.money = this.money - figure;
}
public boolean compare(Double figure)
{
if(this.money >= figure)
{
return true;
}
else
{
return false;
}
}
}
class Card
{
private String cardnumber;
private String key;
public Card(String cardnumber,String key)
{
this.cardnumber = cardnumber;
this.key = key;
}
public String getCardnumber() {
return cardnumber;
}
public void setCardnumber(String cardnumber) {
this.cardnumber = cardnumber;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
}
这次作业的源码在交作业之前有一些小问题没处理完成,但是在截至事件过后完成了;
踩坑心得:也是主要对类的关系的处理,看了老师的源码才发现自己的多次继承导致关系及其复杂,越后面的子类继承了太多的属性;
改进建议:将功能操作单独出一个类,而不是放在main类中,导致难以修改,程序不够灵活;
2.ATM第二次作业源码:
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Iterator;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
UnionPay unionPay = new UnionPay();
Bank ccb = new Bank("1001","中国建设银行");
Bank icbc = new Bank("1002","中国工商银行");
Bank abc = new Bank("1003","中国农业银行");
unionPay.addBank(ccb);
unionPay.addBank(icbc);
unionPay.addBank(abc);
ATM aTM1 = new ATM("01",0.02,ccb);
ATM aTM2 = new ATM("02",0.02,ccb);
ATM aTM3 = new ATM("03",0.02,ccb);
ATM aTM4 = new ATM("04",0.02,ccb);
ATM aTM5 = new ATM("05",0.03,icbc);
ATM aTM6 = new ATM("06",0.03,icbc);
ATM aTM7 = new ATM("07",0.04,abc);
ATM aTM8 = new ATM("08",0.04,abc);
ATM aTM9 = new ATM("09",0.04,abc);
ATM aTM10 = new ATM("10",0.04,abc);
ATM aTM11 = new ATM("11",0.04,abc);
ccb.addATM(aTM1);
ccb.addATM(aTM2);
ccb.addATM(aTM3);
ccb.addATM(aTM4);
icbc.addATM(aTM5);
icbc.addATM(aTM6);
abc.addATM(aTM7);
abc.addATM(aTM8);
abc.addATM(aTM9);
abc.addATM(aTM10);
abc.addATM(aTM11);
User Yangguo = new User("360101200102122324","杨过","13856223254");
User Guojing = new User("360101200012302552","郭靖","13800021124");
User Zhangwuji = new User("360502199805163221","张无忌","13952110011");
User Weixiaobao = new User("360201200513243326","韦小宝","13025996587");
User Zhangsanfeng = new User("360201200513243326","张三丰","13025996587");
User Linghuchong = new User("360201200513243326","令狐冲","13025996587");
User Qiaofeng = new User("360201200513243326","乔峰","13025996587");
User Hongqigong = new User("360201200513243326","洪七公","13025996587");
Account ccbAcc1 = new Account("3217000010041315709",10000.00,"debit",Yangguo,ccb);
Account ccbAcc2 = new Account("3217000010041315715",10000.00,"debit",Yangguo,ccb);
Account ccbAcc3 = new Account("3217000010051320007",10000.00,"debit",Guojing,ccb);
Account ccbAcc4 = new Account("3640000010045442002",10000.00,"credit",Zhangsanfeng,ccb);
Account icbcAcc1 = new Account("3222081502001312389",10000.00,"debit",Zhangwuji,icbc);
Account icbcAcc2 = new Account("3222081502001312390",10000.00,"debit",Zhangwuji,icbc);
Account icbcAcc3 = new Account("3222081502001312399",10000.00,"debit",Zhangwuji,icbc);
Account icbcAcc4 = new Account("3222081502051320785",10000.00,"debit",Weixiaobao,icbc);
Account icbcAcc5 = new Account("3222081502051320786",10000.00,"debit",Weixiaobao,icbc);
Account icbcAcc6 = new Account("3640000010045441009",10000.00,"credit",Linghuchong,icbc);
Account abcAcc1 = new Account("3630000010033431001",10000.00,"credit",Qiaofeng,abc);
Account abcAcc2 = new Account("3630000010033431008",10000.00,"credit",Hongqigong,abc);
ccb.addAccount(ccbAcc1);
ccb.addAccount(ccbAcc2);
ccb.addAccount(ccbAcc3);
ccb.addAccount(ccbAcc4);
icbc.addAccount(icbcAcc1);
icbc.addAccount(icbcAcc2);
icbc.addAccount(icbcAcc3);
icbc.addAccount(icbcAcc4);
icbc.addAccount(icbcAcc5);
icbc.addAccount(icbcAcc6);
abc.addAccount(abcAcc1);
abc.addAccount(abcAcc2);
Yangguo.addAccount(ccbAcc1);
Yangguo.addAccount(ccbAcc2);
Guojing.addAccount(ccbAcc3);
Zhangsanfeng.addAccount(ccbAcc4);
Zhangwuji.addAccount(icbcAcc1);
Zhangwuji.addAccount(icbcAcc2);
Zhangwuji.addAccount(icbcAcc3);
Weixiaobao.addAccount(icbcAcc4);
Weixiaobao.addAccount(icbcAcc5);
Linghuchong.addAccount(icbcAcc6);
Qiaofeng.addAccount(abcAcc1);
Hongqigong.addAccount(abcAcc2);
Card ccbCard1 = new Card("6217000010041315709","88888888",ccbAcc1);
Card ccbCard2 = new Card("6217000010041315715","88888888",ccbAcc1);
Card ccbCard3 = new Card("6217000010041315718","88888888",ccbAcc2);
Card ccbCard4 = new Card("6217000010051320007","88888888",ccbAcc3);
Card cbbCard5 = new Card("6640000010045442002","88888888",ccbAcc4);
Card cbbCard6 = new Card("6640000010045442003","88888888",ccbAcc4);
Card icbcCard7 = new Card("6222081502001312389","88888888",icbcAcc1);
Card icbcCard8 = new Card("6222081502001312390","88888888",icbcAcc2);
Card icbcCard9 = new Card("6222081502001312399","88888888",icbcAcc3);
Card icbcCard10 = new Card("6222081502001312400","88888888",icbcAcc3);
Card icbcCard11 = new Card("6222081502051320785","88888888",icbcAcc4);
Card icbcCard12 = new Card("6222081502051320786","88888888",icbcAcc5);
Card icbcCard13 = new Card("6640000010045441009","88888888",icbcAcc6);
Card abcCard14 = new Card("6630000010033431001","88888888",abcAcc1);
Card abcCard15 = new Card("6630000010033431008","88888888",abcAcc2);
ccbAcc1.addCard(ccbCard1);
ccbAcc1.addCard(ccbCard2);
ccbAcc2.addCard(ccbCard3);
ccbAcc3.addCard(ccbCard4);
ccbAcc4.addCard(cbbCard5);
ccbAcc4.addCard(cbbCard6);
icbcAcc1.addCard(icbcCard7);
icbcAcc2.addCard(icbcCard8);
icbcAcc3.addCard(icbcCard9);
icbcAcc3.addCard(icbcCard10);
icbcAcc4.addCard(icbcCard11);
icbcAcc5.addCard(icbcCard12);
icbcAcc6.addCard(icbcCard13);
abcAcc1.addCard(abcCard14);
abcAcc2.addCard(abcCard15);
StringBuilder sb = new StringBuilder();
String data;
while(!((data = input.nextLine()).equals("#")))
{
sb.append(data + "\n");
}
String[] dt = sb.toString().split("\n");
for(int i = 0; i < dt.length; i++) {
String[] dataLine = dt[i].toString().split("\\s+");
if(dataLine.length == 1) {
GetBalance gb = new GetBalance(unionPay);
System.out.println(String.format("业务:查询余额 ¥%.2f", gb.getBalance(dataLine[0])));
}else {
Withdraw wd = new Withdraw(unionPay,dataLine[0],dataLine[1],dataLine[2],Double.parseDouble(dataLine[3]));
wd.withdraw();
}
}
}
}
class UnionPay {
private ArrayList<Bank> bankList = new ArrayList<Bank>();
public UnionPay() {
super();
// TODO Auto-generated constructor stub
}
public UnionPay(ArrayList<Bank> bankList) {
super();
this.bankList = bankList;
}
public ArrayList<Bank> getBankList() {
return bankList;
}
public void setBankList(ArrayList<Bank> bankList) {
this.bankList = bankList;
}
public void addBank(Bank bank) {
this.bankList.add(bank);
}
public void removeBank(Bank bank) {
this.bankList.remove(bank);
}
}
class Bank
{
private String bankNO;
private String bankName;
private ArrayList<Account> accountList = new ArrayList<Account>();
private ArrayList<ATM> ATMList = new ArrayList<ATM>();
public Bank() {
super();
// TODO Auto-generated constructor stub
}
public Bank(String bankNO, String bankName) {
super();
this.bankNO = bankNO;
this.bankName = bankName;
}
public String getBankNO() {
return bankNO;
}
public void setBankNO(String bankNO) {
this.bankNO = bankNO;
}
public String getBankName() {
return bankName;
}
public void setBankName(String bankName) {
this.bankName = bankName;
}
public void addAccount(Account account) {
this.accountList.add(account);
}
public void removeAccount(Account account) {
this.accountList.remove(account);
}
public void addATM(ATM aTM) {
this.ATMList.add(aTM);
}
public void removeATM(ATM aTM) {
this.ATMList.remove(aTM);
}
public ArrayList<Account> getAccountList() {
return accountList;
}
public void setAccountList(ArrayList<Account> accountList) {
this.accountList = accountList;
}
public ArrayList<ATM> getATMList() {
return ATMList;
}
public void setATMList(ArrayList<ATM> aTMList) {
ATMList = aTMList;
}
}
class User
{
private String ID;
private String name;
private String Phone;
ArrayList<Account> list = new ArrayList<Account>();
public User() {
super();
// TODO Auto-generated constructor stub
}
public User(String iD, String name, String phone) {
super();
ID = iD;
this.name = name;
Phone = phone;
}
public String getID() {
return ID;
}
public void setID(String iD) {
ID = iD;
}
public String getPhone() {
return Phone;
}
public void setPhone(String phone) {
Phone = phone;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void addAccount(Account account) {
this.list.add(account);
}
public void removeAccount(Account account) {
this.list.remove(account);
}
}
class Account {
private String accountNO;
private double balance = 0;
private String accounttype;
private User user = null;
private Bank bank = null;
private static ArrayList<Card> list = new ArrayList<Card>();
public Account() {
super();
// TODO Auto-generated constructor stub
}
public Account(String accountNO, double balance,String accounttype, User user, Bank bank) {
super();
this.accountNO = accountNO;
this.balance = balance;
this.accounttype = accounttype;
this.user = user;
this.bank = bank;
}
public void addCard(Card card) {
list.add(card);
}
public void removeCard(Card card) {
list.remove(card);
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public String getAccountNO() {
return accountNO;
}
public void setAccountNO(String accountNO) {
this.accountNO = accountNO;
}
public String getAccounttype() {
return accounttype;
}
public void setAccounttype(String accounttype) {
this.accounttype = accounttype;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Bank getBank() {
return bank;
}
public void setBank(Bank bank) {
this.bank = bank;
}
public ArrayList<Card> getList() {
return list;
}
public void setList(ArrayList<Card> list) {
Account.list = list;
}
public static Account getAmountbyCardNO(String cardNO) {
Iterator<Card> cardItr = Account.list.iterator();
Card card = null;
while(cardItr.hasNext()) {
card = cardItr.next();
if(card.getCardNO().equals(cardNO)) {
return card.getAccount();
}
}
return null;
}
}
class Card {
private String cardNO;
private String cardPassword;
private Account account = null;
public Card() {
super();
// TODO Auto-generated constructor stub
}
public Card(String cardNO, String cardPassword, Account account) {
super();
this.cardNO = cardNO;
this.cardPassword = cardPassword;
this.account = account;
}
public String getCardNO() {
return cardNO;
}
public void setCardNO(String cardNO) {
this.cardNO = cardNO;
}
public String getCardPassword() {
return cardPassword;
}
public Account getAccount() {
return account;
}
public void setAccount(Account account) {
this.account = account;
}
public void setCardPassword(String cardPassword) {
this.cardPassword = cardPassword;
}
public boolean checkCard() {
Pattern p = Pattern.compile("\\d{16}+");
Matcher m = p.matcher(this.cardNO);
return m.matches();
}
public boolean checkPassword(String password) {
return this.cardPassword.equals(password);
}
}
class ATM {
private String ATMID;
private double rates;
private Bank bank = null;
public ATM() {
super();
// TODO Auto-generated constructor stub
}
public ATM(String aTMID,double rates, Bank bank) {
super();
ATMID = aTMID;
this.rates = rates;
this.bank = bank;
}
public String getATMID() {
return ATMID;
}
public void setATMID(String aTMID) {
ATMID = aTMID;
}
public Double getRates() {
return rates;
}
public void setRates(double rates) {
this.rates = rates;
}
public Bank getBank() {
return bank;
}
public void setBank(Bank bank) {
this.bank = bank;
}
}
class Withdraw {
private UnionPay unionPay;
private String cardNO;
private String cardPassword;
private String ATMID;
private double amount;
public Withdraw() {
super();
// TODO Auto-generated constructor stub
}
public Withdraw(UnionPay unionPay, String cardNO, String cardPassword, String aTMID, double amount) {
super();
this.unionPay = unionPay;
this.cardNO = cardNO;
this.cardPassword = cardPassword;
ATMID = aTMID;
this.amount = amount;
}
public Withdraw(String cardNO, String cardPassword, String aTMID, double amount) {
super();
this.cardNO = cardNO;
this.cardPassword = cardPassword;
ATMID = aTMID;
this.amount = amount;
}
public void withdraw() {
/**
* 校验该卡是否存在
*/
Card card = ValidateData.getCardbyCardNO(unionPay, cardNO);
if(card == null) {
System.out.println("Sorry,this card does not exist.");
System.exit(0);
}
/**
* 校验ATM是否存在
*/
ATM aTM = ValidateData.getATMbyATMID(unionPay, ATMID);
if(aTM == null) {
System.out.println("Sorry,the ATM's id is wrong.");
System.exit(0);
}
Account account = Account.getAmountbyCardNO(cardNO);
double balance = account.getBalance();
String type = account.getAccounttype();
/**
* 校验卡密码是否正确
*/
if(!card.getCardPassword().equals(cardPassword)) {
System.out.println("Sorry,your password is wrong.");
System.exit(0);
}
double excess = 0.00;
double charge = 0.00;
/**
* 校验是否为跨行取款
*/
if (account.getBank().getBankNO() != aTM.getBank().getBankNO()) {
double rates = aTM.getRates();
charge = amount * rates;
}
/**
* 校验取款金额是否大于余额
*/
if(type.equals("debit"))
{
if(charge > 0)
{
if(amount + charge > balance)
{
System.out.println("Sorry,your account balance is insufficient.");
System.exit(0);
}
}
else
{
if (amount > balance)
{
System.out.println("Sorry,your account balance is insufficient.");
System.exit(0);
}
}
}
else
{
if(amount > balance && balance >= 0)
{
excess = (balance - amount)*0.05;
}
if(amount > balance && balance < 0)
{
excess = -(amount * 0.05);
}
}
/**
* 校验透支金额是否超过¥50000.00
*/
if (balance - amount + excess - charge < -50000)
{
System.out.println("Sorry,your account balance is insufficient.");
System.exit(0);
}
account.setBalance(balance - amount + excess - charge);//取款更新余额操作
if(amount >= 0) {
showResult(account,1);
}else {
showResult(account,0);
}
}
public void showResult(Account account,int flag) {
String operate = "";
if(flag == 1) {
operate = "取款";
}else {
operate = "存款";
amount *= -1;
}
ATM aTM = ValidateData.getATMbyATMID(unionPay, ATMID);
String userName = account.getUser().getName();
String bankName = aTM.getBank().getBankName();
System.out.println("业务:取款 " + userName + "在" +
bankName + "的" + ATMID + "号ATM机上" + operate + String.format("¥%.2f", amount));
System.out.println("当前余额为" + String.format("¥%.2f", account.getBalance()));
}
}
class ValidateData {
/**
* 校验卡号是否存在
* @param unionPay
* @param cardNO
* @return
*/
public static Card getCardbyCardNO(UnionPay unionPay,String cardNO) {
Card card = null;
Iterator<Bank> bankItr = unionPay.getBankList().iterator();
while(bankItr.hasNext())
{
ArrayList<Account> accountList = bankItr.next().getAccountList();
Iterator<Account> accountItr = accountList.iterator();
while(accountItr.hasNext())
{
ArrayList<Card> cardList = accountItr.next().getList();
Iterator<Card> cardItr = cardList.iterator();
while(cardItr.hasNext())
{
card = cardItr.next();
if(card.getCardNO().equals(cardNO))
{
return card;
}
}
}
}
return null;
}
/**
* 校验ATM ID是否存在
* @param unionPay
* @param ATMID
* @return
*/
public static ATM getATMbyATMID(UnionPay unionPay,String ATMID) {
Iterator<Bank> bankItr = unionPay.getBankList().iterator();
Bank bank = null;
ATM aTM = null;
while(bankItr.hasNext())
{
bank = bankItr.next();
Iterator<ATM> aTMItr = bank.getATMList().iterator();
while(aTMItr.hasNext())
{
aTM = aTMItr.next();
if(aTM.getATMID().equals(ATMID))
{
return aTM;
}
}
}
return null;
}
}
class GetBalance {
private UnionPay unionPay;
public GetBalance() {
super();
// TODO Auto-generated constructor stub
}
public GetBalance(UnionPay unionPay) {
super();
this.unionPay = unionPay;
}
public double getBalance(String cardNO) {
return ValidateData.getCardbyCardNO(unionPay, cardNO).getAccount().getBalance();
}
}
这次作业吸取了老师第一次源码的格式,不会如同上次那样臃肿;
踩坑心得:只是单纯的在手续费的税率计算上算法上有错误,有上次的经验在整体的算法上没有什么错误;
改进建议:还是没有在取款类里将操作提取出来形成一个单独的类,应该对其进行改进;
三、总结:整体来说这次ATM的题目并不会太难,在算法上很容易理解自己到底要做出一个什么样的程序,但是对于里面多种对象之间的关系的处理,也就是类的关系的处理,如何构建出一个框架是这次作业的重点,完成了ATM机的作业之后对于类之间关系的处理也会有了一定的经验;在之后的问题处理中肯定不会那么麻烦;
浙公网安备 33010602011771号