邱進(jìn) 廖澤容 馮春麗
摘要:為解決醫(yī)學(xué)院學(xué)生在外見(jiàn)習(xí)、實(shí)習(xí)而無(wú)法及時(shí)參加選課的問(wèn)題,作者基于Eclipse平臺(tái)開(kāi)發(fā)了Android選課APP,實(shí)現(xiàn)了教務(wù)管理、教師管理和學(xué)生選課三大功能,滿(mǎn)足了學(xué)生和教師隨時(shí)隨地選課和辦公的需求。
關(guān)鍵詞:Eclipse;Android選課APP;教務(wù)管理;教師管理;學(xué)生選課
中圖分類(lèi)號(hào):TP309.2 文獻(xiàn)標(biāo)識(shí)碼:A 論文編號(hào):1674-2117(2018)13/14-0165-05
目前,昆明醫(yī)科大學(xué)使用的是湖南青果教務(wù)管理系統(tǒng),選課的基本流程是“教務(wù)處通過(guò)辦公自動(dòng)化系統(tǒng)通知教師申報(bào)課程—教務(wù)處組織專(zhuān)家對(duì)申報(bào)的課程進(jìn)行資格審核—審核通過(guò)后形成選修課匯總表—教務(wù)處通知各學(xué)院教學(xué)辦組織學(xué)生進(jìn)行選課—學(xué)生只能通過(guò)校園網(wǎng)內(nèi)電腦進(jìn)行選課”。[1][2][3][4]由于受時(shí)間和地點(diǎn)、機(jī)房數(shù)量、網(wǎng)絡(luò)速度的限制,有課或在外地見(jiàn)習(xí)、實(shí)習(xí)的學(xué)生不能及時(shí)參加選課,以至無(wú)法選到理想的課程,甚至錯(cuò)過(guò)選課時(shí)間。[5][6][7][8]2015年,杭州電子科技大學(xué)4名學(xué)生開(kāi)發(fā)設(shè)計(jì)了基于Android的選課APP,并命名為“Hduin”。筆者經(jīng)過(guò)兩學(xué)期的試用,通過(guò)Android手機(jī)提交選課時(shí)間最短用時(shí)為18毫秒,平均用時(shí)5秒。經(jīng)過(guò)后期的進(jìn)一步改進(jìn)和優(yōu)化,選課時(shí)間平均用時(shí)只需要4.39秒,進(jìn)而成功地解決了地域和網(wǎng)絡(luò)擁堵的“選課難”問(wèn)題。
1.Android開(kāi)發(fā)環(huán)境的搭建
(1)安裝JDK
JDK是Sun公司針對(duì)Java開(kāi)發(fā)人員發(fā)布的一款免費(fèi)軟件開(kāi)發(fā)工具包(SDK,Software development kit),現(xiàn)屬于Oracle公司。使用者可以通過(guò)訪(fǎng)問(wèn)http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html,同意協(xié)議后,下載與Windows操作系統(tǒng)版本匹配的工具包。安裝時(shí)可以選擇安裝到任意的硬盤(pán)驅(qū)動(dòng)器上,筆者選擇目錄C:\Program Files\Java\jdk1.8.0_162,正確安裝后,在JDK目錄下有bin、demo、lib、jre等子目錄。然后設(shè)置JDK的環(huán)境變量,其設(shè)置方法如下:在Windows 10操作系統(tǒng)下,用鼠標(biāo)右鍵單擊“我的電腦”,彈出菜單選擇“屬性”,單擊“高級(jí)系統(tǒng)設(shè)置”,彈出“系統(tǒng)屬性”對(duì)話(huà)框,單擊該對(duì)話(huà)框中的“高級(jí)”選項(xiàng),然后單擊“環(huán)境變量”按鈕,添加名字為JAVA、CLASSPTH和PTAH的用戶(hù)變量,如下頁(yè)圖1所示。按鍵Win+R后輸入cmd,再輸入java或javac命令,出現(xiàn)java版本等信息后,JDK安裝配置成功。
(2)安裝Eclipse
訪(fǎng)問(wèn)http://www.eclipse.org/downloads/,下載eclipse-inst-win64.exe的win 64bit版,解壓后即可使用。
(3)安裝Android SDK
訪(fǎng)問(wèn)http://www.androiddevtools.cn/,下載Android SDK Tools,下載完成后解壓到任意路徑。雙擊SDK Manager.exe,單擊標(biāo)題“Tools”,選擇選項(xiàng)“Options”,在選項(xiàng)“HTTP Proxy Server”上填寫(xiě)鏡像地址(mirrors.opencas.ac.cn或mirrors.neusoft.edu.cn或google.com.cn),在“HTTP Proxy Port”上填寫(xiě)端口80,勾選“Forcehttps://... sources to be fetched using http://...”,設(shè)置完成后單擊“Close”。然后單擊標(biāo)題“Packages”選項(xiàng)“Reload”。最后,選擇希望安裝的SDK及其文檔或者其他包,點(diǎn)擊Installation Selected、Accept All、Install Accepted,開(kāi)始下載安裝所選包。如圖2所示。
SDK下載完成后,安裝SDK的目錄里面有tools、platforms、platform-tools、add-one等多個(gè)文件。將SDK目錄設(shè)置為系統(tǒng)環(huán)境變量Android_Home,同時(shí)設(shè)置PATH路徑,如圖3所示。按鍵Win+R后輸入cmd,再輸入adb命令,出現(xiàn)Android版本等信息后,則SDK安裝配置成功。
(4)安裝ADT
訪(fǎng)問(wèn)http://www.androiddevtools.cn/,下載ADT Plugin,下載后壓縮包存放到硬盤(pán)不解壓。打開(kāi)Eclipse,進(jìn)入菜單中的"Help"→"Install New Software",單擊Add按鈕,然后在彈出的窗口中,name寫(xiě)上ADT壓縮包的名字,點(diǎn)擊Archive選擇已下載好的ADT壓縮包,如圖4所示。然后選中Devrloper Tools單擊“下一步”完成即可。
(5)創(chuàng)建AVD
Eclipse平臺(tái)上運(yùn)行Android APP時(shí),方法一是在平臺(tái)安裝Android模擬器AVD,方法二是直接連接Android手機(jī),在手機(jī)上運(yùn)行Android APP程序。
①在Eclipse中,選擇Windows>AVD Manager。
②點(diǎn)擊左側(cè)面板的Virtual Devices,再右側(cè)點(diǎn)擊New。
③填入Name,選擇Target的API,SD Card:512MB,其他選項(xiàng)可以任意選擇或保持默認(rèn)值。
(6)安裝Tomcat
訪(fǎng)問(wèn)https://tomcat.apache.org/,筆者使用Eclipse Mar版本,下載Tomcat為7.0或8.0版,并解壓到硬盤(pán),然后按照Eclipse中Tomcat的配置步驟進(jìn)行配置。
(7)SQL Server數(shù)據(jù)庫(kù)配置
安裝好SQL Server 2008后,數(shù)據(jù)庫(kù)設(shè)置為SQL Server身份驗(yàn)證方式。運(yùn)行開(kāi)始→所有程序→Microsoft SQL Server 2008 R2→SQL Server配置管理器,設(shè)置QLEXPRESS右邊的TCP/IP模式為啟用。Named Pipes設(shè)置為啟用,同時(shí)配置TCP/IP,將IP地址設(shè)置為127.0.0.1,IpAll的TCP端口為1433,開(kāi)啟啟動(dòng)選項(xiàng)。
2.硬件環(huán)境
在Eclipse平臺(tái)中,要運(yùn)行JDK虛擬環(huán)境、Android虛擬機(jī)以及Android模擬器。其硬件的最低配置為CPU在主頻2.0GHz以上,內(nèi)存2G以上,屏幕最佳分辨率為1024×768像素。
1.系統(tǒng)設(shè)計(jì)
(1)系統(tǒng)開(kāi)發(fā)框架
在Eclipse平臺(tái)中,Android移動(dòng)終端通過(guò)tomcat服務(wù)器Java Servlet的HTTP方式訪(fǎng)問(wèn)Web服務(wù)器,筆者在服務(wù)器端工程中編寫(xiě)了servelt程序,使用HttpServletRequest和HttpServletResponse來(lái)表示請(qǐng)求和響應(yīng);在服務(wù)器端工程中編寫(xiě)JDBC與數(shù)據(jù)庫(kù)交互程序,用于訪(fǎng)問(wèn)SQL數(shù)據(jù)庫(kù)服務(wù)器,在Android客服端包工程集成了Apache HTTP客戶(hù)端,用到HttpGet和HttpPost兩個(gè)對(duì)象。[9][10][11]系統(tǒng)開(kāi)發(fā)框架如圖5所示。
(2)數(shù)據(jù)庫(kù)設(shè)計(jì)
①用戶(hù)表,字段:登錄名、密碼、權(quán)限。系統(tǒng)設(shè)置教務(wù)管理員、普通教師、學(xué)生三種角色,設(shè)置教務(wù)管理員為超級(jí)管理員。
②學(xué)生表,字段:學(xué)號(hào)、姓名、性別、班級(jí)。
③選課表,字段:學(xué)號(hào)、工號(hào)、課程編碼。
④課程表,字段:課程編碼、課程名、學(xué)時(shí)、學(xué)分、課程性質(zhì)、考核方式、上課學(xué)期。
⑤教師信息表,字段:工號(hào)、姓名、課程編碼、課程名稱(chēng)、所屬學(xué)院、上課地點(diǎn)、聯(lián)系電話(huà)。
2.系統(tǒng)實(shí)現(xiàn)
(1)系統(tǒng)功能模塊
該系統(tǒng)實(shí)現(xiàn)學(xué)生、教師和教務(wù)管理人員相關(guān)數(shù)據(jù)的管理,主要包括三個(gè)模塊[12][13][14][15]:選課學(xué)生管理模塊、任課教師管理模塊、教務(wù)管理人員模塊,如圖6所示。
其中詳細(xì)模塊設(shè)計(jì)包含:①學(xué)生選課管理模塊,含系統(tǒng)登錄、選課信息、選擇課程、退選課程和已選課程查詢(xún)5個(gè)功能;②教師管理模塊,含系統(tǒng)登錄、申請(qǐng)開(kāi)課、查詢(xún)課表、查看學(xué)生4個(gè)功能;③教務(wù)管理人員模塊,含4個(gè)基本管理功能。
(2)客戶(hù)端與服務(wù)器通信模塊
Android集成了Apache HTTP客戶(hù)端,在服務(wù)器Servlet編程中使用HttpServletRequest和HttpServletResponse來(lái)表示請(qǐng)求和響應(yīng)。Apache HTTP客戶(hù)端也已經(jīng)對(duì)請(qǐng)求和響應(yīng)進(jìn)行封裝,只需根據(jù)請(qǐng)求方法的不同,用到HttpGet和HttpPost兩個(gè)對(duì)象。其中,響應(yīng)對(duì)象是HttpResponse,使用DefaultHttpClient執(zhí)行請(qǐng)求獲得響應(yīng)。
實(shí)現(xiàn)該模塊的核心代碼如下:
public class HttpUtil {
//生命Base URL常量
public static final String BASE_URL="http://192.168.1.111:8080/xiaoge/";
//通過(guò)URL獲得HttpGet對(duì)象
public static HttpGet getHttpGet(String url){
HttpGet request = new HttpGet(url);
return request;
}
public static String queryStringForGet(String url){
HttpGet request = HttpUtil.getHttpGet(url);
String result = null;
try {
HttpResponse response = HttpUtil.getHttpResponse(request);
if(response.getStatusLine().getStatusCode()==200){
result = EntityUtils.toString(response.getEntity());
byte[] b=result.getBytes("8859-1");
String a=new String(b,"UTF-8");
return result;
}
} catch (ClientProtocolException e) {
e.printStackTrace();
result = "網(wǎng)絡(luò)異常!";
return result;
} catch (IOException e) {
e.printStackTrace();
result = "網(wǎng)絡(luò)異常!";
return result;
}
return null;
}
public static HttpResponse getHttpResponse(HttpGet request) throws ClientProtocolException, IOException{
HttpResponse response = new DefaultHttpClient().execute(request);
return response;
}}
基于Android移動(dòng)終端的醫(yī)學(xué)院校選課系統(tǒng)設(shè)置了教務(wù)管理人員、普通教師和學(xué)生三個(gè)系統(tǒng)角色,為全校師生帶來(lái)實(shí)時(shí)和便捷。同時(shí),該系統(tǒng)具有很好的可擴(kuò)展性,可以將視頻課程、課程考試、課程評(píng)教等與教學(xué)有關(guān)的內(nèi)容集成,實(shí)現(xiàn)學(xué)校信息系統(tǒng)的整體移動(dòng)智能化。
[1]劉敏,滕華,董文,等.基于IPv6校園網(wǎng)的智能選課系統(tǒng)的J2EE架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)[J].數(shù)據(jù)通信,2006(3):56-58.
[2]張曉葉.基于Android平臺(tái)高校移動(dòng)選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)春:吉林大學(xué),2015.
[3][6]楊國(guó)清.高校移動(dòng)選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2008(6):1097-1099.楊國(guó)清.高校移動(dòng)選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2008(6).
[4]胡劍鋒.基于Android的高職院校選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2014(33):7866-7868.
[5]湯青林.基于Android的移動(dòng)選課系統(tǒng)的設(shè)計(jì)[D].洛陽(yáng):洛陽(yáng)理工學(xué)院,2010.
[7]湯青林.基于Android平臺(tái)的選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,2011(11):164.
[8]劉嘯宇,范輝.基于Android的選課系統(tǒng)的研究與實(shí)現(xiàn)[J].無(wú)線(xiàn)互聯(lián)科技,2014(9)94-95.
[9]李芝興.Java程序設(shè)計(jì)之網(wǎng)絡(luò)編程[M].北京:清華大學(xué)出版社,2009.
[10]顏建華.Android開(kāi)發(fā)關(guān)鍵技術(shù)之旅[M].北京:中國(guó)鐵道出版社,2012.
[11]陳會(huì)安.Java和Android開(kāi)發(fā)實(shí)戰(zhàn)詳解[M].北京:人民郵電出版社,2014.
[12]孫曉宇.Android手機(jī)界面管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2009.
[13]曾健平,邵艷潔.Android系統(tǒng)架構(gòu)及應(yīng)用程序開(kāi)發(fā)研究[J].微計(jì)算機(jī)信息,2011(9):1-3.
[14]吳想想.基于Android平臺(tái)軟件開(kāi)發(fā)方法的研究與應(yīng)用[D].北京:北京郵電大學(xué), 2011.
[15]方靜.基于Android系統(tǒng)的移動(dòng)學(xué)習(xí)平臺(tái)的設(shè)計(jì)和實(shí)現(xiàn)[D].武漢:華中師范大學(xué),2014.
作者簡(jiǎn)介:邱進(jìn)(1969—),男,云南人,助教,研究方向?yàn)楝F(xiàn)代教育技術(shù)應(yīng)用;廖澤容(通訊作者)(1984—),女,四川人,博士生,研究方向?yàn)槌曖t(yī)學(xué)工程、移動(dòng)終端APP開(kāi)發(fā);馮春麗(1983—),女,云南人,主治醫(yī)師,研究方向?yàn)橹嗅t(yī)兒科慢性咳嗽。
基金項(xiàng)目:云南省教育廳科學(xué)研究基金資助性項(xiàng)目(2016ZDX050);昆明醫(yī)科大學(xué)教研教改重點(diǎn)課題(2016-JY-Z-05)。