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

📄 bankmain.java

📁 自己编的银行卡系统
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
     { l_account=Long.parseLong(account);
       l_p=Long.parseLong(password);
            //打开一个数据流
    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();
         name=file_read.readUTF();
                /*设计有点个性化了*/   
         passNumber=file_read.readUTF();passNumber=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();//获得上次的钱               
         if((account.equals(accNumber))&&passNumber.equals(password))
           {
            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";   
              
            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;
            newtime=newdate+"/"+newmonth+"/"+newyear;
             tempOldMoney=oldMoney;
            if(type.equals("定期存款"))
             for(int i=1;i<=amountDay;i++)//得到原有存款加上利息后的金额        
                                             /*算法不太正确,只能用于模仿*/
              {oldMoney+=oldMoney*2/36500;
              }
            if(type.equals("活期存款"))
             for(int i=1;i<=amountDay;i++)//得到原有存款加上利息后的金额        
                                             /*算法不太正确,只能用于模仿*/
              {oldMoney+=oldMoney*1/36500;
              }
            interest=oldMoney-tempOldMoney;
            withdrawMoneyFr.moneyPanel.initial(name,String.valueOf(accNumber),type,
                                              String.valueOf(oldMoney),interest,newtime);
            t1.setText("");  
            t2.setText("");
            setVisible(false);
            withdrawMoneyFr.setVisible(true);
               break;
           }
         filePoint=file_read.getFilePointer();
         if(filePoint==len)                   //当客户记录在最后一行时会出现filePoint=len
           {acc_PasswordNotExistDlg.setVisible(true);
           }
        }
       file_read.close();
      }
      catch(IOException e11){readFailedDlg.setVisible(true);}
     }
    catch(FileNotFoundException e1){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("");
     t2.setText("");
     setVisible(false);
   }                
  else if(e.getSource()==withdrawMoneyFr.b2)
   {setVisible(true);
   }
 }
}

class Check_numberExceptDlg extends Dialog implements ActionListener
                                       //输入关键字不为数字对话框  
{Button b;Label label;
 Check_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 AccNotExistDlg extends Dialog implements ActionListener//帐户不存在
{Button b;Label label;
 AccNotExistDlg(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 ReadFailedDlg extends Dialog implements ActionListener//读取客户信息文件失败
{Button b;Label label;
 ReadFailedDlg(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 Acc_PasswordNotExistDlg extends Dialog implements ActionListener
                                  //客户帐号或密码不对窗口
{Button b;Label label;
 Acc_PasswordNotExistDlg(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 WithdrawMoneyFr extends Frame implements ActionListener//取款窗口
{ RandomAccessFile file_write;
  String file_name="custom.txt";
  WriteFailedDlg writeFailedDlg;
  WithdLargeDepositDlg withdLargeDepositDlg;
  WithdrawTableFr withdrawTableFr;
  Check_numberExceptDlg check_numberExceptDlg;
  MoneyPanel moneyPanel; 
  Button b1,b2;
  Label l_information;
  Panel panel1;
  WithdrawMoneyFr(String s)
   { super(s);
     writeFailedDlg=new WriteFailedDlg(this,"错误",true);
     writeFailedDlg.setVisible(false);
     check_numberExceptDlg=new Check_numberExceptDlg(this,"错误",true);
     check_numberExceptDlg.setVisible(false);
     withdrawTableFr=new WithdrawTableFr();
     withdrawTableFr.setVisible(false);
     withdLargeDepositDlg=new WithdLargeDepositDlg(this,取款额过大,true);
     withdLargeDepositDlg.setVisible(false);
     
     b1=new Button("取款"); 
     b2=new Button("取消");
     l_information=new Label("请填写客户取款金额信息:"); 
     panel1=new Panel();
     moneyPanel=new MoneyPanel();
 
     panel1.add(b1);panel1.add(b2);
     add("North",l_information);add("Center",moneyPanel);add("South",panel1); 
     add("West",new Panel());add("East",new Panel());
     b1.addActionListener(this);
     b2.addActionListener(this);
     setBounds(300,200,400,350);
     setResizable(false);
     addWindowListener(new WindowAdapter()//窗口添加适配器
        {public void windowClosing(WindowEvent e)
         {setVisible(false);System.exit(0);}
        });
     
   }
   
  private void InWithdraw()
  { String interest,inMoneyAmount;
       String name,account,oldMoney,
               balance,type;
       String temp1,accNumber;
       double d_inMoneyAmount,d_oldMoney,d_interest,d_balance;
       long l_account;
       try
        {inMoneyAmount=moneyPanel.t_inMoneyAmount.getText();
         name=moneyPanel.l_name2.getText();
         account=moneyPanel.l_account2.getText();
         type=moneyPanel.l_type2.getText();
         oldMoney=moneyPanel.l_oldMoney2.getText();
         l_account=Long.parseLong(account);
         d_oldMoney=Double.valueOf(oldMoney).doubleValue();
         d_interest=moneyPanel.interest;
         d_inMoneyAmount=Double.valueOf(inMoneyAmount).doubleValue();
         d_balance=d_oldMoney-d_inMoneyAmount;
         balance=String.valueOf(d_balance);                ///////////取款数额大于存款额怎么办?????????
                        /*得到存款日期*/
          temp1=moneyPanel.l_date2.getText(); 
         if(d_balance<=1)
          {withdLargeDepositDlg.setVisible(true);
          }
         if(d_balance>1)
          {try
           {try{file_write=new RandomAccessFile(file_name,"rw");}
            catch(FileNotFoundException e1){writeFailedDlg.setVisible(true);}
            long len=file_write.length();//获得文件长
               long filePoint=0;
               file_write.seek(0);
               file_write.readUTF();
               while(filePoint<len)
                 {
                  accNumber=file_write.readUTF();
                   /*设计有点个性化了*/
                  if(account.equals(accNumber))         
                   {file_write.readUTF();//只为了移动指针  
                    file_write.readUTF();file_write.readUTF();//只为了移动指针
                    type=file_write.readUTF();type=file_write.readUTF(); //只为了移动指针
                    type=file_write.readUTF();type=file_write.readUTF();//只为了移动指针
                    file_write.writeUTF(temp1);//获得上次存储时间
                    file_write.writeDouble(d_balance);
                    withdrawTableFr.initial(name,account,oldMoney,
                                             String.valueOf(d_interest),inMoneyAmount,balance,temp1);
                    moneyPanel.t_inMoneyAmount.setText(""); 
                    withdrawTableFr.setVisible(true);
                    setVisible(false); 
                    break;         
                   }
                  else
                   {//只为了移动指针
                    file_write.readUTF();file_write.readUTF();file_write.readUTF();file_write.readUTF();
                    file_write.readUTF();file_write.readUTF();file_write.readUTF();file_write.readUTF();
                     file_write.readDouble();
                   } 
                  /////
                   filePoint=file_write.getFilePointer();
                 }
             file_write.close();
            }
          catch(IOException e11){writeFailedDlg.setVisible(true);}
          }  
         }
        catch(NumberFormatException event){check_numberExceptDlg.setVisible(true);}     
  }

  public void actionPerformed(ActionEvent e)
   {if(e.getSource()==b1)                    
     {InWithdraw();
     }
   if(e.getSource()==b2)
     {setVisible(false);
      moneyPanel.t_inMoneyAmount.setText("");
     }   
    
   }
}

class MoneyPanel extends Panel//嵌入WithdrawMoneyFr的面板
{ double interest;
  TextField t_inMoneyAmount;
  Panel p;
  Label l_inMoneyInfoLabel;
  Label l_name1,l_name2,l_account1,l_account2,
        l_type1,l_type2,l_oldMoney1,l_oldMoney2,l_date1,l_date2;
  MoneyPanel()
  {  t_inMoneyAmount=new TextField(30);
     p=new Panel();
     l_name1=new Label("姓名:"); 
     l_name2=new Label(); 
     l_account1=new Label("帐号:");
     l_account2=new Label();
     l_type1=new Label("账户类型:");
     l_type2=new Label();
     l_oldMoney1=new Label("现有金额:");
     l_oldMoney2=new Label();
     l_inMoneyInfoLabel=new Label("请输入取款金额:");
      l_date1=new Label("取款日期");
      l_date2=new Label();
     
     //下面将添加组件
     setLayout(new GridLayout(10,2));
     add(l_name1);add(l_name2);
     add(l_account1);add(l_account2);
     add(l_type1);add(l_type2);
     add(l_oldMoney1);add(l_oldMoney2);
     add(l_date1);add(l_date2);
     add(l_inMoneyInfoLabel);add(new Label());
     add(t_inMoneyAmount);add(new Label());
   } 
 
  void initial(String name,String account,String type,String oldMoney,double interest,String date)
   { l_name2.setText(name);
     l_account2.setText(account);
     l_type2.setText(type);
     l_oldMoney2.setText(oldMoney);
     l_date2.setText(date);
     this.interest=interest;
   }                               
}

⌨️ 快捷键说明

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