JAVA模拟银行存钱,取钱操作以及计算利息操作

来源:互联网 发布:unity3d自学教程 编辑:程序博客网 时间:2024/05/03 08:25
/**程序的版权和版本声明部分:*程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:尚振伟*完成日期:2014年11月11日*版本号:v0.1*对任务及求解方法的描述部分:*输入描述:无*问题描述:具体要求: 建立Bank类为抽象类。方法: 抽象方法 computerIncome() //计算存款利息 非抽象方法 saveMoney()  //存钱 非抽象方法 drawMoney() //取钱建立接口 Commission方法: 抽象方法 computerComm() //计算提成 建立异常类 InsufficientFundsExceptionclass InsufficientFundsException extends Exception处理取钱不能超出余额的异常。具体要求:建立具体银行类,为Bank类的子类。方法:实现Bank类中的抽象方法,计算存款利息实现接口中的抽象方法,计算存款提成实现取钱操作时做异常处理。  建立测试类测试实验结果。*程序输入:*程序输出:*问题分析:*算法设计:*我的程序:*/public abstract class Bank {protected int savedMoney;protected int year;protected double income;protected double inRate;public void income(int in,int out) throws InsufficientFundsException{if((in-out)<0){throw new InsufficientFundsException(in,out);}int netIncome=in-out;System.out.println("本次取款"+out+"成功,账户余额为:"+netIncome);}protected int getSavedMoney() {return savedMoney;}public void setSavedMoney(int savedMoney) {this.savedMoney = savedMoney;}public int getYear() {return year;}public void setYear(int year) {this.year = year;}public double getIncome() {return income;}public void setIncome(double income) {this.income = income;}public double getInRate() {return inRate;}public void setInDate(double inRate) {this.inRate = inRate;}public Bank(){}public Bank(int savedMoney,int year,double inRate){this.savedMoney=savedMoney;this.year=year;this.inRate=inRate;}public void setRate(double in){this.inRate=in;}public abstract double computerIncome();}

public class Chinabank extends Bank {private double year;private double inRate1;public void setRate1(double in1){this.inRate1=in1;}public Chinabank(){}public Chinabank(int savedMoney,double year,double inRate,double inRate1){this.savedMoney=savedMoney;this.year=year;this.inRate=inRate;this.inRate1=inRate1;}public double computerIncome(){income=(int)this.year*this.getInRate()*this.getSavedMoney()+(year-(int)year)*inRate1*this.getSavedMoney();return income;}}

public class Rmbank extends Bank implements Commision{private double year;private double inRate1;public Rmbank(){}public Rmbank(int savedMoney,double year,double inRate,double inRate1){this.savedMoney=savedMoney;this.year=year;this.inRate=inRate;this.inRate1=inRate1;}    public int calculate(){    int tc;    if(this.getSavedMoney()<=1000){    tc=0;    }    else if(this.getSavedMoney()>1000||this.getSavedMoney()<=1000){    tc=100;    }    else{    tc=500;    }    return tc;    }@Overridepublic double computerIncome() {// TODO Auto-generated method stubincome=(int)this.year*this.getInRate()*this.getSavedMoney()+(year-(int)year)*inRate1*this.getSavedMoney()+this.calculate();return income;}}

public interface Commision {public abstract int calculate();}

public class InsufficientFundsException extends Exception {String message;public InsufficientFundsException(int money,int qum){message="余额不足,取款失败";}public String warnMess(){return message;}}

import java.util.Scanner;public class Test {public static void main(String[] args) {Bank aaa=new Chinabank(2000,2.5,0.02,0.01);System.out.println("在中国银行的存款利息为:"+aaa.computerIncome());Bank bbb=new Rmbank(2000,2.5,0.02,0.01);Commision ccc;ccc=new Rmbank();System.out.println("在人民银行的存款利息加提成为:"+bbb.computerIncome()+ccc.calculate());Scanner in=new Scanner(System.in);System.out.println("请输入要取得金额");int money=in.nextInt();try{aaa.income(aaa.savedMoney,money);}catch(InsufficientFundsException e){System.out.println(e.warnMess());}}}


结果展示:

心得体会:第一次使用异常类。

3 0
原创粉丝点击