package com.company;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// write your code here
Date date = new Date(2008, 11, 1); //��ʼ����
ArrayList<Account> account = new ArrayList<>(0); //�����˻����飬Ԫ�ظ���Ϊ0
System.out.println("(a)add account (d)deposit (w)withdraw (s)show (c)change day (n)next month (e)exit");
char cmd;
Scanner scanner = new Scanner(System.in);
do {
date.show();
System.out.println("\tTotal: " + Account.getTotal()+"\tcommand> ");
char type;
int index, day;
double amount, credit, rate, fee;
String id, desc;
cmd = scanner.next().charAt(0);
switch (cmd) {
case 'a': //�����˻�
type=scanner.next().charAt(0);
Scanner s=new Scanner(System.in);
id=s.nextLine();
if (type == 's') {
rate=scanner.nextDouble();
account.add(new SavingsAccount(date, id, rate));
} else {
credit=scanner.nextDouble();
rate=scanner.nextDouble();
fee=scanner.nextDouble();
account.add(new CreditAccount(date, id, credit, rate,fee));
}
break;
case 'd': //�����ֽ�
index=scanner.nextInt();
amount=scanner.nextInt();
Scanner m=new Scanner(System.in);
desc=m.next();
account.get(index).deposit(date, amount, desc);
break;
case 'w': //ȡ���ֽ�
index=scanner.nextInt();
amount=scanner.nextInt();
desc=scanner.nextLine();
account.get(index).withdraw(date, amount, desc);
break;
case 's': //��ѯ���˻���Ϣ
for (int i = 0; i < account.size(); i++) {
System.out.println("["+i+"] ");
account.get(i).show();
}
break;
case 'c': //�ı�����
day=scanner.nextInt();
if (day < date.getDay())
System.out.println("You cannot specify a previous day");
else if (day > date.getMaxDay())
System.out.println("Invalid day");
else
date = new Date(date.getYear(), date.getMonth(), day);
break;
case 'n': //�����¸���
if (date.getMonth() == 12)
date = new Date(date.getYear() + 1, 1, 1);
else
date = new Date(date.getYear(), date.getMonth() + 1, 1);
for (int i = 0; i < account.size(); i++)
account.get(i).settle(date);
break;
}
} while (cmd != 'e');
}
}
这里是第六个版本的一部分,重点在于ArryList的使用和Scanner的使用