当前位置: 首页 > 知识库问答 >
问题:

如何在此程序中添加新的ATM帐户和更改用户的PIN?

洪飞驰
2023-03-14
public class ATM_Frame extends javax.swing.JFrame {

int f=8;
int l=8;
int n=8;
int p=8;
int a=8;

String fname[] = new String [f];
String lname[] = new String [l];
String cardno[] = new String [n];
String pinno[] = new String [p];
double balance[] = new double [a];



public ATM_Frame() {


    initComponents();

    btnClr.setEnabled(true);
    btnNewAcc.setEnabled(false);
    btnInq2.setEnabled(false);
    btnDep2.setEnabled(false);
    btnWdw2.setEnabled(false);
    txtOutput.setEditable(false);


    fname[0] = "Gudrun"; 
    fname[1] = "Denis";
    fname[2] = "Tamiko";

    lname[0] = "Schlender"; 
    lname[1] = "Petrov";
    lname[2] = "Tanaka";

    cardno[0] = "5023"; 
    cardno[1] = "1821";
    cardno[2] = "9931";

    pinno[0] = "0000"; 
    pinno[1] = "1111";
    pinno[2] = "2222";

    balance[0] = 5290; 
    balance[1] = 3600;
    balance[2] = 10250;

}

private void btnNewAccActionPerformed(java.awt.event.ActionEvent evt) {                                          
    ButtonSound();
    String fname = txtfName.getText();
    String lname = txtlName.getText();
    String cardno = txtcardNo.getText();
    String pinno = txtpinNo.getText();
    double bal = Double.parseDouble(txtBal.getText());

    ATM_NewAcc a = new ATM_NewAcc(fname,lname,cardno,pinno,bal);
    txtOutput.setText("" + a.toString());
}     

private void btnChangePinActionPerformed(java.awt.event.ActionEvent evt) {                                             
    ButtonSound();
    String fname = txtfName.getText();
    String lname = txtlName.getText();
    String cardno = txtcardNo.getText();
    String pinno = txtpinNo.getText();
    String newpin = txtNewPin.getText();

    if(fname.equals("Gudrun") && lname.equals("Schlender") && cardno.equals("5023") && pinno.equals("0000"))
    {

        ATM_ChangePIN d = new ATM_ChangePIN(fname,lname,cardno,pinno,newpin);
        txtOutput.setText("" + d.toString());
}

    else if(fname.equals("Denis") && lname.equals("Petrov") && cardno.equals("1821") && pinno.equals("1111"))
    {
        ATM_ChangePIN d = new ATM_ChangePIN(fname,lname,cardno,pinno,newpin);
        txtOutput.setText("" + d.toString());
}

    else if(fname.equals("Tamiko") && lname.equals("Tanaka") && cardno.equals("9931") && pinno.equals("2222"))
    {
        ATM_ChangePIN d = new ATM_ChangePIN(fname,lname,cardno,pinno,newpin);
        txtOutput.setText("" + d.toString());
}

    else if(fname.equals("") || lname.equals("") || cardno.equals("") || pinno.equals("") && txtBal.equals(""))
    {
        JOptionPane.showMessageDialog(null, "Please fill out all necessary fields.", null, JOptionPane.WARNING_MESSAGE);
    }

    else 
    {
        JOptionPane.showMessageDialog(null, "The information you entered is invalid.", null, JOptionPane.ERROR_MESSAGE);
        txtfName.setText("");
        txtlName.setText("");
        txtcardNo.setText("");
        txtpinNo.setText("");
        txtNewPin.setText("");
        txtBal.setText("");
    }
}
public class ATM_NewAcc 
{
private String fname;
private String lname;
private String cardno;
private String pinno;
private double balance;

public ATM_NewAcc()
{
   fname = "";
   lname = "";
   cardno = "";
   pinno = "";
   balance = 0;
}

 public ATM_NewAcc(String first, String last, String card, String pin, double bal)
{
    fname = first;
    lname = last;
    cardno = card;
    pinno = pin;
    balance = bal;
}

@Override
public String toString()
{
        return "NEW BANK ACCOUNT CREATED!"
                + "\nName: " + fname + " " + lname 
                + "\nAccount Number: " + cardno 
                + "\nPIN Code: " + pinno
                + "\nBalance: " + balance;
} 
}
private void btnChangePinActionPerformed(java.awt.event.ActionEvent evt) {                                             
    ButtonSound();
    String fname = txtfName.getText();
    String lname = txtlName.getText();
    String cardno = txtcardNo.getText();
    String pinno = txtpinNo.getText();
    String newpin = txtNewPin.getText();

    if(fname.equals("Gudrun") && lname.equals("Schlender") && cardno.equals("5023") && pinno.equals("0000"))
    {

        ATM_ChangePIN d = new ATM_ChangePIN(fname,lname,cardno,pinno,newpin);
        txtOutput.setText("" + d.toString());
}

    else if(fname.equals("Denis") && lname.equals("Petrov") && cardno.equals("1821") && pinno.equals("1111"))
    {
        ATM_ChangePIN d = new ATM_ChangePIN(fname,lname,cardno,pinno,newpin);
        txtOutput.setText("" + d.toString());
}

    else if(fname.equals("Tamiko") && lname.equals("Tanaka") && cardno.equals("9931") && pinno.equals("2222"))
    {
        ATM_ChangePIN d = new ATM_ChangePIN(fname,lname,cardno,pinno,newpin);
        txtOutput.setText("" + d.toString());
}

    else if(fname.equals("") || lname.equals("") || cardno.equals("") || pinno.equals("") && txtBal.equals(""))
    {
        JOptionPane.showMessageDialog(null, "Please fill out all necessary fields.", null, JOptionPane.WARNING_MESSAGE);
    }

    else 
    {
        JOptionPane.showMessageDialog(null, "The information you entered is invalid.", null, JOptionPane.ERROR_MESSAGE);
        txtfName.setText("");
        txtlName.setText("");
        txtcardNo.setText("");
        txtpinNo.setText("");
        txtNewPin.setText("");
        txtBal.setText("");
    }
}

共有1个答案

卫景明
2023-03-14

从您提供的内容来看,您似乎必须将输入数据放入数组fname[]、lname[]等。

也许有一个方法“addAccount(atm_newaccacc)”或类似的东西,将ATM_NewAcc对象中的数据放入数组?当用户超过8个时会发生什么?;)

编辑:像这样的?

public class Acc
{
    private String name;

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public Acc(String name)
    {
        this.name = name;
    }
}

public class Atm
{
    private String[] users = new String[8];

    public static void main(String[] args)
    {
        Atm atm = new Atm();
        atm.users[0] = "Test1";
        atm.addUser(new Acc("Test2"));
        atm.printUsers();
    }

    private void printUsers()
    {
        for(String s : users)
        {
            if(s != null)
            {
                System.out.println(s);
            }
        }
    }

    private void addUser(Acc acc)
    {
        for(int i = 0; i < users.length; ++i)
        {
            if(users[i] == null)
            {
                users[i] = acc.getName();
                return;
            }
        }
        throw new IllegalStateException("Too many accounts");
    }
}
 类似资料:
  • 我想在取款后把账户上的余额换一下,但它只是停留在10点。我不知道如何在SavingsAccount中正确应用一个会改变它的方法。我试了但没有成功。

  • 问题内容: 我们正在为Joomla创建XML API,允许合作伙伴网站在我们的网站上为其用户创建新帐户。 我们已经创建了一个独立的PHP脚本来处理和验证API请求,但是现在我们需要实际创建新帐户。最初我们只是考虑进行CURL调用以提交注册表单,但是我们意识到用户令牌存在问题。是否有另一种干净的方法可以创建用户帐户而不用担心Joomla?如果我们必须做一些手术,最好的方法是什么? 问题答案: 您应该

  • 我在Google Play Alpha上发布了我的应用程序。我通过在“选择测试方法”下选择“Closed Alpha testing”,通过电子邮件地址列表添加测试人员。所以说清楚一点,这不是这个问题的重复,因为我没有使用Google Groups。 目前,这是大约2个小时以来,我发布的应用程序到阿尔法轨道,没有任何改变。 如何在封闭的阿尔法轨道上测试app?

  • 问题内容: 具体来说,我应该从终端运行哪些命令? 问题答案: 没有主目录 带主目录 然后设置密码 然后设置外壳

  • 问题内容: 我喜欢为yocto项目的内置用户做一些事情: 1.)将root用户的密码设置为“ abc” 2.)将ssh登录表单/ bin / sh的根shell设置为/ bin / bash 3.)使用密码“ xyz”添加用户“ customUser” 认为简单的食谱可以做到这一点。到目前为止,我尝试了@ myUser.bb: 任何想法如何做到这一点? 问题答案: 我以您的示例为例,进行了两个小更

  • 我在Driver类中使用setBackground()方法来更改背景颜色,但它不起作用。 请为我提供解决方案,我如何更改JFrame的背景色?我只想让JFrame的背景色从默认颜色变成白色。