伍敏君 張志
摘 ?要:針對(duì)目前大學(xué)生對(duì)課程表管理的需求,基于Android手機(jī)平臺(tái),設(shè)計(jì)一款課程表管理系統(tǒng),實(shí)現(xiàn)了課程表的管理功能。系統(tǒng)中設(shè)置了學(xué)期課表和周課表模式,添加了菜單功能,以適用不同的課表管理情況,采用SQLite數(shù)據(jù)庫(kù)進(jìn)行本地?cái)?shù)據(jù)存儲(chǔ),對(duì)課程表詳細(xì)信息進(jìn)行管理。經(jīng)過(guò)模擬器和手機(jī)測(cè)試,系統(tǒng)各項(xiàng)功能運(yùn)行穩(wěn)定可靠,具有較強(qiáng)的方便性、實(shí)用性和可靠性,給大學(xué)生課程表的管理帶來(lái)方便。
關(guān)鍵詞:Android;課程表;SQLite數(shù)據(jù)庫(kù);課程管理
中圖分類號(hào):TP311 ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2020)04-0097-03
Abstract:According to the current needs of college students for curriculum management,based on Android mobile platform,a curriculum management system is designed to achieve the management function of curriculum. In the system,semester schedule and weekly schedule mode are set,and menu function is added to adapt to different schedule management situations. SQLite database is used to store local data and manage the detailed information of the schedule. Through the test of simulator and mobile phone,all functions of the system are stable and reliable,with strong convenience,practicability and reliability,which brings convenience to the management of college studentscurriculum.
Keywords:Android;curriculum;SQLite database;course management
0 ?引 ?言
目前,大部分高校的課堂教學(xué)都采用流動(dòng)式的課室,即學(xué)生沒有固定的教室,在上課前,學(xué)生需要查詢課表,找到相應(yīng)課程的上課時(shí)間(包括周次、節(jié)次等)、上課地點(diǎn)等。隨著互聯(lián)網(wǎng)技術(shù)和移動(dòng)技術(shù)的快速發(fā)展,當(dāng)前大學(xué)生的生活方式、學(xué)習(xí)習(xí)慣也發(fā)生了很大的變化,智能手機(jī)在現(xiàn)代大學(xué)生中普及度非常高,學(xué)生越來(lái)越喜歡通過(guò)手機(jī)處理日常生活學(xué)習(xí)中的一些事務(wù)[1]。用移動(dòng)化的課程表來(lái)替換傳統(tǒng)的紙質(zhì)化課程表,無(wú)疑可以給學(xué)生帶來(lái)方便,同時(shí)也節(jié)省紙質(zhì)資源。因此,采用移動(dòng)化的課程表管理是一種趨勢(shì)。
Android系統(tǒng)是目前主要手機(jī)應(yīng)用程序開發(fā)平臺(tái)之一[2]。Android系統(tǒng)是一個(gè)開源手機(jī)操作系統(tǒng),具有良好的用戶體驗(yàn),開放性強(qiáng)等特點(diǎn),滿足了移動(dòng)互聯(lián)網(wǎng)產(chǎn)業(yè)的發(fā)展需求。以Android技術(shù)開發(fā)的應(yīng)用程序以Java語(yǔ)言為基礎(chǔ),實(shí)用性好,擴(kuò)展性強(qiáng),應(yīng)用前景非常廣闊[3]。
為了改變傳統(tǒng)的紙質(zhì)化課程表,本文基于Android手機(jī)平臺(tái),綜合考慮實(shí)際課程表的相關(guān)信息,設(shè)計(jì)了一款課程表管理系統(tǒng),以適應(yīng)新時(shí)代大學(xué)生對(duì)課程表使用的需求。
1 ?總體設(shè)計(jì)
在Eclipse平臺(tái)下,本文設(shè)計(jì)了一款基于Android平臺(tái)的課程表管理系統(tǒng),用于大學(xué)生課程信息的存儲(chǔ)。在本系統(tǒng)下,學(xué)生可以根據(jù)自己的實(shí)際需要,按照周次和節(jié)次,增加、刪除或修改課程信息。每次增加、刪除或修改的課程信息,將同步到數(shù)據(jù)庫(kù)中,以實(shí)現(xiàn)數(shù)據(jù)的長(zhǎng)期保存。
根據(jù)實(shí)際的課程表管理需求,本文設(shè)計(jì)的基于Android系統(tǒng)平臺(tái)課程表管理系統(tǒng),按功能劃分為五個(gè)模塊:歡迎界面模塊、學(xué)期課表模塊、周課表模塊、菜單模塊、數(shù)據(jù)庫(kù)存儲(chǔ)模塊,系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
2 ?系統(tǒng)功能概述
本系統(tǒng)各模塊功能如下:歡迎界面模塊:通過(guò)文字和圖片大概介紹本系統(tǒng)的功能和操作等。學(xué)期課表模塊:顯示本學(xué)期內(nèi)的所有課程信息。周課表模塊:顯示所選擇周次范圍內(nèi)的所有課程信息。菜單模塊:切換學(xué)期/周課表,以及系統(tǒng)的設(shè)置。數(shù)據(jù)庫(kù)模塊:創(chuàng)建自定義類,采用SQLite數(shù)據(jù)庫(kù)對(duì)課程詳細(xì)信息進(jìn)行讀/寫。
Android的數(shù)據(jù)存儲(chǔ)有三種方式:Shared Preferences、SQLite和Content Provider[4]。本文采用的是SQLite數(shù)據(jù)庫(kù)。SQLite數(shù)據(jù)庫(kù)是一款輕量級(jí)的開源內(nèi)存數(shù)據(jù)庫(kù)軟件,具有高效性、可靠性、穩(wěn)定性、安全性,支持大部分操作系統(tǒng)[5]。SQLite數(shù)據(jù)庫(kù)占用系統(tǒng)資源少,被廣泛應(yīng)用于應(yīng)用程序的數(shù)據(jù)存儲(chǔ)場(chǎng)景中。Android系統(tǒng)提供了數(shù)據(jù)庫(kù)相關(guān)的API,因此,應(yīng)用程序可以方便地訪問(wèn)數(shù)據(jù)庫(kù),并實(shí)現(xiàn)數(shù)據(jù)查詢與修改等操作[6]。SQLite數(shù)據(jù)庫(kù)的操作主要有:創(chuàng)建數(shù)據(jù)庫(kù)、打開數(shù)據(jù)庫(kù)、創(chuàng)建表、添加表中數(shù)據(jù)、刪除表中數(shù)據(jù)、修改表中數(shù)據(jù)、關(guān)閉數(shù)據(jù)庫(kù)等。
本文設(shè)計(jì)的基于Android平臺(tái)課程表管理系統(tǒng),其課程詳細(xì)信息將存儲(chǔ)在SQLite數(shù)據(jù)庫(kù)中,既可以查詢課程相關(guān)數(shù)據(jù),也可以更新課程的數(shù)據(jù)。根據(jù)SQLite數(shù)據(jù)庫(kù)相關(guān)API,編寫自定義函數(shù),以實(shí)現(xiàn)課程表數(shù)據(jù)的增加、刪除、修改等操作。
3 ?系統(tǒng)功能實(shí)施
在Eclipse開發(fā)環(huán)境下,本文設(shè)計(jì)和實(shí)現(xiàn)了一款基于Android平臺(tái)的課程表管理系統(tǒng),分別在模擬器和真實(shí)手機(jī)上進(jìn)行了各項(xiàng)功能的測(cè)試,都能實(shí)現(xiàn)預(yù)期的效果。本文采用的模擬器是Android 4.2,API Level為17,測(cè)試的手機(jī)系統(tǒng)為Android 5.0.2。本課程表管理系統(tǒng)顯示的課程信息,是以本校光電信息學(xué)院移動(dòng)互聯(lián)應(yīng)用技術(shù)專業(yè)為例,添加了“移動(dòng)終端軟件高級(jí)開發(fā)”“Java程序設(shè)計(jì)”等課程信息。
3.1 ?學(xué)期課表
歡迎界面結(jié)束后,默認(rèn)先進(jìn)入學(xué)期課表頁(yè)面,如圖2所示,顯示的是本學(xué)期所有的課程信息。其中,第一行為星期,第一列為節(jié)次,是添加了自定義邊框的TextView組件,采用深淺顏色變化的底紋,以相間的形式布局,增加星期欄和周次欄的美觀性。
在學(xué)期課表模式下,其右下方區(qū)域采用TableLayout布局管理器,創(chuàng)建了一個(gè)5×5的二維數(shù)組矩陣,每個(gè)元素均為Button組件。每個(gè)Button組件采用自定義邊框,用于顯示該時(shí)間段的課程信息,主要包括課程名稱、授課教師、起始周次、上課地點(diǎn)等。此二位矩陣中的行和列序號(hào)共同組成課程ID。例如,周二的1-2節(jié)課,對(duì)應(yīng)的Button組件在第1行第2列,在系統(tǒng)中記錄其課程ID為12;又如,周四的5-6節(jié)課,對(duì)應(yīng)的Button組件在第3行第4列,在系統(tǒng)中記錄其課程ID為34。由此可得,每個(gè)Button組件對(duì)應(yīng)的課程ID都是唯一的,使得各項(xiàng)數(shù)據(jù)在SQLite數(shù)據(jù)庫(kù)中的存儲(chǔ)不會(huì)發(fā)生混淆。
為了使得界面能適應(yīng)不同移動(dòng)設(shè)備的屏幕顯示,采用垂直和水平等比例劃分組件。在垂直方向上,TableLayout的布局采用等比例劃分表格行TableRow組件,使得每一個(gè)表格行的行高相同。在水平方向上,每一行等比例劃分列,添加五個(gè)列寬相同的Button組件。當(dāng)課程表管理系統(tǒng)在不同設(shè)備環(huán)境下運(yùn)行時(shí),頁(yè)面的顯示都能按實(shí)際大小來(lái)分配表格的行高和列寬,使得頁(yè)面顯示更加美觀。
每條課程信息均保存在SQLite數(shù)據(jù)庫(kù)中,在數(shù)據(jù)庫(kù)的表中記錄課程的信息包括課程ID、課程名稱、授課教師、課程開始周次、課程結(jié)束周次、課程地點(diǎn)編號(hào)、課程地點(diǎn)屬性(機(jī)房/課室)等信息。每次訪問(wèn)SQLite數(shù)據(jù)庫(kù)時(shí),進(jìn)行課程信息的增加、刪除、修改等,都先根據(jù)課程ID找到相應(yīng)信息所在位置,再通過(guò)數(shù)據(jù)庫(kù)的寫和讀等函數(shù)來(lái)完成數(shù)據(jù)的增加、刪除、修改等操作。
3.2 ?周課表
通過(guò)菜單項(xiàng)選擇周課表后,即跳轉(zhuǎn)到周課表模式,如圖3所示。在學(xué)期課程模式下不需要選擇周次,因此,學(xué)期課程頁(yè)面中隱藏了Spinner組件。當(dāng)跳轉(zhuǎn)到周課表頁(yè)面中,其右上方出現(xiàn)Spinner組件,通過(guò)該Spinner組件選擇相應(yīng)的周次后,系統(tǒng)則查詢SQLite數(shù)據(jù)庫(kù)所有課程的開始周次和結(jié)束周次,進(jìn)行篩選并顯示該周次內(nèi)的所有課程信息,如果不在該周次內(nèi)的課程信息,則隱藏。
3.3 ?編輯課程
在學(xué)期課表或周課表模式下,根據(jù)用戶點(diǎn)擊的星期和節(jié)次,可獲取到相應(yīng)的Button組件,找到相應(yīng)課程的ID,跳轉(zhuǎn)到編輯課程信息的頁(yè)面,在此頁(yè)面中,可以編輯單條課程信息的內(nèi)容,如圖4所示。
在編輯課程頁(yè)面中,星期和節(jié)次已確定,可以填寫或刪除已有的課程信息,包括課程名稱、授課教師、課程開始周次、課程結(jié)束周次、課程地點(diǎn)等信息,點(diǎn)擊完成后,課程表管理系統(tǒng)則查找到相應(yīng)ID的課程信息,進(jìn)行學(xué)期課表和周課表模式下的數(shù)據(jù)更新,同時(shí),SQLite數(shù)據(jù)庫(kù)的數(shù)據(jù)也同步更新。
4 ?結(jié) ?論
本文基于目前大學(xué)生對(duì)課程表的管理需求,在Eclipse平臺(tái)下,設(shè)計(jì)并實(shí)現(xiàn)了一套基于Android平臺(tái)課程表管理系統(tǒng)的方案。經(jīng)過(guò)模擬器和真實(shí)手機(jī)的測(cè)試,本系統(tǒng)運(yùn)行穩(wěn)定可靠,完成學(xué)期課程和周課表的管理,添加菜單功能,采用SQLite數(shù)據(jù)庫(kù),對(duì)課程表的數(shù)據(jù)信息進(jìn)行查詢與統(tǒng)計(jì),功能強(qiáng)大、運(yùn)行效率高,具有一定的實(shí)用性。
參考文獻(xiàn):
[1] 任婷婷.基于Android系統(tǒng)的校園助手應(yīng)用的設(shè)計(jì)與實(shí)現(xiàn) [D].北京:北京交通大學(xué),2014.
[2] 謝景明.Android移動(dòng)開發(fā)教程(項(xiàng)目式) [M].北京:人民郵電出版社,2013.
[3] 張曉蕾.Android移動(dòng)互聯(lián)應(yīng)用開發(fā) [M].北京:科學(xué)出版社,2016.
[4] 陳煜,周榮輝.基于Android系統(tǒng)的手機(jī)文件管理器的設(shè)計(jì)與實(shí)現(xiàn) [J].鐵路計(jì)算機(jī)應(yīng)用,2012,21(9):47-51.
[5] 徐明民,彭中華,王黎維.基于表分區(qū)和內(nèi)存數(shù)據(jù)庫(kù)的族譜生成系統(tǒng)優(yōu)化 [J].計(jì)算機(jī)與數(shù)字工程,2017,45(2):272-278.
[6] 李華忠,梁永生,劉濤.Android應(yīng)用程序設(shè)計(jì)教程 [M].北京:人民郵電出版社,2013.
作者簡(jiǎn)介:伍敏君(1986-),女,漢族,廣東中山人,講師,碩士,研究方向:計(jì)算機(jī)應(yīng)用技術(shù)、移動(dòng)應(yīng)用開發(fā);張志(1989-),男,漢族,安徽合肥人,講師,碩士,研究方向:計(jì)算機(jī)應(yīng)用技術(shù)、移動(dòng)應(yīng)用開發(fā)。