版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、計(jì)算機(jī)系課程大作業(yè)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)項(xiàng)目名稱 銀行ATM系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 所屬課程名稱 Java程序設(shè)計(jì) 實(shí) 驗(yàn) 類 型 綜合設(shè)計(jì) 姓 名 提交時(shí)間 2012-5-10 班級(jí)學(xué)號(hào) 成 績 計(jì)算機(jī)實(shí)驗(yàn)室實(shí)驗(yàn)概述:【實(shí)驗(yàn)?zāi)康摹?學(xué)習(xí)使用JAVA技術(shù)設(shè)計(jì)與實(shí)現(xiàn)軟件的基本過程和技術(shù)。通過實(shí)現(xiàn),鞏固JAVA基礎(chǔ)知識(shí),掌握在實(shí)踐中解決問題的方法,提升JAVA實(shí)踐編程能力?!緦?shí)驗(yàn)環(huán)境】(使用的軟件) Eclipse 開發(fā)環(huán)境,office Word 軟件。實(shí)驗(yàn)內(nèi)容(不夠附頁):【實(shí)驗(yàn)方案設(shè)計(jì)與實(shí)驗(yàn)過程】題目:銀行業(yè)務(wù)ATM設(shè)計(jì)與實(shí)現(xiàn)處理簡單帳戶存取款、查詢。要求:模擬ATM的界面,用戶能取款、查詢、存款。數(shù)據(jù)存放
2、在文件中。 (界面、具體功能自定)涉及:界面設(shè)計(jì)、文件輸入輸出流讀、寫。系統(tǒng)需求分析1 、功能需求分析本ATM柜員機(jī)的主要功能如下所述:要求使用圖形用戶界面。當(dāng)輸入給定的卡號(hào)和密碼(卡號(hào)為和密碼為)時(shí),系統(tǒng)能登錄ATM柜員機(jī)系統(tǒng),用戶可以按照以下規(guī)則進(jìn)行:查詢余額:初始余額為0元,存款后余額為本金加利息。ATM存款:每次存款金額為100的倍數(shù),總額不超過5000元,金額不為負(fù)數(shù)。ATM取款:每次取款金額為100的倍數(shù),總額不超過5000元,金額不允許透支。查詢利率:可查詢利率。2 、其他需求分析(1)性能描述實(shí)時(shí)性好、靈活性強(qiáng)、易于不同年齡階段的人操作。(2)設(shè)計(jì)約束能實(shí)現(xiàn)用戶所定義的各項(xiàng)需求
3、。系統(tǒng)設(shè)計(jì)1、總體設(shè)計(jì)我所設(shè)計(jì)的ATM柜員機(jī)主要是由登錄頁面模塊還由選擇服務(wù)模塊組成,其中選擇服務(wù)模塊又由取款模塊、查詢余額模塊、修改密碼模塊、退卡模塊組成。其功能結(jié)構(gòu)圖如下所示:登陸界面模塊選擇服務(wù)模塊查詢余額模塊存款模塊取款模塊查詢利率模塊退出模塊圖1 ATM功能結(jié)構(gòu)示意圖2、ATM柜員機(jī)界面設(shè)計(jì)我覺得一個(gè)系統(tǒng)的界面應(yīng)該要簡單明了,當(dāng)然樣式美觀就更好了。我設(shè)計(jì)的界面主要是由窗體組成,操作簡單。而每一個(gè)窗口則執(zhí)行相應(yīng)的功能。一個(gè)系統(tǒng)界面的好壞直接影響到用戶的操作,界面設(shè)計(jì)要求樣式美觀、簡單明了、方便易操作。我設(shè)計(jì)的界面主要分為窗體、菜單、文本輸入框幾個(gè)部分,分別執(zhí)行相應(yīng)的操作。(1)窗體的主
4、要結(jié)構(gòu)的設(shè)計(jì)我所設(shè)計(jì)的窗口的主要結(jié)構(gòu)的特點(diǎn)就是每個(gè)窗口都對(duì)應(yīng)著一個(gè)特定的功能。比如說報(bào)錯(cuò),還有各種查詢余額、存款、取款、查詢利率、選擇服務(wù)等功能,所以它們都是由各種選擇和文本框組成的。所以整個(gè)設(shè)計(jì)就趨向簡單化了。(2)各功能模塊設(shè)計(jì)1 登陸頁面模塊設(shè)計(jì)與ATM柜員機(jī)打交道比較多的,也是大家對(duì)安全比較關(guān)心的問題:密碼。所以第一個(gè)界面就是要輸入密碼和卡號(hào)才能繼續(xù)服務(wù)。我定義了文本框累的對(duì)象cardNum, password。判斷輸入的密碼和卡號(hào)是否正確,如果不正確的話,則彈出密碼或卡號(hào)錯(cuò)誤的警告框,并用break跳出窗口,返回登陸界面。此模塊相應(yīng)的部分源代碼為:str1=JOptionPane.s
5、howInputDialog(賬號(hào):+n);/輸入個(gè)人信息 cardNum1=Integer.parseInt(str1); str2=JOptionPane.showInputDialog(密碼:+n);/輸入個(gè)人信息 password1=Integer.parseInt(str2); if(cardNum1=cardNum)&(password1=password) break; else if(cardNum1!=cardNum)|(password1!=password) JOptionPane.showMessageDialog(null,錯(cuò)誤!請(qǐng)重輸); str1=JOptionP
6、ane.showInputDialog(賬號(hào):+n);/讀入數(shù)據(jù) cardNum1=Integer.parseInt(str1); str2=JOptionPane.showInputDialog(密碼:+n);/讀入數(shù)據(jù) password1=Integer.parseInt(str2); if(cardNum1!=cardNum)&(password1!=password) JOptionPane.showMessageDialog(null,兩次輸入錯(cuò)誤!請(qǐng)退出!+n+卡被吞!); System.exit(0); else System.exit(0); else System.exit(
7、0); 2 選擇服務(wù)模塊設(shè)計(jì)在選擇服務(wù)模塊中,有各種ATM的服務(wù)功能,只要用戶在該界面中選擇,它就會(huì)彈出各個(gè)相應(yīng)的界面。主要代碼如下:String inputChoise = JOptionPane.showInputDialog ( t請(qǐng)輸入您選擇的項(xiàng)目代號(hào):n +tt 1 查詢余額n +tt 2 存款n +tt 3 取款n +tt 4 利率n +tt 5 退出 );choise = Integer.parseInt( inputChoise );3 查詢余額模塊設(shè)計(jì)在查詢余額模塊中,會(huì)出現(xiàn)一個(gè)顯示所剩余額的對(duì)話框。余額是由本金和利息的和。主要代碼如下:cash= cash + cash *
8、 rate;JOptionPane.showMessageDialog( null,您的余額: + cash );break; 4 存款模塊設(shè)計(jì)在存款模塊中,和其他的界面是同樣的結(jié)構(gòu)。也是有一個(gè)文本框和選擇組成的。用戶在文本框中輸入他想存的數(shù)額,但是必須是100的倍數(shù),而且每一次最多只能存5000塊。否則就會(huì)彈出報(bào)錯(cuò)的窗口。主要代碼如下:String in = JOptionPane.showInputDialog( 請(qǐng)?jiān)诳瞻卓騼?nèi)輸入金額!n+您要存款的金額是: );money = Integer.parseInt( in );if(money0)&(money%100=0)cash=cash
9、+money;JOptionPane.showMessageDialog(null,存款成功!);JOptionPane.showMessageDialog(null,您的余額是:+cash);elseJOptionPane.showMessageDialog(null,您的輸入金額非法!請(qǐng)重輸-);try FileWriter fw = new FileWriter( d:atm.txt ,true); PrintWriter out = new PrintWriter(fw); out.println(存款: +money); out.close(); fw.close(); catch
10、(IOException e) System.out.println( Write file error! ); e.printStackTrace(); break;5 取款模塊設(shè)計(jì)在取款模塊中,和存款界面是同樣的結(jié)構(gòu)。也是有一個(gè)文本框和按鈕組成的。用戶在文本框中輸入他想取的數(shù)額,但是必須是100的倍數(shù),而且每一次最多只能取5000塊。當(dāng)然了取款的時(shí)候也不能超過卡里的余額,再就是卡里的余額不可以為負(fù),否則就會(huì)彈出報(bào)錯(cuò)的窗口。主要代碼如下:String out = JOptionPane.showInputDialog( 請(qǐng)?jiān)诳瞻卓騼?nèi)輸入金額!n+您要取款的金額是: );money = Int
11、eger.parseInt( out );if(money0)&(money%100=0)cash=cash-money;JOptionPane.showMessageDialog(null,取款成功!);JOptionPane.showMessageDialog(null,您的余額是:+cash);JOptionPane.showMessageDialog(null,請(qǐng)取回卡!);if(money%100=0)&(money=0) cash = cash - money; JOptionPane.showMessageDialog(null,您的余額是:+cash); if(money0)
12、JOptionPane.showMessageDialog(null,請(qǐng)取回現(xiàn)金!); else JOptionPane.showMessageDialog(null,您的輸入金額非法!請(qǐng)重輸-); str3= JOptionPane.showInputDialog(請(qǐng)輸入金額:+n);/讀入數(shù)據(jù) money=Integer.parseInt(str3); if(money%100=0)&(money=0) cash=cash-money; JOptionPane.showMessageDialog(null,您的余額是:+cash); if(money0) JOptionPane.showM
13、essageDialog(null,請(qǐng)取回現(xiàn)金!); else JOptionPane.showMessageDialog(null,卡被吞!); try clock.sleep(2000); catch(InterruptedException ie) System.err.println(Thread error:+ie); try FileWriter fw = new FileWriter( d:atm.txt ,true); PrintWriter ou = new PrintWriter(fw); ou.println(取款: +money); ou.close(); fw.clo
14、se(); catch (IOException e) System.out.println( Write file error! ); e.printStackTrace(); break;6 退卡模塊設(shè)計(jì)在退卡模塊設(shè)計(jì)中,這個(gè)方法就更加的簡單了,它只是用了System.exit(0);7 查詢利率設(shè)計(jì) 用戶可查詢利率,利率可在程序中修改,但不允許用戶自己修改。JOptionPane.showMessageDialog(null,您的利率是: + rate);8 文件設(shè)計(jì)存取款記錄都可以在文件中體現(xiàn)。存款記錄只要代碼如下:try FileWriter fw = new FileWriter(
15、 d:atm.txt ,true); PrintWriter out = new PrintWriter(fw); out.println(存款: +money); out.close(); fw.close(); catch (IOException e) System.out.println( Write file error! ); e.printStackTrace(); 取款代碼與存款相似。實(shí)驗(yàn)步驟、測試數(shù)據(jù)及實(shí)驗(yàn)結(jié)果1登陸界面(1)輸入正確的帳號(hào)和密碼 (2)輸入密碼錯(cuò)誤 如上再次輸入錯(cuò)誤,則出現(xiàn)如下界面。程序被退出。2登陸正確進(jìn)入選擇界面3 輸入選項(xiàng)1,出現(xiàn)查詢余額界面4輸入選項(xiàng)
16、2,出現(xiàn)存款界面(1)如輸入不是整百的金額則不能存入金額 (2)輸入整百的金額則存入 5存入金額后,查詢余額為本金加利息6輸入選項(xiàng)3,出現(xiàn)取款界面(1)如輸入不是整百的金額則不能取款 (2)輸入整百的金額則取款成功 7輸入選項(xiàng)4,出現(xiàn)利率界面8輸入選項(xiàng)5,出現(xiàn)退出界面9記錄文件內(nèi)容【實(shí)驗(yàn)小結(jié)】出錯(cuò)原因分析在此次課程設(shè)計(jì)中,我遇到了一些問題1對(duì)于java語言了解不夠透徹,運(yùn)用到實(shí)際的軟件開發(fā)中存在著困難,只學(xué)習(xí)到了一些最基本的知識(shí),這導(dǎo)致編寫程序時(shí)經(jīng)常出現(xiàn)一些語法錯(cuò)誤。經(jīng)細(xì)心修改終于將程序改正完成。2在短時(shí)間內(nèi)用Java語言來設(shè)計(jì)一個(gè)具體的系統(tǒng)是一個(gè)較大的挑戰(zhàn)。主要是對(duì)于正規(guī)開發(fā)一個(gè)系統(tǒng)的流程不
17、熟悉,適應(yīng)起來比較慢,編寫各個(gè)模塊相對(duì)應(yīng)的操作時(shí),自己感覺難以動(dòng)手,這表明所學(xué)的知識(shí)不能靈活運(yùn)用到實(shí)際中。只能大量閱讀相關(guān)的書籍,對(duì)于書上以及網(wǎng)站上下載的資料中的Java實(shí)例加強(qiáng)理解,還有就是多跟精通此方面的老師和同學(xué)交流,取其精華。3在加入文件的時(shí)候,文件中只能存放一行數(shù)據(jù)且每次記錄都覆蓋上次的紀(jì)錄,竟跟同學(xué)反復(fù)討論后,終于將文件記錄成功。4在判斷輸入的帳號(hào)和密碼是否與原帳號(hào)和密碼一致時(shí),我原本想用數(shù)組將每一位數(shù)字都一一比較,但后來發(fā)現(xiàn)用整型變量就可以了,而且比數(shù)組簡便多了,定義語句如下: int cardNum = ;/信用卡號(hào) int password = ;/密碼比較語句如下:(car
18、dNum1=cardNum)&(password1=password)心得體會(huì)這次作業(yè)讓我對(duì)于實(shí)際動(dòng)手能力與系統(tǒng)開發(fā)的流程的有了很大的提升,讓我了解到進(jìn)行軟件的開發(fā)必須多進(jìn)行實(shí)際的練習(xí)與操作,才能有進(jìn)步。在這作業(yè)我主要學(xué)會(huì)了運(yùn)用Java語言設(shè)計(jì)界面、輸入文本等,學(xué)會(huì)了綜合運(yùn)用Java語言。這次作業(yè)內(nèi)容主要是運(yùn)用JAVA語言來編寫一個(gè)ARM銀行程序,由于以前學(xué)的不是很扎實(shí),而且還有些知識(shí)我們都是沒有學(xué)過的,這就要求我們?nèi)ゲ橄嚓P(guān)的書籍,還有就是和同學(xué)之間的交流。正因?yàn)檫@樣,才鍛煉了我的自學(xué)的能力,還有就是加深了我對(duì)各個(gè)知識(shí)點(diǎn)的認(rèn)識(shí),并且提高了我對(duì)專業(yè)的學(xué)習(xí)的興趣,為我以后的學(xué)習(xí)打下了基礎(chǔ)。在這個(gè)過
19、程當(dāng)中,我學(xué)到了很多的知識(shí),同時(shí)也感謝我的同學(xué)的幫助和指導(dǎo)。在以后的學(xué)習(xí)當(dāng)中,我會(huì)更加努力的學(xué)習(xí)好專業(yè)知識(shí),并將所學(xué)的知識(shí)用于實(shí)踐當(dāng)中去,以便牢固掌握知識(shí)。附:/Cash.javaimport java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;import javax.swing.*;public class Cash public static void main( String args ) int cardNum1 = 1; int password1 = 1; int cardNum = ;
20、/信用卡號(hào) int password = ;/密碼 String str1 = ; String str2 = ; String str3 = ; Thread clock=null; double cash = 0; int money = 0; int i = 1; double rate = 0.0023;do str1=JOptionPane.showInputDialog(賬號(hào):+n);/輸入個(gè)人信息 cardNum1=Integer.parseInt(str1); str2=JOptionPane.showInputDialog(密碼:+n);/輸入個(gè)人信息 password1=I
21、nteger.parseInt(str2); if(cardNum1=cardNum)&(password1=password) break; else if(cardNum1!=cardNum)|(password1!=password) JOptionPane.showMessageDialog(null,錯(cuò)誤!請(qǐng)重輸); str1=JOptionPane.showInputDialog(賬號(hào):+n);/讀入數(shù)據(jù) cardNum1=Integer.parseInt(str1); str2=JOptionPane.showInputDialog(密碼:+n);/讀入數(shù)據(jù) password1=
22、Integer.parseInt(str2); if(cardNum1!=cardNum)&(password1!=password) JOptionPane.showMessageDialog(null,兩次輸入錯(cuò)誤!請(qǐng)退出!+n+卡被吞!); System.exit(0); else System.exit(0); else System.exit(0); while( i0 );int choise; while( i=1 )doString inputChoise = JOptionPane.showInputDialog ( t請(qǐng)輸入您選擇的項(xiàng)目代號(hào):n +tt 1 查詢余額n +t
23、t 2 存款n +tt 3 取款n +tt 4 利率n +tt 5 退出 );choise = Integer.parseInt( inputChoise ); switch( choise )case 1 :cash= cash + cash * rate;JOptionPane.showMessageDialog( null,您的余額: + cash );break;case 2 : String in = JOptionPane.showInputDialog( 請(qǐng)?jiān)诳瞻卓騼?nèi)輸入金額!n+您要存款的金額是: );money = Integer.parseInt( in );if(mone
24、y0)&(money%100=0)cash=cash+money;JOptionPane.showMessageDialog(null,存款成功!);JOptionPane.showMessageDialog(null,您的余額是:+cash);elseJOptionPane.showMessageDialog(null,您的輸入金額非法!請(qǐng)重輸-);try FileWriter fw = new FileWriter( d:atm.txt ,true); PrintWriter out = new PrintWriter(fw); out.println(存款: +money); out.c
25、lose(); fw.close(); catch (IOException e) System.out.println( Write file error! ); e.printStackTrace(); break;case 3 : String out = JOptionPane.showInputDialog( 請(qǐng)?jiān)诳瞻卓騼?nèi)輸入金額!n+您要取款的金額是: );money = Integer.parseInt( out );if(money0)&(money%100=0)cash=cash-money;JOptionPane.showMessageDialog(null,取款成功!);JOptionPane.showMessageDialog(null,您的余額是:+cash);JOptionPane.showMessageDialog(null,請(qǐng)取回卡!);if(money%100=0)&(money=0) cash = cash - money; JOptionPane.showMessageDialog(null,您的余額是:+cash); if(money0) JOptionPane.sho
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 采油工道德考核試卷含答案
- 建筑幕墻設(shè)計(jì)師安全演練強(qiáng)化考核試卷含答案
- 2025四川雅安雨城區(qū)定向招聘社區(qū)工作者38人備考題庫附答案
- 塑料真空成型工8S考核試卷含答案
- 飛機(jī)任務(wù)系統(tǒng)裝調(diào)工創(chuàng)新思維競賽考核試卷含答案
- 電子電氣產(chǎn)品能效檢驗(yàn)員成果考核試卷含答案
- 電鳴樂器接裝工操作技能考核試卷含答案
- 照相機(jī)及器材制造工創(chuàng)新意識(shí)考核試卷含答案
- 2024年湖南石油化工職業(yè)技術(shù)學(xué)院輔導(dǎo)員招聘考試真題匯編附答案
- 2024年滇西科技師范學(xué)院輔導(dǎo)員考試筆試題庫附答案
- 能源行業(yè)人力資源開發(fā)新策略
- 工作照片拍攝培訓(xùn)課件
- 2025年海南三亞市吉陽區(qū)教育系統(tǒng)公開招聘編制教師122人(第1號(hào))筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2026年孝昌縣供水有限公司公開招聘正式員工備考題庫參考答案詳解
- 托管學(xué)校合作合同協(xié)議
- 產(chǎn)品銷售團(tuán)隊(duì)外包協(xié)議書
- 2025年醫(yī)保局支部書記述職報(bào)告
- 汽車充電站安全知識(shí)培訓(xùn)課件
- 世說新語課件
- 全體教師大會(huì)上副校長講話:點(diǎn)醒了全校200多名教師!毀掉教學(xué)質(zhì)量的不是學(xué)生是這7個(gè)環(huán)節(jié)
- 民航招飛pat測試題目及答案
評(píng)論
0/150
提交評(píng)論