问题描述
自己学过C,现在转学JAVA,对于面向对象和JAVA的编程方式还不是很了解,下面是一个关于银行的小程序,不知道哪里错了,望高人指点感觉是类的实例化和排布有问题用CBC.BankAccounts[n-1]....之类的调用就不好使。。。谢谢高人~~~~importjava.io.*;classBank{StringBankName;//银行名称intBankNumber;//银行编号Account[]BankAccounts=newAccount[100];//银行账户数组Bank(Stringx,intn){BankName=x;BankNumber=n;}//银行类构造方法intCheckAccount(intn){if(BankAccounts[n-1].AccountNumber==0){System.out.println("账户不存在,请开户");return0;}elsereturn1;}//检查账户是否存在voidAccountDisplay(intn){System.out.println("帐号:"+BankNumber+BankAccounts[n-1].AccountNumber);System.out.println("帐户名:"+BankAccounts[n-1].Name);System.out.println("身份证:"+BankAccounts[n-1].ID);System.out.println("金额:"+BankAccounts[n-1].Deposit);}//显示账户信息voidTransferAccount(inti,intj,intm){if(CheckAccount(i)==1&&CheckAccount(j)==1)if(BankAccounts[i-1].Deposit>m){BankAccounts[i-1].Deposit-=m;BankAccounts[j-1].Deposit+=m;}elseSystem.out.println("余额不足!");}//转账方法}classAccount{//账户类StringName;//帐户名StringID;//证件号码intAccountNumber;//帐号StringPassword;//密码intDeposit;//存款voidCreatAccount(Stringx,Stringy,intn,Stringp,intm){Name=x;ID=y;AccountNumber=n;Password=p;Deposit=m;}//创建账户信息intDepositMoney(intn){Deposit=Deposit+n;returnDeposit;}//存款intDrawMoney(intn){Deposit=Deposit-n;returnDeposit;}//取款}publicclassMyBank{publicstaticvoidmain(String[]args)throwsIOException{BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));System.out.println("请输入银行名称:");StringBName=in.readLine();System.out.println("请输入银行编号:");intBNum=Integer.parseInt(in.readLine());System.out.println(BName+""+BNum);BankCBC=newBank(BName,BNum);ints1;do{System.out.println("*******************************");System.out.println("*"+CBC.BankName+"欢迎您的到来!*");System.out.println("*请输入操作序号:*");System.out.println("*1.创建账户*");System.out.println("*2.存款*");System.out.println("*3.取款*");System.out.println("*4.转账*");System.out.println("*5.退出*");System.out.println("*******************************");s1=Integer.parseInt(in.readLine());switch(s1){case1:{System.out.println("请输入帐号:");intANum=Integer.parseInt(in.readLine());System.out.println(ANum);System.out.println("请输入姓名:");StringAName=in.readLine();System.out.println(AName);System.out.println("请输入身份证号码:");StringAID=in.readLine();System.out.println(AID);System.out.println("请输入密码:");StringAPass=in.readLine();System.out.println(APass);System.out.println("请输入开户金额:");intAMoney=Integer.parseInt(in.readLine());System.out.println(AMoney);System.out.println("请输入储蓄方式:");StringAFangshi=in.readLine();System.out.println(AFangshi);CBC.BankAccounts[ANum-1].CreatAccount(AName,AID,ANum,APass,AMoney);//创建账户break;}case2:System.out.println("请输入您的帐号:");intANum1=Integer.parseInt(in.readLine());if(CBC.CheckAccount(ANum1)==1){System.out.println("请输入密码:");StringAPass1=in.readLine();if(CBC.BankAccounts[ANum1-1].equals(APass1)){System.out.println("请输入您的存款金额:");intAMoney1=System.in.read();CBC.BankAccounts[ANum1-1].DepositMoney(AMoney1);break;}else{System.out.println("密码错误!请重新输入:");break;}}elsebreak;case3:System.out.println("请输入您的帐号:");intANum2=Integer.parseInt(in.readLine());if(CBC.CheckAccount(ANum2)==1){System.out.println("请输入密码:");StringAPass1=in.readLine();if(CBC.BankAccounts[ANum2-1].equals(APass1)){System.out.println("请输入您的取款金额:");intAMoney2=System.in.read();if(CBC.BankAccounts[ANum2-1].Deposit<AMoney2){System.out.println("余额不足!请重新输入:");break;}CBC.BankAccounts[ANum2-1].DrawMoney(AMoney2);break;}else{System.out.println("密码错误!请重新输入:");break;}}elsebreak;case4:System.out.println("请输入转出账号:");intOutNum=Integer.parseInt(in.readLine());System.out.println("请输入转入账号:");intInNum=Integer.parseInt(in.readLine());System.out.println("请输入转账金额:");intTMoney=Integer.parseInt(in.readLine());if(CBC.CheckAccount(OutNum)==1&&CBC.CheckAccount(InNum)==1){CBC.TransferAccount(OutNum,InNum,TMoney);break;}elsebreak;case5:System.out.println(CBC.BankName+"欢迎您下次再来!");System.out.println("PoweredbySupper");System.out.println("交流讨论请EMAIL至psu0328@gmail.com");}}while(s1!=5);}}
解决方案
解决方案二:
将调用方法和错误代码贴上来才能有人给你看。