許新征, 強鵬遠
(中國礦業(yè)大學(xué) 計算機科學(xué)與技術(shù)學(xué)院, 江蘇 徐州 221116)
伴隨科技和高等教育的飛速發(fā)展,大多數(shù)高校都擁有自己的官方網(wǎng)站和教務(wù)管理系統(tǒng)[1-3]。在高校中,教學(xué)管理的許多方面都實現(xiàn)了無紙化,而傳統(tǒng)的紙質(zhì)課表、成績單等則逐步消失。目前計算機軟硬件技術(shù)都已經(jīng)達到了相當高的水平,智能手機也緊隨其后迅猛發(fā)展,可以說是人手一部智能手機,學(xué)生教師當然也不例外。雖然硬件資源已經(jīng)達到了高水平,但是配備的軟件資源,特別是面向教師的教學(xué)相關(guān)軟件還處于起步階段[4],需求量大,功能更完善、質(zhì)量更高的教學(xué)輔助軟件應(yīng)用潛力大[5-6]。
教師事務(wù)助手是一款面向高校教師的教學(xué)類輔助軟件。學(xué)校校園網(wǎng)站為教師提供課程表、監(jiān)考信息、成績錄入等信息管理功能,對教師的工作提供了諸多方便。但隨著移動互聯(lián)網(wǎng)的發(fā)展,教師大都采用手機隨時隨地登錄校園網(wǎng)了解教學(xué)信息[7-8]。但智能手機無論從執(zhí)行效率、內(nèi)存大小、屏幕大小及操作方式上都與計算機有很大差別,有些網(wǎng)站不能完美適配手機屏幕。如果單純用智能手機里的瀏覽器,通過網(wǎng)址連接校園網(wǎng)站獲取信息,總體來說會有很多不便。此外,校園網(wǎng)上的信息如上課、監(jiān)考和開會等方面的提醒,不能及時通知教師本人。當前市場上面向?qū)W生的課表軟件比較多[9-10],但是面向教師的教學(xué)服務(wù)軟件卻很少。因此,本文擬對教師個人事務(wù)助手進行設(shè)計和開發(fā),希望其可在教師群體中發(fā)揮高效、便捷作用,為教師的教學(xué)工作提供盡可能多的便利。
本文依據(jù)軟件開發(fā)流程,詳細分析和實現(xiàn)教師事務(wù)助手的具體功能。通過對教師群體的需求分析,進行應(yīng)用數(shù)據(jù)庫設(shè)計、各功能模塊總體設(shè)計和詳細設(shè)計。然后,對系統(tǒng)功能進行代碼實現(xiàn)和測試,對所要求系統(tǒng)的功能正確實現(xiàn)。該系統(tǒng)分為用戶管理模塊、課程管理模塊、課程表管理模塊、課時量計算模塊及記事本模塊。最后,對各個功能模塊進行測試。
本系統(tǒng)在Window10操作系統(tǒng)下,選擇在由開發(fā)工具Eclipse和模擬器Genymotion搭建的開發(fā)環(huán)境下進行開發(fā)。
Eclipse是一個功能完善,界面友好的免費跨平臺Java語言開發(fā)工具。隨著需求的增加和技術(shù)的發(fā)展,通過安裝不同插件可支持其他高級程序語言,如C++和Python等。雖然Eclipse本身是一款框架軟件,不過多樣的插件支撐讓其具有了其他功能相對不變的開發(fā)工具所沒有的多樣性。ADT(android developer tools)就是Google開發(fā)的Eclipse的Android開發(fā)插件,因此選擇在Eclipse中添加此Android開發(fā)插件,用來完成此軟件開發(fā)。
Genymotion是一款A(yù)ndroid模擬器,雖然Android的SDK擁有自己的模擬器,但速度非常慢,因此本文選擇性能更優(yōu)的Genymotion模擬器。
數(shù)據(jù)庫方面,選擇輕量級嵌入式數(shù)據(jù)庫SQLite[11-12]。該數(shù)據(jù)庫可直接在應(yīng)用程序進程中運行,系統(tǒng)資源消耗很小。SQLite 沒有服務(wù)器進程,依賴文件系統(tǒng)通過文件保存數(shù)據(jù)。該文件是跨平臺的,可在其他平臺使用,不存在兼容問題,也不需要用戶帳戶設(shè)定。所需內(nèi)存少,系統(tǒng)資源開銷小,適合用于移動設(shè)備。
根據(jù)系統(tǒng)所要實現(xiàn)的目標,將教師個人事務(wù)分為以下功能模塊:用戶管理、課程管理、課程表管理、課時量管理和記事本管理等,如圖1所示。
圖1 系統(tǒng)功能模塊圖
具體功能模塊如下:
(1) 用戶管理。該功能提供用戶登錄和注冊。未注冊用戶可在線注冊個人賬戶,注冊用戶則根據(jù)用戶名和密碼登錄系統(tǒng)。系統(tǒng)還提供記住密碼勾選框,以及自動登錄勾選框。
(2) 課程管理。系統(tǒng)能夠?qū)φn程信息進行查詢,具體包括課程瀏覽、課程添加和課程刪除等功能。課程瀏覽顯示出數(shù)據(jù)庫中的所有課程,課程添加要求用戶輸入課程的所有信息,課程刪除可以刪除某個課程。
(3) 課程表管理。課程表管理可讓用戶自己選擇所承擔的課程。系統(tǒng)列出本專業(yè)的所有課程提供給用戶選擇,用戶通過輸入頁面輸入所選課程信息,并存入相應(yīng)的數(shù)據(jù)庫。在每節(jié)課上課之前,系統(tǒng)可以對用戶進行提醒。
(4) 課時量管理。通過課時量管理模塊,用戶能直觀查詢本學(xué)年所選擇的每門課程的課時量。系統(tǒng)根據(jù)不同的課程種類,通過相應(yīng)的工作量計算系統(tǒng),計算每門課程的工作當量,以及教師的學(xué)年或?qū)W期總工作量。
(5) 記事本管理。教師除了上課之外可能還有一些其他的事務(wù),因此系統(tǒng)還可提供監(jiān)考信息、會議時間等記錄功能,并提供必要的提醒。用戶可在記事本中添加監(jiān)考和會議等信息。
本系統(tǒng)采用Android內(nèi)置的SQLite數(shù)據(jù)庫,名稱為Course.db。其中包含3張表:CourseInfo表、User表和CourseTable表。
(1) CourseInfo表記錄本專業(yè)所有的課程信息。從教師所在院系教學(xué)大綱中獲取所有的課程信息,包括課程名、課程講授課時、課程實踐課時、課程類型等。其中課程類型用于計算課時量。
(2) User表記錄教師的登錄名和密碼,在注冊界面得到教師新的登錄名和密碼存入User表中。
(3) CourseTable表記錄用戶所選擇課程的信息,并將用戶輸入的課程信息存入表中,為課表顯示界面做好數(shù)據(jù)存儲。
本系統(tǒng)的E-R圖如圖2所示。
對數(shù)據(jù)庫的邏輯設(shè)計主要是完成對表的結(jié)構(gòu)設(shè)計和對各個表關(guān)系的設(shè)計。一個好的結(jié)構(gòu)設(shè)計,對系統(tǒng)的開發(fā)很重要。表中字段類型和長度的設(shè)計,應(yīng)根據(jù)實際情況確定,盡量做到類型準確、長度適中。
課程信息表、用戶信息表、課程表信息表和記事本信息表的結(jié)構(gòu)分別如表1—表4所示。
表1 課程信息表
表2 用戶信息表結(jié)構(gòu)
表3 課程表信息表
表4 記事本信息表
本系統(tǒng)五個模塊的功能:用戶模塊包括驗證式登錄和用戶注冊;課程管理模塊包括課程列表和課程添加;課程表模塊包括課程選擇和課程表顯示;課時量模塊包括課時量計算和課時量顯示;記事本模塊包括事件顯示和事件添加。
4.3.1 用戶模塊設(shè)計
用戶功能模塊包括用戶登錄和用戶注冊兩個子模塊。
登錄模塊。在輸入正確的情況下,根據(jù)輸入的用戶名和密碼,查詢數(shù)據(jù)庫中用戶信息表,檢驗用戶名是否存在,若存在,判斷密碼是否正確。若用戶名不正確,則提醒用戶先行注冊。若密碼正確則允許登錄,進入用戶界面。若密碼不正確,則提示重新輸入密碼。此外,登錄還提供了記住密碼和自動登錄兩個按鈕,用戶可選擇是否記住密碼和自動登錄。自動登錄則是在用戶點擊進入應(yīng)用后,不出現(xiàn)密碼輸入界面,直接進入功能界面。
注冊模塊。沒有賬戶的用戶初次進入應(yīng)用時,需要進行注冊。注冊頁面提供了用戶名設(shè)置、密碼設(shè)置和密碼確認三個輸入框,若用戶輸入的用戶名已經(jīng)存在,則提示用戶重新設(shè)置用戶名,密碼和密碼確認是保證用戶兩次輸入的密碼一致,以防輸入錯誤而導(dǎo)致密碼不正確。
用戶功能模塊的流程圖如圖3所示。
圖3 用戶模塊流程圖
4.3.2 課程模塊設(shè)計
此模塊是課程的管理模塊,所有教師用戶所在專業(yè)的所有可能任教的課程信息全部寫入數(shù)據(jù)庫中。課程模塊包括課程展示和課程添加兩個子模塊。
課程展示模塊:在用戶密碼驗證正確進入功能頁面后,從數(shù)據(jù)庫中獲取所有的課程,展示為課程列表。在這里,用數(shù)據(jù)適配器將從數(shù)據(jù)庫中得到的數(shù)據(jù)適配到展示界面上,教師可瀏覽數(shù)據(jù)庫中所有的課程信息,當一個屏幕大小的列表不能完全展示所有課程時,可通過監(jiān)聽用戶的點擊事件,下拉加載未顯示的記錄,將最上面的課程信息進行隱藏,展示未顯示的課程。
課程添加模塊。在課程列表界面設(shè)置一個“添加”按鈕,當用戶點擊添加時,由用戶輸入要添加的課程信息,包括課程名、課程總課時、教師講授課時和實踐課時及課程類型。
4.3.3 課程表模塊設(shè)計
課程表模塊包括課程表展示和課程選擇兩個子模塊。
課程表展示模塊。登錄成功后,用戶點擊課程表按鈕,進入課程表展示界面,默認進入第一周,從數(shù)據(jù)庫中獲取第一周的課程信息,用適配器展示到界面里,界面最上端設(shè)置周數(shù)選擇下拉框,可以選擇查看不同時段的課表信息。
課程選擇模塊。在課程列表界面設(shè)置一個“添加”按鈕,當用戶點擊添加時,首先以列表形式顯示數(shù)據(jù)庫中所有的課程記錄,當一個屏幕大小的列表不能完全展示所有課程時,可通過監(jiān)聽用戶的點擊事件,下拉加載出未顯示的記錄,將最上面的課程信息進行隱藏,展示未顯示的課程。當用戶點擊到列表控件上的任意一列時,進入課程信息輸入界面,在此界面由用戶輸入課程的上課信息,包括上課時間、上課地點、上課人數(shù)等,信息輸入完成并點擊確認提交后,將所填寫信息寫入數(shù)據(jù)庫。課程表模塊的流程圖如圖4所示。
圖4 課程表模塊流程圖
4.3.4 課時量模塊設(shè)計
課時量模塊包括課時量計算和課時量展示兩個子模塊。
課時量計算模塊。從用戶輸入的信息中提取出上課人數(shù),從課程信息表中獲取課程的類型,用特定的課時量計算函數(shù)計算課時量,并存入數(shù)據(jù)庫中。
課時量展示模塊。當用戶點擊課時量按鈕時,從數(shù)據(jù)庫中獲得用戶當前課表中的課程的課時量并適配到UI控件上,再計算出所有課程的課時量總和。
4.3.5 記事本模塊設(shè)計
記事本模塊包括事件展示和添加兩個子模塊。
事件展示模塊。從數(shù)據(jù)庫中的事件表中得到現(xiàn)存的事件信息,加載到數(shù)據(jù)適配器上,顯示在展示界面,并且顯示出事件添加的時間。在展示界面點擊記錄進入信息修改界面,可編輯事件信息,將新的信息寫入表中,再次適配。當用戶長按時,彈出確認刪除對話框,取消則不刪除記錄,確定則刪除記錄。
事件添加模塊。點擊新建按鈕,彈出新事件添加界面,在文本輸入框中輸入事件信息,點擊保存,將數(shù)據(jù)寫入數(shù)據(jù)庫。
在系統(tǒng)設(shè)計的基礎(chǔ)上,通過Windows10平臺搭建以Eclipse為開發(fā)工具和Genymotion為模擬器的開發(fā)環(huán)境,使用Java語言和Google提供的Android SDK開源代碼實現(xiàn)系統(tǒng)各功能模塊。部分模塊界面如圖5和圖6。
圖5 用戶登錄界面
圖6 課程展示列表界面
本文結(jié)合高校教師工作的需要,在Android平臺設(shè)計開發(fā)了面向高校教師的教師個人事務(wù)助手。該系統(tǒng)的功能包含了教師個人事務(wù)的方方面面,主要功能包括用戶管理、課程管理、課程表管理、課時量計算和記事本管理五大模塊。教師個人事務(wù)助手的設(shè)計與實現(xiàn),順應(yīng)了移動智能設(shè)備發(fā)展的潮流,以Android為載體,為記錄、管理教師個人事務(wù)提供了高效、方便的輔助工具。本系統(tǒng)可協(xié)助教師合理安排工作計劃,使科研和教學(xué)工作沖突降到最小,相對于不便攜帶、不易更新的紙質(zhì)文檔來說,優(yōu)勢盡顯。