基于二維碼的圖書館座位管理系統(tǒng)的設計與實現(xiàn)_第1頁
基于二維碼的圖書館座位管理系統(tǒng)的設計與實現(xiàn)_第2頁
基于二維碼的圖書館座位管理系統(tǒng)的設計與實現(xiàn)_第3頁
基于二維碼的圖書館座位管理系統(tǒng)的設計與實現(xiàn)_第4頁
基于二維碼的圖書館座位管理系統(tǒng)的設計與實現(xiàn)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

PAGEXV3摘要隨著移動終端的普及,手機已經(jīng)成為當代人不可缺少的通訊工具。在此基礎上,大眾的生活狀態(tài)發(fā)生顯著改變。需要注意的是,智能手機擁有多種系統(tǒng),而Android系統(tǒng)是較為常見的一種?;谶@一點,技術(shù)人員可以利用Android系統(tǒng)逐步優(yōu)化圖書館座位管理系統(tǒng)。本研究以Android系統(tǒng)為基礎,進一步完善圖書館座位管理系統(tǒng)的理論研究體系。簡單來說,系統(tǒng)后臺功能極為強大,既能收集用戶數(shù)據(jù),又能對系統(tǒng)進行升級維護。除此之外,用戶還可以在前臺進行操作,使用android開發(fā)中經(jīng)常使用的控制來設計界面,使用MVC模式來設計整體的體系結(jié)構(gòu),在eclipse編譯器中使用集成了android的SDK來開發(fā),mysql作為系統(tǒng)的數(shù)據(jù)庫。本文詳細闡述了圖書館座位管理系統(tǒng)的特點,并對其功能展開介紹。通過這種方式,深入探究開發(fā)該系統(tǒng)的相關(guān)要素。最終的成果是,使用該系統(tǒng)可以解決圖書館選座難題,緩解圖書館選座終端的壓力,高效利用移動終端完成圖書館選座操作。關(guān)鍵詞:android;圖書館;座位;管理系統(tǒng)DesignoflibraryseatmanagementsystembasedonqrcodeWiththeimplementationAbstractWiththepopularizationofmobileterminal,mobilephonehasbecomeanindispensablecommunicationtoolforcontemporarypeople.Thistrendhasgraduallychangedourlivinghabitsandunconsciouslychangedsomeofthesystematicmanagementweuseinourlifeandwork.WecanseethatAndroidsystemoccupiesalargeshareinthecurrentmobileterminalsysteminthemarket,whichmakesthelibraryseatmanagementsystemveryfeasibleinthemobileterminal.Thissystemisbasedonandroidlibraryseatmanagementsystem.Thesystemprovidesback-endservices,includingdatabaseconstruction,maintenance,andbusinessprocessing,aswellasinterfacestointeractwithusersintheforeground.Theforegroundinterfaceismainlyasystemusedbyusersforthepurposeofserviceselection.Theinterfaceisdesignedusingthecontroloftenusedinandroiddevelopment,theoverallarchitectureisdesignedusingtheMVCpattern,theintegratedandroidSDKisusedintheeclipsecompilerfordevelopment,andmysqlisusedasthedatabaseofthesystem.Thesystemexplainstherealizationprocessofthelibraryseatmanagementsystembasedonandroid,andintroducesseveralknowledgepointsofandroiddevelopment.Thefinalresultisthatthesystemcansolvetheproblemoflibraryseatselection,relievethepressureoflibraryseatselectionterminal,andefficientlyusemobileterminaltocompletethelibraryseatselectionoperation.Keywords:android;Thelibrary;Seat;Managementsystem第一章緒論1.1課題背景各高校為方便學生查閱知識以及提高自主學習的效率,均擁有占地面積龐大的圖書館。在這種情況下,學生能夠自由的汲取各種知識。不過,由于學生數(shù)量越來越多,圖書館經(jīng)常座無虛席?;谶@一點,學生之間摩擦不斷,嚴重影響了學習氛圍。由于圖書館的座位有限,學校沒有像樣的管理方法,這樣的現(xiàn)象持續(xù)不斷,變得越來越嚴重。我校對占領現(xiàn)象采用專人整理的方式。在這種情況下,不僅是圖書館的服務滿意度造成影響。學生們也在利用座位時,有時會發(fā)生爭吵,也會對同學之間的和睦關(guān)系產(chǎn)生影響。特別是,每當學生們?yōu)榱藴蕚涓鞣N考試紛紛來到圖書館時,圖書館的座位就會爆滿。另外,如果當時沒有人,但由于座位上放著著書,其他學生就會被延遲使用,這也是浪費資源的行為。此外,也有不是本校教師的學生,為了尋找學習的氣氛來到圖書館的自習室,長時間坐在座位上,加劇了座位的緊張,圖書館的座位不能共享,因此,不能有效利用資源。針對上述現(xiàn)象,筆者收集相關(guān)材料,并對圖書館座位管理系統(tǒng)展開深入探究。通過這種方式,構(gòu)建全新的管理系統(tǒng),有效降低各類摩擦的發(fā)生概率。1.2國內(nèi)外的研究發(fā)展現(xiàn)狀1.2.1國內(nèi)高效圖書館座位管理的研究現(xiàn)狀進入二十一世紀后,社會經(jīng)濟水平提高,大學生的數(shù)量隨之激增。與此同時,各類占座事件屢見不鮮。以圖書館為例,解決占座現(xiàn)象的手段較少。簡單來說,校方很少利用強制手段制止愈演愈烈的占座現(xiàn)象。通常情況下,圖書館的工作人員會要求學生離開之前,清理座位上的垃圾和物品。與此同時,他們還會收走座位上的物品。盡管如此,每天工作結(jié)束前必須收拾圖書館內(nèi)的各種物品,會造成學生丟失財物。在這種情況下,學生會產(chǎn)生不滿情緒,進而發(fā)生更大的摩擦。因此,校方無法憑借工作人員來處理相關(guān)問題。與此同時,工作人員也不愿激怒學生?;谶@一點,部分學者研制出了圖書館座位管理系統(tǒng)。在現(xiàn)代化信息技術(shù)的協(xié)助下,他們收集相關(guān)數(shù)據(jù),開發(fā)了符合自己學校實際情況的軟件管理系統(tǒng)。這在某種程度上緩和了占座現(xiàn)象引起的不必要的糾紛,因而是有效的,提高了座位使用率,降低了人工費用。1.2.2國外座位資源管理研究現(xiàn)狀閱讀是人類進步的基礎,養(yǎng)成良好的閱讀習慣,既能幫助人們掌握更多知識,又能提升閱讀者的整體素質(zhì)。在此基礎上,圖書館的數(shù)量越來越多,逐漸成為推動社會進步的重要支柱。從實際情況來看,國外的社區(qū)圖書館廣受好評,有著恨鎖值得借鑒的經(jīng)驗。例如,韓國政府高度重視圖書館的建設,在法律上規(guī)定了圖書館的選址,環(huán)境,技術(shù)標準等。日本學者Toshiaki在研究該領域時,以各種手段引導大眾增加閱讀量。除此之外,他還詳細分析了課堂座位數(shù)量以及占座特點。由于研究資源以及外部環(huán)境存在較大差異,致使研究結(jié)果截然相關(guān)。不過,學界普遍認為座位管理既會影響到學習效率,又能誘發(fā)學生之間的沖突。因此,校方必須妥善管理座位安排,才能營造良好的學習氛圍。據(jù)我所知,在海外的大學中,大學生所占的比例并不多,當然是存在的。但是,因為海外的大學相對較好,所以在占座方面也可以說是一樣的。例如,在德國的大學,每個學院的考試時間和授課時間各不相同,學生自身有需要向管理部門申請,當然也有時間限制。在歐美的其他大學,例如哈佛大學這樣的學校,圖書館不是一個,所以基本上可以找到一個地方學習。總體而言,國外的占座現(xiàn)象并不常見。究其原因,圖書館與課堂內(nèi)的座位屬于公共資源,而國外更注重素質(zhì)教育,能夠有效解決此類問題。與此同時,國內(nèi)的應試教育培養(yǎng)出了大批實用主義人才。在這種情況下,學生更傾向于利用公共資源達成自身目的。國內(nèi)外學者結(jié)合國情,對相關(guān)問題展開深入探究,并詳細分析了資源分配存在的不足之處。通過這種方式,為學界提供了更多研究視角,完善了該領域的研究體系,幫助校方提出行之有效的解決方案,以便輕松解決特定的問題。1.3本文的主要研究內(nèi)容本研究結(jié)合圖書館情況,收集校內(nèi)學生數(shù)據(jù),逐步完成相關(guān)設計。需要注意的是,校方在處理占座現(xiàn)象時,習慣采用較為溫和的勸說方式。不過,校內(nèi)學生的配合度較低,反而增加雙方摩擦的概率,進而引發(fā)惡性事件。與此同時,學生配合度也反映了整個學校的學風,大學生的個人素質(zhì)。從這個水平來說,占座現(xiàn)象是不容忽視的,校方要予以充分重視,并及時進行處理。除此之外,校方要充分利用現(xiàn)代化信息技術(shù),提高公共資源的管理效率。通過這種方式,幫助學生養(yǎng)成良好的生活習慣。不僅如此,現(xiàn)代信息化技術(shù)也能有效推動學校的發(fā)展。從實際情況來看,只有公平、公開的管理系統(tǒng),才能贏得學生的認可,同時也為學校節(jié)省少量勞動力成本。簡單來說,管理員可以憑借強大的信息管理系統(tǒng),完成各種一鍵操作。在此過程中,其管理效率大幅度提升。與此同時,學生可以根據(jù)系統(tǒng)信息,及時搶占座位資源。筆者主要優(yōu)化了系統(tǒng)的以下幾點功能:(1)座位預約管理系統(tǒng)及身份的驗證通常情況下,座位管理系統(tǒng)在分配資源時,需要由學生完成刷卡。隨后,系統(tǒng)會分配座位。在這種情況下,此類系統(tǒng)的工作效率極低,一旦學生數(shù)量過多,有時會排起長隊在大軍排起長隊,有時也會代替刷卡占座位。因此,為了解決上述系統(tǒng)的問題,本系統(tǒng)導入了座位管理預約系統(tǒng)。其特征是,實現(xiàn)了通過個人終端的用戶名和密碼進行自我注冊或通過學生卡進行注冊的2個方式。還可以連接到學生卡中心的數(shù)據(jù)庫,完成座位資源的分配。另外,校方在建立識別系統(tǒng)時,盡量以學生卡信息為基礎,方便系統(tǒng)進行驗證和查詢。與此同時,其成本也不高。(2)圖書館閱覽室座位的排位在選擇座位的過程中,既可以由學生自主選擇,又能依照系統(tǒng)分配完成選座。通過這種方式,使學生能夠獲得更多自主權(quán)。與此同時,不僅避免了占座沖突,還能提高學生的學習效率。(3)座位資源的更新管理從傳統(tǒng)的座位管理方式來看,校方會指派工作人員在圖書館內(nèi)來回走動,觀察座位的使用狀況。這種管理方法不僅費時費力,有時還會導致不必要的沖突和效率低下。在本系統(tǒng)中,管理者只需手動或自動進行更新,保留違反者的記錄,就可以提高座位的利用效率,這也與小程序不同。通過本系統(tǒng)可以獲得更多的信息,這些信息可以使學校在相關(guān)建設上進行有價值的改進。1.4研究目標筆者針對愈演愈烈的校園占座現(xiàn)象,詳細分析管理系統(tǒng)的不足之處,并提出相應的解決途徑。通過這種方式,幫助校方提高管理效率,降低占座引發(fā)的沖突,進而建立良好的學習氛圍。與此同時,也能引導學生養(yǎng)成良好的生活習慣。除此之外,系統(tǒng)的簡單操作對學生來說也很方便。第二章功能分析2.1客戶端 本系統(tǒng)具有用戶注冊登陸,用戶個人信息的詢問,用戶的座位選擇,用戶利用座位時長提示,用戶座位利用時間的延長,用戶暫時離開座位,用戶的座位釋放等功能。一、用戶必須輸入相關(guān)信息,完成身份驗證之后,才能成功登陸該系統(tǒng)。二、用戶能夠隨時查詢個人信息。三、用戶能夠利用系統(tǒng)自帶的實時地圖,確認座位資源是否充沛,并做出更加合理的選擇和判斷。四、用戶可以選擇座位進行預訂。五、在手動座位選擇功能中,用戶需要進行樓層選擇,系統(tǒng)以列表形式向用戶提示座位的情況,將未使用的座位標記為可選擇狀態(tài),將已經(jīng)使用的座位標記為不可選擇狀態(tài)。用戶可以通過向上或向下滾動列表來選擇適合自己的位置。六、如果選擇成功,則會轉(zhuǎn)到提示界面并顯示用戶名和使用時間的倒計時(默認為4小時)。在使用時間結(jié)束前的15分鐘內(nèi),將顯示一條消息,詢問您是使用時間結(jié)束,還是在使用時間結(jié)束前釋放座位。如果用戶在指定的時間內(nèi)完成了持續(xù)工作,則系統(tǒng)會將用戶的學習時間延長兩個小時。另外,在2小時的結(jié)束前15分鐘,指示用戶再次確認是進行下一次操作還是騰出座位。2.2服務端服務端作為程序的指揮部,主要負責對程序運行做保障。第三章技術(shù)的實現(xiàn)3.1搭建開發(fā)環(huán)境3.11在進行搭建開發(fā)環(huán)境前先下載以下程序安裝JDK、eclipse、SDK、adt3.12安裝JDK配置環(huán)境變量:(1)新建->變量名"JAVA_HOME",變量值"C:\Java\jdk1.8.0_05"(你JDK的安裝路徑)

(2)編輯->變量名"Path",在原變量值的最后面加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”

(3)新建->變量名“CLASSPATH”,變量值“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”3.13安裝SDKandroidSDK是用于模擬android運行環(huán)境的文件集合。androidSDKTOOLS主要包括一個SDK管理器和一個AVD管理器。SDK管理器用來管理不同版本的SDK(每個版本SDK對應一個安卓版本),AVD管理器用于創(chuàng)建一個虛擬手機。配置環(huán)境變量:新建一個系統(tǒng)環(huán)境變量,變量名為ANDROID_SDK_HOME,變量值為你的SDK安裝路徑。然后就是在系統(tǒng)的Path變量后,追加;%ANDROID_SDK_HOME%\platform-tools;%ANDROID_SDK_HOME%\tools。然后可以檢驗一下AndroidSDK是否安裝成功:在命令行窗口中輸入”adbversion“,如出現(xiàn)版本信息說明安裝成功。3.2安卓技術(shù)開發(fā)3.3二維碼的生成與識別1.引入依賴首先在libs文件目錄下放進jar包zxing.jar,然后引入依賴,sync。然后添加二維碼工具類EncodingUtils.classpackagecom.example.qrcodedemo.utils;importandroid.graphics.Bitmap;importandroid.graphics.Canvas;importcom.google.zxing.BarcodeFormat;importcom.google.zxing.EncodeHintType;importcom.google.zxing.WriterException;importmon.BitMatrix;importcom.google.zxing.qrcode.QRCodeWriter;importcom.google.zxing.qrcode.decoder.ErrorCorrectionLevel;importjava.util.HashMap;importjava.util.Map;/***二維碼生成工具類*/publicclassEncodingUtils{/***創(chuàng)建二維碼**@paramcontentcontent*@paramwidthPixwidthPix*@paramheightPixheightPix*@paramlogoBmlogoBm*@return二維碼*/publicstaticBitmapcreateQRCode(Stringcontent,intwidthPix,intheightPix,BitmaplogoBm){try{if(content==null||"".equals(content)){returnnull;}//配置參數(shù)Map<EncodeHintType,Object>hints=newHashMap<>();hints.put(EncodeHintType.CHARACTER_SET,"utf-8");//容錯級別hints.put(EncodeHintType.ERROR_CORRECTION,ErrorCorrectionLevel.H);//圖像數(shù)據(jù)轉(zhuǎn)換,使用了矩陣轉(zhuǎn)換BitMatrixbitMatrix=newQRCodeWriter().encode(content,BarcodeFormat.QR_CODE,widthPix,heightPix,hints);int[]pixels=newint[widthPix*heightPix];//下面這里按照二維碼的算法,逐個生成二維碼的圖片,//兩個for循環(huán)是圖片橫列掃描的結(jié)果for(inty=0;y<heightPix;y++){for(intx=0;x<widthPix;x++){if(bitMatrix.get(x,y)){pixels[y*widthPix+x]=0xff000000;}else{pixels[y*widthPix+x]=0xffffffff;}}}//生成二維碼圖片的格式,使用ARGB_8888Bitmapbitmap=Bitmap.createBitmap(widthPix,heightPix,Bitmap.Config.ARGB_8888);bitmap.setPixels(pixels,0,widthPix,0,0,widthPix,heightPix);if(logoBm!=null){bitmap=addLogo(bitmap,logoBm);}//必須使用compress方法將bitmap保存到文件中再進行讀取。直接返回的bitmap是沒有任何壓縮的,內(nèi)存消耗巨大!returnbitmap;}catch(WriterExceptione){e.printStackTrace();}returnnull;}/***在二維碼中間添加Logo圖案*/privatestaticBitmapaddLogo(Bitmapsrc,Bitmaplogo){if(src==null){returnnull;}if(logo==null){returnsrc;}//獲取圖片的寬高intsrcWidth=src.getWidth();intsrcHeight=src.getHeight();intlogoWidth=logo.getWidth();intlogoHeight=logo.getHeight();if(srcWidth==0||srcHeight==0){returnnull;}if(logoWidth==0||logoHeight==0){returnsrc;}//logo大小為二維碼整體大小的1/5floatscaleFactor=srcWidth*1.0f/5/logoWidth;Bitmapbitmap=Bitmap.createBitmap(srcWidth,srcHeight,Bitmap.Config.ARGB_8888);try{Canvascanvas=newCanvas(bitmap);canvas.drawBitmap(src,0,0,null);canvas.scale(scaleFactor,scaleFactor,srcWidth/2,srcHeight/2);canvas.drawBitmap(logo,(srcWidth-logoWidth)/2,(srcHeight-logoHeight)/2,null);canvas.save();canvas.restore();}catch(Exceptione){bitmap=null;e.getStackTrace();}returnbitmap;}}改布局文件用于預覽二維碼效果,其中EditText用于輸入放在二維碼中的文本信息,qrCode1為生成不帶logo的二維碼的點擊事件,qrCode2為生成帶logo的二維碼的點擊事件。<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="vertical"><EditTextandroid:id="@+id/input_txt"android:layout_width="300dp"android:textSize="18sp"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:hint="輸入要生成二位碼的內(nèi)容"/><Buttonandroid:text="生成二維碼"android:layout_width="239dp"android:layout_height="wrap_content"android:id="@+id/encode_btn1"android:textSize="18sp"android:onClick="qrCode1"android:layout_marginTop="20dp"/><ImageViewandroid:layout_width="200dp"android:layout_height="200dp"android:id="@+id/code_image1"android:layout_marginTop="20dp"/><TextViewandroid:layout_width="match_parent"android:layout_height="2dp"android:layout_marginTop="10dp"android:background="#7e7b7b"/><Buttonandroid:text="生成帶Logo的二維碼"android:layout_width="239dp"android:layout_height="wrap_content"android:id="@+id/encode_btn2"android:textSize="18sp"android:onClick="qrCode2"android:layout_marginTop="10dp"/><ImageViewandroid:layout_width="200dp"android:layout_height="200dp"android:id="@+id/code_image2"android:layout_marginTop="20dp"/></LinearLayout>然后我們在主活動中使用集成的EncodingUtils類中的createQRCode()方法來生成相應的二維碼,第一個參數(shù)content為二維碼中所存放的信息,第二個參數(shù)widthPix為所生成二維碼的寬度,第三個參數(shù)heightPix為所生成二維碼的高度,第四個參數(shù)logoBm為二維碼中間的logo,如果不帶logo的話此參數(shù)設為null即可。packagecom.example.qrcodedemo;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.support.v7.app.AppCompatActivity;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.EditText;importandroid.widget.ImageView;importandroid.widget.Toast;importcom.example.qrcodedemo.utils.EncodingUtils;publicclassMainActivityextendsAppCompatActivity{privateImageViewenCodeImage1,enCodeImage2;//展示生成的二維碼privateEditTexteditText;//輸入要生成二維碼的內(nèi)容@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化控件enCodeImage1=(ImageView)findViewById(R.id.code_image1);enCodeImage2=(ImageView)findViewById(R.id.code_image2);editText=(EditText)findViewById(R.id.input_txt);}/***生成不帶Logo的二維碼點擊事件*@paramview*/publicvoidqrCode1(Viewview){if("".equals(editText.getText().toString())){Toast.makeText(this,"請在輸入框中輸入內(nèi)容",Toast.LENGTH_SHORT).show();return;}//生成二維碼BitmapcodeBitmap=EncodingUtils.createQRCode(editText.getText().toString(),500,500,null);enCodeImage1.setImageBitmap(codeBitmap);//顯示二維碼}/***生成帶Logo的二維碼*@paramview*/publicvoidqrCode2(Viewview){if("".equals(ed

溫馨提示

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

評論

0/150

提交評論