急需一道简单JAVA题的答案

是一道简单的JAVA程序题 由于题目是英文的,我自己翻译了一下:
为银行系统写一个程序,要求有一个interface和三个class:
1 interface account
提供一个METHOD: avgTranSize. 用来返回最近10次帐号交易的平均值。

2 class bankaccount
Implement interface account
建立一个SIZE = 10 的数组来保存最近10次的交易,如果10个交易满了又有新的交易进来, 就把最老的那个顶掉(不能用ARRAYLIST)
提供一个 method 保存存入银行的钱数
提供一个 method 保存取出的钱数(如果负数了,则交易失败)

3 class savingaccount
inherits class bankaccoun
但是在这个CLASS里面 需要改动保存取出钱数的那个METHOD, 改成帐户里必须至少有100块钱(用OVERRIDE)

4 class test
测试程序

请高手们尽量不要用很高级的语言,因为小弟我刚开始学语言不久,就是用很简单的JAVA语言

------------------------------------------
/**
* 帐户接口
* @author mazq
*/
public interface Account {
/**
* 用来返回最近10次帐号交易的平均值。
* @return
*/
public double avgTranSize();
}
------------------------------------------
public class BankAccount implements Account {
double[] arr;//定义最近交易的一个数组
public double accoutValue=1000;//帐户中默认的值
public double avgTranSize() {
double temp = 0;
for(int i=0;i<arr.length;i++){
temp+=arr[i];
}

return temp/arr.length;
}
/**
* 构造方法
*/
public BankAccount(){
arr = new double[10];
arr[0] = 100;
arr[1] = 11;
arr[2] = 22;
arr[3] = 33;
arr[4] = 44;
arr[5] = 55;
arr[6] = 66;
arr[7] = 77;
arr[8] = 88;
arr[9] = 99;
//创建最近10笔交易的数组完毕
}
/**
* 保存存入银行的钱数
* @param val
*/
public void addValue(double val){
accoutValue += val;
biz(val);
}
/**
* 取出out的钱数,如果帐户中的钱数不足以取出那麽多,交易失败
* @param out
* @return
*/
public double takeOut(double out){
if(out<accoutValue){
accoutValue-=out;
biz(out);
return out;
}else{
System.out.println("交易失败");
return -1;
}
}
/**
* 保存交易的方法
* @param value
*/
public void biz(double value){
for(int i=0;i<arr.length-1;i++){
arr[i]=arr[i+1];
}
arr[9]=value;
}

}
------------------------------------------
public class SavingAccount extends BankAccount {

public double takeOut(double out) {
if(accoutValue<100){
System.out.println("帐户中的钱数小于100,交易失败");
}
if(out<accoutValue){
accoutValue-=out;
return out;
}else{
System.out.println("交易失败");
return -1;
}
}

}
---------------------------------
public class Test {

public static void main(String[] args) {
SavingAccount s = new SavingAccount();
System.out.println(s.avgTranSize());//获取帐户中最近10笔交易平均值
s.addValue(1000);//向帐户中存入1000块钱
System.out.println(s.avgTranSize());//获取帐户中最近10笔交易平均值
s.takeOut(100000);//从帐户提取10000块钱,余额不够,交易失败
System.out.println(s.avgTranSize());//交易不成功,所以最近10比交易平均值不变
}

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-02-17
public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

}

}

interface Account {
public abstract double avgTranSize();
}

class BankAccount implements Account{

protected double[]records;
protected double balance;

public BankAccount(double n){
double[]records = new double[10];
balance=n;
}

public double avgTranSize() {
double sum=0;
double average;
for (int i = 0; i < records.length; i++) {
sum+=records[i];
}
average = sum/records.length;
return average;
}

public void save(double n){
if(n==0){
System.out.println("存入金额不能为0");
return;
}else{
balance+=n;
for (int i = 9; i >0 ; i++) {
records[i]=records[i-1];
}
records[0] = n;
}
}

public void fetch(double n){
if(n>balance){
System.out.println("余额不足");
return;
}else{
balance-=n;
for (int i = 9; i >0 ; i++) {
records[i]=records[i-1];
}
records[0] = (-n);
}
}
}

class SavingAccount extends BankAccount{

public SavingAccount(double n) {
super(n);
}

public void fetch(double n){
if(n > balance-100){
System.out.println("余额不能小于100");
return;
}else{
balance-=n;
for (int i = 9; i >0 ; i++) {
records[i]=records[i-1];
}
records[0] = (-n);
}
}

}本回答被提问者采纳
第2个回答  2009-02-17
1.
public interface Account {

public int avgTranSize();
}
2.
public class BankAccount implements Account{

private static int SIZE = 10;
private static int tradeTime = 0;
private static int leftMoney = 0;
private static int [] trade = new int[SIZE];

public void addMoney(int money) {
if(!hasMax()) {
trade[tradeTime] = money;
} else {
trade[0] = money;
}
tradeTime ++;
leftMoney += money;
}

public void getMoney(int money) {
if(!hasMax()) {
trade[tradeTime] = money;
} else {
trade[0] = money;
}
tradeTime ++;
leftMoney -= money;

}

public boolean hasMax() {

return tradeTime == SIZE;
}

@Override
public int avgTranSize() {
int sum = 0;
for(int i =0; i < trade.length; i ++) {
sum += trade[i];
}
return sum;
}

public int getLeftMoney() {
return leftMoney;
}

}
3.
public class SavingAccount extends BankAccount{

public void getMoney(int money) {

if(getLeftMoney() < 100) {
System.out.println("不足100!");
return ;
} else
{
super.getMoney(money);
}

}

}
第3个回答  2009-02-17
想打听一下 你那帐户是什么意思?
第4个回答  2009-02-17
你把原文给我吧!
相似回答