'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()
参考了别人的代码。略作修改,已经很简单了:
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.BorderLayoutimport 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()
}
}
只要循环不是中途退出的就说明没找到,所以这个n是“脱裤子放屁”多余的。这样即可:
/*
ATM取款程序
*/
//自定义二维数组
var AtmArray = [
[991, 123456, "张1", false, 0, 100],
[992, 123456, "张2", false, 0, 200],
[993, 123456, "张3", false, 0, 500]]
//定义函数
function qukuan(card, passWord, price) {
//遍历数据信息
for (var i = 0i <AtmArray.lengthi++) {
//判断卡号是否正确
if (AtmArray[i][0] == card) return "卡号正确"//如果找到匹配卡号,这里就直接跳出函数了
}
//程序运行到这里就说明没找到匹配的卡号,可以直接return了,不需要用个n来判断
return "找不到卡"
}
/*
[991, 123456, "张1", false, 0, 100],
*/
console.log(qukuan(990, 123456, 50))