技術(shù)報(bào)告實(shí)驗(yàn)室預(yù)約平臺(tái)APP的設(shè)計(jì)開(kāi)發(fā)_第1頁(yè)
技術(shù)報(bào)告實(shí)驗(yàn)室預(yù)約平臺(tái)APP的設(shè)計(jì)開(kāi)發(fā)_第2頁(yè)
技術(shù)報(bào)告實(shí)驗(yàn)室預(yù)約平臺(tái)APP的設(shè)計(jì)開(kāi)發(fā)_第3頁(yè)
技術(shù)報(bào)告實(shí)驗(yàn)室預(yù)約平臺(tái)APP的設(shè)計(jì)開(kāi)發(fā)_第4頁(yè)
技術(shù)報(bào)告實(shí)驗(yàn)室預(yù)約平臺(tái)APP的設(shè)計(jì)開(kāi)發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、計(jì)劃類(lèi)別 項(xiàng)目編號(hào) 項(xiàng)目技術(shù)報(bào)告課題名稱(chēng) 項(xiàng)目主持人 承擔(dān)單位 題目:實(shí)驗(yàn)室預(yù)約平臺(tái)APP的設(shè)計(jì)與開(kāi)發(fā)隨著時(shí)代的發(fā)展和科技的進(jìn)步,實(shí)踐教學(xué)逐漸成為大學(xué)教育的主要教學(xué)方式之一,傳統(tǒng)的實(shí)驗(yàn)室管理方式已經(jīng)不能滿足教師和學(xué)生對(duì)實(shí)驗(yàn)室的需求。該系統(tǒng)服務(wù)器端采用struts+spring+hibernate框架設(shè)計(jì)、前端基于Android系統(tǒng),具有更高的可靠性和可復(fù)用性。教師可開(kāi)放實(shí)驗(yàn)室,審核學(xué)生申請(qǐng),管理學(xué)生意見(jiàn);學(xué)生可預(yù)約實(shí)驗(yàn)室,進(jìn)行意見(jiàn)反饋。關(guān)鍵詞:實(shí)驗(yàn)室預(yù)約;Android系統(tǒng);APPDevelopment and Implementation of the Laboratory Reservat

2、ion APPWANG Zeqi,CHEN Jingxian,DENG Dale,CAI Liulu(Hainan Medical University,Haikou 570100,China)Abstract:With the development of science and technology,practice teaching has gradually become one of the main teaching methods in higher education.The traditional laboratory management method can no lon

3、ger meet the requirements of teachers and students for laboratories.The server side of the system is designed with the struts+spring+hibernate framework and the front end is based on the Android system,with higher reliability and reusability.Teachers can open laboratories,examine students applicatio

4、n and manage students suggestions,while students can reserve laboratories and offer feedback.Keywords:laboratory reservation;Android system;APP1 引言(Introduction)據(jù)調(diào)查,國(guó)內(nèi)智能手機(jī)的普及率已超過(guò)70%,而大學(xué)生群體中這一比例更高1。教師和學(xué)生對(duì)實(shí)驗(yàn)室的需求也進(jìn)一步增大。如何設(shè)計(jì)并開(kāi)發(fā)出能夠滿足與日俱增需求的軟件,并進(jìn)一步改進(jìn)并完善我校的實(shí)驗(yàn)室預(yù)約系統(tǒng)?這就是本款A(yù)PP設(shè)計(jì)和開(kāi)發(fā)的目的。目前,實(shí)踐教學(xué)比重的日益增加。就國(guó)內(nèi)而言,教育部規(guī)

5、定各個(gè)高校實(shí)驗(yàn)課程必須達(dá)到80%以上2。美國(guó)、日本、德國(guó)、法國(guó)等國(guó)家高校的實(shí)踐教學(xué)占總教學(xué)時(shí)數(shù)的比例(因?qū)W院及專(zhuān)業(yè)的性質(zhì)而異),理科為17.1%33.6%,工科為5.6%12.5%,農(nóng)科為15.7%40.3%,醫(yī)科為25.1%45%(摘自高校實(shí)驗(yàn)室管理系統(tǒng)方案)。在實(shí)踐教學(xué)如此被重視的環(huán)境之下,實(shí)驗(yàn)室管理系統(tǒng)的創(chuàng)建迫在眉睫,然而,現(xiàn)所存在的實(shí)驗(yàn)室管理系統(tǒng)多是基于web端創(chuàng)建的。海南醫(yī)學(xué)院作為醫(yī)學(xué)院校,擁有眾多為開(kāi)展實(shí)踐教學(xué)的實(shí)驗(yàn)設(shè)備和實(shí)驗(yàn)室,大部分教師和學(xué)生認(rèn)為網(wǎng)頁(yè)申請(qǐng)實(shí)驗(yàn)室過(guò)于繁瑣,且學(xué)生不能及時(shí)收到申請(qǐng)反饋。這都導(dǎo)致教師和學(xué)生使用web端進(jìn)行實(shí)驗(yàn)室預(yù)約的積極性降低。此系統(tǒng)基于Android

6、手機(jī)端進(jìn)行設(shè)計(jì)并開(kāi)發(fā),具有更高的靈活性和普遍性。且該系統(tǒng)根據(jù)不同使用人群設(shè)置不同的權(quán)限,保證了系統(tǒng)的安全性,最大限度滿足教師和學(xué)生的使用需求,提高實(shí)驗(yàn)室的使用效率。2 功能介紹(Functional introduction)該系統(tǒng)主要的用戶群體是教師和學(xué)生。學(xué)生主要通過(guò)該App進(jìn)行實(shí)驗(yàn)室預(yù)約申請(qǐng),教師則主要作為管理員對(duì)實(shí)驗(yàn)室進(jìn)行管理,因此針對(duì)不同角色設(shè)計(jì)不同的功能是該APP的基本需求3。APP主要分為三大功能模塊:(1)學(xué)生功能模塊;(2)實(shí)驗(yàn)室管理員功能模塊(教師功能模塊);(3)系統(tǒng)管理員功能模塊。2.1 學(xué)生功能模塊學(xué)生用戶只有輸入正確的用戶名和密碼,才能成功登錄。學(xué)生登錄APP后,可

7、預(yù)約開(kāi)放的實(shí)驗(yàn)課和查看申請(qǐng)的實(shí)驗(yàn)課結(jié)果。學(xué)生功能模塊又分為三個(gè)子模塊,如圖1所示。查詢預(yù)約記錄:學(xué)生可以查詢自己曾預(yù)約的實(shí)驗(yàn)室、實(shí)驗(yàn)內(nèi)容和時(shí)間、地點(diǎn)。預(yù)約實(shí)驗(yàn)課:學(xué)生可根據(jù)自己的需要預(yù)約開(kāi)放性實(shí)驗(yàn),實(shí)驗(yàn)管理員對(duì)學(xué)生提交的申請(qǐng)進(jìn)行審核,學(xué)生可隨時(shí)隨地對(duì)審核結(jié)果進(jìn)行查詢。意見(jiàn)反饋:學(xué)生在使用系統(tǒng)的過(guò)程中,有任何的意見(jiàn)和建議均可通過(guò)意見(jiàn)反饋功能提交反饋意見(jiàn)至實(shí)驗(yàn)室管理員。2.2 實(shí)驗(yàn)室管理員功能模塊實(shí)驗(yàn)室管理員功能模塊:實(shí)驗(yàn)室管理員輸入用戶名和密碼后,系統(tǒng)自動(dòng)將其與數(shù)據(jù)庫(kù)中所存信息進(jìn)行核對(duì),核對(duì)正確后才允許進(jìn)入該系統(tǒng),在系統(tǒng)內(nèi)進(jìn)行相關(guān)的操作。實(shí)驗(yàn)室管理員主要負(fù)責(zé)對(duì)學(xué)生的預(yù)約信息進(jìn)行審核和管理,以及對(duì)

8、實(shí)驗(yàn)課狀態(tài)進(jìn)行修改、添加和刪除操作。實(shí)驗(yàn)室管理員功能又分為四個(gè)子模塊:審核學(xué)生預(yù)約信息、開(kāi)放實(shí)驗(yàn)課管理、個(gè)人信息管理、學(xué)生意見(jiàn)管理。如圖2所示。審核學(xué)生預(yù)約信息:實(shí)驗(yàn)管理員對(duì)學(xué)生預(yù)約實(shí)驗(yàn)室的申請(qǐng)進(jìn)行審核或撤銷(xiāo)。開(kāi)放實(shí)驗(yàn)室管理:管理員根據(jù)教學(xué)需求添加、修改、刪除和開(kāi)放進(jìn)行相應(yīng)實(shí)驗(yàn)課的實(shí)驗(yàn)室。個(gè)人信息管理:實(shí)驗(yàn)管理員可根據(jù)需要修改自己的信息和密碼。學(xué)生意見(jiàn)管理:實(shí)驗(yàn)室管理員可看見(jiàn)與相關(guān)實(shí)驗(yàn)室的意見(jiàn)反饋信息,并根據(jù)需要進(jìn)行回復(fù),以達(dá)到師生互動(dòng)的效果。endprint2.3 系統(tǒng)管理員管理模塊系統(tǒng)管理員主要負(fù)責(zé)在Web端進(jìn)行學(xué)生數(shù)據(jù)的錄入、學(xué)期設(shè)置等一些基本參數(shù)的維護(hù)工作。3 系統(tǒng)架構(gòu)(System

9、architecture)實(shí)驗(yàn)室預(yù)約平臺(tái)APP采用Struts+Spring+Hibernate框架實(shí)現(xiàn)本系統(tǒng)的相關(guān)開(kāi)發(fā)(圖3)。Struts是一款開(kāi)源的Web應(yīng)用框架,它擴(kuò)展了Java Servlet API,采用model-view-controller(即MVC)架構(gòu),從而實(shí)現(xiàn)了代碼的松耦合,提高了代碼的可復(fù)用性,主要運(yùn)用于表現(xiàn)層和業(yè)務(wù)控制層;Spring是一個(gè)開(kāi)源的設(shè)計(jì)層面框架,它解決業(yè)務(wù)邏輯層和其他各層的松耦合問(wèn)題。它是一個(gè)輕量級(jí)的應(yīng)用,主要運(yùn)用于業(yè)務(wù)邏輯層;Hibernate是一個(gè)開(kāi)源的對(duì)象關(guān)系映射(OR Mapping)框架,hibernate可以自動(dòng)生成SQL語(yǔ)句,從而實(shí)現(xiàn)了使

10、用對(duì)象編程思維來(lái)操作數(shù)據(jù)庫(kù)。在校教師或?qū)W生可通過(guò)Web瀏覽器或Android手機(jī)訪問(wèn)本系統(tǒng)。如果用戶使用Android手機(jī)訪問(wèn)本系統(tǒng),系統(tǒng)將自動(dòng)采用OKHttp來(lái)封裝用戶的請(qǐng)求。OKHttp是一個(gè)處理網(wǎng)絡(luò)請(qǐng)求的開(kāi)源項(xiàng)目,是安卓端使用最多的輕量級(jí)框架。系統(tǒng)將根據(jù)struts.xml的配置找到相應(yīng)的Action類(lèi)來(lái)處理請(qǐng)求。Action類(lèi)中會(huì)調(diào)用相應(yīng)的服務(wù)類(lèi)(Service)來(lái)處理相應(yīng)的業(yè)務(wù)邏輯,在Service類(lèi)中調(diào)用相應(yīng)的DAO處理類(lèi),來(lái)實(shí)現(xiàn)與數(shù)據(jù)的交互。最后將處理結(jié)果以Json的形式返回給Android客戶端。如果用戶使用Web瀏覽器訪問(wèn)本系統(tǒng),則以HTML頁(yè)面的形式返回給瀏覽器。利用Str

11、uts+Spring+Hibernate框架,實(shí)現(xiàn)了視圖、控制器與模型、業(yè)務(wù)邏輯、操作數(shù)據(jù)庫(kù)的分離。Struts+Spring+Hibernate框架結(jié)構(gòu)清晰,功能分明,可達(dá)到各個(gè)模塊間松耦合的目的,從而可以提高開(kāi)發(fā)效率,提高系統(tǒng)的可擴(kuò)展性4。本系統(tǒng)的數(shù)據(jù)庫(kù)采用MySQL,系統(tǒng)ER圖如圖4所示。4 系統(tǒng)實(shí)現(xiàn)(System implementation)目前用于Android系統(tǒng)的開(kāi)發(fā)工具眾多,該APP設(shè)計(jì)和開(kāi)發(fā)主要采用了2013年由谷歌推出的Android開(kāi)發(fā)環(huán)境android studio5。在設(shè)計(jì)和開(kāi)發(fā)中,最為關(guān)鍵的部分是如何承載數(shù)量眾多的在校教師和學(xué)生同時(shí)在線,該問(wèn)題采用的解決方案是利用

12、struts+spring+hibernate框架,以提高本系統(tǒng)的可靠性、安全性和可復(fù)用性;同時(shí),采用OKHttp協(xié)議與服務(wù)器端進(jìn)行通信,以保證Android客戶端與服務(wù)器端通信的可靠性。4.1 多線程和異步用戶通過(guò)Android客戶端發(fā)送請(qǐng)求給服務(wù)端,請(qǐng)求采用多線程進(jìn)行處理,實(shí)現(xiàn)異步解決系統(tǒng)數(shù)據(jù)傳輸問(wèn)題。在該系統(tǒng)中,客戶端需要從服務(wù)端獲取預(yù)約實(shí)驗(yàn)室列表。該功能的實(shí)現(xiàn)則是通過(guò)采用異步類(lèi)的方法,即在主線程中開(kāi)啟一個(gè)子線程,在子線程訪問(wèn)服務(wù)端獲取預(yù)約實(shí)驗(yàn)室列表,在主線程收到服務(wù)端返回的數(shù)據(jù)后,更新頁(yè)面的數(shù)據(jù)。以下是代碼實(shí)現(xiàn)部分。/調(diào)用異步類(lèi)取得數(shù)據(jù)new MylabFragment.Connect

13、ToServer().execute();/更新預(yù)約實(shí)驗(yàn)室列表/String為當(dāng)調(diào)用該類(lèi)的時(shí)候需要傳遞進(jìn)來(lái)的參數(shù),可以是String數(shù)組private class ConnectToServer extends AsyncTask private String errorMessage;/該方法是運(yùn)行在后臺(tái),開(kāi)了一子線程protected Boolean doInBackground(String. strings) tryMapparams=new HashMap();/傳入sessionIDString sessionID=getSessionID();params.put(session

14、ID,sessionID);/調(diào)用myappointRequest這個(gè)接口MyRequest myappointRequest= ServiceManager.MyappointmentRequest(params);myappointRequest.setMycallback(new Callback(new MessageParser() /接口連接成功,執(zhí)行以下內(nèi)容public void onSuccess() String dataList=getMessage().getRecDataList();List mDatas1 =GsonParseUtil.stringToArray(d

15、ataList,Appointment.class);if(mDatas1 !=null)for(Appointment appointment: mDatas1)if (!appointment.getFreeLabName().equals(計(jì)算機(jī)機(jī)房1) mDatas.add(appointment);/接口連接失敗,執(zhí)行以下內(nèi)容public void onFailed() errorMessage=getMessage().getRecMsg(););myappointRequest.sendInAsyn();catch (Exception e)return false;return

16、 true;/當(dāng)子線程運(yùn)行結(jié)束,執(zhí)行該方法,更新UIprotected void onPostExecute(Boolean result)if(result)/把得到的數(shù)據(jù)放入Fragment中的listview的適配器中MylabAdapter adapter=new MylabAdapter(getContext(),mDatas);listView.setAdapter(adapter);elseif(result!=null)AlertDialog.Builder dialog=new AlertDialog.Builder(getActivity();dialog.setTitle

17、(提示信息);dialog.setMessage(errorMessage);dialog.setCancelable(false);dialog.setPositiveButton(關(guān)閉, new DialogInterface.OnClickListener() Overridepublic void onClick(DialogInterface dialog, int which) dialog.dismiss(););dialog.show();4.2 JSON請(qǐng)求響應(yīng)后返回JSON數(shù)據(jù)給手機(jī)端。JSON即JavaScript Object Notation,是一種利于蜂窩數(shù)據(jù)網(wǎng)絡(luò)傳

18、輸?shù)妮p量級(jí)的數(shù)據(jù)交換格式。它是JavaScript的一個(gè)子集,采用完全獨(dú)立于語(yǔ)言的文本格式,容易被閱讀和編寫(xiě),并且方便機(jī)器的解析和生成。相對(duì)于XML,JSON數(shù)據(jù)封裝的體積小,在網(wǎng)絡(luò)上傳輸?shù)男时萖ML高,被廣泛應(yīng)用到移動(dòng)互聯(lián)的開(kāi)發(fā)領(lǐng)域中。利用JSON在網(wǎng)絡(luò)數(shù)據(jù)傳輸上的優(yōu)勢(shì),將JSON作為實(shí)驗(yàn)室管理應(yīng)用軟件客戶端與服務(wù)端間的數(shù)據(jù)交換格式6。代碼實(shí)現(xiàn)部分如下:從服務(wù)端獲取到了以下格式的JSON字符串。list:week=16, year=2016-2017, checkedNumber=null, lesson=1-3, freeLabID=1, updateTime=2017-05-11, a

19、cceptableNumber=30, checkPendingNumber=null, assignedLabs=機(jī)房2, semester=2, id=26, day=1,freeDate=2017-06-05, freeLabName=計(jì)算機(jī)實(shí)驗(yàn)室, status=1,week=14, year=2016-2017, checkedNumber=null, lesson=3-5, freeLabID=1, updateTime=2017-05-14, acceptableNumber=30, checkPendingNumber=null, assignedLabs=機(jī)房2, semes

20、ter=2, id=27, day=3, freeDate=2017-05-24, freeLabName=計(jì)算機(jī)實(shí)驗(yàn)室, status=1在客戶端就可以使用JSONObject將JSON字符串轉(zhuǎn)換為JSON對(duì)象,然后通過(guò)對(duì)象的方式提取數(shù)據(jù)。部分代碼如下:public static List getTeacherAppointment(String key, String jsonString) List list=new ArrayList();JSONObject jsonObject;try jsonObject=new JSONObject(jsonString);JSONArray TeacherAppointments=jsonObject.getJSONArray(key);for (int i=0; iteacherappointments.length(); TeacherAppointment teacherAppointment=new TeacherAppointment();JSONObject jsonObject2=TeacherAppointments.getJSONObject(i);teacherAppointment.setWeek(jsonObject2.getString(week);.teach

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論