![《高級語言程序設(shè)計》課程設(shè)計報告- JAVA程序課程設(shè)計_第1頁](http://file4.renrendoc.com/view10/M00/22/08/wKhkGWWtLraAHuZtAADW5dZKMgc905.jpg)
![《高級語言程序設(shè)計》課程設(shè)計報告- JAVA程序課程設(shè)計_第2頁](http://file4.renrendoc.com/view10/M00/22/08/wKhkGWWtLraAHuZtAADW5dZKMgc9052.jpg)
![《高級語言程序設(shè)計》課程設(shè)計報告- JAVA程序課程設(shè)計_第3頁](http://file4.renrendoc.com/view10/M00/22/08/wKhkGWWtLraAHuZtAADW5dZKMgc9053.jpg)
![《高級語言程序設(shè)計》課程設(shè)計報告- JAVA程序課程設(shè)計_第4頁](http://file4.renrendoc.com/view10/M00/22/08/wKhkGWWtLraAHuZtAADW5dZKMgc9054.jpg)
![《高級語言程序設(shè)計》課程設(shè)計報告- JAVA程序課程設(shè)計_第5頁](http://file4.renrendoc.com/view10/M00/22/08/wKhkGWWtLraAHuZtAADW5dZKMgc9055.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
《高級語言程序設(shè)計》課程設(shè)計報告課題名稱:JAVA程序課程設(shè)計目錄TOC\o"1-3"\u第1章課題概述 11.1課題的目的與要求 1第2章設(shè)計概要 12.1系統(tǒng)功能模塊劃分 12.2ATM取款機系統(tǒng)功能結(jié)構(gòu)圖 2第3章程序功能的實現(xiàn) 33.1首界面設(shè)計 33.2登錄頁面設(shè)計 33.3選擇服務(wù)模塊設(shè)計 33.4取款模塊設(shè)計 43.5修改密碼設(shè)計 43.6退卡模塊設(shè)計 5系統(tǒng)運行效果及存在問題 54.1系統(tǒng)運行效果 54.2存在問題 9程序部分代碼 95.1登錄頁面首窗口設(shè)計代碼 95.2監(jiān)聽器設(shè)計代碼 105.3選擇各種服務(wù)設(shè)計代碼 115.4主函數(shù)設(shè)計代碼 115.5選擇服務(wù)設(shè)計代碼 125.6各種服務(wù)功能設(shè)計代碼 125.7取款功能設(shè)計代碼 145.8修改密碼設(shè)計代碼 165.9設(shè)定新密碼設(shè)計代碼 175.10窗口事件設(shè)計代碼 175.11查詢余額功能設(shè)計代碼 18第6章總結(jié) 19參考文獻 19
第1章課題概述1.1課題的目的與要求輸入給定的卡號和密碼(初始卡號為62250028和密碼為123456)時,系統(tǒng)能登錄ATM柜員機系統(tǒng),用戶可以按照以下規(guī)則進行操作:1、查詢余額:初始余額為10000元;2、ATM取款:每次取款金額為100的倍數(shù),總額不超過5000元,支取金額不允許透支;3、修改密碼:新密碼長度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼;4、要求數(shù)據(jù)采用文件存儲,如果界面實現(xiàn)采用了GUI,則酌情加分。第2章設(shè)計概要2.1系統(tǒng)功能模塊劃分 本系統(tǒng)主要包括登陸模塊設(shè)計,選擇服務(wù)模塊設(shè)計,取款模塊設(shè)計,修改密碼模塊設(shè)計,退卡模塊設(shè)計等幾個功能模塊。其中, (1)登陸模塊設(shè)計:與ATM柜員機打交道比較多的,也是大家對安全比較關(guān)心的問題:密碼。所以第一個界面就是要輸入密碼和卡號才能繼續(xù)服務(wù)。 (2)選擇服務(wù)模塊設(shè)計:在選擇服務(wù)模塊中,有各種ATM的服務(wù)功能,只要用戶在該界面中選擇按鈕,它就會彈出各個相應(yīng)的界面。 (3)取款模塊設(shè)計:在取款模塊中,和其他的界面也是同樣的結(jié)構(gòu)。也是有一個文本框和一個按鈕還有標簽組成的,實現(xiàn)用戶取款的服務(wù)。 (4)修改密碼模塊設(shè)計:在修改密碼模塊中,首先你必須要輸入你的舊密碼是否正確,否則就會報錯。再一個就是要兩次輸入你的新密碼,且兩次要匹配,否則也會報錯,然后再重新回到修改密碼的界面。 (5)退卡模塊設(shè)計:此功能非常簡單,僅僅是實現(xiàn)彈出卡的功能。2.2ATM取款機系統(tǒng)功能結(jié)構(gòu)圖總體設(shè)計中最核心的問題是系統(tǒng)總體功能結(jié)構(gòu)的確定和子系統(tǒng)與模塊的劃分,結(jié)構(gòu)化。ATM取款機系統(tǒng)功能結(jié)構(gòu)圖,如圖1所示:登陸頁面模塊登陸頁面模塊取款模塊選擇服務(wù)模塊退卡模塊查詢余額模塊修改密碼模塊圖1ATM取款機系統(tǒng)功能結(jié)構(gòu)圖該ATM取款機系統(tǒng)各個部分負責的主要業(yè)務(wù)如下:(1)登陸頁面模塊,對取款者進行身份驗證。(2)選擇服務(wù)模塊,包括取款,余額查詢,轉(zhuǎn)帳,修改密碼,退出等功能模塊。(3)取款模塊,實現(xiàn)取款的具體操作。(4)查詢余額模塊,查看當前登陸人員的余額。(5)修改密碼模塊,可以方便的實現(xiàn)當前登陸人員對自己的密碼進行修改。(6)退卡模塊,完成取款,查詢等功能后退出銀行卡。
第3章程序功能的實現(xiàn)3.1首界面設(shè)計配置好環(huán)境,編譯程序,當程序運行后,首先看到的頁面銀行管理系統(tǒng)頁面,它的運行效果圖,如圖2所示:圖2銀行管理系統(tǒng)首界面3.2登錄頁面設(shè)計定義了文本框類的對象tf1,tf2。主要是用于輸入單行的文本;文本區(qū)調(diào)用publicStringgetText()方法,獲取用戶想要的字符串。用來判斷輸入的密碼和卡號是否正確,如果不正確的話,則彈出密碼或卡號錯誤的警告框,并用dispose()關(guān)掉窗口。此模塊相應(yīng)的詳細源代碼見附錄部分,部分代碼如下:box1=Box.createVerticalBox; box1.add(newLabel("請輸入你的卡號"));//輸入卡號 box1.add(Box.createVerticalStrut(8)); box1.add(newLabel("請輸入你的密碼"));//輸入密碼3.3選擇服務(wù)模塊設(shè)計在選擇服務(wù)模塊中,有各種ATM的服務(wù)功能,只要用戶在該界面中選擇按鈕,它就會彈出各個相應(yīng)的界面。每一個按鈕都有監(jiān)聽器,在選擇了按鈕后,java.awt.event中的ActionEvent類創(chuàng)建一個事件對象,并將它傳遞給方法publicvoidactionPerformed(ActionEvente)中的參數(shù)e,監(jiān)視器就會知道所發(fā)生的事件,對此事件進行處理。其中的詳細源代碼請參見附錄部分,部分代碼如下: this.setLayout(null); this.setLayout(newGridLayout(6,1)); p.add(newLabel("請選擇你要的服務(wù)")); this.add(p);3.4取款模塊設(shè)計在取款模塊中,和其他的界面也是同樣的結(jié)構(gòu)。也是有一個文本框和一個按鈕還有標簽組成的。用戶在文本框中輸入他想取的數(shù)額,但是必須是100的倍數(shù),而且每一次最多只能取5000塊。當然了取款的時候也不能超過卡里的余額,再就是卡里的余額不能為負,否則就會彈出報錯的窗口。其方法的具體實現(xiàn)代碼請參見附錄部分,部分代碼如下:if((money%100!=0)||(money>=5000)){//取錢數(shù)為100的倍數(shù)或不大于5000 dispose(); ErrorWarn6ew6=newErrorWarn6("消息!",act); } act.set_Balance(money);//重置余額 this.setVisible(false);3.5修改密碼模塊設(shè)計在修改密碼模塊中,首先你必須要輸入你的舊密碼是否正確,否則就會報錯。再一個就是要兩次輸入你的新密碼,且兩次藥匹配,否則也會報錯,然后再重新回到修改密碼的界面。在修改密碼時用到的方法的具體實現(xiàn)代碼請參見附錄部分,部分代碼如下:tf4=newTextField(6); tf5=newTextField(6); tf6=newTextField(6);3.6退卡模塊設(shè)計if(e.getSource()==button4){//退出 System.exit(0); dispose(); }系統(tǒng)運行效果及存在問題4.1系統(tǒng)運行效果進入系統(tǒng)按鈕進入輸入卡號頁面,運行效果圖,如圖3所示:圖3輸入卡號界面輸入卡號后,點擊確定時系統(tǒng)會判斷是否存在此卡號,如果不存在此卡號,系統(tǒng)則會自動提醒用戶此卡號不存在,請重新輸入,如果輸入的是正確的卡后,則進入輸入密碼界面,其運行效果圖,如圖4所示:圖4輸入密碼界面輸入不正確,則會提醒你密碼不正確,請重新輸入,當輸入正確密碼后,點擊確定進入系統(tǒng)主界面,運行效果圖,如圖5所示:圖5系統(tǒng)主界面界面在主界面中包含了6個主要功能,只要用戶在該界面中選擇按鈕,它就會彈出各個相應(yīng)的界面。當點擊取款按鈕時彈出取款界面,運行效果圖,如圖6所示:圖6取款界面當點擊余額查詢界面時系統(tǒng)會自動幫助你檢索你的當前賬戶還有多少錢,并且在查詢完后會自動彈出友好界面,來顯示你的當前余額,余額查詢界面,運行效果圖,如圖7所示:圖7帳戶余額查看界面在取款界面中,選擇要取的金額,取出金額,并且會彈出取款成功界面,運行效果圖,如圖8所示:圖8取款成功界面在選擇服務(wù)界面,點擊轉(zhuǎn)賬功能按鈕之后,則會彈出轉(zhuǎn)賬界面,運行效果圖,如圖9所示: 圖9轉(zhuǎn)帳操作界面在選擇服務(wù)界面,點擊修改密碼功能按鈕,則會彈出修改密碼界面,運行效果圖,如圖10所示:圖10修改密碼界面經(jīng)過測試,所有的功能基本上都實現(xiàn)了,而且運行正常。4.2存在問題在此次課程設(shè)計中,我遇到了一些問題,如:對于面向?qū)ο蟮姆椒私獠粔蛲笍?,運用到實際的軟件開發(fā)中存在著困難;對于Java語言,只學習到了一些最基本的知識,這導致編寫程序時經(jīng)常出現(xiàn)一些語法錯誤。程序部分代碼5.1登陸頁面首窗口設(shè)計代碼classWindowBoxextendsFrameimplementsActionListener{ BoxbaseBox,box1,box2; TextFieldtf1,tf2; Buttonbutton1; Buttonbutton2; WindowBox(Strings){//構(gòu)造方法 super(s); tf1=newTextField(6); tf2=newTextField(6); box1=Box.createVerticalBox; box1.add(newLabel("請輸入你的卡號"));//輸入卡號 box1.add(Box.createVerticalStrut(8)); box1.add(newLabel("請輸入你的密碼"));//輸入密碼 box2=Box.createVerticalBox(); box2.add(tf1); //box2.add(newTextField(16)); box2.add(Box.createVerticalStrut(8)); box2.add(tf2); //box2.add(newTextField(16)); baseBox=Box.createHorizontalBox(); baseBox.add(box1); baseBox.add(Box.createHorizontalStrut(10)); baseBox.add(box2); add(baseBox); button1=newButton("確定");//加入按鈕 button1.addActionListener(this); add(button1); button2=newButton("退卡");//退卡按鈕 button2.addActionListener(this); add(button2); setLayout(newFlowLayout());5.2監(jiān)聽器設(shè)計代碼this.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ System.exit(0); } }); setBounds(120,125,200,175); setVisible(true); } publicvoidactionPerformed(ActionEvente){ Accountact; Stringcard; Stringpwd; act=newAccount("000000","Devil","123456",50000);//初始化5.3選擇各種服務(wù)設(shè)計代碼if(e.getSource()==button1){ Stringnumber1,number2;//輸入的兩個卡號和密碼的變量 number1=tf1.getText(); number2=tf2.getText(); /*判斷兩次輸入的卡號和密碼是否正確*/ if((act.get_Code().equals(number1))&&(act.get_Password().equals(number2))){ dispose(); Selections=newSelection("選擇服務(wù)",act); }else{ dispose(); ErrorWarnew=newErrorWarn("消息!",act);//報輸入密碼或卡號不正確 } } if(e.getSource()==button2){ System.exit(0); dispose();//退出 }}} 5.4主函數(shù)設(shè)計代碼classATM{ publicstaticvoidmain(String[]args){ newWindowBox("登錄頁面"); }}5.5選擇服務(wù)設(shè)計代碼importjava.awt.*;importjava.awt.event.*;classSelectionextendsFrameimplementsActionListener{ Buttonbutton1,button2,button3,button4,button5; Panelp1=newPanel(); Panelp2=newPanel(); Panelp3=newPanel(); Panelp4=newPanel(); Panelp5=newPanel(); Panelp=newPanel(); Accountact; publicSelection(){} Selection(Strings,Accountact){ super(s); this.act=act; this.setLayout(null); this.setLayout(newGridLayout(6,1)); p.add(newLabel("請選擇你要的服務(wù)")); this.add(p);5.6各種服務(wù)功能設(shè)計代碼button1=newButton("存款"); p1.add(button1); this.add(p1); button2=newButton("取款"); p2.add(button2); this.add(p2); button3=newButton("查詢余額"); p3.add(button3); this.add(p3); button4=newButton("退出"); p4.add(button4); this.add(p4); button5=newButton("修改密碼"); p5.add(button5); this.add(p5); this.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ System.exit(0); } }); button2.addActionListener(this); button3.addActionListener(this); button4.addActionListener(this); button5.addActionListener(this); setBounds(150,150,200,200); setVisible(true); validate(); } publicvoidactionPerformed(ActionEvente){ if(e.getSource()==button2){//取款 dispose(); GetBalancegb=newGetBalance("取款",act); } if(e.getSource()==button3){//查詢余額 Queryq=newQuery("查詢余額",act); dispose(); } elseif(e.getSource()==button4){//退出 System.exit(0); dispose(); } elseif(e.getSource()==button5){//修改密碼 ChangePasswordcp=newChangePassword("修改密碼",act); dispose(); } }}5.7取款功能設(shè)計代碼importjavax.swing.*;importjava.awt.*;importjavax.swing.border.*;importjava.awt.event.*;classGetBalanceextendsFrameimplementsActionListener{ BoxbaseBox,box1,box2; Buttonbutton; TextFieldtf; Accountact; GetBalance(Strings,Accountact){//構(gòu)造函數(shù) super(s); this.act=act; button=newButton("確定"); Panelpanel=newPanel(); Panelpanel1=newPanel(); tf=newTextField(6); this.setLayout(newGridLayout(2,1)); panel1.add(newLabel("請輸入你想取錢的數(shù)目")); panel1.add(tf); panel.add(button); this.add(panel1); this.add(panel); button.addActionListener(this); this.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ System.exit(0); } }); setBounds(200,200,150,150); this.setVisible(true); } publicvoidactionPerformed(ActionEvente){ //System.out.println(e.getActionCommand()); doublemoney; money=Double.parseDouble(tf.getText().trim()); if(e.getSource()==button){ if(act.get_Money()<0){//判斷余額是否為負 dispose(); ErrorWarn4ew4=newErrorWarn4("消息!",act); } elseif(money<=act.get_Money()){//取錢的數(shù)額不大于余額 if((money%100!=0)||(money>=5000)){//取錢數(shù)為100的倍數(shù)或不大于5000 dispose(); ErrorWarn6ew6=newErrorWarn6("消息!",act); } act.set_Balance(money);//重置余額 this.setVisible(false); Selections=newSelection("選擇服務(wù)",act);//返回選擇服務(wù)窗口 //dispose(); }elseif(money>act.get_Money()){判斷取款數(shù)額是否大于余額 dispose(); ErrorWarn5ew5=newErrorWarn5("消息!",act); } } }}publicstaticvoidmain(String[]args){ GetBalancetest=newGetBalance("dfdf"); GetBalancegb=newGetBalance("取款"); }}5.8修改密碼設(shè)計代碼importjavax.swing.*;importjava.awt.*;importjavax.swing.border.*;importjava.awt.event.*;classChangePasswordextendsFrameimplementsActionListener{ Panelpanel1=newPanel(); Panelpanel2=newPanel(); Panelpanel3=newPanel(); Panelpanel=newPanel(); TextFieldtf4,tf5,tf6; Buttonbutton; Accountact; ChangePassword(Strings,Accountact){ super(s); this.act=act; tf4=newTextField(6); tf5=newTextField(6); tf6=newTextField(6); button=newButton("確定"); button.addActionListener(this);5.9設(shè)定新密碼設(shè)計代碼panel1.add(newLabel("請輸入你的舊密碼:")); panel1.add(tf4); panel2.add(newLabel("請輸入你的新密碼:")); panel2.add(tf5); panel3.add(newLabel("請再次輸入你的新密碼")); panel3.add(tf6); panel.add(button); this.add(panel1); this.add(panel2); this.add(panel3); this.add(panel); setLayout(newGridLayout(4,1)); setBounds(200,200,250,250); this.setVisible(true);5.10窗口事件設(shè)計代碼this.addWindowListener(newWindowAdapter(){ publicvoidwi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能倉儲卷簾門系統(tǒng)采購及集成合同
- 2025年度區(qū)塊鏈技術(shù)應(yīng)用項目開發(fā)與許可合同
- 2025年休假村租賃協(xié)議模板
- 2025年建筑工程模板工程承包合同書
- 2025年信用卡債務(wù)履行協(xié)議
- 2025年金剛石膜工具項目立項申請報告模范
- 2025年血液系統(tǒng)用藥項目規(guī)劃申請報告模范
- 2025年街頭籃球項目規(guī)劃申請報告
- 2025年放射性藥品項目提案報告模式
- 2025年生活用橡膠制品:塑膠盒項目規(guī)劃申請報告范文
- 2024年云南省公務(wù)員考試【申論縣鄉(xiāng)卷、行測、事業(yè)單位招聘】3套 真題及答案
- 300畝文冠果樹栽培基地建設(shè)項目可行性研究報告
- 數(shù)字媒體藝術(shù)專業(yè)行業(yè)分析報告
- 2025年度企業(yè)安全生產(chǎn)與環(huán)保管理服務(wù)協(xié)議范本3篇
- 全國職業(yè)院校技能大賽高職組(市政管線(道)數(shù)字化施工賽項)考試題庫(含答案)
- 湖南省長沙市長郡教育集團2024-2025學年七年級上學期期末考試英語試題(含答案)
- 公司員工升職加薪制度模板
- 春季開學教職工安全培訓
- (正式版)JTT 1497-2024 公路橋梁塔柱施工平臺及通道安全技術(shù)要求
- 【班級管理表格】學生檢討反思承諾書
- 社會保險職工增減表
評論
0/150
提交評論