首页
IT
登录
6mi
u
盘
搜
搜 索
IT
银行小系统测试
银行小系统测试
xiaoxiao
2021-03-25
74
/*
*程序的版权和版本声明部分:
*程序的版权和版本声明部分:
*Copyright(c)2013,烟台大学计算机学院学生
*All rights reserved.
*文件名称:
*作者:尚振伟
*完成日期:2014年11月11日
*版本号:v0.1
*对任务及求解方法的描述部分:
*输入描述:无
*问题描述:具体要求:
建立Bank类为抽象类。
方法:
抽象方法 computerIncome() //计算存款利息
非抽象方法 saveMoney() //存钱
非抽象方法 drawMoney() //取钱
建立接口 Commission
方法:
抽象方法 computerComm() //计算提成
建立异常类 InsufficientFundsException
class 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();
}
[java] view plain copy
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;
}
}
[java] view plain copy
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;
}
@Override
public
double
computerIncome() {
// TODO Auto-generated method stub
income=(
int
)
this
.year*
this
.getInRate()*
this
.getSavedMoney()+(year-(
int
)year)*inRate1*
this
.getSavedMoney()+
this
.calculate();
return
income;
}
}
[cpp] view plain copy
public
interface Commision {
public
abstract
int
calculate();
}
[cpp] view plain copy
public
class
InsufficientFundsException extends Exception {
String message;
public
InsufficientFundsException(
int
money,
int
qum)
{
message=
"余额不足,取款失败"
;
}
public
String warnMess(){
return
message;
}
}
[java] view plain copy
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());
}
}
}
结果展示:
心得体会:第一次使用异常类。
转载请注明原文地址: https://ju.6miu.com/read-40445.html
技术
最新回复
(
0
)