亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        實(shí)驗(yàn)室預(yù)約平臺APP的設(shè)計(jì)與開發(fā)

        2018-01-29 17:26:19王澤奇,陳靜嫻,鄧大略,蔡劉璐
        軟件工程 2017年12期
        關(guān)鍵詞:Android系統(tǒng)

        王澤奇,陳靜嫻,鄧大略,蔡劉璐

        摘 要:隨著時代的發(fā)展和科技的進(jìn)步,實(shí)踐教學(xué)逐漸成為大學(xué)教育的主要教學(xué)方式之一,傳統(tǒng)的實(shí)驗(yàn)室管理方式已經(jīng)不能滿足教師和學(xué)生對實(shí)驗(yàn)室的需求。該系統(tǒng)服務(wù)器端采用struts+spring+hibernate框架設(shè)計(jì)、前端基于Android系統(tǒng),具有更高的可靠性和可復(fù)用性。教師可開放實(shí)驗(yàn)室,審核學(xué)生申請,管理學(xué)生意見;學(xué)生可預(yù)約實(shí)驗(yàn)室,進(jìn)行意見反饋。

        關(guān)鍵詞:實(shí)驗(yàn)室預(yù)約;Android系統(tǒng);APP

        中圖分類號:TP311.5 文獻(xiàn)標(biāo)識碼:A

        Development and Implementation of the Laboratory Reservation APP

        WANG Zeqi,CHEN Jingxian,DENG Dalüe,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 longer 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' application and manage students' suggestions,while students can reserve laboratories and offer feedback.

        Keywords:laboratory reservation;Android system;APP

        1 引言(Introduction)

        據(jù)調(diào)查,國內(nèi)智能手機(jī)的普及率已超過70%,而大學(xué)生群體中這一比例更高[1]。教師和學(xué)生對實(shí)驗(yàn)室的需求也進(jìn)一步增大。如何設(shè)計(jì)并開發(fā)出能夠滿足與日俱增需求的軟件,并進(jìn)一步改進(jìn)并完善我校的實(shí)驗(yàn)室預(yù)約系統(tǒng)?這就是本款A(yù)PP設(shè)計(jì)和開發(fā)的目的。

        目前,實(shí)踐教學(xué)比重的日益增加。就國內(nèi)而言,教育部規(guī)定各個高校實(shí)驗(yàn)課程必須達(dá)到80%以上[2]。美國、日本、德國、法國等國家高校的實(shí)踐教學(xué)占總教學(xué)時數(shù)的比例(因?qū)W院及專業(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é)院校,擁有眾多為開展實(shí)踐教學(xué)的實(shí)驗(yàn)設(shè)備和實(shí)驗(yàn)室,大部分教師和學(xué)生認(rèn)為網(wǎng)頁申請實(shí)驗(yàn)室過于繁瑣,且學(xué)生不能及時收到申請反饋。這都導(dǎo)致教師和學(xué)生使用web端進(jìn)行實(shí)驗(yàn)室預(yù)約的積極性降低。此系統(tǒng)基于Android手機(jī)端進(jìn)行設(shè)計(jì)并開發(fā),具有更高的靈活性和普遍性。且該系統(tǒng)根據(jù)不同使用人群設(shè)置不同的權(quán)限,保證了系統(tǒng)的安全性,最大限度滿足教師和學(xué)生的使用需求,提高實(shí)驗(yàn)室的使用效率。

        2 功能介紹(Functional introduction)

        該系統(tǒng)主要的用戶群體是教師和學(xué)生。學(xué)生主要通過該App進(jìn)行實(shí)驗(yàn)室預(yù)約申請,教師則主要作為管理員對實(shí)驗(yàn)室進(jìn)行管理,因此針對不同角色設(shè)計(jì)不同的功能是該APP的基本需求[3]。APP主要分為三大功能模塊:(1)學(xué)生功能模塊;(2)實(shí)驗(yàn)室管理員功能模塊(教師功能模塊);(3)系統(tǒng)管理員功能模塊。

        2.1 學(xué)生功能模塊

        學(xué)生用戶只有輸入正確的用戶名和密碼,才能成功登錄。學(xué)生登錄APP后,可預(yù)約開放的實(shí)驗(yàn)課和查看申請的實(shí)驗(yàn)課結(jié)果。學(xué)生功能模塊又分為三個子模塊,如圖1所示。

        查詢預(yù)約記錄:學(xué)生可以查詢自己曾預(yù)約的實(shí)驗(yàn)室、實(shí)驗(yàn)內(nèi)容和時間、地點(diǎn)。

        預(yù)約實(shí)驗(yàn)課:學(xué)生可根據(jù)自己的需要預(yù)約開放性實(shí)驗(yàn),實(shí)驗(yàn)管理員對學(xué)生提交的申請進(jìn)行審核,學(xué)生可隨時隨地對審核結(jié)果進(jìn)行查詢。

        意見反饋:學(xué)生在使用系統(tǒng)的過程中,有任何的意見和建議均可通過意見反饋功能提交反饋意見至實(shí)驗(yàn)室管理員。

        2.2 實(shí)驗(yàn)室管理員功能模塊

        實(shí)驗(yàn)室管理員功能模塊:實(shí)驗(yàn)室管理員輸入用戶名和密碼后,系統(tǒng)自動將其與數(shù)據(jù)庫中所存信息進(jìn)行核對,核對正確后才允許進(jìn)入該系統(tǒng),在系統(tǒng)內(nèi)進(jìn)行相關(guān)的操作。實(shí)驗(yàn)室管理員主要負(fù)責(zé)對學(xué)生的預(yù)約信息進(jìn)行審核和管理,以及對實(shí)驗(yàn)課狀態(tài)進(jìn)行修改、添加和刪除操作。實(shí)驗(yàn)室管理員功能又分為四個子模塊:審核學(xué)生預(yù)約信息、開放實(shí)驗(yàn)課管理、個人信息管理、學(xué)生意見管理。如圖2所示。

        審核學(xué)生預(yù)約信息:實(shí)驗(yàn)管理員對學(xué)生預(yù)約實(shí)驗(yàn)室的申請進(jìn)行審核或撤銷。

        開放實(shí)驗(yàn)室管理:管理員根據(jù)教學(xué)需求添加、修改、刪除和開放進(jìn)行相應(yīng)實(shí)驗(yàn)課的實(shí)驗(yàn)室。

        個人信息管理:實(shí)驗(yàn)管理員可根據(jù)需要修改自己的信息和密碼。

        學(xué)生意見管理:實(shí)驗(yàn)室管理員可看見與相關(guān)實(shí)驗(yàn)室的意見反饋信息,并根據(jù)需要進(jìn)行回復(fù),以達(dá)到師生互動的效果。endprint

        2.3 系統(tǒng)管理員管理模塊

        系統(tǒng)管理員主要負(fù)責(zé)在Web端進(jìn)行學(xué)生數(shù)據(jù)的錄入、學(xué)期設(shè)置等一些基本參數(shù)的維護(hù)工作。

        3 系統(tǒng)架構(gòu)(System architecture)

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

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

        利用Struts+Spring+Hibernate框架,實(shí)現(xiàn)了視圖、控制器與模型、業(yè)務(wù)邏輯、操作數(shù)據(jù)庫的分離。Struts+Spring+Hibernate框架結(jié)構(gòu)清晰,功能分明,可達(dá)到各個模塊間松耦合的目的,從而可以提高開發(fā)效率,提高系統(tǒng)的可擴(kuò)展性[4]。

        本系統(tǒng)的數(shù)據(jù)庫采用MySQL,系統(tǒng)ER圖如圖4所示。

        4 系統(tǒng)實(shí)現(xiàn)(System implementation)

        目前用于Android系統(tǒng)的開發(fā)工具眾多,該APP設(shè)計(jì)和開發(fā)主要采用了2013年由谷歌推出的Android開發(fā)環(huán)境——android studio[5]。在設(shè)計(jì)和開發(fā)中,最為關(guān)鍵的部分是如何承載數(shù)量眾多的在校教師和學(xué)生同時在線,該問題采用的解決方案是利用struts+spring+hibernate框架,以提高本系統(tǒng)的可靠性、安全性和可復(fù)用性;同時,采用OKHttp協(xié)議與服務(wù)器端進(jìn)行通信,以保證Android客戶端與服務(wù)器端通信的可靠性。

        4.1 多線程和異步

        用戶通過Android客戶端發(fā)送請求給服務(wù)端,請求采用多線程進(jìn)行處理,實(shí)現(xiàn)異步解決系統(tǒng)數(shù)據(jù)傳輸問題。在該系統(tǒng)中,客戶端需要從服務(wù)端獲取預(yù)約實(shí)驗(yàn)室列表。該功能的實(shí)現(xiàn)則是通過采用異步類的方法,即在主線程中開啟一個子線程,在子線程訪問服務(wù)端獲取預(yù)約實(shí)驗(yàn)室列表,在主線程收到服務(wù)端返回的數(shù)據(jù)后,更新頁面的數(shù)據(jù)。

        以下是代碼實(shí)現(xiàn)部分。

        //調(diào)用異步類取得數(shù)據(jù)

        new MylabFragment.ConnectToServer().execute();

        //更新預(yù)約實(shí)驗(yàn)室列表

        //String為當(dāng)調(diào)用該類的時候需要傳遞進(jìn)來的參數(shù),可以是String數(shù)組

        private class ConnectToServer extends AsyncTask {

        private String errorMessage;

        //該方法是運(yùn)行在后臺,開了一子線程

        protected Boolean doInBackground(String... strings) {

        try{

        Mapparams=new HashMap();

        //傳入sessionID

        String sessionID=getSessionID();

        params.put("sessionID",sessionID);

        //調(diào)用myappointRequest這個接口

        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(dataList,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 true;}

        //當(dāng)子線程運(yùn)行結(jié)束,執(zhí)行該方法,更新UI

        protected void onPostExecute(Boolean result){

        if(result){

        //把得到的數(shù)據(jù)放入Fragment中的listview的適配器中

        MylabAdapter adapter=new MylabAdapter(getContext(),mDatas);

        listView.setAdapter(adapter);

        }else{

        if(result!=null){

        AlertDialog.Builder dialog=new AlertDialog.Builder(getActivity());

        dialog.setTitle("提示信息");

        dialog.setMessage(errorMessage);

        dialog.setCancelable(false);

        dialog.setPositiveButton("關(guān)閉", new DialogInterface.OnClickListener() {

        @Override

        public void onClick(DialogInterface dialog, int which) {

        dialog.dismiss();}});

        dialog.show();

        }}}}

        4.2 JSON

        請求響應(yīng)后返回JSON數(shù)據(jù)給手機(jī)端。JSON即JavaScript Object Notation,是一種利于蜂窩數(shù)據(jù)網(wǎng)絡(luò)傳輸?shù)妮p量級的數(shù)據(jù)交換格式。它是JavaScript的一個子集,采用完全獨(dú)立于語言的文本格式,容易被閱讀和編寫,并且方便機(jī)器的解析和生成。相對于XML,JSON數(shù)據(jù)封裝的體積小,在網(wǎng)絡(luò)上傳輸?shù)男时萖ML高,被廣泛應(yīng)用到移動互聯(lián)的開發(fā)領(lǐng)域中。利用JSON在網(wǎng)絡(luò)數(shù)據(jù)傳輸上的優(yōu)勢,將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, acceptableNumber=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, semester=2, id=27, day=3, freeDate=2017-05-24, freeLabName=計(jì)算機(jī)實(shí)驗(yàn)室, status=1}]

        }

        在客戶端就可以使用JSONObject將JSON字符串轉(zhuǎn)換為JSON對象,然后通過對象的方式提取數(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; i

        TeacherAppointment teacherAppointment=new TeacherAppointment();

        JSONObject jsonObject2=TeacherAppointments.getJSONObject(i);

        teacherAppointment.setWeek(jsonObject2.getString("week"));

        ...

        teacherAppointment.setStatus(jsonObject2.getString("status"));

        list.add(teacherAppointment); }

        } catch (JSONException e) {

        e.printStackTrace(); }

        return list; }

        4.3 成果展示

        學(xué)生用戶頁面和教師用戶頁面如圖5所示。

        5 結(jié)論(Conclusion)

        日漸成熟的信息技術(shù)和日益發(fā)達(dá)的通訊網(wǎng)絡(luò)都是為了使人們學(xué)習(xí)和生活更加快捷方便。對于當(dāng)代大學(xué)生而言,不僅需要豐富的理論知識,同時需要一定的動手能力。通過該款A(yù)PP的使用,希望可以在一定程度上提高實(shí)驗(yàn)室的使用效率,提高大學(xué)生的動手能力,實(shí)現(xiàn)理論與實(shí)踐相結(jié)合,真正通過信息技術(shù)和網(wǎng)絡(luò)為廣大師生帶來便利,真正實(shí)現(xiàn)實(shí)踐教學(xué)。

        參考文獻(xiàn)(References)

        [1] 謝杭,朱鵬羽,孟慶賀.基于安卓平臺的掌上校園APP的設(shè)計(jì)與開發(fā)[J].軟件工程,2016,19(3):25-26.

        [2] 孫華麗.基于Android平臺的實(shí)驗(yàn)室預(yù)約系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2016(5):66-68.

        [3] 侯曉麗,鄧煒,牛天勇.開放式實(shí)驗(yàn)室預(yù)約系統(tǒng)的功能設(shè)計(jì)[J].軟件設(shè)計(jì)開發(fā),2017,13(6):102-110.

        [4] 張文梅.基于SSH的實(shí)驗(yàn)室管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].Computer Knowledge and Technology,2016,12(13):105-106.

        [5] 李剛.瘋狂Android講義(3版).北京:電子工業(yè)出版社,2015.

        [6] 陳惠敏.基于Android的科研成果管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2015(20):43-44.

        作者簡介:

        王澤奇(1996-),男,本科生.研究領(lǐng)域:軟件開發(fā).

        陳靜嫻(1981-),女,碩士,講師.研究領(lǐng)域:軟件開發(fā).

        鄧大略(1995-),男,本科生.研究領(lǐng)域:軟件開發(fā).

        蔡劉璐(1997-),女,本科生.研究領(lǐng)域:軟件開發(fā).

        猜你喜歡
        Android系統(tǒng)
        Android系統(tǒng)上的移動互聯(lián)網(wǎng)集成平臺開發(fā)機(jī)制
        Android系統(tǒng)核心管理工具設(shè)計(jì)與實(shí)現(xiàn)
        Android下的機(jī)械式電表數(shù)字識別技術(shù)研究
        基于Android系統(tǒng)的掌上班級課表與學(xué)生考勤管理系統(tǒng)
        基于GPS和iBeacon的智能校園信息發(fā)布平臺設(shè)計(jì)與實(shí)現(xiàn)
        基于增強(qiáng)現(xiàn)實(shí)技術(shù)的導(dǎo)航系統(tǒng)研究
        国产人妻高清国产拍精品| 久久亚洲精彩无码天堂| 亚洲av自偷自拍亚洲一区| 久久精品国产亚洲av网| 亚洲无亚洲人成网站77777| 午夜片无码区在线| 亚洲av色香蕉一区二区三区蜜桃 | 88久久精品无码一区二区毛片| 无码日韩人妻AV一区免费| 国产一级一片内射视频在线| 丰满女人猛烈进入视频免费网站 | 无码人妻一区二区三区免费视频 | 亚洲一区二区三区无码国产| 中文字幕av一区二区三区| 色噜噜色哟哟一区二区三区| 人人妻人人澡人人爽人人dvd| 国产无遮挡又黄又爽在线视频| 久久精品成人亚洲另类欧美| 中文字幕中文字幕777| 真实人与人性恔配视频| 亚洲成在人线久久综合| 东京道一本热码加勒比小泽| 蜜桃视频在线看一区二区三区| 台湾佬自拍偷区亚洲综合| 91久久国产综合精品| 蜜桃噜噜一区二区三区| 成人午夜福利视频后入| 北条麻妃毛片在线视频| 蜜桃av一区在线观看| 欧美xxxxx高潮喷水麻豆| 国产乱子伦一区二区三区| 欧美在线观看www| 国产精品亚洲av高清二区| 国产精品r级最新在线观看| 国产成人精品免费久久久久| 精品国产日产av在线| 亚洲av无码国产精品色午夜字幕 | 国产黄色av一区二区三区| 日日噜狠狠噜天天噜av| 国产成社区在线视频观看| 一区二区三区日韩精品视频|