⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bankmain.java

📁 自己编的银行卡系统
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
     c_female=new Checkbox("女",false,sex);
     setLayout(new GridLayout(1,2));
     add(c_male);add(c_female); 
  }
 public void clear()
  {c_male.setState(false);
   c_female.setState(false);
  }
}


class CreationFailedDlg extends Dialog implements ActionListener//写入失败对话框
{Button b;Label label;
 CreationFailedDlg(Frame F,String s,boolean p)
 {super(F,s,p);
  setLayout(new GridLayout(4,1));
  b=new Button("确定");label=new Label("写入客户数据失败,请重试!");
  Panel panel=new Panel();
  panel.setLayout(new GridLayout(1,5));
  b.addActionListener(this);
  add(new Panel());add(label);
  panel.add(new Label());panel.add(new Label());
  panel.add(b);panel.add(new Label());panel.add(new Label());
  add(panel);
  add(new Panel());
  addWindowListener(new WindowAdapter()//窗口添加适配器
        {public void windowClosing(WindowEvent e)
         {setVisible(false);System.exit(0);}
        });
    pack();
  setBounds(300,200,300,200);
  setResizable(false);
 } 
 public void actionPerformed(ActionEvent e)
 {if(e.getSource()==b)
  {setVisible(false);
  }
 }
}


class AnnounceDlg extends Dialog implements ActionListener//填入数据不完整对话框
{Button b;Label label;
 AnnounceDlg(Frame F,String s,boolean p)
 {super(F,s,p);
  setLayout(new GridLayout(4,1));
  b=new Button("确定");label=new Label("信息不完整,请填写完整!");
  Panel panel=new Panel();
  panel.setLayout(new GridLayout(1,5));
  b.addActionListener(this);
  add(new Panel());add(label);
  panel.add(new Label());panel.add(new Label());
  panel.add(b);panel.add(new Label());panel.add(new Label());
  add(panel);
  add(new Panel());
  addWindowListener(new WindowAdapter()//窗口添加适配器
        {public void windowClosing(WindowEvent e)
         {setVisible(false);System.exit(0);}
        });
    pack();
  setBounds(300,200,300,200);
  setResizable(false);
 } 
 public void actionPerformed(ActionEvent e)
 {if(e.getSource()==b)
  {setVisible(false);
  }
 }
}

class NumberExceptDlg extends Dialog implements ActionListener//输入不为数字对话框
{Button b;Label label;
 NumberExceptDlg(Frame F,String s,boolean p)
 {super(F,s,p);
  setLayout(new GridLayout(4,1));
  b=new Button("确定");label=new Label("密码、电话号码、身份证号应为数字,请检查!");
  Panel panel=new Panel();
  panel.setLayout(new GridLayout(1,5));
  b.addActionListener(this);
  add(new Panel());add(label);
  panel.add(new Label());panel.add(new Label());
  panel.add(b);panel.add(new Label());panel.add(new Label());
  add(panel);
  add(new Panel());
  addWindowListener(new WindowAdapter()//窗口添加适配器
        {public void windowClosing(WindowEvent e)
         {setVisible(false);System.exit(0);}
        });
    pack();
  setBounds(300,200,300,200);
  setResizable(false);
 } 
 public void actionPerformed(ActionEvent e)
 {if(e.getSource()==b)
  {setVisible(false);
  }
 }
}
  

class ConPasswordDlg extends Dialog implements ActionListener//两次输入数字不相等对话框
{Button b;Label label;
 ConPasswordDlg(Frame F,String s,boolean p)
 {super(F,s,p);
  setLayout(new GridLayout(4,1));
  b=new Button("确定");label=new Label("两次密码输入不相符合,请检查!");
  Panel panel=new Panel();
  panel.setLayout(new GridLayout(1,5));
  b.addActionListener(this);
  add(new Panel());add(label);
  panel.add(new Label());panel.add(new Label());
  panel.add(b);panel.add(new Label());panel.add(new Label());
  add(panel);
  add(new Panel());
  addWindowListener(new WindowAdapter()//窗口添加适配器
        {public void windowClosing(WindowEvent e)
         {setVisible(false);System.exit(0);}
        });
    pack();
  setBounds(300,200,300,200);
  setResizable(false);
 } 
 public void actionPerformed(ActionEvent e)
 {if(e.getSource()==b)
  {setVisible(false);
  }
 }
}

//////////////////////////////////////
/* ******************************************************************* */
  //下面为检查关键信息窗口                
 
class CheckDepositFr extends Frame implements ActionListener//存款时账户检查
{ 
  Button b1,b2;Label label1,label2;
  TextField t1;
  Panel button_panel,account_panel,password_panel;
  RandomAccessFile file_read;
  String file_name="custom.txt";
  InputDepositFr inputDepositFr;
  AccNotExistDlg accNotExistDlg;
  ReadFailedDlg  readFailedDlg;
  Check_numberExceptDlg check_numberExceptDlg;
 CheckDepositFr(String s)                            
 {super(s);
  t1=new TextField(25);
  label1=new Label("请输入客户的账号,以便取得帐户信息:");
  label2=new Label("账号:");
  b1=new Button("检查");
  b2=new Button("取消");
  setLayout(new GridLayout(3,1));
  button_panel=new Panel();
  account_panel=new Panel();
      //下面为窗口或对话框初始化
  inputDepositFr=new InputDepositFr("存款窗口");                                              
  accNotExistDlg=new AccNotExistDlg(this,"账户错误",true);
  readFailedDlg=new ReadFailedDlg(this,"访问错误",true);
  check_numberExceptDlg=new Check_numberExceptDlg(this,"错误",true);
 
  inputDepositFr.setVisible(false);
  accNotExistDlg.setVisible(false);
  readFailedDlg.setVisible(false);
  check_numberExceptDlg.setVisible(false);
         //布局
  button_panel.setLayout(new GridLayout(2,4));
  account_panel.setLayout(new GridLayout(2,4));
  
  account_panel.add(new Label());
  account_panel.add(label2);
  account_panel.add(t1);
  account_panel.add(new Label());
  account_panel.add(new Label());
  account_panel.add(new Label());
  account_panel.add(new Label());
  account_panel.add(new Label());
  
  button_panel.add(new Label());
  button_panel.add(b1);
  button_panel.add(b2);
  button_panel.add(new Label());
  button_panel.add(new Label());
  button_panel.add(new Label());
  button_panel.add(new Label());
  button_panel.add(new Label());
  
  add(label1);
  add(account_panel);
  add(button_panel);
     //添加监视器
  b1.addActionListener(this);
  b2.addActionListener(this);
  inputDepositFr.b2.addActionListener(this);
  
  addWindowListener(new WindowAdapter()//窗口添加适配器
        {public void windowClosing(WindowEvent e)
         {setVisible(false);System.exit(0);}
        });
  setBounds(300,200,500,300);
  setResizable(false);
 }
 private void Check()
 {Long l_account;
    String account,name,type,oldtime,olddate,oldmonth,
           oldyear,newtime, newdate,newmonth,newyear,accNumber;
    int amountDay;
    double oldMoney;
    account=t1.getText();
   try
    {l_account=Long.parseLong(account); 
     try    //打开一个数据流
      {file_read=new RandomAccessFile(file_name,"rw");
        //写入数据
       try
        {long len=file_read.length();//获得文件长
         long filePoint=0;
         file_read.seek(0);
         file_read.readUTF();
         while(filePoint<len)
          {accNumber=file_read.readUTF();               
           if(account.equals(accNumber))
           {name=file_read.readUTF();
              //移动指针以便读取存款类型    /*设计有点个性化了*/   
            type=file_read.readUTF();type=file_read.readUTF();type=file_read.readUTF();
            type=file_read.readUTF();type=file_read.readUTF();type=file_read.readUTF();
            oldtime=file_read.readUTF();//获得上次存储时间
            oldMoney=file_read.readDouble();//获得上次的钱
            StringTokenizer fenxi=new StringTokenizer(oldtime,"/");
            olddate=fenxi.nextToken();oldmonth=fenxi.nextToken();oldyear=fenxi.nextToken();
            Date date=new Date();
            String temp1=date.toString();
            newmonth=temp1.substring(4,7);//截取月份 
            newdate=temp1.substring(8,10);//截取日期
            newyear=temp1.substring(24,28);//截取年份
            if(newmonth.equals("Jan"))   //将月份转化为数字字符
              newmonth="1";
            else if(newmonth.equals("Feb"))
              newmonth="2";
            else if(newmonth.equals("Mar"))
              newmonth="3";
            else if(newmonth.equals("Apr"))
               newmonth="4";
            else if(newmonth.equals("May"))
               newmonth="5";
            else if(newmonth.equals("Jun"))
               newmonth="6";
            else if(newmonth.equals("Jul"))
               newmonth="7";
            else if(newmonth.equals("Aug"))
               newmonth="8";
            else if(newmonth.equals("Sep"))
               newmonth="9";
            else if(newmonth.equals("Oct"))
               newmonth="10";
            else if(newmonth.equals("Nov"))
               newmonth="11"; 
            else if(newmonth.equals("Dec"))
               newmonth="12";   
            newtime=newdate+"/"+newmonth+"/"+newyear;   
            amountDay=Integer.parseInt(newdate)-Integer.parseInt(olddate)+
                         (Integer.parseInt(newmonth)-Integer.parseInt(oldmonth))*(30+31)/2+
                         (Integer.parseInt(newyear)-Integer.parseInt(oldyear))*12*(30+31)/2;
            if(type.equals("定期存款"))
             for(int i=1;i<=amountDay;i++)//得到原有存款加上利息后的金额        
                                             /*算法不太正确,只能用于模仿*/
              {oldMoney+=oldMoney*2/36500;//不能用oldMoney=oldMoney*(1+2/36500);会有数据丢失
              }
            if(type.equals("活期存款"))
             for(int i=1;i<=amountDay;i++)//得到原有存款加上利息后的金额        
                                             /*算法不太正确,只能用于模仿*/
              {oldMoney+=oldMoney*1/36500;
              }
            t1.setText("");
            setVisible(false);
            inputDepositFr.inputmoneyPanel.initial(name,String.valueOf(accNumber),type,String.valueOf(oldMoney),newtime);
            inputDepositFr.setVisible(true);
             break;
          }
          else
          { file_read.readUTF();file_read.readUTF();file_read.readUTF();file_read.readUTF();
            file_read.readUTF();file_read.readUTF();file_read.readUTF();file_read.readUTF();
            file_read.readDouble();
          }
          filePoint=file_read.getFilePointer();
          if(filePoint==len)                   //当客户记录在最后一行时会出现filePoint=len
          {accNotExistDlg.setVisible(true);
          }
        }
      file_read.close();
      }
      catch(IOException e1){readFailedDlg.setVisible(true);}
     }
    catch(FileNotFoundException e11){readFailedDlg.setVisible(true);}
    }
   catch(NumberFormatException event){check_numberExceptDlg.setVisible(true);}  
 } 

 public void actionPerformed(ActionEvent e)
 {if(e.getSource()==b1)                     //需要进一步编写
   { Check();  
   } 
  else if(e.getSource()==b2)
  {t1.setText("");
   setVisible(false);
  }                  
  else if(e.getSource()==inputDepositFr.b2)
   {setVisible(true);
   }
 }
}

////////////
class CheckWithdrawFr extends Frame implements ActionListener//取款时账户检查
{ Button b1,b2;Label label1,label2,label3;
  TextField t1,t2;
  Panel button_panel,account_password_panel;
  RandomAccessFile file_read;
  String file_name="custom.txt";
  WithdrawMoneyFr withdrawMoneyFr;
  ReadFailedDlg  readFailedDlg;
  Check_numberExceptDlg check_numberExceptDlg;
  Acc_PasswordNotExistDlg acc_PasswordNotExistDlg;
 CheckWithdrawFr(String s)                            
 {super(s);
  t1=new TextField(25);
  t2=new TextField(25);
  label1=new Label("请输入客户的账号及密码,以便取得帐户信息:");
  label2=new Label("账号:");
  label3=new Label("密码:");
  
  b1=new Button("检查");
  b2=new Button("取消");
  setLayout(new GridLayout(3,1));
  button_panel=new Panel();
  account_password_panel=new Panel();
      //下面为窗口或对话框初始化
  withdrawMoneyFr=new WithdrawMoneyFr("取款窗口");                                              
  readFailedDlg=new ReadFailedDlg(this,"访问错误",true);
  check_numberExceptDlg=new Check_numberExceptDlg(this,"错误",true);
  acc_PasswordNotExistDlg=new Acc_PasswordNotExistDlg(this,"账号或密码错误",true);
  
  t2.setEchoChar('*');
  withdrawMoneyFr.setVisible(false);
  acc_PasswordNotExistDlg.setVisible(false);
  readFailedDlg.setVisible(false);
  check_numberExceptDlg.setVisible(false);
         //布局
  button_panel.setLayout(new GridLayout(2,4));
  account_password_panel.setLayout(new GridLayout(3,4));
  
  account_password_panel.add(new Label());
  account_password_panel.add(label2);
  account_password_panel.add(t1);
  account_password_panel.add(new Label());
  account_password_panel.add(new Label());
  account_password_panel.add(label3);
  account_password_panel.add(t2);
  account_password_panel.add(new Label());
  account_password_panel.add(new Label());
  account_password_panel.add(new Label());
  account_password_panel.add(new Label());
  account_password_panel.add(new Label());
  
  button_panel.add(new Label());
  button_panel.add(b1);
  button_panel.add(b2);
  button_panel.add(new Label());
  button_panel.add(new Label());
  button_panel.add(new Label());
  button_panel.add(new Label());
  button_panel.add(new Label());
  
  add(label1);
  add(account_password_panel);
  add(button_panel);
     //添加监视器
  b1.addActionListener(this);
  b2.addActionListener(this);
  withdrawMoneyFr.b2.addActionListener(this);    
  
  addWindowListener(new WindowAdapter()//窗口添加适配器
        {public void windowClosing(WindowEvent e)
         {setVisible(false);System.exit(0);}
        });
  setBounds(300,200,500,350);
  setResizable(false);
 } 

 private void Check()
 {long l_account=1,l_p;
    String account,password,name,type,oldtime,olddate,oldmonth,
           oldyear,newtime, newdate,newmonth,newyear,passNumber,accNumber;
    int amountDay;
    double oldMoney,tempOldMoney,interest;
    account=t1.getText();
    password=t2.getText();
    try

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -