版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
集中上機(jī)實(shí)習(xí)報(bào)告實(shí)驗(yàn)題目用java實(shí)現(xiàn)簡(jiǎn)單功能的學(xué)生通訊錄實(shí)驗(yàn)題目用java實(shí)現(xiàn)簡(jiǎn)單功能的學(xué)生通訊錄;需求分析和系統(tǒng)設(shè)計(jì)需求分析要實(shí)現(xiàn)的功能分析:通過(guò)題目可知要設(shè)計(jì)一個(gè)學(xué)生通訊錄,要求實(shí)現(xiàn)簡(jiǎn)單的通信錄管理,能夠輸入通信錄卡片(實(shí)現(xiàn)增、刪、改等功能),能夠分組,并能夠?qū)崿F(xiàn)按名字(或其他方式)查詢(xún)功能;實(shí)現(xiàn)界面:可以是DOS界面,功能按提示方式輸入實(shí)現(xiàn);可以是Windows界面,功能用菜單形式,輸入界面用對(duì)話(huà)框形式。概要設(shè)計(jì)為了實(shí)現(xiàn)實(shí)現(xiàn)通訊錄界面,需要完成對(duì)電話(huà)簿的添加,刪除,修改功能,因此只需要完成對(duì)這三個(gè)按鈕事件的處理。這三個(gè)按鈕同樣可以用一個(gè)監(jiān)聽(tīng)器類(lèi)來(lái)實(shí)現(xiàn)事件的監(jiān)聽(tīng)。區(qū)分他們的方法同樣是根據(jù)按鈕標(biāo)題的不同來(lái)區(qū)分,當(dāng)鼠標(biāo)單擊列表組件時(shí),顯示不同人員的聯(lián)系信息,所以需要為列表組件添加鼠標(biāo)事件監(jiān)聽(tīng)器。算法分析在實(shí)現(xiàn)功能時(shí)只用了簡(jiǎn)單的面向?qū)ο蟮脑O(shè)計(jì)方法,在處理多個(gè)按鈕事件時(shí),區(qū)分按鈕的關(guān)鍵是按鈕的標(biāo)題區(qū)分,我用了按鈕命令事件處理,并用ifelse來(lái)區(qū)分“添加”,“刪除”,“修改”這三個(gè)按鈕。界面上放入一個(gè)列表主件,一個(gè)“姓名:”的標(biāo)簽和一個(gè)輸入姓名的編輯框,一個(gè)“電話(huà):”的標(biāo)簽和一個(gè)聯(lián)系電話(huà)的編輯框,一個(gè)“地址:”的標(biāo)簽和一個(gè)地址的編輯框,還有“添加:”、“刪除:”、“修改:”等按鈕,及對(duì)mouseClicked事件的監(jiān)聽(tīng)類(lèi)。構(gòu)造了JFramemainFrm為主窗口,JTextFieldname為姓名輸入框,JTextFieldtel為電話(huà)輸入框,JTextFieldadd為地址輸入框,JListdataList為列表組建,String[]ming為姓名數(shù)組,String[]phone為電話(huà)數(shù)組,String[]addr為地址數(shù)組。在實(shí)現(xiàn)過(guò)程中,定義PhoneBook類(lèi)繼承了MouseAdapter類(lèi)與ActionListener接口,就可以用Book類(lèi)來(lái)實(shí)現(xiàn)按鈕命令監(jiān)聽(tīng)器和鼠標(biāo)事件監(jiān)聽(tīng)器。如果出現(xiàn)錯(cuò)誤操作,會(huì)在控制臺(tái)出現(xiàn)異常,且操作無(wú)效。模塊劃分與說(shuō)明學(xué)生表列名數(shù)據(jù)類(lèi)型數(shù)組長(zhǎng)度描述Mingstring10學(xué)生姓名組Telstring10電話(huà)號(hào)組Addrstring10地址組流程圖1,進(jìn)入通訊錄后先在姓名輸入框內(nèi)輸入姓名如xx,在電話(huà)輸入框內(nèi)輸入聯(lián)系電話(huà),在地址輸入框內(nèi)輸入地址;2,點(diǎn)擊“添加”按鈕,姓名xx出現(xiàn)在面板左側(cè)的列表中;3,(1)繼續(xù)1,2,步驟可向?qū)W生通訊錄中添加更多學(xué)生信息如yy;(2)可對(duì)已添加的學(xué)生信息進(jìn)行修改,如將xx的電話(huà)號(hào)改變:在列表中點(diǎn)擊xx姓名,對(duì)xx信息進(jìn)行修改,最后點(diǎn)擊“修改”按鈕,修改后的信息被保存;(3)可對(duì)已添加的學(xué)生信息進(jìn)行刪除操作,如將xx的信息刪除:在列表中點(diǎn)擊xx姓名,然后點(diǎn)擊“刪除”按鈕,即可將學(xué)生信息刪除;總體圖:點(diǎn)擊“添加”按鈕,姓名點(diǎn)擊“添加”按鈕,姓名xx出現(xiàn)在面板左側(cè)的列表中;繼續(xù)1,2,步驟可向?qū)W生通訊錄中添加更多學(xué)生信息;可對(duì)已添加的學(xué)生信息進(jìn)行修改;可對(duì)已添加的學(xué)生信息進(jìn)行刪除操作;在列表中點(diǎn)擊xx姓名;對(duì)xx信息進(jìn)行修改;最后點(diǎn)擊“修改”按鈕,修改后的信息被保存;在列表中點(diǎn)擊xx姓名;點(diǎn)擊“刪除”按鈕,即可將學(xué)生信息刪除;進(jìn)入通訊錄后先在姓名輸入框內(nèi)輸入姓名如xx,在電話(huà)輸入框內(nèi)輸入聯(lián)系電話(huà),在地址輸入框內(nèi)輸入地址;流程圖:開(kāi)始開(kāi)始選擇功能添加修改刪除YYYY是否繼續(xù)添加Y是否繼續(xù)修改Y刪除學(xué)生信息YNYYNN添加模塊流程圖:開(kāi)始開(kāi)始“添加”功能在姓名輸入框內(nèi)輸入姓名如xx,在電話(huà)輸入框內(nèi)輸入聯(lián)系電話(huà),在地址輸入框內(nèi)輸入地址;點(diǎn)擊“添加”按鈕;姓名xx出現(xiàn)在面板左側(cè)的列表;中;YNY繼續(xù)添加刪除模塊流程圖:開(kāi)始開(kāi)始“刪除”功能Y在列表中點(diǎn)擊xx姓名;點(diǎn)擊“刪除”按鈕,即可將學(xué)生信息刪除;信息被刪除YN繼續(xù)刪除YN修改模塊流程圖:開(kāi)始開(kāi)始“修改”功能Y在列表中點(diǎn)擊xx姓名;在窗口中修改學(xué)生的信息;點(diǎn)擊“修改”按鈕N信息被修改YNY是否繼續(xù)修改程序源代碼package通訊錄;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;classBookextendsMouseAdapterimplementsActionListener{ publicstaticfinalintWIDTH=600; publicstaticfinalintHIGTH=400; JFramemainFrm; JTextFieldname; JTextFieldtel; JTextFieldadd; JListdataList;String[]ming;String[]phone;String[]addr;intn=0;voidbook(){ mainFrm=newJFrame(); mainFrm.setTitle("學(xué)生通訊錄"); mainFrm.setSize(500,300); mainFrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ContainercontentPane=mainFrm.getContentPane(); ming=newString[10]; phone=newString[10]; addr=newString[10]; dataList=newJList(ming); dataList.setSelectedIndex(1); dataList.getSelectedValue(); JPanelP1=newJPanel(); JPanelP2=newJPanel(); JPanelP3=newJPanel(); P1.setSize(400,200); contentPane.add(P1,BorderLayout.WEST); contentPane.add(P2,BorderLayout.CENTER); contentPane.add(P3,BorderLayout.NORTH); P1.add(dataList); P2.setLayout(newGridLayout(3,1)); JLabell1=newJLabel("姓名:"); name=newJTextField(); JLabell2=newJLabel("電話(huà):"); tel=newJTextField(); JLabell3=newJLabel("地址:"); add=newJTextField(); P2.add(l1); P2.add(name); P2.add(l2); P2.add(tel); P2.add(l3); P2.add(add); JButtonb=newJButton("添加"); b.addActionListener(this); P3.add(b); b=newJButton("刪除"); b.addActionListener(this); P3.add(b); b=newJButton("修改"); b.addActionListener(this); P3.add(b); dataList.addMouseListener(this); mainFrm.setVisible(true); }publicvoidactionPerformed(ActionEvente){ if(e.getActionCommand()=="添加") { n++; ming[n]=name.getText(); phone[n]=tel.getText(); addr[n]=add.getText(); dataList.setListData(ming); } elseif(e.getActionCommand()=="刪除") { intt=dataList.getSelectedIndex(); for(inti=t;i<=n;i++) { ming[i]=ming[i+1]; phone[i]=phone[i+1]; addr[i]=addr[i+1]; } n--; name.setText(""); tel.setText(""); add.setText(""); dataList.setListData(ming); } elseif(e.getActionCommand()=="修改") { intt=dataList.getSelectedIndex(); ming[t]=name.getText(); phone[t]=tel.getText(); addr[t]=add.getText(); dataList.setListData(ming); }}publicvoidmouseClicked(MouseEvente){ inti=dataList.locationToIndex(e.getPoint()); name.setText(ming[i]); tel.setText(phone[i]);add.setText(addr[i]);}}publicclassTongxunlu{ /** *@paramargs */ publicstaticvoidmain(String[]args){ Bookh=newBook(); h.book(); }}結(jié)果截圖初始窗口:添加:繼續(xù)添加:刪除:修改:實(shí)驗(yàn)心得Java布局管理是新學(xué)的內(nèi)容,因?yàn)閷?duì)窗口感興趣,所以寫(xiě)代碼的時(shí)候也不覺(jué)得煩躁,借鑒了書(shū)上的內(nèi)容,構(gòu)造框架窗口時(shí)使用了javaw.swing包,構(gòu)造了主框架MainFrm;用JLabel(“”)設(shè)置了三個(gè)標(biāo)簽,分別為:“姓名”“電話(huà)”“地址”;并使用了JTextField進(jìn)行單行文本輸入;對(duì)“添加”“刪除”“修改”這三個(gè)功能選項(xiàng),則導(dǎo)入了java.awt包,與java.awt.event包,使用了JBonton進(jìn)行按鈕設(shè)置,并對(duì)這三個(gè)按鈕進(jìn)行addMouseListener監(jiān)聽(tīng),當(dāng)發(fā)生mouseClicked事件時(shí),事件監(jiān)聽(tīng)器會(huì)傳遞給容器進(jìn)行處理;列表我使用了列表框組件JList,并將學(xué)生姓名添加在列表中,本來(lái)想用組合框組件JComboBox,覺(jué)得這樣比較節(jié)省空間,但想到這樣不方便根據(jù)姓名查詢(xún),所以還是用了列表框組件。我的總布局管理器使用的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度文化旅游項(xiàng)目廠房土地租賃及運(yùn)營(yíng)合作協(xié)議4篇
- 二零二五版房產(chǎn)收購(gòu)項(xiàng)目合作廣告推廣協(xié)議樣本3篇
- 二零二五版孵化器投資入股合作協(xié)議范本(醫(yī)療健康)3篇
- 二零二五年度電影劇本改編與發(fā)行授權(quán)勞動(dòng)合同3篇
- 2025年度新能源電池研發(fā)與應(yīng)用合作協(xié)議8篇
- 專(zhuān)利咨詢(xún)與策略支持協(xié)議文件版B版
- 二零二四外債債務(wù)承擔(dān)離婚協(xié)議范本3篇
- 二零二五年度股權(quán)代持合同:包含公司估值調(diào)整條款3篇
- 2025年電子商務(wù)合同網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣合作合同3篇
- 2025年度旅游客運(yùn)車(chē)輛駕駛?cè)藛T培訓(xùn)合同范本4篇
- 2024年高標(biāo)準(zhǔn)農(nóng)田建設(shè)土地承包服務(wù)協(xié)議3篇
- 閱讀理解(專(zhuān)項(xiàng)訓(xùn)練)-2024-2025學(xué)年湘少版英語(yǔ)六年級(jí)上冊(cè)
- 2024-2025學(xué)年人教版數(shù)學(xué)六年級(jí)上冊(cè) 期末綜合試卷(含答案)
- 無(wú)創(chuàng)通氣基本模式
- 飛行原理(第二版) 課件 第4章 飛機(jī)的平衡、穩(wěn)定性和操縱性
- 暨南大學(xué)珠海校區(qū)財(cái)務(wù)辦招考財(cái)務(wù)工作人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 山東省桓臺(tái)第一中學(xué)2024-2025學(xué)年高一上學(xué)期期中考試物理試卷(拓展部)(無(wú)答案)
- 2024年全國(guó)統(tǒng)一高考英語(yǔ)試卷(新課標(biāo)Ⅰ卷)含答案
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識(shí) CCAA年度確認(rèn) 試題與答案
- 預(yù)應(yīng)力混凝土簡(jiǎn)支小箱梁大作業(yè)計(jì)算書(shū)
- 燃燒機(jī)論文定型機(jī)加熱論文:天然氣直燃熱風(fēng)技術(shù)在定型機(jī)中的應(yīng)用
評(píng)論
0/150
提交評(píng)論