版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 ATM柜員機(jī)模擬實(shí)現(xiàn)ATM柜員機(jī)模擬實(shí)現(xiàn) 摘要計(jì)算機(jī)科學(xué)技術(shù)的發(fā)展不僅極大地促進(jìn)了整個(gè)科學(xué)的發(fā)展,而且明顯加快了經(jīng)濟(jì)信息化和社會(huì)信息化的進(jìn)程。金融業(yè)ATM取款機(jī)的誕生不僅是世界金融行業(yè)中的一大進(jìn)步,更是其發(fā)展歷史性的轉(zhuǎn)折點(diǎn)。目前國內(nèi)的銀行大力發(fā)展銀行自動(dòng)取款機(jī)(ATM),以提高工作效率和降低成本。全文共分為緒論、課題要求及分析、 系統(tǒng)需求分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)與測(cè)試、課程設(shè)計(jì)總結(jié)六個(gè)部分,利用JAVA語言強(qiáng)大功能,并具有面向?qū)ο箝_發(fā)等的特點(diǎn),聯(lián)系實(shí)際ATM應(yīng)用界面,以win8操作系統(tǒng)后臺(tái)開發(fā)出了一套自動(dòng)取款機(jī)系統(tǒng)。在此論文中ATM柜員機(jī)模擬系統(tǒng)主要是由各個(gè)Windows窗口組成,它具有登錄
2、頁面、選擇服務(wù)、存取款、查詢余額、修改密碼和退卡等功能,它的各種按鈕的事件和功能能夠?qū)崿F(xiàn)模擬ATM柜員機(jī)的基本要求。完成整個(gè)程序設(shè)計(jì)之后,經(jīng)過測(cè)試表明該ATM柜員機(jī)模擬系統(tǒng)運(yùn)行穩(wěn)定且各項(xiàng)功能都能正確運(yùn)行,達(dá)到預(yù)期的要求。 關(guān)鍵詞:ATM柜員機(jī);存取款;查詢;JAVA語言SIMULATION OF ATM TELLER MACHINES TO ACHIEVEABSTRACT The development of computer science and technology not only greatly enhance the development
3、of science, but also significantly speeds up the information of the economy and society. The birth of the financial industry ATM machine is not only a great progress of world financial industry, is a turning point in the deve
4、lopment history of. At present the domestic bank developing bank automatic teller machine(ATM), and to improve the work efficiency and reduce cost. The full text is divided into introduction, the requirements of the project and analysis, system requi
5、rements analysis, system design, system implementation and testing, curriculum design is summarized in six parts, the use of JAVA language and powerful function, and has the characteristic of object-oriented development, contact the actual&
6、#160;ATM application interface, based on win8operating system backstage developed an automatic teller machine system. In this paper the ATM teller machine simulation system is mainly composed of various Windows window, it has the login
7、 page, select a service, withdrawals,balance inquiries, modify passwords and other functions button back card, itsevents and functions can simulate the ATM machine to the basic requirements. After completing the design of the whole pro
8、cedure, after testing showed that the ATM teller machine simulation system is stable in operation and the variousfunctions are correct operation, to achieve the desired requirements.Key words: ATM machine; Deposit; Query; JAVA
9、language目 錄1 緒論.1 1.1 課題背景.1 1.2 課題目的.12 課題要求及分析.2 2.1 題目及要求.2 2.2 操作環(huán)境.2 2.3 開發(fā)工具.33 系統(tǒng)需求分析.33.1 功能需求分析.33.2 其他需求分析.34 系統(tǒng)設(shè)計(jì).44.1 總體設(shè)計(jì).44.2 界面設(shè)計(jì).54.3 功能模塊設(shè)計(jì).6 4.3.1 登陸頁面模塊設(shè)計(jì).6 4.3.2 選擇服務(wù)模塊設(shè)計(jì).7 4.3.3 取款模塊設(shè)計(jì).9 4.3.4 修改密碼模塊設(shè)計(jì).10 4.3.5 退卡模塊設(shè)計(jì).114.4 異常處理情況說明.115 系統(tǒng)實(shí)現(xiàn)與測(cè)試.126 用戶使用說明.177 課程設(shè)計(jì)總結(jié).19參考文獻(xiàn).20附錄.
10、211 緒論1.1 課題背景ATM自動(dòng)取款機(jī)是由計(jì)算機(jī)控制的持卡人自我服務(wù)型的金融專用設(shè)備。隨著我國金融電子化建設(shè)的深入發(fā)展和銀行客戶對(duì)金融服務(wù)質(zhì)量要求的提高,自動(dòng)柜員(ATM機(jī))在金融行業(yè)的應(yīng)用越來越廣泛,自動(dòng)柜員機(jī)(ATM機(jī))在拉近客戶與銀行之間的距離,擴(kuò)展?fàn)I業(yè)網(wǎng)點(diǎn),改善用卡環(huán)境,提供全天候、全方位的金融服務(wù),降低經(jīng)營成本,提高金融行業(yè)的服務(wù)質(zhì)量和綜合競爭實(shí)力等方面正發(fā)揮著不可替代的作用。同時(shí),隨著國內(nèi)銀行機(jī)構(gòu)的大量增加,我國的銀行業(yè)面臨更加激烈的同業(yè)競爭,如何提供更多的金融產(chǎn)品和更優(yōu)質(zhì)的服務(wù),如何吸引更多的客戶,如何利用計(jì)算機(jī)技術(shù)加強(qiáng)銀行帳戶信息管理,提高銀行的工作效率和業(yè)務(wù)竟?fàn)幠芰κ菙[
11、在各家銀行面前的一個(gè)迫切需要解訣的問題。Java是一個(gè)廣泛使用的編程語言,是一種新的計(jì)算概念。1995年Java的誕生讓全世界的程序員為之瘋狂。與以往的任何一種語言相比Java都有著無可比擬的優(yōu)勢(shì)。首先,Java是一種簡單、面向?qū)ο?、分布式、解釋、健壯、安全、結(jié)構(gòu)中立、可移植、高效能、動(dòng)態(tài)的語言。目前,Java已得到了全世界主要計(jì)算機(jī)軟硬件廠商的支持,在計(jì)算機(jī)領(lǐng)域中得到了廣泛應(yīng)用。本系統(tǒng)選題為基于Java程序設(shè)計(jì)的ATM柜員機(jī)模擬系統(tǒng),是模擬銀行存取款的管理。設(shè)計(jì)的指導(dǎo)思想是一切為使用者著想,界面要美觀大方,操作盡量簡單明了,而且作為一個(gè)實(shí)用的管理系統(tǒng)要有要有良好的容錯(cuò)性,在出現(xiàn)誤操作時(shí)能盡量
12、及時(shí)地給出警告,以便用戶及時(shí)地改正。鑒于本系統(tǒng)的特殊性,還需要本程序有良好的保密性。1.2 課題目的對(duì)用戶來說,自動(dòng)柜員機(jī)(ATM機(jī))的誕生,使原來必須到銀行柜臺(tái)辦理的賬務(wù)查詢、轉(zhuǎn)賬等業(yè)務(wù),可以在大街小巷的固定取款機(jī)前進(jìn)行辦理。對(duì)銀行來說,自動(dòng)柜員機(jī)(ATM機(jī))的開通,將大大提高工作效率,在方便用戶的同時(shí)可以節(jié)省大量的柜臺(tái)服務(wù)為人員,從而降低生產(chǎn)經(jīng)營成本。同時(shí),學(xué)生在教師指導(dǎo)下運(yùn)用所學(xué)課程的知識(shí)來研究、解決一些具有一定綜合性問題的專業(yè)課題。通過課程設(shè)計(jì)(論文),提高學(xué)生綜合運(yùn)用所學(xué)知識(shí)來解決實(shí)際問題、使用文獻(xiàn)資料、及進(jìn)行科學(xué)實(shí)驗(yàn)或技術(shù)設(shè)計(jì)的初步能力,為畢業(yè)設(shè)計(jì)(論文)打基礎(chǔ)。2 課題要求與分析
13、2.1 題目及要求課題描述:基于Java程序設(shè)計(jì)的ATM柜員機(jī)模擬系統(tǒng),ATM柜員機(jī)模擬系統(tǒng)要求是由各個(gè)Windows窗口組成,它由登錄頁面、選擇服務(wù)、取款、查詢余額、修改密碼和退卡等功能。它的各種按鈕的事件和功能能夠?qū)崿F(xiàn)模擬ATM柜員機(jī)的基本要求?;疽螅海?)實(shí)時(shí)性好、靈活性強(qiáng)、易于不同年齡階段的人操作;(2)以Windows窗口形式顯示,標(biāo)題欄為ATM柜員機(jī)名稱;(3)用戶界面窗口右上角有最小化按鈕、最大化按鈕、關(guān)閉按鈕;(4)不同的界面窗口中有不同的按鈕和選擇菜單。實(shí)現(xiàn)提示:(1)用戶界面設(shè)計(jì)為菜單方式。程序運(yùn)行用戶登錄后,顯示如下功能菜單: 1.存款;2.取款;3.查詢余額;4.修
14、改密碼;5.退出(2)用戶根據(jù)自己的需求選擇相應(yīng)數(shù)字,程序就執(zhí)行相應(yīng)的功能并顯示下一級(jí)菜單,直至用戶單擊【確定】退出界面。 2.2 操作環(huán)境(1) Windows 8系統(tǒng)(2) MyEclipse 編譯環(huán)境 (3) Wps 20132. 3 開發(fā)工具JAVA語言3 概要設(shè)計(jì)3.1 功能需求分析ATM柜員機(jī)模擬系統(tǒng)的主要功能如下所述:(1) 要求使用圖形用戶界面;(2) 當(dāng)輸入給定的卡號(hào)和密碼(初始卡號(hào)為201253100226和密碼為 1314521)時(shí),系統(tǒng)能登錄進(jìn)入ATM柜員機(jī)模擬系統(tǒng);(3) 用戶可以按照以下流程進(jìn)行操作:l 查詢余額:初始余額為60000元;l ATM存款:不能出現(xiàn)負(fù)存
15、款;l ATM取款:每次取款金額為100的倍數(shù),總額不超過5000元,支取金 額不允許透支;l 修改密碼:只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況 下才可以成功修改密碼。3.2 其他需求分析性能描述:ATM柜員機(jī)模擬系統(tǒng)實(shí)時(shí)性好、靈活性強(qiáng)、易于不同年齡階段的人操作。設(shè)計(jì)約束:開發(fā)工具:MyEclipse運(yùn)行環(huán)境:Windows XP 、Window 7、Window 8能實(shí)現(xiàn)用戶所定義的各項(xiàng)需求界面要求:以Windows窗口形式顯示,標(biāo)題欄為ATM柜員機(jī)名稱,右上角有最小化按鈕、最大化按鈕、關(guān)閉按鈕,不同的窗口中有不同的按鈕和選擇菜單。系統(tǒng)流程: 1. 首先來到“歡迎使用ATM機(jī)!
16、 ”登錄頁面,輸入卡號(hào)和密碼。 2. 然后進(jìn)入選擇服務(wù)模塊。3. 用戶根據(jù)自己的需要選擇相應(yīng)的的功能。4. 用戶可根據(jù)相應(yīng)的功能可任意輸入一些測(cè)試數(shù)據(jù)。5. 直到用戶單擊【確定】菜單退出頁面。4 系統(tǒng)設(shè)計(jì)4.1 總體設(shè)計(jì)根據(jù)課程設(shè)計(jì)的要求,為了讓系統(tǒng)設(shè)計(jì)的思路清晰,我所設(shè)計(jì)的ATM柜員機(jī)模擬系統(tǒng)主要是由登錄頁面模塊還由選擇服務(wù)模塊組成,其中選擇服務(wù)模塊又由存款模塊、取款模塊、查詢余額模塊、修改密碼模塊、退卡模塊組成。該系統(tǒng)主要功能模塊的流程圖如下: 登錄頁面模塊 選擇服務(wù)模塊存 款模塊取 款模塊查詢余額模塊修改密碼模塊退卡模塊4.2 界面設(shè)計(jì)ATM柜員機(jī)模擬系統(tǒng)的界面應(yīng)該要簡單明了、思路清晰,
17、當(dāng)然界面樣式美觀、人性化就更好了。本次課程設(shè)計(jì)的界面主要是由窗體組成,操作簡單,而每一個(gè)窗口則執(zhí)行相應(yīng)的功能,一個(gè)系統(tǒng)界面的好壞直接影響到用戶的操作,界面設(shè)計(jì)要求樣式美觀、簡單明了、方便易操作。本次課程設(shè)計(jì)的界面主要分為窗體、菜單、按鈕和文本輸入框幾個(gè)部分,分別執(zhí)行相應(yīng)的操作。(1)窗體的設(shè)計(jì)窗體整個(gè)框架使用Frame類構(gòu)造,F(xiàn)rame有自己的外邊框和自己的標(biāo)題,創(chuàng)建Frame時(shí)可以指定其窗口標(biāo)題,我創(chuàng)建的窗口標(biāo)題是各個(gè)不同功能的模塊的名字,比如說查詢余額,還有取款等。相應(yīng)源代碼為:WindowBox(String s,Account act)super(“ATM柜員機(jī)”); 、Selecti
18、on(String s,Account act) super(s);向Frame窗口中添加組件使用add( )。例如:button1 = new Button("存款");p1.add(button1);this.add(p1);每個(gè)Frame在其右上角都有三個(gè)控制圖標(biāo),分別代表將窗口最小化、窗口最大化和關(guān)閉的操作,其中最小化和最大化操作Frame可自動(dòng)完成,而關(guān)閉窗口操作實(shí)現(xiàn)需要書寫有關(guān)的代碼,在的程序中我采用的是對(duì)WINDOWS_CLOSING事件做出響應(yīng),調(diào)用dispose()方法關(guān)閉窗口。Frame也可以引發(fā)WindowsEvent類代表的窗口事件。相應(yīng)源代碼為:a
19、ddWindowListener(new WindowAdapter() /窗口偵聽器,以從此窗口接收窗口事件public void windowClosing(WindowEvent e) /處理窗口關(guān)閉事件 System.exit(0);); (2)窗體的主要結(jié)構(gòu)的設(shè)計(jì)本次課程設(shè)計(jì)窗口的主要結(jié)構(gòu)的特點(diǎn)就是每個(gè)窗口都對(duì)應(yīng)著一個(gè)特定的功能。比如說報(bào)各種各樣的錯(cuò),還有各種查詢余額、取款、選擇服務(wù)等,所以它們都是由各種按鈕和文本框、標(biāo)簽組成的,而聯(lián)系各個(gè)窗體成為一個(gè)整體的就是各個(gè)按鈕的監(jiān)聽事件。為了定義各個(gè)按鈕所對(duì)應(yīng)的命令和操作,首先需要將各個(gè)按鈕注冊(cè)給實(shí)現(xiàn)了動(dòng)作事件的監(jiān)聽接口的監(jiān)聽者,然后為監(jiān)聽
20、者定義actionPerformed(ActionEvent e)方法,在這個(gè)方法中調(diào)用e.getSource()或e.getActionCommand()來判斷用戶點(diǎn)擊的菜單子項(xiàng),并完成這個(gè)菜單子項(xiàng)定義的操作。4.3 功能模塊設(shè)計(jì)4.3.1 登陸頁面模塊設(shè)計(jì) 平常與ATM柜員機(jī)打交道比較多的也是大家對(duì)安全比較關(guān)心的問題:密碼。所以第一個(gè)界面就是要輸入密碼和卡號(hào)才能繼續(xù)服務(wù)。本次課程設(shè)計(jì)定義了文本框累的對(duì)象tf1,tf2。主要是用于輸入單行的文本;文本區(qū)調(diào)用public String getText()方法,獲取用戶想要的字符串。用來判斷輸入的密碼和卡號(hào)是否正確,如果不正確的話,則彈出密碼或卡
21、號(hào)錯(cuò)誤的警告框,并用dispose()關(guān)掉窗口。此模塊相應(yīng)的部分源代碼為:public void actionPerformed(ActionEvent e)Account act;act=new Account("201253100226","DuShuai","1314521",60000);/初始化 /*選擇各種服務(wù)*/if(e.getSource() = button1)String number1,number2;/輸入的兩個(gè)卡號(hào)和密碼的變量number1=tf1.getText().toString();number2 =
22、 new String(tf2.getPassword() ;/*判斷兩次輸入的卡號(hào)和密碼是否正確*/if(act.getCode().equals(number1)&&(act.getPassword().equals(number2)dispose();new Selection("選擇服務(wù)",act);elseJOptionPane.showMessageDialog(this, "密碼或帳號(hào)錯(cuò)誤!","賬戶提示信息",JOptionPane.ERROR_MESSAGE );dispose();new Windo
23、wBox("ATM") ;if(e.getSource()=button2)System.exit(0);dispose();/退出4.3.2 選擇服務(wù)模塊設(shè)計(jì) 在選擇服務(wù)模塊中,有各種ATM的服務(wù)功能,只要用戶在該界面中選擇按鈕,它就會(huì)彈出各個(gè)相應(yīng)的界面。每一個(gè)按鈕都有監(jiān)聽器,在選擇了按鈕后,java.awt.event中的ActionEvent類創(chuàng)建一個(gè)事件對(duì)象,并將它傳遞給方法public void actionPerformed(ActionEvent e)中的參數(shù)e,監(jiān)視器就會(huì)知道所發(fā)生的事件,對(duì)此事件進(jìn)行處理。其中的部分源代碼為:p.add(new Label(
24、"請(qǐng)選擇你要的服務(wù)");this.add(p); /*各種服務(wù)功能*/buttonCUN = new Button(" 存 款 ");p1.add(buttonCUN);this.add(p1);buttonQU = new Button(" 取 款 ");p2.add(buttonQU);this.add(p2);buttonCHA = new Button(" 查詢余額 ");p3.add(buttonCHA);this.add(p3);buttonGAI = new Button(" 修改密碼 &q
25、uot;);p5.add(buttonGAI);this.add(p5);buttonTUI = new Button(" 退 出 ");p4.add(buttonTUI);this.add(p4);this.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););buttonCUN.addActionListener(this);buttonQU.addActionListener(this);buttonCHA.addActionListe
26、ner(this);buttonTUI.addActionListener(this);buttonGAI.addActionListener(this);setBounds(150,150,300,200);setVisible(true);validate();public void actionPerformed(ActionEvent e)if(e.getSource()=buttonCUN)/存款dispose() ;new SetBalance("存款款",act);else if(e.getSource()=buttonQU)/取款dispose();new
27、GetBalance("取款",act);else if(e.getSource()=buttonCHA)/查詢余額dispose();new Query("查詢余額",act);else if(e.getSource()=buttonTUI)/退出System.exit(0);dispose();else if(e.getSource()=buttonGAI)/修改密碼dispose();new ChangePassword("修改密碼",act);4.3.3 取款模塊設(shè)計(jì)在取款模塊中,和其他的界面也是同樣的結(jié)構(gòu)。也是有一個(gè)文本框和
28、一個(gè)按鈕還有標(biāo)簽組成的。用戶在文本框中輸入他想取的數(shù)額,但是必須是100的倍數(shù),而且每一次最多只能取5000塊。當(dāng)然了取款的時(shí)候也不能超過卡里的余額,再就是卡里的余額不可以為負(fù),否則就會(huì)彈出報(bào)錯(cuò)的窗口。其部分源代碼為:public String withdrawMoney(double money)String str = null ; if(money<=0) str = "取款數(shù)目須是正數(shù)!" else if(getMoney()<0)/判斷余額是否為負(fù) str="余額為負(fù)數(shù)!" else if(money<=getMoney()
29、if(money%100!=0)|(money>=5000)/取錢數(shù)為100的倍數(shù)或不大于5000 str= "取款數(shù)目須是一百的整數(shù)倍!" else setBalance(money); str = "取款成功:余額為"+getMoney(); else str = "余額不足!" return str ;4.3.4 修改密碼模塊設(shè)計(jì) 在修改密碼模塊中,首先你必須要輸入你的舊密碼是否正確,否則就會(huì)報(bào)錯(cuò)。再一個(gè)就是要兩次輸入你的新密碼,且兩次藥匹配,否則也會(huì)報(bào)錯(cuò),然后再重新回到修改密碼的界面。在修改密碼時(shí)用到的部分源代碼為:/*
30、判斷舊密碼是是否正確*/if(pwd2.equals(pwd1)if(pwd3.equals(pwd4)/判斷兩次輸入的新密碼是個(gè)匹配act.changePassword(pwd3);/啟用新的密碼dispose();JOptionPane.showMessageDialog(this, "修改密碼成功!");new Selection("選擇",act);/返回選擇服務(wù)窗口elsethis.setVisible(true); dispose(); JOptionPane.showMessageDialog(this, "兩次輸入要修改的密碼不
31、同,更新密碼失敗!"); new Selection("選擇",act); elsethis.setVisible(false);dispose();JOptionPane.showMessageDialog(this, "輸入密碼錯(cuò)誤,更新密碼失敗!"); new Selection("選擇",act); 4.3.5 退卡模塊設(shè)計(jì) 在退卡模塊設(shè)計(jì)中,這個(gè)方法就更加的簡單了,它只是用了以下: if(e.getSource()=buttonTUI)/退出System.exit(0);dispose();4.4 異常處理情況說明
32、(1)打開、保存文件時(shí)的異常處理 需要處理的異常:IOException(2)數(shù)據(jù)庫訪問時(shí)的異常處理 需要處理的異常:SQLException(3)加載類時(shí)的異常處理 需要處理的異常:ClassNotFindException,當(dāng)應(yīng)用程序試圖使用Class類中的forName方法通過字符串名加載類時(shí),但是沒有找到具有指定名稱的類的定義。(4)加載URL時(shí)的異常 需要處理的異常:MalformedURLException,拋出這一異常指示出現(xiàn)了錯(cuò)誤的 URL?;蛘咴谝?guī)范字符串中找不到任何合法協(xié)議,或者無法分析字符串。5 系統(tǒng)實(shí)現(xiàn)與測(cè)試1. 登錄模塊頁面的實(shí)現(xiàn)與測(cè)試打開MyEclipse,編譯運(yùn)行
33、程序后,將會(huì)看到如下的界面圖1,如果輸入的密碼或卡號(hào)不正確的話就會(huì)報(bào)圖2的錯(cuò)誤。圖1 主界面登陸頁面圖2 輸入錯(cuò)誤12. 選擇服務(wù)模塊頁面的實(shí)現(xiàn)與測(cè)試當(dāng)輸入的密碼和卡號(hào)正確,單擊確定后就會(huì)進(jìn)入到選擇服務(wù)的界面,如圖3所示。然后就可以選擇所需要的服務(wù)。圖3 選擇服務(wù)界面(1)存款模塊頁面的實(shí)現(xiàn)與測(cè)試 圖4 存款界面(2) 取款模塊頁面的實(shí)現(xiàn)與測(cè)試 圖5 取款界面當(dāng)輸入的錢數(shù)小于100就會(huì)報(bào)圖6的錯(cuò)誤如下:圖6 輸入錯(cuò)誤2當(dāng)輸入的錢數(shù)不是100的倍數(shù)或每一次大于5000時(shí)就會(huì)報(bào)圖7的錯(cuò)誤如下:圖7 輸入錯(cuò)誤3當(dāng)輸入的錢數(shù)為4000時(shí)成功取款報(bào)圖8如下:圖8 輸入正確(3) 查詢余額模塊頁面的實(shí)現(xiàn)與
34、測(cè)試圖9 查詢余額界面(4) 修改密碼模塊頁面的實(shí)現(xiàn)與測(cè)試圖10 修改密碼界面經(jīng)過測(cè)試表明該ATM柜員機(jī)模擬系統(tǒng)運(yùn)行穩(wěn)定且各項(xiàng)功能都能正確運(yùn)行,所有的功能基本上都實(shí)現(xiàn)了,達(dá)到預(yù)期的要求。6 用戶使用說明ATM柜員機(jī)主要用途1. 能夠?qū)崿F(xiàn)用戶登錄的功能;2. 能夠?qū)崿F(xiàn)用戶存款的功能;3. 能夠?qū)崿F(xiàn)用戶取款的功能;3. 能夠?qū)崿F(xiàn)用戶查詢余額的功能;4. 能夠?qū)崿F(xiàn)用戶修改密碼的功能;5. 能夠?qū)崿F(xiàn)用戶退卡的功能;6. 系統(tǒng)運(yùn)行穩(wěn)定能夠達(dá)到預(yù)期的要求??蛻羰褂迷敿?xì)說明1. 首先用戶來到“歡迎使用ATM機(jī)!用戶登錄頁面;2. 然后進(jìn)入菜單選擇功能模塊,用戶根據(jù)自己的需要選擇相應(yīng)的的功能;3. 用戶每鍵入
35、一個(gè)選擇功能,程序程序就執(zhí)行相應(yīng)的功能;4. 直到用戶單擊【確定】菜單退出系統(tǒng)。注意事項(xiàng)1. 禁止對(duì)程序進(jìn)行胡亂修改,胡亂在程序中增加或刪減代碼;2. 使用正確合法的編譯器編譯程序;3. 按照提示正確的輸入相關(guān)信息,進(jìn)行正確的信息處理;4. 在任何一個(gè)操作結(jié)束后都進(jìn)行保存,這樣才能確保考勤信息的準(zhǔn)確無誤地記錄;5. 妥善保管好存儲(chǔ)的信息,每次使用完畢最好將新存儲(chǔ)信息拷貝保存,防止丟失;6. 不要輕易將程序拷貝給他人。7 課程設(shè)計(jì)總結(jié)問題與不足1. 沒有安裝java或者在環(huán)境變量中并沒有設(shè)置path路徑j(luò)avabin目錄;2. 使用packet 編譯了沒有將指定package包在文件中的java
36、文件。2. 在調(diào)試過程中出現(xiàn)了很多的語法錯(cuò)誤和邏輯錯(cuò)誤;3. 在調(diào)試過程中,系統(tǒng)不能報(bào)錯(cuò)并且不能自動(dòng)終止系統(tǒng)的運(yùn)行;4. 程序的輸出不夠美觀,程序的設(shè)計(jì)還存在不合理的地方,使得程序冗余; 5. 對(duì)于面向?qū)ο蟮姆椒私獠粔蛲笍?,運(yùn)用到實(shí)際的軟件開發(fā)中存在著困難;6. 對(duì)于正規(guī)開發(fā)一個(gè)系統(tǒng)的流程不熟悉,適應(yīng)起來比較慢,編寫各個(gè)模塊相對(duì)應(yīng)的操作時(shí),自己感覺難以動(dòng)手,這表明所學(xué)的知識(shí)不能靈活運(yùn)用到實(shí)際中。解決辦法1. 根據(jù)出現(xiàn)問題,自己要清楚的認(rèn)識(shí)到自己的不足之處,需要大量閱讀相關(guān)的書籍,對(duì)于書上以及網(wǎng)站上下載的資料中的Java實(shí)例必須有清楚的理解;2. 對(duì)于程序運(yùn)行中出現(xiàn)的錯(cuò)誤,及時(shí)的詢問和求解,多
37、跟精通此方面的老師和同學(xué)交流,取其精華;3. 在完成程序的各模塊實(shí)現(xiàn)與測(cè)試后,要認(rèn)真聽取別人對(duì)自己課程設(shè)計(jì)的建議;4. 實(shí)際動(dòng)手能力與系統(tǒng)開發(fā)的流程的適應(yīng),必須多進(jìn)行實(shí)際的練習(xí)與操作,才能有大的進(jìn)步。感想與體會(huì)通過這次的課程設(shè)計(jì),我對(duì)Java語言的界面設(shè)計(jì)、異常處理、Awt控件、Swing控件,輸入輸出流等有了更深的理解,并且使我深刻的認(rèn)識(shí)到實(shí)踐的重要性,只有理論與實(shí)踐相結(jié)合才能達(dá)到很好的學(xué)習(xí)效果,學(xué)到很多東西,同時(shí)也發(fā)現(xiàn)僅僅書本的知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,需要把知識(shí)運(yùn)用到實(shí)踐中去,能力才能得到提高。我深刻感受到了面向?qū)ο笳Z言中類庫的強(qiáng)大功能,掌握了運(yùn)用Java中的類實(shí)現(xiàn)某些基本功能,并學(xué)會(huì)了自己查詢
38、使用類的方法,為以后的面向?qū)ο笳Z言的自學(xué)奠定了基礎(chǔ)。在這次的課程設(shè)計(jì)中,主要是運(yùn)用JAVA語言來編寫一個(gè)小的應(yīng)用程序,當(dāng)然還可以用其他的技術(shù)來輔助了。我用了Java外還用了Swing控件。輸入輸出流等技術(shù)。由于以前學(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ǔ)。此外,我還感受到了面向?qū)ο笳Z言的類庫的強(qiáng)大的功能,掌握了運(yùn)用JAVA語言中的類實(shí)現(xiàn)某些基本功能,并學(xué)會(huì)了自己查詢使用類的方法。 通過這次課程設(shè)計(jì),讓我對(duì)
39、JAVA語言進(jìn)行程序設(shè)計(jì)有了更深的了解,在這個(gè)過程當(dāng)中,我學(xué)到了很多的知識(shí),同時(shí)也感謝我的同學(xué)的幫助和指導(dǎo)。在以后的學(xué)習(xí)當(dāng)中,我會(huì)更加努力的學(xué)習(xí)好專業(yè)知識(shí),并將所學(xué)的知識(shí)用于實(shí)踐當(dāng)中去,以便牢固掌握知識(shí)。由于課程設(shè)計(jì)的題目還有很多,因此沒有對(duì)其他的題目進(jìn)行深入的了解而感到遺憾,因此我希望在以后的學(xué)習(xí)過程中,能夠多多的學(xué)習(xí)這方面沒知識(shí)來彌補(bǔ)自身不足的地方。參考文獻(xiàn)1 印旻,王行言. JAVA語言與面向?qū)ο蟪绦蛟O(shè)計(jì)(第二版)M北京:清華大學(xué)出版社,2012.52 黃聰明,精通.JAVA程序設(shè)計(jì)M北京:清華大學(xué)出版社,2004.43 王文濤,袁海燕. JAVA實(shí)用程序設(shè)計(jì)100例M北京:人民郵電出版
40、社,2005.54 雍俊海. JAVA程序設(shè)計(jì)M北京:清華大學(xué)出版社,2006.85 劉寶林. JAVA程序設(shè)計(jì)與案例M北京:高等教育出版社,2006.116 王萌,劉婧,來賓著.JAVA程序設(shè)計(jì)M北京 冶金工業(yè)出版社,20047 張桂珠,劉麗,陳愛國. JAVA面向?qū)ο蟪绦蛟O(shè)計(jì)M北京:北京郵電大學(xué)出版社,2006.108 畢廣吉. JAVA程序設(shè)計(jì)實(shí)例教程M北京:冶金工業(yè)出版社,2007附錄 源程序清單import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;impor
41、t java.io.*;/*登陸頁面首窗口*/class WindowBox extends Frame implements ActionListenerBox baseBox,box1,box2;TextField tf1,tf2;Button button1;Button button2;WindowBox(String s)/構(gòu)造方法super(s); tf1 = new TextField(6); tf2 = new TextField(6);box1= Box.createVerticalBox;box1.add(new Label("請(qǐng)輸入你的卡號(hào)"); /輸
42、入卡號(hào)box1.add(Box.createVerticalStrut(8);box1.add(new Label("請(qǐng)輸入你的密碼");/輸入密碼box2=Box.createVerticalBox();box2.add(tf1);/box2.add(new TextField(16);box2.add(Box.createVerticalStrut(8);box2.add(tf2);/box2.add(new TextField(16);baseBox=Box.createHorizontalBox();baseBox.add(box1);baseBox.add(Box
43、.createHorizontalStrut(10);baseBox.add(box2);add(baseBox);button1= new Button("確定");/加入按鈕button1.addActionListener(this);add(button1);button2 = new Button("退卡");/退卡按鈕button2.addActionListener(this);add(button2);setLayout(new FlowLayout();/*監(jiān)聽器*/this.addWindowListener(new WindowAd
44、apter()public void windowClosing(WindowEvent e)System.exit(0););setBounds(120,125,200,175);setVisible(true);public void actionPerformed(ActionEvent e)Account act; String card; String pwd;act=new Account("000000","Devil","123456",50000);/初始化 /*選擇各種服務(wù)*/if(e.getSource() =
45、button1)String number1,number2;/輸入的兩個(gè)卡號(hào)和密碼的變量 number1=tf1.getText();number2=tf2.getText();/*判斷兩次輸入的卡號(hào)和密碼是否正確*/if(act.get_Code().equals(number1)&&(act.get_Password().equals(number2)dispose();Selection s = new Selection("選擇服務(wù)",act);elsedispose();ErrorWarn ew = new ErrorWarn("消息!
46、",act);/報(bào)輸入密碼或卡號(hào)不正確if(e.getSource()=button2)System.exit(0);dispose();/退出 /*主函數(shù)*/class ATMpublic static void main(String args)new WindowBox("登錄頁面");/*選擇服務(wù)*/import java.awt.*;import java.awt.event.*;class Selection extends Frame implements ActionListenerButton button1,button2,button3,bu
47、tton4,button5;Panel p1 = new Panel();Panel p2 = new Panel();Panel p3 = new Panel();Panel p4 = new Panel();Panel p5 = new Panel();Panel p = new Panel();Account act;public Selection()Selection(String s,Account act)super(s);this.act=act;this.setLayout(null);this.setLayout(new GridLayout(6,1);p.add(new
48、Label("請(qǐng)選擇你要的服務(wù)");this.add(p); /*各種服務(wù)功能*/button1 = new Button("存款");p1.add(button1);this.add(p1);button2 = new Button("取款");p2.add(button2);this.add(p2);button3 = new Button("查詢余額");p3.add(button3);this.add(p3);button4 = new Button("退出");p4.add(butto
49、n4);this.add(p4);button5 = new Button("修改密碼");p5.add(button5);this.add(p5);this.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);button5.addActionLis
50、tener(this);setBounds(150,150,200,200);setVisible(true);validate();public void actionPerformed(ActionEvent e)if(e.getSource()=button2)/取款dispose();GetBalance gb = new GetBalance("取款",act);if(e.getSource()=button3)/查詢余額Query q =new Query("查詢余額",act);dispose();else if(e.getSource()
51、=button4)/退出System.exit(0);dispose();else if(e.getSource()=button5)/修改密碼ChangePassword cp = new ChangePassword("修改密碼",act);dispose();/*class Test4public static void main(String args) Selection s = new Selection("選擇");*/*取款功能*/import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;class GetBalance ext
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024冷庫租賃合同書范本(適用小型企業(yè))
- 2024年度互聯(lián)網(wǎng)廣告技術(shù)服務(wù)合同
- 2024年買賣合同標(biāo)的為新能源汽車
- 2024年度影視制作與發(fā)行承包合同
- 2024年度房地產(chǎn)商業(yè)綜合體建設(shè)項(xiàng)目施工合同
- 公租房個(gè)人收入證明(12篇)
- 2024年度安置房社區(qū)文化活動(dòng)合同
- 手機(jī)教學(xué)課件教學(xué)
- 2024年度品牌合作框架協(xié)議
- 2024年度特許經(jīng)營合同標(biāo)的及許可使用范圍
- 海洋工程柔性立管發(fā)展概況
- 漢語教師志愿者培訓(xùn)大綱
- 護(hù)理導(dǎo)論 評(píng)判性思維
- SPC培訓(xùn)資料_2
- 學(xué)習(xí)適應(yīng)性測(cè)驗(yàn)(AAT)
- ADS創(chuàng)建自己的元件庫
- MATLAB仿真三相橋式整流電路(詳細(xì)完美)
- 2019年重慶普通高中會(huì)考通用技術(shù)真題及答案
- 天秤座小奏鳴曲,Libra Sonatine;迪安斯,Roland Dyens(古典吉他譜)
- 鋼筋混凝土工程施工及驗(yàn)收規(guī)范最新(完整版)
- 光纜施工規(guī)范及要求
評(píng)論
0/150
提交評(píng)論