Java編程開發(fā)新手學(xué)習(xí):自編簡易銀行ATM機(jī)系統(tǒng)

Java是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。Java 技術(shù)具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應(yīng)用于PC、數(shù)據(jù)中心、游戲控制臺、科學(xué)超級計(jì)算機(jī)、移動電話和互聯(lián)網(wǎng),同時擁有全球最大的開發(fā)者專業(yè)社群。

給你學(xué)習(xí)路線:html-css-js-jq-javase-數(shù)據(jù)庫-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm

小編推薦一個學(xué)Java的學(xué)習(xí)裙【 六五零,五五四,六零七 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

這是自己寫的一個特別簡單的銀行ATM機(jī)系統(tǒng),邏輯功能都一般,只是隨便寫了實(shí)現(xiàn)幾個小功能,還有很多需要完善優(yōu)化的地方。這個小程序涉及的主要就是面向?qū)ο蠓治觥T谥骱瘮?shù)部分,寫了3種實(shí)現(xiàn),讀者都可以嘗試看看,說實(shí)話,這種代碼就是垃圾,因?yàn)殚喿x性實(shí)在太差,讀者有興趣可以看看研究研究。

//源代碼

package oo.day06;

import java.util.Scanner;

//import oo.day05.CCB;

public class UnionPayTest {

public static void main(String[] args) {

ICBCImpl icbc = new ICBCImpl(2000.0,"123456");

Scanner scan = new Scanner(System.in);

System.out.println("輸入數(shù)字選擇銀行:"+" "+"1-ICBC 2-ABC 3-CCB");

int num1 = scan.nextInt();

switch(num1){

case 1:

//驗(yàn)證密碼

System.out.println("輸入密碼:");

String password = scan.next();

if(icbc.checkPwd(password)){

//System.out.println("密碼正確!");

System.out.println("密碼正確!"+" "+"請輸入數(shù)字選擇功能:1-查詢 2-取款 3-網(wǎng)上支付");

//開始輸入數(shù)字選擇功能

int num = scan.nextInt();

switch(num){

case 1:

//查詢余額

System.out.println("余額:"+icbc.getBalance());

break;

case 2:

//取款

System.out.println("請輸入取款金額:");

double number1 = scan.nextDouble();

if(icbc.drawMoney(number1)){

System.out.println("取款成功,余額為:"+icbc.getBalance());

}else{

System.out.println("取款失敗!");

}

break;

case 3:

//網(wǎng)上支付

System.out.println("請輸入支付金額:");

double number2 = scan.nextDouble();

if(icbc.payOnline(number2)){

System.out.println("支付成功,余額為:"+icbc.getBalance());

}else{

System.out.println("支付失敗!");

}

break;

default :

System.out.println("輸入錯誤!");

}

}else{

System.out.println("密碼錯誤!");

}

break;

case 2:

break;

case 3:

break;

default :

System.out.println("輸入錯誤!");

}

/*

//驗(yàn)證密碼

System.out.println("輸入密碼:");

String password = scan.next();

if(icbc.checkPwd(password)){

//System.out.println("密碼正確!");

System.out.println("密碼正確!"+" "+"請輸入數(shù)字選擇功能:1-查詢 2-取款 3-網(wǎng)上支付");

//開始輸入數(shù)字選擇功能

int num = scan.nextInt();

switch(num){

case 1:

//查詢余額

System.out.println("余額:"+icbc.getBalance());

break;

case 2:

//取款

System.out.println("請輸入取款金額:");

double number1 = scan.nextDouble();

if(icbc.drawMoney(number1)){

System.out.println("取款成功,余額為:"+icbc.getBalance());

}else{

System.out.println("取款失敗!");

}

break;

case 3:

//網(wǎng)上支付

System.out.println("請輸入支付金額:");

double number2 = scan.nextDouble();

if(icbc.payOnline(number2)){

System.out.println("支付成功,余額為:"+icbc.getBalance());

}else{

System.out.println("支付失敗!");

}

break;

default :

System.out.println("輸入錯誤!");

}

*/

/*

//查詢余額

System.out.println("余額:"+icbc.getBalance());

//取款

System.out.println("請輸入取款金額:");

double number1 = scan.nextDouble();

if(icbc.drawMoney(number1)){

System.out.println("取款成功,余額為:"+icbc.getBalance());

}else{

System.out.println("取款失敗!");

}

//網(wǎng)上支付

System.out.println("請輸入支付金額:");

double number2 = scan.nextDouble();

if(icbc.payOnline(number2)){

System.out.println("支付成功,余額為:"+icbc.getBalance());

}else{

System.out.println("支付失敗!");

}

*/

/*

}else{

System.out.println("密碼錯誤!");

}

*/

/*農(nóng)行ATM機(jī)系統(tǒng)

* 1,什么卡都能插

* 2,只有農(nóng)行卡才能支付話費(fèi)

*

*

* */

ABCATM atm = new ABCATM();

//UnionPay card = new ABCImpl(2000.0,"123456");

UnionPay card = new ABCImpl();

atm.insertCard(card);

atm.payTelBill();

//

}

}

class ABCATM{

private UnionPay card;//銀聯(lián)卡

public void insertCard(UnionPay card){

this.card=card;

}

public void payTelBill(){//支付入口按鈕

if(card instanceof ABC){

ABC abcCard = (ABC)card;

abcCard.payTelBill("12345678912", 500);

}else{

System.out.println("不是農(nóng)行卡不能支付");

}

}

}

interface UnionPay{

public abstract double getBalance();

public abstract boolean drawMoney(double money);//取款

public abstract boolean checkPwd(String input);//驗(yàn)證密碼

}

interface ICBC extends UnionPay{

public abstract boolean payOnline(double money);

}

interface ABC extends UnionPay{

public abstract boolean payTelBill(String phoneNumber,double money);

}

interface CCB extends UnionPay{

public abstract boolean payGas(String homeNumber,double money);

}

class ABCImpl implements ABC{

private double balance;

private String password;

/*

ABCImpl(double balance,String password){

this.balance=balance;

this.password=password;

}

*/

public double getBalance(){

return balance;

}

public boolean drawMoney(double money){

if(money<=balance){

balance-=money;

return true;

}else{

return false;

}

}

小編推薦一個學(xué)Java的學(xué)習(xí)裙【 六五零,五五四,六零七 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

public boolean checkPwd(String input){

if(password.equals(input)){

return true;

}

return false;

}

public boolean payTelBill(String phoneNumber,double summary){

if(phoneNumber.length()==11 && (balance-summary)>=2000){

balance-=summary;

return true;

}

return false;

}

}

class ICBCImpl implements ICBC{

private double balance;

private String password;

ICBCImpl(double balance,String password){

this.balance=balance;

this.password=password;

}

public double getBalance(){

return balance;

}

public boolean drawMoney(double money){

if(money<=balance){

balance-=money;

return true;

}else{

return false;

}

}

public boolean checkPwd(String input){

if(password.equals(input)){

return true;

}

return false;

}

public boolean payOnline(double money){

if(balance>=money){

balance-=money;

return true;

}

return false;

}

}

class CCBImpl implements CCB{

private double balance;

private String password;

CCBImpl(double balance,String password){

this.balance=balance;

this.password=password;

}

public double getBalance(){//查詢余額

return balance;

}

public boolean drawMoney(double number){//取錢,返回取錢成功與否的結(jié)果

if((balance-number)>=5000){

balance-=number;

return true;

}

return false;

}

public boolean checkPwd(String input){//檢查密碼

if(password.equals(input)){

return true;

}else{

return false;

}

}

public boolean payGas(String homeNumber,double number){

if(homeNumber.length()==11 && (balance-number)>=2000){

balance-=number;

return true;

}

return false;

}

}

程序運(yùn)行結(jié)果演示

程序運(yùn)行結(jié)果演示

小編推薦一個學(xué)Java的學(xué)習(xí)裙【 六五零,五五四,六零七 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

程序運(yùn)行結(jié)果演示

程序運(yùn)行結(jié)果演示

程序運(yùn)行結(jié)果演示

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容