王千千
摘? 要: 針對當(dāng)代大學(xué)生經(jīng)常面臨的選課問題,設(shè)計(jì)和實(shí)現(xiàn)了基于Android平臺(tái)和MySQL數(shù)據(jù)庫的課程評價(jià)App。對課程信息和教師信息進(jìn)行了獲取、處理和共享,將這些信息提供給有需要的學(xué)生,同時(shí)也提供給學(xué)生一個(gè)發(fā)表言論的平臺(tái),表達(dá)對課程的一些觀點(diǎn)。
關(guān)鍵詞: Android; MySQL; 課程評價(jià); 選課信息
中圖分類號:TP311.1? ? ? ? ? 文獻(xiàn)標(biāo)志碼:A? ? ?文章編號:1006-8228(2019)02-84-04
Design and implementation of an Android App for course evaluation
Wang Qianqian
(China JiLiang University, Hangzhou, Zhejiang 310000, China)
Abstract: Aiming at the problem of course selection that contemporary college students often face, a course evaluation App based on Android platform and MySQL database is designed and implemented. The course information and teacher information are acquired, processed and shared, and provided them to students in need. It also provides a platform for students to express their views on the course.
Key words: Android; MySQL; course evaluation; course selection information
0 引言
當(dāng)今社會(huì)生活節(jié)奏越來越快,對手機(jī)配置的要求也越來越高,由于手機(jī)市場發(fā)展迅速,使得手機(jī)操作系統(tǒng)也出現(xiàn)了不同的種類。智能手機(jī)軟件平臺(tái)有Symbian、Windows Mobile、RIM BlackBerry、Android、iPhone、Palm、Brew、Java/J2ME,Android一詞本義是指“機(jī)器人”,最初是由General Magic公司軟件工程師Andy Rubin開發(fā)的一款專用于移動(dòng)終端設(shè)備的OS(操作系統(tǒng))[1]。在2012年11月的數(shù)據(jù)顯示,Android占據(jù)全球智能手機(jī)操作系統(tǒng)市場76%的份額,在中國市場的占有率為90%[2]。
智能手機(jī),大學(xué)生絕對是這一市場的主流用戶,對智能手機(jī)的應(yīng)用已經(jīng)滲透到了大學(xué)生生活的幾乎各個(gè)方面。大學(xué)生最經(jīng)常面對的問題就是選課,為了豐富大學(xué)生的校園生活,學(xué)校提供的可選課程越來越多,而學(xué)生往往除了課程名稱,對課程相關(guān)知識一無所知,信息的缺乏與不集中,導(dǎo)致學(xué)生選課需要花費(fèi)很多的時(shí)間來收集信息,但往往最后也沒能選到滿意的課程,如何快速地了解課程的相關(guān)信息,成為我們需要關(guān)注的一個(gè)問題。
本課題就是針對這一問題,開發(fā)一款軟件,借助于Android這一平臺(tái),實(shí)現(xiàn)課程信息共享,將課程信息傳遞給需要的學(xué)生。
1 系統(tǒng)需求分析
基于Android的課程評價(jià)系統(tǒng)App是為大學(xué)生用戶而設(shè)計(jì)的,手機(jī)上安裝App,登錄系統(tǒng)后可以選擇以下操作:啟動(dòng)軟件,登錄軟件,注冊軟件,查詢課程,查詢老師,增加課程,評論課程,發(fā)表評論,更改個(gè)人信息。其用例圖如圖1所示。
2 概要設(shè)計(jì)
2.1 課程評價(jià)系統(tǒng)流程圖
根據(jù)對實(shí)際操作的模擬,軟件的主要的操作流程如下。
Step1:點(diǎn)擊課程評價(jià)系統(tǒng)“iCourse”,加載登錄界面。
Step2:點(diǎn)擊登錄,加載主界面和課程信息,跳轉(zhuǎn)Step4。
Step3:點(diǎn)擊注冊,加載注冊界面,進(jìn)行注冊,注冊成功。
Step4:查詢課程信息,按課程分類查詢。
Step5:添加課程,填寫課程信息。
Step6:評價(jià)課程。
Step7:查詢教師信息,按學(xué)院分類查詢。
Step8:查詢個(gè)人信息,更改個(gè)人信息,查詢評價(jià)記錄。
2.2 E-R圖
根據(jù)對數(shù)據(jù)流圖的分析,可以得到四個(gè)實(shí)體,分別是賬戶、學(xué)生、課程、教師,它們之間的關(guān)系以及各自的屬性,通過圖2的E-R圖表示得出。
3 詳細(xì)設(shè)計(jì)
3.1 Android底部導(dǎo)航欄
為了維護(hù)UI系統(tǒng)的良好運(yùn)行,在應(yīng)用層里,Android還設(shè)計(jì)了許多框架,當(dāng)開始一個(gè)項(xiàng)目,我們就要確認(rèn)App的框架,也就是當(dāng)用戶進(jìn)入App后,App首頁所展示給用戶的界面布局,就比如說,淘寶的界面展示了五個(gè)Tab,分別對應(yīng):主界面、微淘、信息、購物車和我,這樣的一個(gè)框架我們稱之為底部導(dǎo)航欄,一般分為3-5個(gè)Tab。底部導(dǎo)航欄可以利用button監(jiān)聽來實(shí)現(xiàn),也可以利用Fragment實(shí)現(xiàn),在本項(xiàng)目中,是利用Fragment來實(shí)現(xiàn)底部導(dǎo)航欄。
Fragment不能獨(dú)立的存在,必須嵌入到Activity中使用,因此,F(xiàn)ragment的生命周期直接受所在的Activity影響,當(dāng)Activity銷毀時(shí),它擁有的所有Fragment都被銷毀[3]。Fragment的布局分三個(gè)部分,利用Framelayout作為Fragment的容器,中間需要一根分割線,下面的TabLayout用來放置各個(gè)button按鈕。
Activity中的代碼就是一個(gè)TabLayout,在其中添加監(jiān)聽器,然后向TabLayout中添加所需要數(shù)目的Tab,在addOnTabSelectedListener 中切換到各個(gè)Tab對應(yīng)的Fragment。
3.2 搜索欄SearchView
SearchView是Android自帶的搜索框控件,可以直接添加到用戶界面中,用于實(shí)現(xiàn)搜索查詢功能。SearchView自帶onQueryTextSubmit和onQueryTextChange方法,監(jiān)聽SearchView需要對這兩個(gè)方法加以實(shí)現(xiàn),其中onQueryTextSubmit是當(dāng)SearchView中輸入完成提交之后所觸發(fā)的方法。
3.3 服務(wù)器設(shè)計(jì)
MySQL是一個(gè)真正多用戶、多線程的SQL數(shù)據(jù)庫服務(wù)器,SQL(結(jié)構(gòu)化查詢語言)是世界上最流行的和標(biāo)準(zhǔn)化的數(shù)據(jù)庫語言[4]。因此本次項(xiàng)目使用了JavaWeb+Tomcat+MySQL,客戶端用了標(biāo)準(zhǔn)的Java接口——URL和URLConnection,可以實(shí)現(xiàn)基于URL的請求、相應(yīng)功能。自定義異步任務(wù)類MyTask,LoginTask,繼承自AsyncTask,通過out對象攜帶請求參數(shù)username和password,在in對象中獲取服務(wù)器返回結(jié)果,成功返回success,失敗返回fail,在客戶端用Toast進(jìn)行輸出。在eclipse中用tomcat服務(wù)器本地調(diào)試,google模擬器中的ip地址是10.0.2.2,在Genymotion中的ip地址是10.0.3.2。
3.4 數(shù)據(jù)存儲(chǔ)和顯示
本次項(xiàng)目采用了android提供的SQLiteDatabase類,實(shí)現(xiàn)了數(shù)據(jù)庫的創(chuàng)建,查找和增添功能。SQLite是一個(gè)輕量級數(shù)據(jù)庫,它是D.Richard Hipp建立的公共領(lǐng)域項(xiàng)目,它的設(shè)計(jì)目標(biāo)是嵌入式,而且占用資源非常低,在內(nèi)存中只需要幾百KB存儲(chǔ)空間[3]。用繼承于SQLiteOpenHelper的MyOenHelper和TeOpenHelper,進(jìn)行數(shù)據(jù)庫的內(nèi)容準(zhǔn)備和數(shù)據(jù)庫表的創(chuàng)建操作。用繼承自BaseAdapter的MyAdapter和TeAdapter,幫助數(shù)據(jù)從數(shù)據(jù)庫顯示到界面上,并用converView進(jìn)行了性能的優(yōu)化。
3.5 listView的應(yīng)用
ListView是Android中最常用的復(fù)雜容器控件之一,支持單行、多行、自定義布局等多種子視圖布局,同時(shí)還支持普通顯示、單選和多選等風(fēng)格[5]。ListView需要引入適配器模式,開發(fā)列表時(shí),主要有單擊事件處理,適配器等方面,在項(xiàng)目中課程的顯示、教師的顯示和評價(jià)的顯示都使用了ListView,其共用同一個(gè)適配器。
4 界面設(shè)計(jì)
軟件的主要界面有登錄界面,注冊界面,課程界面,教師界面,評價(jià)界面,我的界面,課程信息界面,教師信息界面,我的資料界面。主要界面設(shè)計(jì)如圖3-圖6所示。
5 結(jié)束語
社會(huì)正朝著信息化、網(wǎng)絡(luò)化的方向發(fā)展,信息的共享變得越來越便利,本文就是通過對Android、JavaWeb、TomCat和MySQL等技術(shù)的應(yīng)用,實(shí)現(xiàn)對課程相關(guān)信息的獲取、處理和共享,將這些信息提供給有需要的用戶,同時(shí)也提供給學(xué)生一個(gè)言論的平臺(tái),表達(dá)對課程的一些看法。該軟件是對在校學(xué)生實(shí)際需求的一個(gè)設(shè)計(jì),解決了選課信息難以獲取的問題,系統(tǒng)具有實(shí)用性和創(chuàng)新性,有一定的推廣價(jià)值,能給學(xué)生選課提供更好的體驗(yàn)。
參考文獻(xiàn)(References):
[1] 鄭耿忠,莊桂東.Android應(yīng)用開發(fā)從入門到精通[M].清華大學(xué)出版社,2018.
[2] 鄭阿奇.Android實(shí)用教程[M].電子工業(yè)出版社,2017.
[3] 任林軍,林海霞.MySQL數(shù)據(jù)庫管理與開發(fā)[M].人民郵電出版社,2017.
[4] 黑馬程序員.Android移動(dòng)開發(fā)基礎(chǔ)案例教程[M].人民郵電出版社,2017.
[5] 苗中良,曾旭,宛斌.深入Android應(yīng)用開發(fā)[M].機(jī)械工業(yè)出版社,2012.