版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、計算機(jī)科學(xué)與技術(shù)系課程綜合實訓(xùn)報告項目名稱(中文): 手機(jī)電話薄 (英文): 課程名稱: 專業(yè)名稱: 年級班級: 學(xué)年學(xué)期: 學(xué) 號: 姓 名: 年月日目 錄1.前言12.系統(tǒng)總體設(shè)計12.1系統(tǒng)設(shè)計目標(biāo)12.2 系統(tǒng)設(shè)計思路12.3 系統(tǒng)總體架構(gòu)12.4 系統(tǒng)流程圖13.服務(wù)器端的設(shè)計13.1數(shù)據(jù)庫存儲層設(shè)計13.2服務(wù)器端的代碼實現(xiàn)和分析14.客戶端設(shè)計24.1 手機(jī)客戶端程序設(shè)計24.2 界面設(shè)計24.3 程序的運行流程24.4 手機(jī)客戶端的代碼實現(xiàn)和分析25.小結(jié)215個人電話薄的設(shè)計和實現(xiàn)1. 前言現(xiàn)在手機(jī)無處不在,幾乎每個人都有一臺手機(jī),而手機(jī)中的通訊錄及電話薄就少不了,于是通過學(xué)
2、習(xí)j2me后,便做了這個簡單的個人電話薄。2. 系統(tǒng)總體設(shè)計2.1系統(tǒng)設(shè)計目標(biāo)掌握用無線java應(yīng)用技術(shù)即j2me技術(shù)的軟件系統(tǒng)設(shè)計方法,通過開發(fā)個人電話薄這個小系統(tǒng),熟練使用j2me開發(fā)平臺,了解java各組件的使用。2.2 系統(tǒng)設(shè)計思路(1)電話薄導(dǎo)航的實現(xiàn),系統(tǒng)啟動進(jìn)入的頁面是一個圖標(biāo),并有文字“電話薄”顯示,選擇該imageitem項目后進(jìn)入下一個頁面.(2)主菜單,該頁面顯示在瀏覽、增加、查詢、修改、刪除聯(lián)系人等功能(3)選擇主菜單中的各功能后,進(jìn)入各功能的子界面(4)系統(tǒng)不實現(xiàn)對聯(lián)系人發(fā)信息以及通話功能。2.3 系統(tǒng)總體架構(gòu)主菜單瀏覽聯(lián)系人查詢聯(lián)系人增加聯(lián)系人編輯聯(lián)系人刪除聯(lián)系人使
3、用提示界面聯(lián)系人信息數(shù)據(jù)庫2.4 系統(tǒng)流程圖電話薄圖標(biāo)主菜單單擊確認(rèn)進(jìn)入修改刪除瀏覽查找增添進(jìn)入返回進(jìn)入返回進(jìn)入進(jìn)入進(jìn)入返回返回返回3. 客戶端設(shè)計4.1 手機(jī)客戶端程序設(shè)計(1)使用提示界面設(shè)計:使用一個form組件,在from組件上添加一個imageitem組件和一個command按鈕,從而顯示出電話薄的圖標(biāo)并在右下角有“確認(rèn)”進(jìn)入的按鈕。(2)主菜單的設(shè)計:主菜單使用一個list組件,list的內(nèi)容分別為各個功能的名稱,在list組件上添加兩個command按鈕,一個為“確認(rèn)”,一個為“關(guān)閉”;使用list組件的getselectedindex()函數(shù)獲知用戶選擇的哪個功能。(3)進(jìn)入具
4、體功能后,使用commandlistener監(jiān)聽手機(jī)按鍵,檢查用戶是否確認(rèn)執(zhí)行相應(yīng)功能。如果確認(rèn)了便執(zhí)行該功能,否則返回主菜單4.2 界面設(shè)計(1)提示用戶進(jìn)入界面(2)主菜單界面(3)瀏覽界面(4)查詢及查詢成功、查詢失敗界面(5)增加界面及增加成功界面(6)刪除及刪除成功、刪除失敗界面(7)修改及修改成功、修改失敗界面4.3 程序的運行流程程序首先運行addressbookmidlet類的構(gòu)造函數(shù)public addressbookmidlet();在該函數(shù)中初始化各command 變量并打開聯(lián)系人信息的記錄存儲文件。接著程序執(zhí)行類中的startapp()函數(shù)顯示電話薄的圖標(biāo)并提示進(jìn)入,確
5、認(rèn)后,監(jiān)聽函數(shù)commandaction()獲得對應(yīng)的值,使程序跳轉(zhuǎn)到main_menu()函數(shù),此時界面顯示主菜單界面,程序繼續(xù)監(jiān)聽手機(jī)按鍵,當(dāng)用戶選中某一功能并確認(rèn)后,commandaction()函數(shù)獲得值,根據(jù)該值跳轉(zhuǎn)到這一功能的實現(xiàn)函數(shù)。當(dāng)功能實現(xiàn)完后,commandaction()監(jiān)聽用戶的按鍵,如果是“返回”,則跳轉(zhuǎn)到main_menu()函數(shù),如果是“關(guān)閉”,則跳至destoryapp()函數(shù)退出系統(tǒng)。4.4 手機(jī)客戶端的代碼實現(xiàn)和分析import javax.microedition.midlet.midlet;import javax.microedition.midlet
6、.midletstatechangeexception;import javax.microedition.lcdui.*;import javax.microedition.rms.*;public class addressbookmidlet extends midlet implements commandlistener private display display=null; command search=null; command quit=null; command back=null; command delete=null; command addnow=null; co
7、mmand edit=null; command into=null; command brower=null; command confirm=null; list menu=null; form ui_form=null; stringitem si=null; textfield name=null; textfield phone=null; textfield address=null; textfield nameforedit=null; imageitem oneimageitem=null; recordstore recordstore=null; public addre
8、ssbookmidlet() /用戶界面初始化 display=display.getdisplay(this); quit=new command("關(guān)閉",command.exit,0); back=new command("返回",command.exit,1); confirm=new command("確定",command.ok,2); search=new command("查詢",command.ok,2); delete=new command("刪除",command.ok,
9、2); addnow=new command("增加",command.ok,2); edit=new command("修改",command.ok,2); into=new command("確定",command.ok,2); /記錄存儲初始化 try recordstore=recordstore.openrecordstore("phonebook", true); catch(recordstoreexception rse) rse.printstacktrace(); /關(guān)閉應(yīng)用程序 protect
10、ed void destroyapp(boolean arg0) throws midletstatechangeexception menu=null; notifydestroyed(); /瀏覽界面 void browerscreen() ui_form=new form("所有命片"); string temp="" string phone_number=null; string person_name=null; try recordenumeration re=recordstore.enumeraterecords(null, null,
11、 false); while(re.hasnextelement() string name1=new string(re.nextrecord(); try person_name=name1.substring(0,name1.indexof("?"); phone_number=name1.substring(name1.indexof("?")+1,name1.indexof("#"); catch(exception ef) ef.printstacktrace(); temp=person_name+" &quo
12、t;+phone_number+"n" ui_form.append(temp); catch(exception e) e.printstacktrace(); ui_form.addcommand(back); ui_form.setcommandlistener(this); display.setcurrent(ui_form); /查詢用戶界面 void searchscreen() ui_form=new form("輸入姓名"); name=new textfield("","",50,0); ui_
13、form.append(name); ui_form.addcommand(search); ui_form.addcommand(back); ui_form.setcommandlistener(this); display.setcurrent(ui_form); /增加記錄的用戶界面。 void addscreen() ui_form=new form("增加"); name=new textfield("姓名","",50,textfield.any); ui_form.append(name); phone=new tex
14、tfield("電話號碼","",50,textfield.phonenumber); ui_form.append(phone); address=new textfield("地址","",50,textfield.any); ui_form.append(address); ui_form.addcommand(addnow); ui_form.addcommand(back); ui_form.setcommandlistener(this); display.setcurrent(ui_form); /修
15、改記錄的用戶界面 void editscreen() ui_form=new form("編輯名片"); nameforedit= new textfield("需要修改的姓名","",50,0); ui_form.append(nameforedit); name=new textfield("姓名","",50,textfield.any); ui_form.append(name); phone=new textfield("電話號碼","",50,
16、textfield.phonenumber); ui_form.append(phone); address=new textfield("地址","",50,textfield.any); ui_form.append(address); /if(name.getstring()!="")ui_form.settitle("zou"); ui_form.addcommand(edit); ui_form.addcommand(back); ui_form.setcommandlistener(this); dis
17、play.setcurrent(ui_form); /刪除一條記錄的用戶界面 void deletescreen() ui_form=new form("輸入姓名"); name=new textfield("","",50,0); ui_form.append(name); ui_form.addcommand(delete); ui_form.addcommand(back); ui_form.setcommandlistener(this); display.setcurrent(ui_form); /重置menu protec
18、ted void pauseapp() menu=null; / 設(shè)置菜單選項及監(jiān)聽 protected void startapp() throws midletstatechangeexception ui_form=new form("電話薄"); try /創(chuàng)建第一個圖片控件 oneimageitem = new imageitem("",image.createimage("/2.png"),item.layout_default,"圖片沒有了"); catch (exception e) system.
19、out.println("圖像出錯!"); ui_form.append(oneimageitem); ui_form.addcommand(into); ui_form.setcommandlistener(this); display.setcurrent(ui_form); public void main_menu() menu=new list("電話薄.",list.implicit); menu.append("1.所有名片",null); menu.append("2.姓名查找", null); m
20、enu.append("3.新建名片", null); menu.append("4.刪除", null); menu.append("5.編輯", null); menu.addcommand(confirm); menu.addcommand(quit); menu.setcommandlistener(this); display.setcurrent(menu); public void commandaction(command c, displayable d) if(c=quit)/按下關(guān)閉按鈕,觸發(fā)相應(yīng)事件處理 try
21、 close();/關(guān)閉記錄存儲 catch(recordstoreexception rse) rse.printstacktrace();/銷毀應(yīng)用程序,觸發(fā)相應(yīng)事件處理 try destroyapp(true); catch (midletstatechangeexception e) / todo 自動生成 catch 塊 e.printstacktrace(); else if(c=into) main_menu(); else if(c=search) string temp_search=name.getstring();/獲取要查詢的姓名 address_search(temp
22、_search);/調(diào)用查詢方法 else if (c=edit) string temp_nameforedit=nameforedit.getstring(); string temp_name=name.getstring(); string temp_phone=phone.getstring(); string temp_address=address.getstring();/調(diào)用修改方法 address_edit(temp_nameforedit,temp_name,temp_phone,temp_address); else if(c=back) main_menu(); el
23、se if(c=delete) string temp_delete=name.getstring();/獲得要刪除的姓名 address_del(temp_delete);/調(diào)用刪除方法 else if(c=addnow) string temp_name=name.getstring();/獲得增加的姓名 string temp_phone=phone.getstring();/獲得增加的電話號碼 string temp_address=address.getstring();/獲得增加的地址 address_add(temp_name,temp_phone,temp_address);/
24、調(diào)用增加方法 else if(c=confirm) list down=(list)display.getcurrent(); switch(down.getselectedindex() case 0: browerscreen();break; case 1: searchscreen();break; case 2: addscreen();break; case 3: deletescreen();break; case 4: editscreen();break; /查詢方法 void address_search(string address) string temp="
25、" string phone_number; string person_name; string person_address; string check_name; int size=address.length(); try recordenumeration re=recordstore.enumeraterecords(null, null, false); ui_form=new form("查詢結(jié)果"); while(re.hasnextelement() string name1=new string(re.nextrecord(); try pe
26、rson_name=name1.substring(0,name1.indexof("?"); catch(exception ef) person_name="請檢查姓名是否正確" ef.printstacktrace(); if (person_name.length()>=size) check_name=person_name.substring(0,size); if(check_name.equals(address) try phone_number=name1.substring(name1.indexof("?"
27、;)+1,name1.indexof("#")+1); person_address=name1.substring(name1.indexof("#")+1); catch(exception e) phone_number=""person_address="" temp=temp+"n姓名."+person_name+"n電話."+phone_number+"n地址."+person_address; if(temp.equals("&qu
28、ot;) temp="沒有找到。" ui_form.append(temp); ui_form.addcommand(back); /ui_form.addcommand(detail); ui_form.setcommandlistener(this); display.setcurrent(ui_form); catch(recordstorenotopenexception rsnoe) rsnoe.printstacktrace(); catch(invalidrecordidexception irid) irid.printstacktrace(); catch
29、(recordstoreexception rse) rse.printstacktrace(); /刪除方法 void address_del(string address) string temp="" string person_name; int id; int del_id=0; try recordenumeration re=recordstore.enumeraterecords(null, null, false); ui_form=new form("刪除結(jié)果"); while(re.hasnextelement() id=re.ne
30、xtrecordid(); string name1=new string(recordstore.getrecord(id); try person_name=name1.substring(0,name1.indexof("?"); catch(exception ef) person_name="請檢查姓名是否正確" if(person_name.equals(address) del_id=id; if(del_id !=0) recordstore.deleterecord(del_id); temp="成功刪除一條記錄"
31、else temp="所指定的記錄不在電話薄內(nèi)" catch(exception e) ui_form.append(temp); ui_form.addcommand(quit); ui_form.addcommand(back); ui_form.setcommandlistener(this); display.setcurrent(ui_form); /增加方法 void address_add(string name,string phone,string address) string data=name+"?"+phone+"#&
32、quot;+address; system.out.println(data); try byte b=data.getbytes(); recordstore.addrecord(b, 0, b.length); ui_form =new form("添加成功"); ui_form.append("成功添加一條記錄"); ui_form.addcommand(quit); ui_form.addcommand(back); ui_form.setcommandlistener(this); display.setcurrent(ui_form); catch(recordstoreexception rse) rse.printsta
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年轉(zhuǎn)向系統(tǒng):齒輪投資申請報告
- 2023年潔廁劑資金申請報告
- 2024年智能電能表及配件項目資金需求報告代可行性研究報告
- 一年級數(shù)學(xué)計算題專項練習(xí)集錦
- 國慶節(jié)放假前校長安全教育講話稿
- 方艙項目可行性研究報告
- 2024年育兒嫂全天候服務(wù)勞動協(xié)議
- 2024年企業(yè)勞動派遣協(xié)議
- 2024年化博物館建設(shè)協(xié)議樣本
- 2024年度封山育林工程承包協(xié)議樣本
- 20世紀(jì)時尚流行文化智慧樹知到期末考試答案章節(jié)答案2024年浙江理工大學(xué)
- 公路銑刨機(jī)整機(jī)的設(shè)計含全套CAD圖紙
- 六年級語文上冊06.第六單元教學(xué)導(dǎo)讀
- 「」初中人教版七年級英語常用方位介詞和短語鞏固練習(xí)
- 機(jī)器人學(xué)課程教學(xué)大綱
- 基于PLC的谷物烘干機(jī)控制系統(tǒng)設(shè)計--程序代碼-附 錄
- 社區(qū)治安巡邏隊工作方案
- GHTF—質(zhì)量管理體系--過程驗證指南中文版
- 信用社(銀行)借新還舊申請書(精編版)
- (完整版)蘇教版五年級數(shù)學(xué)上冊知識點歸納總結(jié)
- lampsite LTE 站點配置指導(dǎo)v1.1
評論
0/150
提交評論