js写一个atm取款机

JavaScript06

js写一个atm取款机,第1张

'use strict'

const readline = require("readline-sync")

let money = 1000

let ATM = function () {

console.log("输入账号")

let accout = readline.question("")

console.log("输入密码")

let passwordatm = parseInt(readline.question(""))

if (login(accout, passwordatm) == true) {

console.log("1查看余额2取钱3存钱")

let cho = readline.question("") - 0

switch (cho) {

case 1:

console.log("还有" + money)

break

case 2:

console.log("输入金额")

let getmoney = readline.question("") - 0

getmo(getmoney)

break

case 3:

console.log("输入金额")

let savemoney = readline.question("") - 0

save(savemoney)

break

}

} else {

console.log("输入错误")

}

}

function login(username, pasw) {

if ((username == "zhangsan") &&(pasw == 123)) {

return true

} else {

return false

}

}

let getmo = function (getmoney) {

if (money >= getmoney) {

money -= getmoney

console.log("取款" + getmoney, "还剩" + money)

return true

}

return false

}

let save = function (savemoney) {

money += savemoney

console.log("存款成功,余额:" + money)

}

ATM()

import java.io.IOException

/**

* ATM机类

*

* 查看余额

*

* 取款

*

* 存款

*

* 退出系统

*

*

*

*/

public class ATM {

static double yue = 1200.00

public static void main(String[] arg) {

ATM localTest1 = new ATM()

localTest1.ATM_Operate()

}

/**

* ATM机的操作

*/

private void ATM_Operate() {

System.out.println("欢迎使用中国工商银行ATM取款机")

System.out.println("1、查看余额 2、取款")

System.out.println("3、存款0、退出")

System.out.print("请输入您需要的服务:")

byte[] buffer = new byte[512]

try {

int count = System.in.read(buffer)// 返回实际读取的字节数

System.out.print("您输入的是:")

for (int i = 0i <counti++) {

System.out.print("" + (char) buffer[i])

}

if ((char) buffer[0] == '1') {

// 查看余额

System.out.println("您的余额是:¥" + yue + "元")

System.out.println()

ATM_Operate()

} else if ((char) buffer[0] == '2') {

// 取款

withdrawal()

System.out.println()

ATM_Operate()

} else if ((char) buffer[0] == '3') {

// 存款

deposit()

System.out.println()

ATM_Operate()

} else if ((char) buffer[0] == '0') {

// 退出

System.out.println("您已经成功退出系统,谢谢你的使用")

System.exit(0)

} else {

System.out.println("输入不合法,请重新输入")

System.out.println()

ATM_Operate()

}

} catch (IOException e) {

e.printStackTrace()

}

}

/**

* 取款

*

* @throws IOException

*/

private void withdrawal() throws IOException {

byte[] buffer = new byte[512]

System.out.print("请输入您要取出的金额:¥")

int count2 = System.in.read(buffer)// 返回实际读取的字节数

System.out.print("您输入的金额是:")

for (int i = 0i <count2 - 1i++) {

System.out.print("" + (char) buffer[i])

}

System.out.println()

// 字符0 ~ 9对应ASCII值48 ~ 57

boolean flag = false

for (int i = 0i <count2 - 1i++) {

if ((char) buffer[i] >47 &&(char) buffer[i] <58) {

if (i == count2 - 2) {

flag = true

}

} else {

// 输入的字符不是数值

System.out.println("输入不合法,请重新输入")

withdrawal()

break

}

}

System.out.println()

if (flag) {

System.out.print("您已成功取出¥:")

String num = ""

for (int i = 0i <count2 - 1i++) {

System.out.print("" + (char) buffer[i])

num += (char) buffer[i]

}

yue -= Double.valueOf(num)

System.out.print(",现在余额¥:" + yue)

}

}

/**

* 存款

*

* @throws IOException

*/

private void deposit() throws IOException {

byte[] buffer = new byte[512]

System.out.print("请输入您要存入的金额:¥")

int count2 = System.in.read(buffer)// 返回实际读取的字节数

System.out.print("您输入的金额是:")

for (int i = 0i <count2 - 1i++) {

System.out.print("" + (char) buffer[i])

}

System.out.println()

// 字符0 ~ 9对应ASCII值48 ~ 57

boolean flag = false

for (int i = 0i <count2 - 1i++) {

if ((char) buffer[i] >47 &&(char) buffer[i] <58) {

if (i == count2 - 2) {

flag = true

}

} else {

// 输入的字符不是数值

System.out.println("输入不合法,请重新输入")

withdrawal()

break

}

}

System.out.println()

if (flag) {

System.out.print("您已成功存入¥:")

String num = ""

for (int i = 0i <count2 - 1i++) {

System.out.print("" + (char) buffer[i])

num += (char) buffer[i]

}

yue += Double.valueOf(num)

System.out.print(",现在余额¥:" + yue)

}

}

}

参考了别人的代码。略作修改,已经很简单了:

InfoATM.java:

public class InfoATM {

    double money = 0

    public InfoATM(double cash) {

        super()

        this.money = cash

    }

    // 存款的方法

    public void save(double count) {

        money += count

    }

    // 取款的方法

    public void draw(double count) {

        money -= count

    }

    public double getMoney() {

        return money

    }

    public void setMoney(double money) {

        this.money = money

    }

    

}

TestATM.java:

import java.awt.BorderLayout

import java.awt.GridLayout

import java.awt.event.ActionEvent

import java.awt.event.ActionListener

import javax.swing.JButton

import javax.swing.JFrame

import javax.swing.JLabel

import javax.swing.JPanel

import javax.swing.JTextField

public class TestATM extends JFrame {

    private static final long serialVersionUID = 2531222181184935595L

    // 主面板pnBasic是用来装pnDate和标签文字的。

    private JPanel pnBasic

    // 添加到主面板中的中间 pnDate面板是为了装表单的。

    private JPanel pnDate

    // 添加到主面板中的北边 pnLabel面板是为了装欢迎词的

    private JPanel pnLabel

    InfoATM atm = new InfoATM(0)

    public TestATM() {

        pnBasic = new JPanel()

        // 主面板pnBasic是用来装pnDate和标签文字的。

        pnDate = new JPanel(new GridLayout(2, 2))

        // pnDate面板是为了装表单的。

        pnLabel = new JPanel()

        JLabel top = new JLabel("欢迎来到中国银行!")

        pnLabel.add(top)

        // 先将数值添加在一个容器中并设置其在容器的右边,在将容器添加在网格的第一格

        JPanel jp1 = new JPanel()

        JLabel number = new JLabel("数值:")

        final JTextField box = new JTextField(5)

        jp1.add(number)

        jp1.add(box)

        JPanel jp2 = new JPanel()

        JButton create = new JButton("新建银行账户")

        jp2.add(create)

        JButton take = new JButton("取款")

        JButton in = new JButton("存款")

        pnDate.add(jp1)

        pnDate.add(jp2)

        pnDate.add(take)

        pnDate.add(in)

        // 加一句下面的就好了

        JPanel jpS = new JPanel()

        final JLabel total = new JLabel("您现在的账户余额是:0 元")

        jpS.add(total)

        pnBasic.setLayout(new BorderLayout())

        pnBasic.add(pnLabel, BorderLayout.NORTH)

        pnBasic.add(pnDate, BorderLayout.CENTER)

        pnBasic.add(jpS, BorderLayout.SOUTH)

        setContentPane(pnBasic)

        setBounds(400, 250, 500, 500)

        pack()

        setDefaultCloseOperation(DISPOSE_ON_CLOSE)

        setVisible(true)

        pack()

        in.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

                if (box.getText() != null && box.getText() != "") {

                    try {

                        double count = Double.parseDouble(box.getText())

                        if (count > 0) {

                            atm.save(count)

                            total.setText("您现在的账户余额是:" + atm.getMoney() + "元")

                            box.setText("")

                        }

                    } catch (Exception e1) {

                        System.out.println("您输入的数值必须是数字")

                    }

                }

            }

        })

        take.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

                if (box.getText() != null && box.getText() != "") {

                    try {

                        double count = Double.parseDouble(box.getText())

                        if (count >= 0 && count <= atm.getMoney()) {

                            atm.draw(count)

                            total.setText("您现在的账户余额是:" + atm.getMoney() + "元")

                            box.setText("")

                        } else {

                            System.out.println("你的余额不足,取款失败")

                        }

                    } catch (Exception e1) {

                        System.out.println("您输入的数值必须是数字")

                    }

                }

            }

        })

        create.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

                total.setText("您现在的账户余额是:0元")

                atm.setMoney(0)

                box.setText("")

            }

        })

    }

    public static void main(String[] args) {

        new TestATM()

    }

}