其实叫java小银行还不如说是ATM机,不久之前,发表了java小银行1.0版,这次就继续延续此名啦!但ATM其实不存在删除用户这一选项。从功能分析只能说是顾客
自己去注销自己的银行卡。
这次新增的4个功能是取款、.存款、查看历史记录、个人电子银行、退卡。并且补好了上面1.0版的漏洞。
取款、.存款这是用户本身的行为,所以直接在java小银行1.0版中的Account加上两个方法既可以了;查看历史,我在此是用了一些数组进行记录的如t[2]记录YEAR
对于个人电子银行就是实现打开建设银行的链接;另外用System.exit(0)模拟退卡。
在其中遇到的问题是:取款、.存款都是在以前的基础上进行的。但下面的已经解决,这个问题上要注意一下。
主类:shiyan10_4
顾客:Account
银行:bank类
另外的类我发表在java小银行的完善2.0版(二)文章中,本应用程序可能存在漏洞,希望大家帮忙指出。(爱技术,也爱生活。)
知识点:http://docs.oracle.com/javase/6/docs/api/java/awt/Desktop.html
http://jingyan.baidu.com/article/7f766daf7ad5b04100e1d040.html
主类:shiyan10_4
//MR OU //java小银行的完善2.0版 //2012,12 public class shiyan10_4 { public static void main(String[] args) { caidan cai=new caidan(); Calendar c1=Calendar.getInstance();//系统时间 String[] str2=new String[10];//记录历史 double[] t2=new double[10];//记录历史 int[] t3=new int[10];//记录历史 int[] t4=new int[10];//记录历史 double[] t5=new double[10];//记录历史 bank b=null; Boolean bl=false;//控制顾客先建立用户才能存取。 Scanner sca=new Scanner(System.in); int i=sca.nextInt(); int jishu=0;//控制历史记录的条数,超过十条,取余刷新。 String str1=null; Account c=new Account(); while(true) { switch(i) { case 1:str1="中国银行" ; System.out.println(str1+"欢迎您");if(b==null){b=new zhongguobank(str1);};break; case 2:str1="建设银行"; System.out.println(str1+"欢迎您");if(b==null){b=new jianshebank(str1);};break; case 3:str1="工商银行"; System.out.println(str1+"欢迎您");if(b==null){b=new gongshangbank(str1);};break; default:break; } System.out.println("1,新建账户"); System.out.println("2,删除账户"); System.out.println("3.取款"); System.out.println("4.存款"); System.out.println("5.查看历史记录"); System.out.println("6.个人电子银行"); System.out.println("7.退卡"); int t=sca.nextInt(); switch(t) { case 1:bl=true;t=1;break; case 2:t=2;break; case 3:t=3;break; case 4:t=4;break; case 5:t=5;break; case 6:t=6;break; case 7:t=7;System.exit(0);;break; default:break; } if(t==1) { System.out.println("请输入账号:"); String str=sca.next(); c.setAccountlno(str); System.out.println("请输入密码:"); String pass=sca.next(); c.setPassword(pass); System.out.println("请输入存入金额:"); int money=sca.nextInt(); c.setMoney(money); { b.newAccount(c); } } if(t==2) { if(bl==true) { System.out.println("请输入删除第几个账户"); int j=sca.nextInt(); b.deleteAccount(j-1); } else { System.out.println("亲!先新建账户啊!"); } } if(t==3) { if(bl==true) { System.out.println("请输入取款金额:"); double drawmoney=sca.nextDouble(); double t1=c.withdraw(drawmoney); if(t1<0) { System.out.println("亲!你的余额不足!"); } else { System.out.println("你的"+str1+"还剩"+t1); if(jishu<10) { t2[jishu]=c1.get(Calendar.YEAR); t3[jishu]=c1.get(Calendar.MONTH)+1; t4[jishu]=c1.get(Calendar.DAY_OF_MONTH); str2[jishu]="你的建设银行取款"; t5[jishu]=drawmoney; jishu=jishu+1; } else { jishu=jishu%10; } } } else { System.out.println("亲!先新建账户啊!才能取款啊!"); } } if(t==4) { if(bl==true) { System.out.println("请输入存款金额:"); double savingmoney1=sca.nextDouble(); System.out.println("存入成功!"); System.out.println("你的卡上金额为:"+c.savingdraw(savingmoney1)); if(jishu<10) { t2[jishu]=c1.get(Calendar.YEAR); t3[ jishu]=c1.get(Calendar.MONTH)+1; t4[jishu]=c1.get(Calendar.DAY_OF_MONTH); str2[jishu]="你的建设银行取款"; t5[jishu]=savingmoney1; jishu=jishu+1; } else { jishu=jishu%10; } } else { System.out.println("亲!先新建账户啊!才能存款啊!"); } } if(t==5) { for( i=0;i<jishu;i++) { System.out.print(t2[i]+"年"+t3[i]+"月"+t4[i]+"日"); System.out.print(str2[i]); System.out.println(t5[i]); } } if(t==6) { URI uri; try { uri=new URI("http://www.ccb.com/cn/home/index.html"); Desktop dtp=Desktop.getDesktop(); if(Desktop.isDesktopSupported()) { dtp.browse(uri); } }catch(Exception e) { System.out.println(e); } } } } }
顾客:Account顾客:Account顾客类
class Account
{
String Accountlno;
private String password;
private static double money;
public String getAccountlno() {
return Accountlno;
}
public void setAccountlno(String accountlno) {
Accountlno = accountlno;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public static double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public double withdraw( double withdrawmoney)//取款(int/贪心算法)
{
//System.out.println(getMoney());
money=getMoney()-withdrawmoney;
return money;
}
public double savingdraw(double savingdrawmoney)//存款(int/贪心算法)
{
money=getMoney()+savingdrawmoney;
//System.out.println(getMoney());
return money;
}
}
银行类
class bank { String name; LinkedList<Account> a1=new LinkedList<Account>(); public bank(String name) { this.name=name; } public void newAccount(Account a) { a1.add(a); System.out.println("第"+a1.size()+"帐户新建成功!"); Iterator<Account> iter=a1.iterator(); while(iter.hasNext()) { Account a2=iter.next(); System.out.println("账号"+" "+"密码"+" "+"金额"); System.out.println(a2.getAccountlno()+" "+a2.getPassword()+" "+a2.getMoney()); } } public void deleteAccount(int j) { if(a1.size()==0) { System.out.println("没有账户!删除不成功!"); } else { a1.remove(j); System.out.println("删除了第"+(j+1)+"账户成功"); } } }