freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

銀行賬目管理系統(tǒng)設(shè)計畢業(yè)論文(編輯修改稿)

2025-07-21 18:43 本頁面
 

【文章內(nèi)容簡介】 ublic BAMClient() { Socket clientSocket。 try { clientSocket=new Socket(localhost,9007)。 in=new ObjectInputStream(())。 out=new ObjectOutputStream(())。 } catch (UnknownHostException e) { ()。 } catch (IOException e) { ()。 } }} 詳細(xì)設(shè)計在操作主界面,可以進行的操作包括用戶開戶、用戶登錄、信息修改、忘記密碼、查詢、統(tǒng)計和銷戶,界面簡潔易于操作,如圖3所示。在設(shè)計銀行賬目管理系統(tǒng)的操作主界面時,第一步利用public class MainPanel extends JPanel{…}來定義一個主面板類MainPanel,然后在里面定義所需要的全部變量,變量為private類型。主面板類MainPanel包括8個JButton按鈕??梢酝ㄟ^調(diào)用get()方法得到相應(yīng)的按鈕,例如,得到用戶開戶按鈕的get()方法為:public JButton getRegisterButton() { return registerButton。}第二步利用public class PicturePanel extends JPanel {…}來定義一個圖片面板類PicturePanel。第三步定義一個BAMClient類,定義一個JFrame窗體變量bamFrame,再定義左右兩個面板,leftPanel和rightPanel。左面板添加主面板類,右面板添加圖片面板。并且設(shè)置左面板的顏色為白色,設(shè)置右面板的布局方式為CardLayout。第四步定義一個addListeners()方法,利用public void addActionListener(ActionListener)方法向每一個按鈕增加動作監(jiān)視器。 操作主界面示意圖開戶面板的設(shè)計與實現(xiàn)單擊系統(tǒng)操作主界面中的“用戶開戶”按鈕,進入注冊面板。為了使得用戶的成功注冊,第一步利用public class RegisterPanel extends JPanel {…}來定義一個注冊面板類RegisterPanel。用戶注冊需要填寫的信息包括賬戶類型、賬戶密碼、用戶姓名、身份證號、家庭住址、聯(lián)系電話和電子郵箱。賬戶類型是一個下拉列表(JComboBox)變量。下拉列表是用戶十分熟悉的一個組件。用戶可以在下拉列表看到第一個選項和它旁邊的箭頭按鈕,當(dāng)用戶單擊箭頭按鈕時,選項列表打開。選項列表包含四個選項,分別是儲蓄賬戶、信用賬戶、貸款儲蓄賬戶和貸款信用賬戶,用戶注冊時可以根據(jù)自己的需要選擇相應(yīng)的賬戶類型。JComboBox類的變量可以通過調(diào)用public void addItem(Object anObject)增加選項。賬戶密碼和密碼重復(fù)都是JPasswordField類型的變量。使用JTextField類的子類JPasswordField可以建立一個密碼框?qū)ο蟆C艽a框可以使用setEchoChar(char c)設(shè)置回顯字符(默認(rèn)的回顯字符是39。*39。),char[] getPassword()方法返回密碼框中的密碼。用戶姓名、身份證號、家庭住址、聯(lián)系電話和電子郵箱都是JTextField類型的變量。JComponent類的子類JTextField是專門用來建立文本框的,即JTextField類創(chuàng)建的一個對象就是一個文本框。用戶可以在文本框中輸入單行的文本。提交和返回按鈕都是JButton類型的變量。JButton類是專門用來建立按鈕的,即JButtton類創(chuàng)建的一個對象就是一個按鈕。JButton類的構(gòu)造方法Button(String text)創(chuàng)建名字是text的按鈕。第二步定義一個消息類(Message),Message類有兩個私有的成員變量,int類型的operation和HashMapString,String類型的data,operation用來識別操作的類型,data用來保存操作的信息。以用戶開戶為例,operation的值設(shè)置為1,data保存了賬戶類型、賬戶密碼、用戶姓名、身份證號、家庭住址、聯(lián)系電話和電子郵箱的信息。第三步為注冊面板中的“提交”和“返回”按鈕增加監(jiān)視器,當(dāng)單擊“提交”按鈕時,調(diào)用在BAMClient類中定義的方法register(),定義一個Message類對象,設(shè)置操作類型operation為1,data保存收集到的信息。在將收集的信息存入Message類對象之前,必須確保所有的注冊項都不為空,聯(lián)系電話和電子郵箱符合一定的格式要求。第四步通過ObjectOutputStream輸出流將Message類對象發(fā)送到服務(wù)器,服務(wù)器收到Message對象之后,判斷操作類型是1,要執(zhí)行的操作是用戶開戶,則調(diào)用Bank類的registerAccount()方法。第五步定義一個賬戶類(Account),Account類的一個對象就是一個賬戶,Account類包含一個賬戶的信息有賬戶的類型,整型0表示儲蓄賬戶,1表示信用賬戶,2表示貸款儲蓄賬戶,3表示貸款信用賬戶。用戶注冊時并不需要自己填寫賬號,賬號是系統(tǒng)自動生成的。第六步將Message中的信息取出,定義一個Account類對象,再將該對象寫進數(shù)據(jù)庫。 開戶示意圖單擊系統(tǒng)操作主界面中的“用戶登錄”按鈕,進入登錄面板。登錄面板的布局是BorderLayout布局。當(dāng)用戶單擊登錄面板中的確定按鈕時,在BAMClient類中調(diào)用login()方法,首先判斷賬號id是否為空,判斷兩個String類型的變量是否相等,用public equals(String)方法,代碼如下:if(.equals(id)) {…},如果寫出if(()) {…},那么當(dāng)用戶登錄時,沒有輸入賬號id時,即id==null,就會出現(xiàn)空指針異常。id不為空的情況下再判斷密碼是否為空,判斷方法和判斷id是否為空一樣,當(dāng)賬號和密碼都不為空的情況下,定義一個Message類的對象,設(shè)置操作類型operation值為2,只需將用戶輸入的id存入Message類對象的data中即可,然后通過輸出流將Messaage類的這個對象寫出,發(fā)送給服務(wù)器。當(dāng)服務(wù)器接收到Message類的對象時,取出對象里面的操作類型operation和信息數(shù)據(jù)data中的賬號id,然后調(diào)用Bank類的方法public Account loginAccount(long id) {…}為了方便在Bank類中定義了public Account getAccount(long id) {…}方法,該方法實現(xiàn)的功能是根據(jù)id獲取相應(yīng)Account對象。首先判斷數(shù)據(jù)庫中賬號為id的賬戶是否存在,只有在該賬戶存在的情況下,才將該賬戶的信息從服務(wù)器中取出,放入一個Account對象中,然后返回該對象,如果該賬戶不存在,就返回null。loginAccount()方法直接返回得到getAccount()方法返回的內(nèi)容。return getAccount(id)。 服務(wù)器通過輸出流ObjectOutputStream將得到的對象或null返回給客戶端,客戶端用輸入流ObjectInputStream接收發(fā)送過來的對象Object object = ()。如果object==null,提示“賬戶不存在!”,否則判斷返回的Account類的對象的密碼和輸入的密碼是否一致,如果不一致提示密碼有誤,請重新輸入,否則提示“登錄成功!”,顯示出交易面板。 登錄示意圖用戶成功注冊或登錄之后,就會顯示交易面板。交易面板顯示賬戶的賬號、姓名、賬戶余額、信用額度和貸款額。交易面板中定義了一個方法,可以根據(jù)賬戶的類型設(shè)置組件,把不需要的組件變灰。存款和取款是每個賬戶都應(yīng)該有的基本功能,如果一個賬戶是貸款賬戶,那么該賬戶還具有申請貸款和還貸款的功能,如果一個賬戶是信用賬戶,那么該賬戶還具有設(shè)置透支額度的功能。交易面板還定義了一個方法將賬戶的信息顯示在界面上。當(dāng)用戶單擊交易面板中的提交按鈕時,調(diào)用BAMClient類中的business()方法,該方法得到該用戶的賬戶id、選擇的交易類型action和輸入交易的金額money,并將這些信息放入一個Message對象,通過輸出流發(fā)送給服務(wù)器,服務(wù)器接收到以后,得到相應(yīng)的信息,判斷交易類型,根據(jù)交易類型,執(zhí)行Bank中相應(yīng)的方法。交易類型是存款,調(diào)用Bank類中的depositAccount(long id,double money)方法。存款方法首先根據(jù)id得到相應(yīng)的Account類對象,然后調(diào)用Account類的deposit(double money)方法,最后更新數(shù)據(jù)庫中該賬戶的余額并將得到的Account對象返回。交易類型是取款,調(diào)用Bank類中的withdrawAccount(long id,double money)方法。取款方法首先根據(jù)id得到相應(yīng)的Account類對象,然后調(diào)用Account類的withdraw(double money),Account類中該方法是一個抽象的方法,因為不同的賬戶類型取款的方法不一樣,如果是信用賬戶,那么該賬戶可以透支。如果賬戶的余額不足或透支額度不足會拋出交易異常BalanceNotEnoughException。最后更新數(shù)據(jù)庫中該賬戶的余額并將得到的Account對象返回。交易類型是設(shè)置透支額度,調(diào)用Bank類中的setCeilingAccount(long id,double money)方法;該方法只針對信用賬戶,首先根據(jù)id得到相應(yīng)的Account類對象,然后調(diào)用CreditAccount類的setCeiling(double ceiling)方法,最后更新數(shù)據(jù)庫中的credit_account表中該賬戶的記錄并將得到的Account對象返回。交易類型是申請貸款,調(diào)用Bank類中的requestLoan(long id,double money)方法。首先根據(jù)id得到相應(yīng)的Account類對象,然后調(diào)用接口Loanable中的requestLoan(double money)方法,最后更新數(shù)據(jù)庫中的loan_account表中該賬戶的記錄并將得到的Account對象返回。交易類型是還貸款,調(diào)用Bank類中的payLoan(long id,double money)方法。首先根據(jù)id得到相應(yīng)的Account類對象,然后調(diào)用接口Loanable中的payLoan(double money)方法,如果賬戶的余額不足或透支額度不足會拋出交易異常BalanceNotEnoughException。最后更新數(shù)據(jù)庫中的loan_account表中該賬戶的記錄并將得到的Account對象返回。返回的Account對象通過輸出流發(fā)給客戶端,客戶端中調(diào)用show(Account account)方法顯示賬戶的余額、信用額度和貸款額。 交易示意圖// 存款public Account depositAccount(long id,double money) { Account account=getAccount(id)。 (money)。 String sql=update account set balance=39。+()+39。 where id=39。+id+39。 (sql)。 return account。} // 取款public Account withdrawAccount(long id,double money) throws BusinessException { Account account=getAccount(id)。 (money)。 String sql=update account set balance=39。+()+39。 where id=39。+id+39。 (sql)。 return account。} // 設(shè)置透支額度public Account setCeilingAccount(long id,double money) { Account account=getAccount(id)。 CreditAccount ca=(CreditAccount)account。 (()+money)。 String sql=update credit_account set ceiling=39。+()+39。 where id=39。+id+39。 (sql)。 return ca。} // 貸款public Account requestLoan(long id,double money) { Account account=getAccount(id)。 Loanable l=(Loanable)account。 (money)。 String sql=update loan_account set loan=39。+()+39。 where id=39。+id+39。 (sql)。 return (Account)l。} // 還貸public Account payLoan(long id,double money) throws BalanceNotEnoughException,LoanException { Account account=getAccount(id)。 Loanable l=(Loanable)account。 (money)。 String sql=update loan_account set loan=39。+()+39。 where id=39。+id+39。 (sql)。 sql=update account set balance=39。+((Account)l).getBalance()+39。 where
點擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1