JAVA高手来,题目是:自定义异常类,实现银行的存钱和取钱业务

JAVA高手来,题目是:自定义异常类,实现银行的存钱和取钱业务,第1张

3个类,开始

1,

/

自定义异常类

/

public class MyException extends Exception {

//验证交易类型正确性

public void TransactionsInfo(){

Systemoutprintln("交易失败,只能输入0或者1");

}

//验证金额正确性

public void amountInfo(){

Systemoutprintln("交易失败,输入金额不能为负数或者字符");

}

}

2,

public class User {

/

用户信息类

/

private String name; //用户名

private float amount; //用户金额

public User(String name,float amount){

thisname = name;

thisamount = amount;

}

public float getAmount() {

return amount;

}

public void setAmount(float amount) {

thisamount = amount;

}

public String getName() {

return name;

}

public void setName(String name) {

thisname = name;

}

// 交易的方法,需要接受两个参数,一个是代表交易方式(取款,或者存款,),一个代表交易金额

public User Transactions() throws MyException{

Systemoutprintln("请输入您的交易方式0代表存款,1代表取款");//提示用户交易方式

BufferedReader br1=new BufferedReader(new InputStreamReader(Systemin));

BufferedReader br2=new BufferedReader(new InputStreamReader(Systemin));

String flag = null;

try {

flag = br1readLine();

} catch (IOException e) {

eprintStackTrace();

}

if("0"equals(flag)){

}else if("1"equals(flag)){

amount=-amount;//因为1代表取款,所以变成负数

}else{

new MyException()TransactionsInfo(); //打印类型错误

return this;

}

String amountString = null;

try {

amountString = br2readLine();

} catch (IOException e) {

eprintStackTrace();

}

float amount = 00f;

try{

amount = FloatparseFloat(amountString);

}catch(Exception ex){

throw new MyException();

}

thisamount = thisamount+amount;//交易

return this; //返回用户信息

}

}

3,

public class MoneyTest {

/

测试类

@param args

/

public static void main(String[] args){

User user = new User("张三",1234f); //测试用户

Systemoutprintln("用户"+usergetName()+"交易前的金额为:"+usergetAmount());

try {

userTransactions();

} catch (MyException e) {

// TODO Auto-generated catch block

eamountInfo();

}//调用方法

Systemoutprintln("交易后的金额为"+usergetAmount());

}

}

public double withdrawl(double amt) throws InsufficientFundsException {

if(amt > total) {

throw new InsufficientFundsException();

}

return total - amt;

}

public void process(boolean save, double amt) {

if(save) {

// save money

} else {

try{

double left = withdrawl(amt);

} catch(InsufficientFundsException e) {

// Handle Exception

}

}

}

public class MyException extends RuntimeException {

private static final long serialVersionUID = 1L;

public MyException() {

}

public MyException(String msg) {

super(msg);

}

public MyException(String msg, Exception ex) {

super(msg, ex);

}

}

----------------------------------------------

假如 yhk余额 为 float balance ; 取的钱为 float expenditure;

if(balance < 10  || expenditure > 5000) { //当然你可以分成2个异常来抛

 throw new DBException("余额不能低于10元 或者 单次取钱金额不能大于5000");

}

很简单的例子,我把代码贴出来吧

import javautilScanner;

public class ATM {

/

@param args

/

public static void main(String[] args) {

Scanner in = null;

int result;

double drawMoney;

double depositMoney;

Account account = new Account();

while (true) {

Systemoutprintln("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆(ABC)中国农业银行ATM自动存取款机☆☆☆☆☆☆☆☆☆☆☆☆☆");

Systemoutprintln("\n\t\t\t\t1存款业务");

Systemoutprintln("\n\t\t\t\t2取款业务");

Systemoutprintln("\n\t\t\t\t3查询余额");

Systemoutprintln("\n\t\t\t\t4退出ATM系统");

Systemoutprintln("\n☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆中国农业银行欢迎您的使用☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆");

in = new Scanner(Systemin);

switch (innextInt()) {

case 1:

Systemoutprintln("请输入您的存款数额!");

depositMoney = innextDouble();

if(depositMoney < 0)

Systemoutprintln("您的输入无效,请重新输入!");

result = accountdeposit(depositMoney);

if(result == 0){

Systemoutprintln("存款业务完成,是否显示余额?Y/N");

if("Y"equalsIgnoreCase(innext())){

Systemoutprintln("您当前的余额为:"+accountcheckCurrent());

}else {

break;

}

}else {

Systemoutprintln("无法完成交易!");

break;

}

break;

case 2:

Systemoutprintln("请输入您的取款数额!");

drawMoney = innextDouble();

if (drawMoney < 0) {

Systemoutprintln("您的输入无效,请重新输入!");

}

result = accountwithDraw(drawMoney);

if (result == 0) {

Systemoutprintln("存款业务完成,是否显示余额?Y/N");

if("Y"equalsIgnoreCase(innext())){

Systemoutprintln("您当前的余额为:"+accountcheckCurrent());

}else {

break;

}

} else {

Systemoutprintln("无法完成交易!");

break;

}

case 3:

Systemoutprintln("您当前的余额为:"+accountcheckCurrent());

break;

case 4:

break;

default:

break;

}

}

}

}

public class Account {

private double currentMoney;//当前余额

public double getCurrentMoney() {

return currentMoney;

}

public void setCurrentMoney(double currentMoney) {

if (currentMoney > 0) {

thiscurrentMoney = currentMoney;

}

}

/

取款业务

@param drawMoney

@return 0代表成功,1代表失败

/

public int withDraw(double drawMoney) {

if (currentMoney > 0 && drawMoney <= currentMoney) {

currentMoney -= drawMoney;

} else {

Systemoutprintln("您的余额已不足!");

return 1;

}

return 0;

}

/

存款业务

@param depositMoney

@return 0代表成功,1代表失败

/

public int deposit(double depositMoney) {

if (depositMoney > 0) {

currentMoney += depositMoney;

return 0;

}else {

Systemoutprintln("您提交的存款为负数,无法完成存款交易");

return -1;

}

}

/

查询余额业务

@return

/

public double checkCurrent() {

return currentMoney;

}

}

先不说你这程序的问题,,我说说我分析你的题目(个人意见)

JAVA我要创建一个帐号类,有3个方法,分别是存钱取钱还有查询金额

帐号就是一个对象

该对象有三个属性 (卡号:id,余额:money);

有三个行为: 存钱,取钱,查询

那么初始架构就是

public class IDmoney {

private String id; //卡号

private String money; //余额

//些处为属性的get,set方法

public boolean inMoney(saveMoney){ //存钱

//方法体

}

public boolean outMoney(saveMoney){ //取钱

//方法体

}

public double selectMoney(saveMoney){ //查询

//方法体

}

}

大致就是这样,至于方法里面的处理,得看你自己业务了然后如果想自定义异常的话,你得去看看怎么自定义,和使用

现在语言都是面向对象,所以在实际开发当中,尽量向对象看

以上就是关于JAVA高手来,题目是:自定义异常类,实现银行的存钱和取钱业务全部的内容,包括:JAVA高手来,题目是:自定义异常类,实现银行的存钱和取钱业务、java编程模拟实现yhk储户存钱取钱,一卡通,xyk取钱,pos机刷卡消费等服务、编写一个java程序异常,来控制yhk中每次取钱的金额不能大于5000元,并且卡上的余额不能小于1等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10165846.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存