JAVA基础作业练习—自定义异常之模拟ATM

原创 2015年11月20日 10:36:56

<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);">最近打算开始写博客,犹豫自己只是个java语言的初学者,所以现在的内容只是自己的一些学习笔记和做的一些小练习。</span>
希望能在csdn学到更多的 知识,成长自己!我在努力成为成为程序员的路上!

今天做的小小练习的模拟atm存取款,查询余额的功能,并且自定义两个异常。

模拟ATM的存取款操作。
定义一个ATM机类, 该类有私有属性金额banlance和有存款方法void deposit()、取款方法void withdraw()、显示余额double showBalance()和显示主页面show()方法---显示一些提示操作
如选择1,存款业务
            选择2,取款业务
选择3,查询余额业务
选择4,退出
注意:存钱与取钱金额均由键盘输入。
(1)考虑输入的存款金额小于0的异常处理NotNegativeNumber---这是一个自定义异常类,
(2)考虑输入的存款金额为非数值型的数据 如 “abc”的异常处理
(3)考虑取钱大于余额的异常处理InsufficientFundsException------这是一个自定义异常类),
(4)考虑输入的取款金额小于0的异常处理NotNegativeNumber,考虑输入的取款金额为非数值型的数据 如 “abc”的异常处理。若取钱数大于余额则作为异常处理InsufficientFundsException------这是一个自定义异常类),要定义好自己的异常类,并写一个测试类BankTest 测试上面的ATM的功能

代码实现:

package homework;

import java.util.InputMismatchException;
import java.util.Scanner;

class Atm {
	private double banlance;
	double num;
	private String ID;

	public Atm(String ID) {
		this.ID = ID;
	}

	public void Deposit(double banlance) throws NotNegativeNumber {
		if (banlance < 0) {
			throw new NotNegativeNumber();
		}
		if (this.banlance != 0) {
			banlance = this.banlance + banlance;
		} else
			this.banlance = banlance;
	}

	public void withDraw(double Money) throws InsufficientFundsException, NotNegativeNumber {
		if (Money > banlance) {
			throw new InsufficientFundsException();
		} else
			banlance = banlance - Money;
	}

	public void showBanlance() {
		System.out.println("您的余额为:" + banlance);
	}

	public void show() {
		System.out.println(ID + " 用户您好,欢迎使用本ATM");
		System.out.println("选择1,存款业务");
		System.out.println("选择2,取款业务");
		System.out.println("选择3,查询余额业务");
		System.out.println("选择4,退出");

	}
}

class NotNegativeNumber extends Exception { //自定义异常

	public NotNegativeNumber() {

	}
}

class InsufficientFundsException extends Exception { //自定义异常
	public InsufficientFundsException() {

	}
}

public class BankTest {

	public static void main(String[] args) {
		Atm atm = new Atm("12345-3455");
		atm.show();
		boolean flag = true;
		while (flag) {
			int num = new Scanner(System.in).nextInt();
			switch (num) {
			case 1:
				System.out.println("请输入存款金额");
				while (true) {
					try {
						double banlance = new Scanner(System.in).nextDouble();
						atm.Deposit(banlance);
						atm.show();
						break;
					} catch (NotNegativeNumber e) {
						System.out.print("请输入正确的金额,不能为负数");
					} catch (InputMismatchException e) {
						System.out.println("输入正确的金额,不能为字符");
					}
				}
				break;
			case 2:
				System.out.println("输入取款金额");
				while (true) {
					try {
						double money = new Scanner(System.in).nextDouble();
						atm.withDraw(money);
						atm.show();
						break;
					} catch (NotNegativeNumber e) {
						System.out.println("输入正确的金额,不能为负数");
					} catch (InsufficientFundsException e) {
						System.out.println("抱歉,余额不足");
					}
				}
				break;
			case 3:
				atm.showBanlance();
				atm.show();
				break;
			case 4:
				flag = false;
				System.out.println("交易完成,请取回您的卡");
				break;
			}
		}
	}

}


Java 实现自定义异常 以及如何使用该异常

示例代码如下: 1.定义异常类 public class MyException extends Exception { public MyException() { } } 注意: ...
  • hu285279904
  • hu285279904
  • 2015年01月15日 23:48
  • 1211

Java 异常(Exception)&自定义异常

一 简介
  • FX_SKY
  • FX_SKY
  • 2014年09月28日 11:36
  • 5234

4.第三单元任务三实训:编写一个类ExceptionTest,在main方法中使用try-catch-finally语句结构实现:在try语句块中,编写两个数相除操作,相除的两个操作数要求程序运行时用

4.第三单元任务三实训:编写一个类ExceptionTest,在main方法中使用try-catch-finally语句结构实现:在try语句块中,编写两个数相除操作,相除的两个操作数要求程序运行时用...
  • zyw0713
  • zyw0713
  • 2015年07月21日 18:24
  • 2120

Java模拟简易ATM机运行(无界面、无数据库)

package testATM; /** code by Xu Xingrui*/ public class Atm { public static void main(String[] args...
  • Alpssoul
  • Alpssoul
  • 2015年10月01日 16:04
  • 2372

Java:利用嵌套循环模拟ATM机取款业务

代码:package com.jredu.ch03; import java.util.Scanner; public class Work4 { public static void mai...
  • xuehyunyu
  • xuehyunyu
  • 2017年07月28日 22:25
  • 574

一个用java模拟ATM操作的小程序

一个用java模拟ATM操作的小程序
  • javaniuniu
  • javaniuniu
  • 2016年12月02日 16:36
  • 1179

java银行管理系统(模拟ATM取款机)

  • 2009年01月09日 13:56
  • 53KB
  • 下载

JAVA基础作业练习—自定义异常之模拟ATM

前言: 最近打算开始写博客,犹豫自己只是个java语言的初学者,所以现在的内容只是自己的一些学习笔记和做的一些小练习。 希望能在csdn学到更多的 知识,成长自己!我在努力成为成为程序员的路上! ...
  • hunao0221
  • hunao0221
  • 2015年11月20日 10:36
  • 2083

用Java模仿银行自助存取一体机(ATM)

package pricate.use; import java.util.Scanner; //模仿银行自助存取一体机(ATM) public class TestUser4 {   pub...
  • pangqiandou
  • pangqiandou
  • 2016年08月11日 20:33
  • 6799

Python练习程序(三)函数练习--ATM模拟

Python函数小练习-ATM模拟 功能要求: - 额度15000 - 可以提现,手续费5% - 记录消费流水 - 支持每月账单查询 - 提供还款接口...
  • fgf00
  • fgf00
  • 2015年12月21日 19:57
  • 1132
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA基础作业练习—自定义异常之模拟ATM
举报原因:
原因补充:

(最多只允许输入30个字)