吳譜
摘 要:智能移動(dòng)設(shè)備的普及引起了APP開發(fā)的熱潮,對(duì)于中職、技工學(xué)校的學(xué)生來說,谷歌開發(fā)的App Inventor不需要有程序設(shè)計(jì)基礎(chǔ),不用編寫代碼,開發(fā)周期短,制作出成果容易,對(duì)于提高他們的自信心和成就感具有很好的作用。而作為信息技術(shù)教師只有自己很好地掌握了這門技術(shù),才能與學(xué)生一起進(jìn)步,通過開發(fā)網(wǎng)絡(luò)成績(jī)查詢系統(tǒng)熟悉并掌握App Inventor的使用是一個(gè)不錯(cuò)的開端。
關(guān)鍵詞:App Inventor 成績(jī)查詢系統(tǒng) 網(wǎng)絡(luò) 設(shè)計(jì)與實(shí)現(xiàn)
中圖分類號(hào):TP319 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2017)09(b)-0008-04
隨著高帶寬的計(jì)算機(jī)網(wǎng)絡(luò),全面覆蓋的無線網(wǎng)絡(luò)的高速發(fā)展,移動(dòng)智能設(shè)備的普及,移動(dòng)互聯(lián)網(wǎng)技術(shù)改變了人們學(xué)習(xí)、生活和工作的方式,人們的日常生活已經(jīng)離不開各種手機(jī)應(yīng)用。在手機(jī)應(yīng)用市場(chǎng)上,擁有開源之稱的安卓占有80%以上的市場(chǎng)份額,谷歌作為安卓的開發(fā)者,開發(fā)了一種手機(jī)App開發(fā)工具,即App Inventor(本文簡(jiǎn)稱AI)。使用它開發(fā)移動(dòng)應(yīng)用時(shí),開發(fā)者不必懂程序設(shè)計(jì)語言,也不用編寫代碼,采用搭積木的形式短時(shí)間內(nèi)就可以編寫一個(gè)移動(dòng)應(yīng)用,特別適合中職、技工學(xué)校的學(xué)生和其他初學(xué)者。設(shè)計(jì)好的App可以直接下載安裝到智能手機(jī)中,學(xué)生可以向同伴和家長(zhǎng)展示,對(duì)于重建學(xué)生學(xué)習(xí)的自信心和增強(qiáng)成就感具有重要意義。作為信息技術(shù)教師,只有自己首先掌握了這門技術(shù),才能很好的跟學(xué)生一起進(jìn)步成長(zhǎng),網(wǎng)絡(luò)查詢成績(jī)系統(tǒng)從基本的界面設(shè)計(jì)開始開發(fā),到網(wǎng)絡(luò)微數(shù)據(jù)庫等常用的控件都有涉及應(yīng)用,對(duì)于學(xué)習(xí)者具有一定的借鑒意義。
1 系統(tǒng)設(shè)計(jì)
1.1 功能設(shè)計(jì)
傳統(tǒng)的投遞紙質(zhì)成績(jī)單形式,速度慢而且易丟失,而且有時(shí)候班主任為了方便是將整個(gè)班的成績(jī)都郵寄給全班同學(xué),不利于學(xué)生個(gè)人隱私的保護(hù),所以為了方便快捷的使學(xué)生和家長(zhǎng)查詢到學(xué)生在學(xué)校的學(xué)習(xí)成績(jī)和所獲學(xué)分以及保護(hù)學(xué)生的隱私,使用App Inventor2.23離線中文版設(shè)計(jì)并開發(fā)了網(wǎng)絡(luò)成績(jī)查詢系統(tǒng),該系統(tǒng)具有以下功能。
(1)學(xué)生身份驗(yàn)證功能:采用姓名加出生日期驗(yàn)證,保護(hù)學(xué)生隱私。
(2)分學(xué)期查詢數(shù)據(jù):學(xué)生可以分學(xué)期查看自己的成績(jī)等相關(guān)數(shù)據(jù)。
(3)教師身份驗(yàn)證:只有教師才能進(jìn)入后臺(tái)批量處理數(shù)據(jù),保護(hù)數(shù)據(jù)安全。
(4)教師批量上傳成績(jī)數(shù)據(jù)等:教師可以通過準(zhǔn)備好的csv文件批量上傳學(xué)生成績(jī)等數(shù)據(jù)。
(5)教師批量上傳用戶名密碼:教師通過準(zhǔn)備好的csv文件批量上傳學(xué)生用戶名和密碼。
(6)教師設(shè)置學(xué)期和起止點(diǎn):上傳成績(jī)后,教師可以設(shè)置學(xué)生可以查詢成績(jī)的學(xué)期以及數(shù)據(jù)在網(wǎng)絡(luò)微數(shù)據(jù)庫的起止位置,只有設(shè)置了之后學(xué)生才能查詢到相應(yīng)學(xué)期的學(xué)分。
1.2 窗體設(shè)計(jì)
系統(tǒng)設(shè)計(jì)兩個(gè)窗體,初始窗體即學(xué)生用窗體,后臺(tái)控制窗體即教師用窗體,兩個(gè)窗體的界面分別如圖1、圖2所示。
學(xué)生用窗體用到的控件有:標(biāo)簽、按鈕、下拉框、文本輸入框、水平布局、對(duì)話框、網(wǎng)絡(luò)數(shù)據(jù)庫、計(jì)時(shí)器。
教師用窗體用到的控件有:標(biāo)簽、按鈕、文本輸入框、水平布局、垂直布局、表格布局、對(duì)話框、文件管理器、網(wǎng)絡(luò)數(shù)據(jù)庫。
1.3 工作流程
系統(tǒng)工作時(shí)分為兩種狀態(tài),學(xué)生登錄和教師登錄狀態(tài)。
教師登錄狀態(tài):教師在如圖1所示的界面輸入教師密碼,點(diǎn)擊“教師登錄”按鈕,登錄后進(jìn)入到如圖2所示界面,可以上傳學(xué)生成績(jī)等數(shù)據(jù)、用戶名密碼和設(shè)置學(xué)期信息,教師將上述三項(xiàng)數(shù)據(jù)上傳成功后學(xué)生才能正常使用系統(tǒng)。
學(xué)生登錄狀態(tài):學(xué)生在如圖1所示的界面等待系統(tǒng)初始化完成后,在姓名下拉框中選擇自己的姓名,然后輸入八位出生日期為密碼,點(diǎn)擊“登錄”按鈕,密碼驗(yàn)證成功后,隱藏姓名下列框和密碼輸入框,“登錄”按鈕改變?yōu)椤巴顺鲋匦碌卿洝卑粹o,;如果密碼驗(yàn)證不成功的,提示重新輸入密碼。學(xué)生成功登錄后在“學(xué)期”下來列表框中選擇需要查詢的學(xué)期,等待系統(tǒng)從網(wǎng)絡(luò)請(qǐng)求數(shù)據(jù),如果數(shù)據(jù)存在則需要15s時(shí)間去獲得數(shù)據(jù),然后“顯示結(jié)果”按鈕可用,如果該學(xué)期數(shù)據(jù)不存在則“顯示結(jié)果”按鈕立即可用,點(diǎn)擊“顯示結(jié)果”按鈕則會(huì)顯示相應(yīng)的結(jié)果,如果數(shù)據(jù)存在則顯示查詢到的結(jié)果,如果不存在則顯示對(duì)應(yīng)的提示信息。
2 系統(tǒng)關(guān)鍵功能的實(shí)現(xiàn)
系統(tǒng)實(shí)現(xiàn)功能比較多,由于篇幅的關(guān)系不能一一詳述,這里只就幾個(gè)比較主要的功能的實(shí)現(xiàn)進(jìn)行描述。
2.1 數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)的上傳
由于AI的網(wǎng)絡(luò)微數(shù)據(jù)庫只支持“標(biāo)簽—數(shù)據(jù)”的形式,所以需要將學(xué)生的成績(jī)數(shù)據(jù)、用戶名密碼以列表的形式一條條的保存到數(shù)據(jù)庫中。
由于涉及到多個(gè)學(xué)期的成績(jī)存儲(chǔ)與查詢,為了便于處理,學(xué)生成績(jī)等數(shù)據(jù)以順序方式存入(順序數(shù)字為標(biāo)簽,科目名,每個(gè)同學(xué)成績(jī)列表為數(shù)據(jù))網(wǎng)絡(luò)微數(shù)據(jù)庫中,學(xué)生登錄狀態(tài)下按照學(xué)期設(shè)定的行數(shù)(順序標(biāo)簽)向網(wǎng)絡(luò)微數(shù)據(jù)庫請(qǐng)求數(shù)據(jù),將數(shù)據(jù)導(dǎo)入本地臨時(shí)列表中,通過姓名進(jìn)行查詢、顯示查詢到的數(shù)據(jù)。
為了關(guān)聯(lián)學(xué)生成績(jī)數(shù)據(jù)和用戶名密碼數(shù)據(jù),學(xué)生成績(jī)數(shù)據(jù)第一行為姓名,與用戶名密碼數(shù)據(jù)中第一列數(shù)據(jù)對(duì)應(yīng),讀取網(wǎng)絡(luò)數(shù)據(jù)到本地后,可通過姓名對(duì)學(xué)生數(shù)據(jù)進(jìn)行查詢、顯示。
其具體數(shù)據(jù)結(jié)構(gòu)如表1,表2所示。
上存學(xué)生成績(jī)數(shù)據(jù)的相關(guān)代碼塊為圖3、圖4、圖5所示,上傳用戶名密碼的代碼塊與此類似。
2.2 網(wǎng)絡(luò)延遲的處理
由于采用了網(wǎng)絡(luò)數(shù)據(jù)庫的形式,由于網(wǎng)絡(luò)狀態(tài)的影響,在請(qǐng)求數(shù)據(jù)以后,返回?cái)?shù)據(jù)的次序可能與請(qǐng)求時(shí)的次序不太一樣,會(huì)造成數(shù)據(jù)的混亂,所以采用計(jì)時(shí)器控件來延遲數(shù)據(jù)的獲得,以達(dá)到保持?jǐn)?shù)據(jù)次序的目的。由于學(xué)生姓名是查詢時(shí)的關(guān)鍵字,必須處于本地列表中的第一行,所以在請(qǐng)求網(wǎng)絡(luò)數(shù)據(jù)庫時(shí)必須第一個(gè)返回?cái)?shù)據(jù),所以姓名的請(qǐng)求代碼塊放置在窗體的初始化模塊中,其他成績(jī)等數(shù)據(jù)的請(qǐng)求使用計(jì)時(shí)器來控制,設(shè)置計(jì)時(shí)器1的時(shí)間間隔為2s,計(jì)時(shí)器1控件的代碼如圖6所示。
2.3 查詢功能的實(shí)現(xiàn)
查詢功能采用定義過程的形式實(shí)現(xiàn),用姓名為關(guān)鍵字,返回結(jié)果為第一列(課程名稱)和相應(yīng)姓名列(課程對(duì)應(yīng)成績(jī)數(shù)值),其功能代碼塊為如下圖7所示。
4 系統(tǒng)運(yùn)行時(shí)的注意事項(xiàng)
AI支持處理以逗號(hào)分隔的csv文件,所以在準(zhǔn)備學(xué)生的成績(jī)數(shù)據(jù)文件時(shí),需將處理好的Excel文件另存為csv類型的文件,而且需要在記事本中將此類csv文件以UTF-8編碼的形式保存,這樣才能保證AI在存讀數(shù)據(jù)的時(shí)候不出現(xiàn)亂碼。
處理好的數(shù)據(jù)文件應(yīng)復(fù)制到手機(jī)內(nèi)存的App Inventor文件夾中(可自定義存放目錄),如需要更改部分?jǐn)?shù)據(jù),需要重復(fù)以上的操作,然后教師在后臺(tái)控制面板中重新導(dǎo)入一次學(xué)生成績(jī)數(shù)據(jù),學(xué)生查詢到的數(shù)據(jù)才能更新,才能保證系統(tǒng)的正常運(yùn)行。
5 系統(tǒng)展望
該系統(tǒng)實(shí)現(xiàn)了學(xué)生成績(jī)查詢功能,系統(tǒng)的設(shè)計(jì)還不是十分完善,比如系統(tǒng)設(shè)計(jì)學(xué)生密碼驗(yàn)證采用了8位出生日期,為了更好地保護(hù)學(xué)生的隱私,可以增加更改密碼功能,學(xué)生可以將初始的密碼改成自己自定義的密碼。當(dāng)然還有可以完善的地方,有待日后研究完善、擴(kuò)充功能。
6 結(jié)語
使用App Inventor設(shè)計(jì)和編寫App對(duì)于高中階段的學(xué)生來說非常合適,它不需要具有高深的編程基礎(chǔ),也不用寫代碼,容易制作出成果,對(duì)于學(xué)生提高自信心和成就感具有相當(dāng)高的作用,信息技術(shù)教師只有掌握了AI的技術(shù),才能開設(shè)App Inventor課程,才能很好的輔導(dǎo)學(xué)生,助力學(xué)生的成長(zhǎng)和發(fā)展。
參考文獻(xiàn)
[1] 劉載興,陳宏鏡.Android積木式編程開發(fā):App Inventor2.23離線中文版[M].北京:高等教育出版社,2015.
[2] 黃仁祥,金崎,易偉.人人都能開發(fā)安卓APP:App Inventor2應(yīng)用開發(fā)實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2014.
[3] 王向輝,張國(guó)印,沈潔.可視化開發(fā)Android應(yīng)用程序:拼圖開發(fā)模式App Inventor2[M].北京:清華大學(xué)出版社,2015.endprint