銀行賬戶管理系統(tǒng)實驗報告-打印版_第1頁
銀行賬戶管理系統(tǒng)實驗報告-打印版_第2頁
銀行賬戶管理系統(tǒng)實驗報告-打印版_第3頁
銀行賬戶管理系統(tǒng)實驗報告-打印版_第4頁
銀行賬戶管理系統(tǒng)實驗報告-打印版_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

課程設(shè)計課程名稱:JAVA課程設(shè)計設(shè)計題目:銀行賬戶管理系統(tǒng)學(xué)院:信息工程與自動化專業(yè):計算機科學(xué)與技術(shù)年級:2009級學(xué)生姓名:***指導(dǎo)教師:****日期:2012.09教務(wù)處制課程設(shè)計任務(wù)書信息工程與自動化學(xué)院計算機科學(xué)與技術(shù)專業(yè)2009年級學(xué)生姓名:陳明華課程設(shè)計題目:銀行賬戶管理系統(tǒng)課程設(shè)計主要內(nèi)容:本例是模擬銀行賬戶的管理,開發(fā)一個銀行個人賬戶管理系統(tǒng)銀行賬戶管理系統(tǒng)。設(shè)計的指導(dǎo)思想是一切為使用者著想,界面要美觀大方,操作盡量簡單明了,而且作為一個實用的管理系統(tǒng)要有良好的容錯性,在出現(xiàn)誤操作時能盡量及時地給出警告,以便用戶及時地改正。計算機的資源是受到限制的,設(shè)計出功能強大的軟件,同時要盡可能地減少對系統(tǒng)資源的占用。鑒于本系統(tǒng)的特殊性,還需要本程序有良好的保密性。設(shè)計指導(dǎo)教師(簽字):教學(xué)基層組織負(fù)責(zé)人(簽字):年月日摘要本例是模擬銀行賬戶的管理,開發(fā)一個銀行個人賬戶管理系統(tǒng)銀行賬戶管理系統(tǒng)。設(shè)計的指導(dǎo)思想是一切為使用者著想,界面要美觀大方,操作盡量簡單明了,而且作為一個實用的管理系統(tǒng)要有良好的容錯性,在出現(xiàn)誤操作時能盡量及時地給出警告,以便用戶及時地改正。計算機的資源是受到限制的,設(shè)計出功能強大的軟件,同時要盡可能地減少對系統(tǒng)資源的占用。鑒于本系統(tǒng)的特殊性,還需要本程序有良好的保密性。銀行賬戶管理是銀行業(yè)務(wù)流程中十分重要的且必備的環(huán)節(jié),由于銀行有大量數(shù)據(jù)需要處理,全部采用人工方式明顯不現(xiàn)實:這不僅需要花費很高的成本,而且處理事務(wù)的效率和質(zhì)量都存在很大的問題,出于這些問題的考慮,使用計算機來處理這類問題就成為一個相當(dāng)理想的方案。利用計算機可以極大地降低成本,更重要的是可以幾乎沒有錯誤地高效地處理所有的事務(wù),所以做一款基于銀行賬戶管理方面的系統(tǒng)是十分必要的。本次課程設(shè)計通過對《銀行賬戶管理系統(tǒng)》中銀行業(yè)務(wù)流程的基本實現(xiàn)以及用戶環(huán)節(jié)的事務(wù)處理,旨在體驗數(shù)據(jù)庫設(shè)計和實現(xiàn)的基本過程中掌握數(shù)據(jù)庫模式的設(shè)計、分析和實現(xiàn)方法,了解數(shù)據(jù)庫應(yīng)用系統(tǒng)軟件開發(fā)的一般過程。目錄一. 設(shè)計目的 4二.設(shè)計內(nèi)容 4三.概要設(shè)計 51.功能模塊圖; 52.各個模塊詳細(xì)的功能描述。 5四.詳細(xì)設(shè)計 71.功能函數(shù)的調(diào)用關(guān)系圖 72.重點設(shè)計及編碼 8五.測試數(shù)據(jù)及運行結(jié)果 141.正常測試數(shù)據(jù)和運行結(jié)果 142.異常測試數(shù)據(jù)及運行結(jié)果 17六.調(diào)試情況,設(shè)計技巧及體會 181.改進方案 182.體會 18七.參考文獻 18八.附錄: 18設(shè)計目的銀行賬戶管理是銀行業(yè)務(wù)流程中十分重要的且必備的環(huán)節(jié),由于銀行有大量數(shù)據(jù)需要處理,全部采用人工方式明顯不現(xiàn)實:這不僅需要花費很高的成本,而且處理事務(wù)的效率和質(zhì)量都存在很大的問題,出于這些問題的考慮,使用計算機來處理這類問題就成為一個相當(dāng)理想的方案。利用計算機可以極大地降低成本,更重要的是可以幾乎沒有錯誤地高效地處理所有的事務(wù),所以做一款基于銀行賬戶管理方面的系統(tǒng)是十分必要的。本次課程設(shè)計通過對《銀行賬戶管理系統(tǒng)》中銀行業(yè)務(wù)流程的基本實現(xiàn)以及用戶環(huán)節(jié)的事務(wù)處理,旨在體驗數(shù)據(jù)庫設(shè)計和實現(xiàn)的基本過程中掌握數(shù)據(jù)庫模式的設(shè)計、分析和實現(xiàn)方法,了解數(shù)據(jù)庫應(yīng)用系統(tǒng)軟件開發(fā)的一般過程。二.設(shè)計內(nèi)容 分別完成銀行業(yè)務(wù)功能、ATM功能和用戶管理功能,并設(shè)計數(shù)據(jù)庫以支持這些功能的實現(xiàn),最后通過代碼進行具體實現(xiàn)以及數(shù)據(jù)庫鏈接。 所用數(shù)據(jù)庫:SQLServer2008 開發(fā)語言:Java 數(shù)據(jù)庫設(shè)計:使用了六張表,分別為:管理員表(admin)、ATM機表(ATM)、ATM機出納表(ATMOutIn)、銀行柜臺出納表(BankOutIn)、銀行卡表(card)、用戶表(users)。三個觸發(fā)器,分別為:凍結(jié)用戶賬號操作(userstatus_update)、ATM機存取款操作(ATMOutIn_insert)和銀行存取款操作(BankOutIn_insert)。一個視圖、一個虛表:用戶操作查詢(allInfo(userId,cunquTime,cunquAddress,cunquMoney,cunquSummary,balanceMoney))。銀行業(yè)務(wù)功能:設(shè)置管理員賬號,賦予管理員權(quán)限以實現(xiàn)開戶、銷戶、存款、取款、查詢、辦卡和掛失功能。ATM功能:ATM機連接系統(tǒng)數(shù)據(jù)庫,實現(xiàn)用戶登錄、存(取)款以及用戶查詢功能。用戶管理:通過登錄功能獲得系統(tǒng)數(shù)據(jù)庫中自己的用戶信息,并有權(quán)限修改系統(tǒng)允許用戶修改的信息。三.概要設(shè)計1.功能模塊圖; 2.各個模塊詳細(xì)的功能描述。 銀行業(yè)務(wù)功能:管理員登錄在數(shù)據(jù)庫中添加管理員數(shù)據(jù),管理員可登錄系統(tǒng)并有權(quán)限完成與用戶相關(guān)所有操作。開戶收集用戶信息,為用戶分配賬號并通過程序在系統(tǒng)數(shù)據(jù)庫中添加用戶信息。銷戶根據(jù)賬號在數(shù)據(jù)庫中查找用戶,確認(rèn)用戶身份信息后,管理員通過程序刪除數(shù)據(jù)庫中用戶信息。存款根據(jù)卡號在數(shù)據(jù)庫中查找用戶,依據(jù)存入金額,管理員通過程序修改數(shù)據(jù)庫中用戶的金額信息。取款根據(jù)卡號在數(shù)據(jù)庫中查找用戶,通過密碼確認(rèn)用戶,依據(jù)取出金額,經(jīng)判斷取出金額合法后(不大于余額),管理員通過程序修改數(shù)據(jù)庫中用戶的金額信息。查詢以用戶卡號、賬號或身份證號之一為關(guān)鍵字,在數(shù)據(jù)庫中查找用戶,依據(jù)業(yè)務(wù)需求顯示用戶信息(開戶人信息、用戶近期操作記錄)。辦卡為用戶賬號綁定卡號,由管理員通過程序?qū)⒖ㄌ栆约坝脩粼O(shè)置的密碼存入系統(tǒng)數(shù)據(jù)庫相應(yīng)用戶信息中。掛失根據(jù)賬號在數(shù)據(jù)庫中查找用戶,用戶提供登錄密碼確認(rèn)用戶身份信息后,管理員通過程序?qū)?shù)據(jù)庫中用戶卡狀態(tài)信息由“使用”改為“凍結(jié)”。 ATM功能:登錄ATM機依據(jù)用戶卡號和密碼在系統(tǒng)數(shù)據(jù)庫中查詢用戶信息,在信息匹配的情況下進入用戶操作界面。存款A(yù)TM機依據(jù)用戶存入金額,通過程序修改數(shù)據(jù)庫中用戶的金額信息。取款A(yù)TM機依據(jù)取出金額,通過對比本機余額和數(shù)據(jù)庫中用戶余額,若金額合法則通過程序修改數(shù)據(jù)庫中用戶的金額信息,否則彈出錯誤信息。 用戶管理:登錄依據(jù)用戶賬號和密碼由管理員或ATM機在系統(tǒng)數(shù)據(jù)庫中查詢用戶信息,在信息匹配的情況下用戶獲得用戶管理權(quán)限。查詢個人信息打印數(shù)據(jù)庫中記錄的用戶個人信息。修改個人信息收集用戶新信息,由管理員操作,修改數(shù)據(jù)庫中用戶擁有修改權(quán)限的相應(yīng)數(shù)據(jù)。查詢近期操作依據(jù)用戶提供所要查詢時間范圍,由管理員或ATM機通過程序查詢系統(tǒng)數(shù)據(jù)庫中用戶的操作記錄。四.詳細(xì)設(shè)計1.功能函數(shù)的調(diào)用關(guān)系圖publicstaticvoidmian(String[]args){publicstaticvoidmian(String[]args){ AdminLoginJFrame() AdminDao 管理員登錄界面 ChaxunKaInfo(StringuserId) KaMimaXiuGai(StringcardId) UserLoginJFrame()MainFrame() 用戶登錄界面 KaCaoZuo(Stringtimes,StringcardId)主界面 ChaXunCaoZuo(Usersuser) UserGuanLi(StringATMId,StringcardId) ATMLoginJFrame() actionPerformed(ActionEvente) ATM機登錄界面 UserChaXun(StringcardId)} 用戶類 卡查詢 操作 卡密修改 操作 卡操作記 錄 查詢近期 操作 用戶管理 登錄方法 用戶信息 查詢2.重點設(shè)計及編碼數(shù)據(jù)庫設(shè)計:createdatabaseaccountuseaccount createtableusers(userIdvarchar(10)notnull,/*用戶賬號,主鍵*/userNamevarchar(10)notnull,/*用戶名*/userPasswordvarchar(10)notnull,/*密碼*/idNovarchar(20)notnull,/*身份證號碼,唯一*/userMoneynumeric(10,2)default0,/*總金額,不能小于零*/userStatusvarchar(4)check(userStatus='使用'oruserStatus='凍結(jié)')default'使用',/*用戶狀態(tài)(使用,凍結(jié)),默認(rèn)是使用中*/userAddressvarchar(30)notnull,/*用戶地址*/startTimeDateTime,/*開戶時間,應(yīng)該是開戶時的系統(tǒng)時間,不應(yīng)該人為輸入*/primarykey(userId),/*設(shè)置主鍵*/)--用戶的狀態(tài)一旦變成凍結(jié)狀態(tài),那么卡也應(yīng)該不能使用createtriggeruserstatus_updateonusersafterupdateasifupdate(userStatus)beginif(selectuserStatusfrominserted)='凍結(jié)'updatecardsetcardStatus='凍結(jié)'whereuserId=(selectuserIdfromdeleted)if(selectuserStatusfrominserted)='使用'updatecardsetcardStatus='使用'whereuserId=(selectuserIdfromdeleted)endcreatetablecard(cardIdvarchar(20)primarykey,/*卡號,主鍵*/userIdvarchar(10)notnull,/*用戶賬號,外鍵,參照users表的userId*/cardPasswordvarchar(10)notnull,/*卡密碼*/cardStatusvarchar(5)check(cardStatusin('使用','凍結(jié)','掛失'))default'使用',/*卡狀態(tài)(使用,凍結(jié),掛失),默認(rèn)是使用*/--cardMoneynumeric(10,2)check(cardMoney>=0),foreignkey(userId)referencesusers(userId)ondeletecascade/*當(dāng)刪除用戶帳號時,他的卡號會及聯(lián)刪除*/)--管理員表createtableadmin(adminIdvarchar(10)notnullprimarykey,/*操作員號碼,主鍵*/adminNamevarchar(10)notnull,/*操作員名字*/adminPasswordvarchar(20)notnull,/*操作員密碼*/BankAddressvarchar(20)notnull/*操作員所在銀行地址*/)insertintoadminvalues('001','沈萬三','123','工商銀行長安分行')--創(chuàng)建一個ATM表,至少應(yīng)該含有編號以及ATM機里的總金額createtableATM(ATMIdvarchar(10)primarykey,/*ATM機ID*/ATMMoneynumeric(20,2)check(ATMMoney>=0),/*ATM機里的總錢數(shù),不允許用戶的取款數(shù)大于它的總錢數(shù),所以它的總錢數(shù)不能小于*/ATMAddressvarchar(20)/*ATM機的地點*/)insertintoATMvalues('000',10000,'長安區(qū)')insertintoATMvalues('111',50000,'長安區(qū)')--用戶ATM機存取款信息表createtableATMOutIn(ATMIdvarchar(10),/*取款機號,外鍵,參照ATM表的ATMId*/cardIdvarchar(20)notnull,/*用戶卡號,外鍵,參照card表的cardId*/ATMTimeDateTime,/*在ATM機存取款時間(應(yīng)該是進行存取款時的系統(tǒng)時間*/ATMCunQunumeric(10,2),/*ATM機存款金額*/ATMSummaryvarchar(30),/*存取款摘要*/balanceMoneynumeric(10,2)default0,/*經(jīng)過操作后賬號中的金額*/foreignkey(ATMId)referencesATM(ATMId)ondeletecascade,foreignkey(cardId)referencescard(cardId)ondeletecascade)--創(chuàng)建一個觸發(fā)器,當(dāng)產(chǎn)生這一信息時,賬號上的錢也會隨之改動createtriggerATMOutIn_insertonATMOutInafterinsertasdeclare@num_rowsintselect@num_rows=@@rowcountif@num_rows=0/*未插入成功*/returnif@num_rows>0/*數(shù)據(jù)插入成功*/beginupdateuserssetuserMoney=userMoney+(selectATMCunQufromInserted)whereuserIdin(selectuserIdfromcardc,insertediwherec.cardId=i.cardId)updateATMsetATMMoney=ATMMoney+(selectATMCunQufromInserted)whereATMIdin(selectATMIdfrominserted)/*對應(yīng)的atm機的總金額也會隨之改變*/declare@balanceMoneynumeric(10,2)/*賬號余額*/select@balanceMoney=(selectuserMoneyfromuserswhereuserIdin(selectuserIdfromcardc,insertediwherec.cardId=i.cardId))updateATMOutInsetbalanceMoney=(@balanceMoney)wherecardIdin(selectcardIdfrominserted)andatmtimein(selectatmtimefrominserted)/*完成了賬號金額的修改,再將新的金額插入到信息表中,就是剩余的總余額了(注意修改的只是一個賬號此次的操作*/end--用戶銀行存取款信息信息表createtableBankOutIn(adminIdvarchar(10)notnull,/*操作員號碼,外鍵,參照操作員表的adminId*/cardIdvarchar(20)notnull,/*用戶卡號,外鍵,參照用戶信息表*/BankTimeDateTime,/*銀行存款時間*/BankCunQunumeric(10,2),/*銀行存款*/BankSummaryvarchar(30),balanceMoneynumeric(10,2)default0,/*經(jīng)過操作后賬號中的金額*/foreignkey(adminId)referencesadmin(adminId)ondeletecascade,foreignkey(cardId)referencescard(cardId)ondeletecascade)--創(chuàng)建一個觸發(fā)器,當(dāng)插入這條數(shù)據(jù)時會自動修改users表里的金額信息createtriggerBankOutIn_insertonBankOutInforinsertasdeclare@num_rowsintselect@num_rows=@@rowcountif@num_rows=0/*未插入成功*/returnif@num_rows>0/*數(shù)據(jù)插入成功*/beginupdateuserssetuserMoney=userMoney+(selectBankCunQufromInserted)whereusers.userId=(selectuserIdfromcardc,insertediwherec.cardId=i.cardId)declare@balanceMoneynumeric(10,2)select@balanceMoney=(selectuserMoneyfromuserswhereuserId=(selectuserIdfromcardc,insertediwherec.cardId=i.cardId))updateBankOutInsetbalanceMoney=(@balanceMoney)wherecardId=(selectcardIdfrominserted)andbanktime=(selectbanktimefrominserted)/*完成了賬號金額的修改,再將新的金額插入到信息表中,就是剩余的總余額了(要注意這個信息總額的唯一性)*/end--總信息可以用其它的表推出,建一個視圖,一個虛表,來綜合他們的信息createviewallInfo(userId,cunquTime,cunquAddress,cunquMoney,cunquSummary,balanceMoney)asselectuserId,bankTime,BankAddress,bankCunqu,bankSummary,balanceMoneyfrombankoutinb,admina,cardcwhereb.adminId=a.adminIdandc.cardId=b.cardIdunionselectuserId,ATMTime,ATMAddress,ATMCunqu,ATMSummary,balanceMoneyfromatmoutina,cardc,ATMatmwherec.cardId=a.cardIdanda.atmid=atm.atmid數(shù)據(jù)庫鏈接:packagecom.connection;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;/***定義一個數(shù)據(jù)庫的連接及關(guān)閉資源的類*@authorAdministrator**/publicclassDBConnection{ /** *創(chuàng)建數(shù)據(jù)庫的鏈接 *@return返回一個數(shù)據(jù)庫的鏈接 */ publicstaticConnectiongetConnection(){ Connectionconn=null; try{ Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//加載數(shù)據(jù)庫驅(qū)動 Stringurl="jdbc:microsoft:sqlserver://localhost:1433;databaseName=account"; Stringusername="sa";//數(shù)據(jù)庫用戶名 Stringpassword="1126";//數(shù)據(jù)庫密碼 conn=DriverManager.getConnection(url,username,password);//獲得數(shù)據(jù)庫的鏈接 }catch(ClassNotFoundExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnconn; } /** *關(guān)閉數(shù)據(jù)庫資源 *@paramobj數(shù)據(jù)庫打開的資源對象(在此處用Object,因為鏈接數(shù)據(jù)庫是會打開多個資源) */ publicstaticvoidcloseObject(Objectobj){ if(obj!=null){ if(objinstanceofResultSet){ try{ ((ResultSet)obj).close();

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論