![《高級(jí)語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告- JAVA程序課程設(shè)計(jì)_第1頁](http://file4.renrendoc.com/view10/M00/22/08/wKhkGWWtLraAHuZtAADW5dZKMgc905.jpg)
![《高級(jí)語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告- JAVA程序課程設(shè)計(jì)_第2頁](http://file4.renrendoc.com/view10/M00/22/08/wKhkGWWtLraAHuZtAADW5dZKMgc9052.jpg)
![《高級(jí)語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告- JAVA程序課程設(shè)計(jì)_第3頁](http://file4.renrendoc.com/view10/M00/22/08/wKhkGWWtLraAHuZtAADW5dZKMgc9053.jpg)
![《高級(jí)語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告- JAVA程序課程設(shè)計(jì)_第4頁](http://file4.renrendoc.com/view10/M00/22/08/wKhkGWWtLraAHuZtAADW5dZKMgc9054.jpg)
![《高級(jí)語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告- JAVA程序課程設(shè)計(jì)_第5頁](http://file4.renrendoc.com/view10/M00/22/08/wKhkGWWtLraAHuZtAADW5dZKMgc9055.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《高級(jí)語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告課題名稱:JAVA程序課程設(shè)計(jì)目錄TOC\o"1-3"\u第1章課題概述 11.1課題的目的與要求 1第2章設(shè)計(jì)概要 12.1系統(tǒng)功能模塊劃分 12.2ATM取款機(jī)系統(tǒng)功能結(jié)構(gòu)圖 2第3章程序功能的實(shí)現(xiàn) 33.1首界面設(shè)計(jì) 33.2登錄頁面設(shè)計(jì) 33.3選擇服務(wù)模塊設(shè)計(jì) 33.4取款模塊設(shè)計(jì) 43.5修改密碼設(shè)計(jì) 43.6退卡模塊設(shè)計(jì) 5系統(tǒng)運(yùn)行效果及存在問題 54.1系統(tǒng)運(yùn)行效果 54.2存在問題 9程序部分代碼 95.1登錄頁面首窗口設(shè)計(jì)代碼 95.2監(jiān)聽器設(shè)計(jì)代碼 105.3選擇各種服務(wù)設(shè)計(jì)代碼 115.4主函數(shù)設(shè)計(jì)代碼 115.5選擇服務(wù)設(shè)計(jì)代碼 125.6各種服務(wù)功能設(shè)計(jì)代碼 125.7取款功能設(shè)計(jì)代碼 145.8修改密碼設(shè)計(jì)代碼 165.9設(shè)定新密碼設(shè)計(jì)代碼 175.10窗口事件設(shè)計(jì)代碼 175.11查詢余額功能設(shè)計(jì)代碼 18第6章總結(jié) 19參考文獻(xiàn) 19
第1章課題概述1.1課題的目的與要求輸入給定的卡號(hào)和密碼(初始卡號(hào)為62250028和密碼為123456)時(shí),系統(tǒng)能登錄ATM柜員機(jī)系統(tǒng),用戶可以按照以下規(guī)則進(jìn)行操作:1、查詢余額:初始余額為10000元;2、ATM取款:每次取款金額為100的倍數(shù),總額不超過5000元,支取金額不允許透支;3、修改密碼:新密碼長度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼;4、要求數(shù)據(jù)采用文件存儲(chǔ),如果界面實(shí)現(xiàn)采用了GUI,則酌情加分。第2章設(shè)計(jì)概要2.1系統(tǒng)功能模塊劃分 本系統(tǒng)主要包括登陸模塊設(shè)計(jì),選擇服務(wù)模塊設(shè)計(jì),取款模塊設(shè)計(jì),修改密碼模塊設(shè)計(jì),退卡模塊設(shè)計(jì)等幾個(gè)功能模塊。其中, (1)登陸模塊設(shè)計(jì):與ATM柜員機(jī)打交道比較多的,也是大家對(duì)安全比較關(guān)心的問題:密碼。所以第一個(gè)界面就是要輸入密碼和卡號(hào)才能繼續(xù)服務(wù)。 (2)選擇服務(wù)模塊設(shè)計(jì):在選擇服務(wù)模塊中,有各種ATM的服務(wù)功能,只要用戶在該界面中選擇按鈕,它就會(huì)彈出各個(gè)相應(yīng)的界面。 (3)取款模塊設(shè)計(jì):在取款模塊中,和其他的界面也是同樣的結(jié)構(gòu)。也是有一個(gè)文本框和一個(gè)按鈕還有標(biāo)簽組成的,實(shí)現(xiàn)用戶取款的服務(wù)。 (4)修改密碼模塊設(shè)計(jì):在修改密碼模塊中,首先你必須要輸入你的舊密碼是否正確,否則就會(huì)報(bào)錯(cuò)。再一個(gè)就是要兩次輸入你的新密碼,且兩次要匹配,否則也會(huì)報(bào)錯(cuò),然后再重新回到修改密碼的界面。 (5)退卡模塊設(shè)計(jì):此功能非常簡單,僅僅是實(shí)現(xiàn)彈出卡的功能。2.2ATM取款機(jī)系統(tǒng)功能結(jié)構(gòu)圖總體設(shè)計(jì)中最核心的問題是系統(tǒng)總體功能結(jié)構(gòu)的確定和子系統(tǒng)與模塊的劃分,結(jié)構(gòu)化。ATM取款機(jī)系統(tǒng)功能結(jié)構(gòu)圖,如圖1所示:登陸頁面模塊登陸頁面模塊取款模塊選擇服務(wù)模塊退卡模塊查詢余額模塊修改密碼模塊圖1ATM取款機(jī)系統(tǒng)功能結(jié)構(gòu)圖該ATM取款機(jī)系統(tǒng)各個(gè)部分負(fù)責(zé)的主要業(yè)務(wù)如下:(1)登陸頁面模塊,對(duì)取款者進(jìn)行身份驗(yàn)證。(2)選擇服務(wù)模塊,包括取款,余額查詢,轉(zhuǎn)帳,修改密碼,退出等功能模塊。(3)取款模塊,實(shí)現(xiàn)取款的具體操作。(4)查詢余額模塊,查看當(dāng)前登陸人員的余額。(5)修改密碼模塊,可以方便的實(shí)現(xiàn)當(dāng)前登陸人員對(duì)自己的密碼進(jìn)行修改。(6)退卡模塊,完成取款,查詢等功能后退出銀行卡。
第3章程序功能的實(shí)現(xiàn)3.1首界面設(shè)計(jì)配置好環(huán)境,編譯程序,當(dāng)程序運(yùn)行后,首先看到的頁面銀行管理系統(tǒng)頁面,它的運(yùn)行效果圖,如圖2所示:圖2銀行管理系統(tǒng)首界面3.2登錄頁面設(shè)計(jì)定義了文本框類的對(duì)象tf1,tf2。主要是用于輸入單行的文本;文本區(qū)調(diào)用publicStringgetText()方法,獲取用戶想要的字符串。用來判斷輸入的密碼和卡號(hào)是否正確,如果不正確的話,則彈出密碼或卡號(hào)錯(cuò)誤的警告框,并用dispose()關(guān)掉窗口。此模塊相應(yīng)的詳細(xì)源代碼見附錄部分,部分代碼如下:box1=Box.createVerticalBox; box1.add(newLabel("請(qǐng)輸入你的卡號(hào)"));//輸入卡號(hào) box1.add(Box.createVerticalStrut(8)); box1.add(newLabel("請(qǐng)輸入你的密碼"));//輸入密碼3.3選擇服務(wù)模塊設(shè)計(jì)在選擇服務(wù)模塊中,有各種ATM的服務(wù)功能,只要用戶在該界面中選擇按鈕,它就會(huì)彈出各個(gè)相應(yīng)的界面。每一個(gè)按鈕都有監(jiān)聽器,在選擇了按鈕后,java.awt.event中的ActionEvent類創(chuàng)建一個(gè)事件對(duì)象,并將它傳遞給方法publicvoidactionPerformed(ActionEvente)中的參數(shù)e,監(jiān)視器就會(huì)知道所發(fā)生的事件,對(duì)此事件進(jìn)行處理。其中的詳細(xì)源代碼請(qǐng)參見附錄部分,部分代碼如下: this.setLayout(null); this.setLayout(newGridLayout(6,1)); p.add(newLabel("請(qǐng)選擇你要的服務(wù)")); this.add(p);3.4取款模塊設(shè)計(jì)在取款模塊中,和其他的界面也是同樣的結(jié)構(gòu)。也是有一個(gè)文本框和一個(gè)按鈕還有標(biāo)簽組成的。用戶在文本框中輸入他想取的數(shù)額,但是必須是100的倍數(shù),而且每一次最多只能取5000塊。當(dāng)然了取款的時(shí)候也不能超過卡里的余額,再就是卡里的余額不能為負(fù),否則就會(huì)彈出報(bào)錯(cuò)的窗口。其方法的具體實(shí)現(xiàn)代碼請(qǐng)參見附錄部分,部分代碼如下:if((money%100!=0)||(money>=5000)){//取錢數(shù)為100的倍數(shù)或不大于5000 dispose(); ErrorWarn6ew6=newErrorWarn6("消息!",act); } act.set_Balance(money);//重置余額 this.setVisible(false);3.5修改密碼模塊設(shè)計(jì)在修改密碼模塊中,首先你必須要輸入你的舊密碼是否正確,否則就會(huì)報(bào)錯(cuò)。再一個(gè)就是要兩次輸入你的新密碼,且兩次藥匹配,否則也會(huì)報(bào)錯(cuò),然后再重新回到修改密碼的界面。在修改密碼時(shí)用到的方法的具體實(shí)現(xiàn)代碼請(qǐng)參見附錄部分,部分代碼如下:tf4=newTextField(6); tf5=newTextField(6); tf6=newTextField(6);3.6退卡模塊設(shè)計(jì)if(e.getSource()==button4){//退出 System.exit(0); dispose(); }系統(tǒng)運(yùn)行效果及存在問題4.1系統(tǒng)運(yùn)行效果進(jìn)入系統(tǒng)按鈕進(jìn)入輸入卡號(hào)頁面,運(yùn)行效果圖,如圖3所示:圖3輸入卡號(hào)界面輸入卡號(hào)后,點(diǎn)擊確定時(shí)系統(tǒng)會(huì)判斷是否存在此卡號(hào),如果不存在此卡號(hào),系統(tǒng)則會(huì)自動(dòng)提醒用戶此卡號(hào)不存在,請(qǐng)重新輸入,如果輸入的是正確的卡后,則進(jìn)入輸入密碼界面,其運(yùn)行效果圖,如圖4所示:圖4輸入密碼界面輸入不正確,則會(huì)提醒你密碼不正確,請(qǐng)重新輸入,當(dāng)輸入正確密碼后,點(diǎn)擊確定進(jìn)入系統(tǒng)主界面,運(yùn)行效果圖,如圖5所示:圖5系統(tǒng)主界面界面在主界面中包含了6個(gè)主要功能,只要用戶在該界面中選擇按鈕,它就會(huì)彈出各個(gè)相應(yīng)的界面。當(dāng)點(diǎn)擊取款按鈕時(shí)彈出取款界面,運(yùn)行效果圖,如圖6所示:圖6取款界面當(dāng)點(diǎn)擊余額查詢界面時(shí)系統(tǒng)會(huì)自動(dòng)幫助你檢索你的當(dāng)前賬戶還有多少錢,并且在查詢完后會(huì)自動(dòng)彈出友好界面,來顯示你的當(dāng)前余額,余額查詢界面,運(yùn)行效果圖,如圖7所示:圖7帳戶余額查看界面在取款界面中,選擇要取的金額,取出金額,并且會(huì)彈出取款成功界面,運(yùn)行效果圖,如圖8所示:圖8取款成功界面在選擇服務(wù)界面,點(diǎn)擊轉(zhuǎn)賬功能按鈕之后,則會(huì)彈出轉(zhuǎn)賬界面,運(yùn)行效果圖,如圖9所示: 圖9轉(zhuǎn)帳操作界面在選擇服務(wù)界面,點(diǎn)擊修改密碼功能按鈕,則會(huì)彈出修改密碼界面,運(yùn)行效果圖,如圖10所示:圖10修改密碼界面經(jīng)過測試,所有的功能基本上都實(shí)現(xiàn)了,而且運(yùn)行正常。4.2存在問題在此次課程設(shè)計(jì)中,我遇到了一些問題,如:對(duì)于面向?qū)ο蟮姆椒私獠粔蛲笍?,運(yùn)用到實(shí)際的軟件開發(fā)中存在著困難;對(duì)于Java語言,只學(xué)習(xí)到了一些最基本的知識(shí),這導(dǎo)致編寫程序時(shí)經(jīng)常出現(xiàn)一些語法錯(cuò)誤。程序部分代碼5.1登陸頁面首窗口設(shè)計(jì)代碼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("請(qǐng)輸入你的卡號(hào)"));//輸入卡號(hào) box1.add(Box.createVerticalStrut(8)); box1.add(newLabel("請(qǐng)輸入你的密碼"));//輸入密碼 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è)計(jì)代碼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è)計(jì)代碼if(e.getSource()==button1){ Stringnumber1,number2;//輸入的兩個(gè)卡號(hào)和密碼的變量 number1=tf1.getText(); number2=tf2.getText(); /*判斷兩次輸入的卡號(hào)和密碼是否正確*/ if((act.get_Code().equals(number1))&&(act.get_Password().equals(number2))){ dispose(); Selections=newSelection("選擇服務(wù)",act); }else{ dispose(); ErrorWarnew=newErrorWarn("消息!",act);//報(bào)輸入密碼或卡號(hào)不正確 } } if(e.getSource()==button2){ System.exit(0); dispose();//退出 }}} 5.4主函數(shù)設(shè)計(jì)代碼classATM{ publicstaticvoidmain(String[]args){ newWindowBox("登錄頁面"); }}5.5選擇服務(wù)設(shè)計(jì)代碼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("請(qǐng)選擇你要的服務(wù)")); this.add(p);5.6各種服務(wù)功能設(shè)計(jì)代碼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è)計(jì)代碼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("請(qǐng)輸入你想取錢的數(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){//判斷余額是否為負(fù) 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è)計(jì)代碼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è)計(jì)代碼panel1.add(newLabel("請(qǐng)輸入你的舊密碼:")); panel1.add(tf4); panel2.add(newLabel("請(qǐng)輸入你的新密碼:")); panel2.add(tf5); panel3.add(newLabel("請(qǐng)?jiān)俅屋斎肽愕男旅艽a")); 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è)計(jì)代碼this.addWindowListener(newWindowAdapter(){ publicvoidwi
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子產(chǎn)品物流合同要點(diǎn)分析
- 2025年度辦公室綠植養(yǎng)護(hù)與室內(nèi)環(huán)境美化合同
- 房屋租賃合同公文
- 企業(yè)人才測評(píng)及職業(yè)發(fā)展規(guī)劃支持方案設(shè)計(jì)
- 云計(jì)算服務(wù)配置與管理手冊(cè)
- 解決方案設(shè)計(jì)與實(shí)施指南
- 設(shè)計(jì)服務(wù)合同書
- 企業(yè)信息化解決方案操作手冊(cè)
- 建設(shè)工程施工分包委托協(xié)議書
- 車床購買合同樣本
- 春季開學(xué)教職工安全培訓(xùn)
- 叉車日常維護(hù)保養(yǎng)檢查記錄表
- 心源性休克的護(hù)理.ppt課件
- 精品解析:2022年黑龍江省哈爾濱市中考語文試題(原卷版)
- 營業(yè)抄核收業(yè)務(wù)知識(shí)講座
- 單位事故隱患排查治理制度及臺(tái)賬
- 施工組織方案(行車拆除)
- 分公司經(jīng)營模式
- 上海通用泛亞整車開發(fā)流程
- 《企業(yè)會(huì)計(jì)準(zhǔn)則第15號(hào)——建造合同》講解
- 建設(shè)項(xiàng)目規(guī)劃批后管理告知書
評(píng)論
0/150
提交評(píng)論