📄 bankmain.java
字号:
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 + -