📄 bank.java
字号:
package Tests;
/*写一个 银行类以及它的属性 如:开户日期,户名 ,帐号 ,余额,
交易时间 ,交易金额,交易状态(汇款,取款,存款)转入帐号
1: 实现存取款的交易,并打印回执单。(详细信息)
2: 实现2个帐号(或多个账户)之间的转账。*/
class Bank
{
private String beginAccountDate;
private String accountName;
private int accountId;
private int leaveMoney;
private String dealTime;
private int dealMoney;//设为static的不同??
private int zhuanRuAccountId;
static int b=0,m=0;
static Bank[] bb;
//private enum dealCondition{huiKuan,getMoney,safeMoney};
/*public static final String dealCondition1="huiKuan";
public static final String dealCondition2="getMoney";
public static final String dealCondition3="safeMoney";*/
//private String dealCondition;
public int getAccountId() {
return accountId;
}
public int getLeaveMoney() {
return leaveMoney;
}
public void setLeaveMoney(int leaveMoney) {
this.leaveMoney = leaveMoney;
}
public String accountName() {
return accountName;
}
Bank(String beginAccountDate, String accountName, int accountId, int leaveMoney) {
this.beginAccountDate = beginAccountDate;
this.accountName = accountName;
this.accountId = accountId;
this.leaveMoney = leaveMoney;
}
Bank() {}
//实现存款的交易
public void dealSafe(int accountId,Bank[] bank,int safe)
{
/*Bank b=new Bank();
b.setLeaveMoney(b.getLeaveMoney()+safe);*/
int n=0;
for(int i=0;i<bank.length;i++)
{
if(bank[i].getAccountId()==accountId)
{
b=i;
n=bank[b].leaveMoney;
}
}
bank[b].setLeaveMoney(n+safe);//无记忆功能,每次从头来bu dui a ??
//bank[b].leaveMoney=n+safe;
System.out.println("您存款后现在的账上余额为"+bank[b].leaveMoney+"元.");
}
// 实现取款的交易
public void dealGet (int accountId ,Bank[] bank,int get)
{
for(int i=0;i<bank.length;i++)
{
if(bank[i].getAccountId()==accountId)
{
// b=i;
bank[i].leaveMoney=bank[i].leaveMoney-get;
System.out.println("您取款后现在的账上余额为"+bank[i].leaveMoney+"元.");
}
}
//System.out.println("您取款后现在的账上余额为"+bank[b].leaveMoney+"元.");
}
//实现2个帐号(或多个账户)之间的转账
public static void translateAccount(int accountId,int zhuanRuAccountId,int safe,Bank[] banks)
{
//bb=banks;
for(int i=0;i<banks.length;i++)
{
if(banks[i].getAccountId()==accountId)
{
b=i;
//ba=banks[i];
// bank[i].leaveMoney= getLeaveMoney()-safe;//错
//leaveMoney= leaveMoney-safe;//错??
//leaveMoney=bank[i].leaveMoney -safe;//对
banks[b].leaveMoney= banks[b].leaveMoney- safe;
System.out.println(i+"的账上余额为"+banks[b].leaveMoney+"元.");
}
if(banks[i].getAccountId()==zhuanRuAccountId)
{
m=i;
// ba2= banks[i];
banks[m].leaveMoney=banks[m].leaveMoney+safe;
System.out.println(i+"的账上余额为"+ banks[m].leaveMoney+"元.");
// bank[i].leaveMoney= getLeaveMoney()-safe;//错
//leaveMoney= leaveMoney-safe;//错??
// leaveMoney=bank[i].leaveMoney -safe;//对
// System.out.println("您转账后现在的账上余额为"+ leaveMoney+"元.");
//break;
}
}
/* //int a1= ba.leaveMoney- safe;
ba2.leaveMoney = ba2.leaveMoney+ safe;
// int a2 = ba2.leaveMoney+ safe;
System.out.println("您转账后现在的账上余额为"+ba.leaveMoney+"元.");
System.out.println("您已成功转账."+ba2.leaveMoney);*/
/* f2or(int i=0;i<bank.length;i++)
{
if(bank[i].getAccountId()==zhuanRuAccountId)
{
//bank[i].leaveMoney = bank[i].leaveMoney+safe;
leaveMoney =bank[i].leaveMoney+safe;
System.out.println("您已成功转账."+leaveMoney);
break;
}
}*/
}
//*********************************
public static void main(String[] args)
{
String a0=MD5.crypt("123456");String a1=MD5.crypt("654321");//变量名不能以字母开头 String1= 错
String a2=MD5.crypt("sgdhgh");String a3=MD5.crypt("fgjhjf");
String a4=MD5.crypt("112652");String a5=MD5.crypt("e3dvbg");
String a6=MD5.crypt("sddf24");String a7=MD5.crypt("redcvh");
String a8=MD5.crypt("1fggb6");String a9=MD5.crypt("adfghh");
// System.out.println(a0+"\t"+a1);//输出加密后的li gao 的密码
UserBank[] user1={
new UserBank("cheng",a0),new UserBank("li",a1),
new UserBank("zhao",a2),new UserBank("qian",a3),
new UserBank("sun",a4),new UserBank("zhou",a5),
new UserBank("wu",a6),new UserBank("zheng",a7),
new UserBank("wang",a8),new UserBank("feng",a9)
};
Bank ba1=new Bank("2008.7.12","li",1234567890,2000);
Bank ba2=new Bank("2008.7.10","zhao",1234567891,2000);
Bank ba3=new Bank("2008.7.12","sun",123,2000);
Bank bank[]={ba1,ba2,ba3};
bb= bank;
/*ba1.dealGet(3000, ba1.dealCondition2, 500);
ba2.dealSafe(2000, ba2.dealCondition3, 1000);
ba1.translateAccount(1234567890, 1234567892, 500, bank);*/
int b=0;
UserBank li=new UserBank();
Bank j=new Bank();
Bank il=new Bank();
System.out.println("请输入用户名:");
String name1=li.input();
System.out.println("请输入用户密码:");
String password1= MD5.crypt(li.input());
b= li.searchRright(user1,name1,password1);//name11,password11不能定义在do内因为在do外无法识别
while(b!=2)
{
System.out.println("输入有误请从新输入");
System.out.println("请输入用户名:");
name1=li.input();
System.out.println("请输入用户密码");
password1= MD5.crypt(li.input());
b= li.searchRright(user1,name1,password1);
}
//name11与name1的区别??这样写两个不对吧请输入用户名:
/*loijj
请输入用户密码:
1222
输入有误请从新输入
请输入用户名:
li
请输入用户密码
654321
想存款请选1;想取款请选2;想转账请选3
1
请您输入存款金额:
500
您存款后现在的账上余额为500元.
想存款请选1;想取款请选2;想转账请选3
*/
int n1=0;
int n2=0;
for(int i=0;i<bb.length;i++)
{
if(bb[i].accountName().equals(name1))
{
n1= bb[i].getAccountId();
n2=bb[i].getLeaveMoney();//??n2值不随LeaveMoney的值的变化而变化,(bank[i].getLeaveMoney()值是个常量,leaveMoney个变量),是最初装入值固定不便了
// System.out.println(n2); //但bank[i].getLeaveMoney()值是随着set变化的
// bank[i].setLeaveMoney(bank[i].getLeaveMoney()+3000);//leaveMoney=6000
//n2=bank[i].getLeaveMoney()+3000;//6000此处不改n2值其值将一直不变
//System.out.println( bank[i].getLeaveMoney()+" "+n2);//3000 6000
}
}
do
{
System.out.println("想存款请选1;想取款请选2;想转账请选3");
String c=li.input();
if(c.equals("1"))
{
System.out.println("请您输入存款金额:");
int m=Integer.parseInt(li.input());
j.dealSafe(n1,bb,m);//il.getLeaveMoney()没值因为il调默认的构造方法
}
else if(c.equals("2"))
{
System.out.println("请您输入取款金额:");
int m=Integer.parseInt(li.input());
j.dealGet(n1,bb,m);
}
else if (c.equals("3"))
{
System.out.println("请您输入要转账到的帐户的账号:");
int e=Integer.parseInt(li.input());
System.out.println("请您输入转账金额:");
int f=Integer.parseInt(li.input());
translateAccount(n1,e,f,bb);
}
}
while(true);
}
public int getZhuanRuAccountId() {
return zhuanRuAccountId;
}
public void setZhuanRuAccountId(int zhuanRuAccountId) {
this.zhuanRuAccountId = zhuanRuAccountId;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -