湖南科技大學(xué)智能終端系統(tǒng)開發(fā)及應(yīng)用課程設(shè)計(jì)報告.doc
《湖南科技大學(xué)智能終端系統(tǒng)開發(fā)及應(yīng)用課程設(shè)計(jì)報告.doc》由會員分享,可在線閱讀,更多相關(guān)《湖南科技大學(xué)智能終端系統(tǒng)開發(fā)及應(yīng)用課程設(shè)計(jì)報告.doc(12頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
智能終端系統(tǒng)及應(yīng)用開發(fā) 課程設(shè)計(jì)報告 題目:個人理財小助手 學(xué) 號: 班 級: 姓 名: 指導(dǎo)老師: 一、 題目:個人理財小助手 (1) 目的與要求 1. 掌握 SQLite 數(shù)據(jù)庫及其使用。 2. 熟練掌握布局及常用控件 Button、 ListView、 EditText、 TextView 等。 (2)功能需求 個人理財小助手主要為用戶提供 5 個主要模塊,包括:登錄模塊、收入管理模塊、支出管理模塊、 便簽管理模塊、 系統(tǒng)設(shè)置模塊。對日常的開支進(jìn)行隨時記錄, 存儲到本機(jī)的SQLite數(shù)據(jù)庫。 1. 使用 SQLite 數(shù)據(jù)庫實(shí)現(xiàn)增加、刪除、修改; 2. 使用 ListView 進(jìn)行顯示; 3. 增加私密性,驗(yàn)證成功才能進(jìn)行收支管理; 4. 能提供簡單的收支統(tǒng)計(jì)(按月、按周)功能; 5. 提供數(shù)據(jù)管理,能對數(shù)據(jù)進(jìn)行導(dǎo)出(如將收入/支出明細(xì)導(dǎo)出為 txt 或 Excel 文檔)。 二、 工作日志 12月15日 (1) 搭建android開發(fā)環(huán)境。 從http://www.oracle.com/technetwork/java/javase/downloads/index.html 下載版本6.0以上的JDK并安裝。 配置環(huán)境變量:安裝 JDK 以后,若需要在 cmd 下使用 Java 命令和編譯、運(yùn)行程序,可以配置環(huán)境變量:新建環(huán)境變量 JAVA_HOME,右擊“我的電腦”—>“屬性”—>“高級”—>“環(huán)境變量”。 從http://pan.baidu.com/s/1dDJkkVZ 下載adt-bundle-windows-x86-20130917,解壓縮即可,進(jìn)入eclipse 文件夾,運(yùn) 行 eclipse.exe。 (2) 創(chuàng)建HelloWorld程序,并在模擬器上運(yùn)行,如下圖所示。 (3) 確定開發(fā)題目——個人理財小助手。個人理財小助手主要為用戶提供 5 個主要模塊,包括:登錄模塊、收入管理模塊、支出管理模塊、 便簽管理模塊、 系統(tǒng)設(shè)置模塊。對日常的開支進(jìn)行隨時記錄, 存儲到本機(jī)的 SQLite數(shù)據(jù)庫。開始設(shè)計(jì)第一個布局——登錄布局,上網(wǎng)查找所需圖片。 12月16日 (1) 改進(jìn)了昨天做的登錄界面,在之前的基礎(chǔ)上加入一張圖片和一個按鈕,如下圖所示。 先將網(wǎng)上下載的圖片復(fù)制到res/drawable下,再利用ImageView添加圖片。登錄界面整體采用相對布局,TextView和EditText之間使用線性布局。 (2) 設(shè)計(jì)了菜單界面的布局。菜單界面整體采用相對布局,界面上有8個按鈕,每一行的按鈕采用線性布局。賦給每個線性布局一個id,再用android:layout_below=”@+id/線性布局id將這3個線性布局分開。將下載好的圖片利用android:background=”@drawable/圖片名字”作為按鈕的背景。利用android:background=”#e7e7e7e7”改變背景顏色。 (3) 設(shè)計(jì)了保存密碼界面的布局,布局與登錄界面的布局差不多,但背景顏色為 android:background=”#e7e7e7e7”,如下圖所示。 (4) 設(shè)計(jì)了新增收入界面和新增支出界面的布局,界面整體使用相對布局,界面上有5個TextView和5個EditText以及2個按鈕,每行中的TextView和EditText采用線性布局,賦給每個線性布局id,用android:layout_below=”@+id/線性布局id分開每個線性布局。整體背景色為android:background=”#e7e7e7e7”, EditText背景色為android:background=”ffffff”。如下圖所示。 12月17日 (1) 用ListView完成我的收入和我的支出界面的布局設(shè)計(jì)。我的收入和我的支出界面相同,整體采用線性布局,在線性布局中添加ListView控件。ListView是一個列表視圖,由很多Item(條目)組成,每個Item的布局都是一樣的。創(chuàng)建好ListView界面之后接下來需要創(chuàng)建ListView的條目,在res目錄下創(chuàng)建一個item.xml文件,指定Item的布局。Item的布局整體采用相對布局,其上有五個TextView,第一個TextView內(nèi)容為“我的收入”;后四個TextView使用線性布局,第二個TextView內(nèi)容為序號,權(quán)重weight設(shè)為1;第三個TextView內(nèi)容為收入的名字,權(quán)重weight設(shè)為2;第四個TextView內(nèi)容為金額,權(quán)重weight設(shè)為3;第五個TextView內(nèi)容為日期,權(quán)重weight設(shè)為3。如下圖所示。 (2) 完成新增便簽界面的布局設(shè)計(jì)。界面整體采用相對布局,布局中有兩個TextView,一個EditText和兩個按鈕,第二個TextView內(nèi)容為“請輸入便簽,最多輸入200字”,顏色用”#900000”設(shè)為紅色 ,與EditText組成線性布局,將線性布局的一個屬性android:orientation設(shè)為vertical(垂直),使其垂直顯示。EditText顏色設(shè)為白色,textSize為150dp。整體背景依然設(shè)為”#e7e7e7”。如下圖所示。 12月18日 (1) 完成“設(shè)置密碼”按鈕的代碼編寫,使其從FinancialMenagerActivity跳轉(zhuǎn)到PasswordActivity。在布局文件activity_financial_manager_main.xml中為按鈕“設(shè)置密碼”設(shè)置onClick屬性指定點(diǎn)擊方法名android:onClick="click"。 (2) 編寫“保存”按鈕和“取消”按鈕的代碼。創(chuàng)建一個內(nèi)部類實(shí)現(xiàn)OnClickListener接口并重寫onClick()方法,在方法中寫入點(diǎn)擊事件的邏輯。這里比較重要的一點(diǎn),要為按鈕設(shè)置點(diǎn)擊事件前要先獲取到該控件的引用,需要在布局文件password.xml中為按鈕“保存”設(shè)置id, android:id="@+id/zc_button1",在代碼中使用findViewById(R.id.zc_button1)方法獲得該控件的View對象,最后通過強(qiáng)制類型轉(zhuǎn)換得到該控件。 12月21日 (4) 修改代碼過程中,不知道什么原因?qū)е虏季忠矡o法顯示。再次修改時,不小心activity.java文件,所幸布局文件還能用。重新建立工程,重新命名工程為FM,applicationname為理財貓,將布局文件和圖片復(fù)制進(jìn)去。并且出于有Back建的考慮,我將保存密碼布局、新增收入布局、新增支出布局和新增便簽布局中的“取消”按鈕全部刪除,以減少工作量。 (5) 編寫“設(shè)置密碼”按鈕的代碼,以實(shí)現(xiàn)登錄界面和保存密碼界面的跳轉(zhuǎn)。 (6) 編寫“保存”按鈕的代碼,實(shí)現(xiàn)將密碼保存到data/data/hnust.zsz.fm/files/password.txt的功能 。 (7) 完成“登錄”按鈕的代碼編寫,以實(shí)現(xiàn)從登錄界面跳轉(zhuǎn)到菜單界面。如果密碼輸入錯誤,則會彈出“密碼錯誤”;密碼正確才能登錄。 在編寫按鈕的代碼過程中,我在布局文件activity_fm.xml布局文件中為button1定義了onClick屬性,它的作用就是為按鈕設(shè)置點(diǎn)擊事件,以onClick屬性的值為方法名創(chuàng)建了一個方法,在參數(shù)中傳人View對象。我還使用直接創(chuàng)建OnClickListener的匿名內(nèi)部類的方法實(shí)現(xiàn)按鈕。 12月22日 (1) 編寫菜單界面上7個按鈕的代碼,以實(shí)現(xiàn)從菜單跳轉(zhuǎn)到新增收入、收入、便簽等各個界面。在主類中實(shí)現(xiàn)OnClickListener借口,然后重寫onClick()方法,并通過switch語句判斷是哪個按鈕被點(diǎn)擊,然后執(zhí)行相應(yīng)操作,部分代碼如下: 其中啟動下一個activity時,我使用的是顯示意圖。顯示意圖,即在通過Intent啟動Activity時,需要明確指定激活組件的名稱。 (2) 創(chuàng)建一個新增收入的數(shù)據(jù)庫。創(chuàng)建數(shù)據(jù)庫屬于數(shù)據(jù)操作,因此需要在hnust.zsz.fm的包下創(chuàng)建一個名為dao的包。并在該包下定義一個MyHelper類繼承自SQLiteOpenHelper。 (3) 創(chuàng)建Accoutn類。在操作數(shù)據(jù)庫是將數(shù)據(jù)存放至一個JavaBean對象中操作起來會比較方便。因此,需要在hnust.zsz.fm包下創(chuàng)建一個bean包用于存放JavaBean類,然后在hnust.zsz.fm.bean包下定義一個類Account。 12月23日 (1) 完成新增收入模塊的編寫,實(shí)現(xiàn)了能將新增收入保存到數(shù)據(jù)庫的功能。編寫數(shù)據(jù)邏輯操作類,在hnust.zsz.fm.dao包下創(chuàng)建一個AccountDao類用于操作數(shù)據(jù),該類創(chuàng)建了對數(shù)據(jù)進(jìn)行增、刪、改、查操作的方法。 (2) 完成編寫界面與數(shù)據(jù)庫進(jìn)行交互的代碼,用于實(shí)現(xiàn)將數(shù)據(jù)庫中的數(shù)據(jù)以ListView的形式展示在界面上。ListView的setOnItemClicListener():該方法用于監(jiān)聽Item的點(diǎn)擊事件,在使用該方法時需要傳入一個OnItemClickListener的實(shí)現(xiàn)類對象,并且需要實(shí)現(xiàn)onItemClick方法。當(dāng)點(diǎn)擊ListView的Item時就會觸發(fā)Item的點(diǎn)擊事件然后會回調(diào)onItemClick()方法。Adapter的notifyDataChange()方法:該方法是用于重新適配數(shù)據(jù),當(dāng)需要適配的數(shù)據(jù)內(nèi)容發(fā)生變化時,可以調(diào)用此方法重新適配數(shù)據(jù),會重新執(zhí)行BaseAdapter中g(shù)erView()的方法。 (3) 編寫了與新增收入類似的新增支出模塊的代碼,但點(diǎn)擊保存按鈕時,并沒有保存數(shù)據(jù),原因還未找到。 12月24日 (1) 完成了新增支出模塊的編寫,實(shí)現(xiàn)了能將新增支出保存到數(shù)據(jù)庫的功能,并能對保存的新增支出進(jìn)行查詢、刪除操作。 (2) 我原先的登錄時,比對的是代碼中的固定密碼,而且設(shè)置的密碼是以文件的形式保存的,但不能調(diào)出比對。我將它改成將密碼保存在數(shù)據(jù)庫中,并能調(diào)出比對。我在主要的數(shù)據(jù)庫中使用SQLiteDatabase的insert()、update()、delete()、query()方法實(shí)現(xiàn)增、刪、改、查的功能,而在登錄模塊的數(shù)據(jù)庫中我是用exeSQL()和rawQuety()方法來實(shí)現(xiàn)增、刪、改、查的功能。 (3) 完成了便簽?zāi)K中將便簽保存到數(shù)據(jù)庫中的代碼編寫。 (4) 補(bǔ)了一個數(shù)據(jù)管理的布局。布局整體采用線性布局,使用了ListView控件。 三、 遇到的問題及解決方法 (1) The method setOnClickListener(View.OnClickListener) in the type View is not applicable for the arguments (Menu),原因是public class Menu extends Activity沒有implements OnClickListener,加上即可。 (2) Multiple markers at this line - The value of the local variable button1 is not used - Syntax error, insert "}" to complete MethodBody 一個花括號}位置放錯了,導(dǎo)致public void click1包含在protected void onCreate中,只需將}放在正確位置即可。 (3) 在新增收入、收入、便簽等界面按Back鍵后,直接跳轉(zhuǎn)到登錄界面,應(yīng)跳轉(zhuǎn)到上一界面才對。原因是我在每個case中break前加了finish(),刪去即可。 (4) 運(yùn)行app后,出現(xiàn)invalid resource directory name,在res文件下生成一個crunch文件導(dǎo)致運(yùn)行出錯。原因可能是我用兩個android版本去編程,將這個文件刪除即可。 (5) 設(shè)計(jì)菜單界面布局時,添加圖片為按鈕的背景后,圖片相互重疊。需要去挑戰(zhàn)圖片的height和width,我將二者設(shè)為75dp就解決了這個問題。還出現(xiàn)了按鈕有的能單獨(dú)點(diǎn)擊,有的不能的問題。這是由于線性布局互相重疊,只需給每個線性布局一個id,再利用android:layout_below將布局分開。 四、 經(jīng)驗(yàn)總結(jié) 首先,編程過程中一定要非常認(rèn)真仔細(xì),任何一點(diǎn)差錯都會使程序出錯。比如一符號打成中文字符也會報錯,再比如 一個字母打錯也不行。 其次,我從這次課程設(shè)計(jì)中學(xué)到了很多。熟悉了相對布局和線性布局,掌握了Intent顯示意圖和隱式意圖的使用。進(jìn)一步理解了activity的生命周期,懂得了將數(shù)據(jù)以文件的形式保存下來。對SQL數(shù)據(jù)庫有了進(jìn)一步的認(rèn)識,學(xué)會了使用SQLiteDatabase的insert()、delete()、update()、query()以及execSQL()、rawQuery()方法對數(shù)據(jù)庫進(jìn)行增、刪、改、查的操作。還學(xué)會了ListView控件的使用。 最后,開發(fā)app不僅需要android編程方面的知識,還需要數(shù)據(jù)庫等其他方面的知識。所以平時要重視知識的積累,而且需要大量的動手實(shí)踐,以培養(yǎng)軟件開發(fā)的綜合應(yīng)用能力。- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 湖南 科技大學(xué) 智能 終端 系統(tǒng) 開發(fā) 應(yīng)用 課程設(shè)計(jì) 報告
鏈接地址:http://www.3dchina-expo.com/p-9308248.html