魏超 周紅波
摘要:為了解決當(dāng)前B/S模式的選課系統(tǒng)所帶來不方便、不快捷和不暢通等問題,研究了移動端開發(fā)方法和用戶需求,該文對設(shè)計(jì)和實(shí)現(xiàn)模式進(jìn)行了分析和研究。提出了一套針對客戶端與服務(wù)端的開發(fā)流程及方法,并介紹了相關(guān)技術(shù)。利用所學(xué)知識構(gòu)建了一個(gè)基于Android平臺的穩(wěn)定、便捷且友好的校園選課系統(tǒng),在方便了師生的同時(shí),也為校園數(shù)字化建設(shè)做出了貢獻(xiàn)。
關(guān)鍵詞:Android;選課系統(tǒng);移動端開發(fā);JSON;C/S模式
1.選課系統(tǒng)現(xiàn)狀
現(xiàn)行的選課系統(tǒng)大多采用瀏覽器/服務(wù)器(B/S)模式,這種模式相對最初的人工課程管理較為方便,節(jié)約了大量的人力、物力,更不會因?yàn)檫x課而耽誤正常的教學(xué)任務(wù)。但是,學(xué)校的Web服務(wù)器在高峰時(shí)段常常因?yàn)樵L問量過大而暫時(shí)癱瘓。選課平臺受限于PC機(jī),導(dǎo)致一部分學(xué)生錯(cuò)過選課時(shí)間段,無法選到自己理想的課程。同時(shí),如今大學(xué)生上網(wǎng)習(xí)慣日趨碎片化移動化,再加上選課系統(tǒng)操作較為繁瑣,傳統(tǒng)選課系統(tǒng)與不斷發(fā)展的用戶習(xí)慣就發(fā)生了沖突。本文提出構(gòu)建移動選課平臺,不僅是校務(wù)系統(tǒng)的又一次進(jìn)步,而且能夠解決以上問題,為師生提供更大的便利。
2.Android系統(tǒng)介紹
市面上主流的智能手機(jī)操作系統(tǒng)為兩款:谷歌的Android系統(tǒng)與蘋果的IOS系統(tǒng)。之所以選用Android,主要由于以下優(yōu)點(diǎn):開源、多廠商支持、成熟的虛擬機(jī)和無界限的應(yīng)用程序通訊。同時(shí),較IOS相比,Android系統(tǒng)廣泛應(yīng)用在各種手機(jī)、平板電腦等電器上,使用者眾多,應(yīng)用發(fā)布更加方便聊。
Android分為五個(gè)層,從高到低分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫層、硬件抽象層和Linux內(nèi)核層,如圖1所示:
3.選課系統(tǒng)設(shè)計(jì)
3.1系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)整體結(jié)構(gòu)為C/S架構(gòu),如圖2所示??蛻舳瞬渴餉ndroid系統(tǒng),服務(wù)端包含數(shù)據(jù)庫與服務(wù)器,服務(wù)器接收客戶端發(fā)送的請求,解析請求然后將相應(yīng)的指令發(fā)給數(shù)據(jù)庫。數(shù)據(jù)庫接收并處理指令后,向服務(wù)器返回?cái)?shù)據(jù),服務(wù)器打包數(shù)據(jù)并向客戶端返回?cái)?shù)據(jù),等待下一條請求的到達(dá)??蛻舳伺c服務(wù)端通過JSON進(jìn)行交互。JSON作為一種輕量級的數(shù)據(jù)傳輸格式,可以在多種語言之間進(jìn)行交換。JSON易于閱讀和編碼,且它是JavoScript規(guī)范的子集,能被支持JavaScript的瀏覽器所解析,相比XML減少了解析時(shí)帶來的性能和兼容性問題,這些特性使JSON成為理想的數(shù)據(jù)交換語言。服務(wù)端向客戶端提供多個(gè)接口,接受客戶端請求,并根據(jù)請求對數(shù)據(jù)庫進(jìn)行增加、刪除、查詢以及修改,最后將結(jié)果傳回給客戶端。通訊傳遞的數(shù)據(jù)均為包裝后的類,其中整合了各種數(shù)據(jù)。
3.2系統(tǒng)功能設(shè)計(jì)
客戶端向3種用戶提供服務(wù):學(xué)生、教師和管理員。首先進(jìn)入登錄界面,用戶選擇登錄類型,填寫賬號密碼,點(diǎn)擊登錄遞交提交的登錄信息。服務(wù)器驗(yàn)證登錄信息并返回驗(yàn)證結(jié)果,通過則進(jìn)入用戶功能頁面,驗(yàn)證失敗則顯示錯(cuò)誤信息。
不同用戶的功能如下:
學(xué)生:
1)選課,選擇自己能選擇的選修課程如圖3所示。
2)退課,取消選擇的選修課程。
3)查詢選修課,查詢選擇的選修課。
4)查看公告,查看教務(wù)管理員或任課教師發(fā)布的各種公告。
5)修改密碼,為保證系統(tǒng)安全,學(xué)生可以定期修改登錄密碼。
教師:
1)選修課查詢,查看本人所講授課程的選課情況如圖4所示。
2)查看上課學(xué)生,對每一門講授課程,任課教師都可以查看上課的學(xué)生信息。
3)查看公告,查看教務(wù)管理員發(fā)布的各種公告。
4)發(fā)布公告,發(fā)布本人所講課程的公告如圖5所示。
5)修改密碼,為保證系統(tǒng)安全,任課教師可以定期修改登錄密碼。
管理員:
1)數(shù)據(jù)維護(hù),包括上傳課程數(shù)據(jù)、上傳任課教師信息、上傳學(xué)生信息等。
2)通知管理。如圖4所示,發(fā)布各種通知、包括課程的增加、修改或刪除等信息。
3)修改密碼,為保證系統(tǒng)安全,教務(wù)管理員可以定期修改登錄密碼。
4.選課系統(tǒng)實(shí)現(xiàn)
4.1客戶端實(shí)現(xiàn)
客戶端開發(fā)采用Eclipse官網(wǎng)提供的ADT。首先遵循系統(tǒng)設(shè)計(jì),縷清思路,對所需功能模塊進(jìn)行構(gòu)建。其中包括:數(shù)據(jù)類模塊,通訊模塊(HTTP,JSON),登錄模塊,查詢模塊以及選課模塊等。通過這種方式,既方便快捷,又便于修改維護(hù)。其中,客戶端與服務(wù)端的通訊通過HTTP進(jìn)行,數(shù)據(jù)格式為JSON,兩端皆可對JSON進(jìn)行解析。
登錄界面采用線式布局,利用actiy類進(jìn)行邏輯管理。用戶功能界面采用listview控件與常規(guī)線式布局結(jié)合,利用frogmerit與listfragmertt進(jìn)行管理,于用戶功能界面,通過下方的battonbar進(jìn)行選擇切換fragment。登錄界面與功能界面間利用latent進(jìn)行信息傳遞。頁面布局遵守簡潔明了的原則,多次參考了當(dāng)前市面上流行的各種APP界面布局,力求友好美觀。
實(shí)現(xiàn)的過程中,遇到的技術(shù)問題都可以通過查閱Google提供的官方文檔以進(jìn)行解決。
4.2服務(wù)器與數(shù)據(jù)庫實(shí)現(xiàn)
數(shù)據(jù)庫采用SQL selwer 2008,數(shù)據(jù)庫儲存有:用戶登錄信息與用戶身份信息,課程信息與課程開始選課信息,學(xué)生選課信息和公告信息等。服務(wù)器部署在tomcat上,通過JDBC鏈接數(shù)據(jù)庫,利用Jsp頁面與客戶端進(jìn)行數(shù)據(jù)交互。邏輯部分利用Java進(jìn)行實(shí)現(xiàn),和客戶端一樣包含一個(gè)相同的數(shù)據(jù)類模塊以保證兩端數(shù)據(jù)類型的一致性,并針對不同用戶的不同需求,構(gòu)建了大量的類,Jsp收到請求之后,只需調(diào)用這些已經(jīng)封裝好的類,即可完成操作。
對于查詢操作,客戶端發(fā)送請求后,服務(wù)器調(diào)用類從數(shù)據(jù)庫查詢相應(yīng)數(shù)據(jù),并將結(jié)果轉(zhuǎn)化為JSON格式的數(shù)據(jù)返回給客戶端進(jìn)行解析。
選課退課時(shí),服務(wù)器都將對時(shí)間,先選課,選課人數(shù),已選分?jǐn)?shù)等條件進(jìn)行校驗(yàn),以此確保各項(xiàng)操作的順利進(jìn)行。同時(shí),在查詢課程列表時(shí),也對時(shí)間進(jìn)行校驗(yàn),防止在選課時(shí)間外進(jìn)行選課。所有客戶端不需要獲取數(shù)據(jù)的操作,服務(wù)器僅通過JSON向客戶端返回一個(gè)int類型的操作結(jié)果,客戶端通過對其解析以判斷操作是否成功與原因,并向用戶反饋。
4.3客戶端的部署
客戶端完成后,通過Eclipse即可完成APK打包與部署。右鍵項(xiàng)目,選擇Android Tools中的“Export Signed Application Package……”之后跟隨步驟,注意保存數(shù)字證書之后即完成APK打包。打包后的APK可以發(fā)布至Interttet也可登陸AndroidMarket以供用戶進(jìn)行下載。
5.結(jié)束語
本文設(shè)計(jì)了一個(gè)基于Android平臺的校園選課系統(tǒng),實(shí)現(xiàn)了服務(wù)于學(xué)生、管理員以及教師的基本功能,擁有良好的人機(jī)交互界面,能夠隨時(shí)隨地地為師生提供便利的服務(wù)。隨著系統(tǒng)的不斷成熟,還可將教務(wù)管理系統(tǒng)的其他功能,比如新聞功能,圖書館功能以及成績查詢功能整合到APP中。不斷地豐富移動選課系統(tǒng),滿足更多的需求。