




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGEPAGE33目錄1、設計背景和作品簡介 12、設計目的與意義 33、設計要求 44、基礎知識介紹 54.1Android架構分析 54.2Android應用組件 85、總體方案設計和完成的工作 145.1系統(tǒng)的目標 145.2可行性分析 145.3系統(tǒng)性能特點及控制要求 155.4數(shù)據(jù)庫設計 155.5需求分析 165.6功能模塊設計 175.7數(shù)據(jù)庫概念結構設計 185.8數(shù)據(jù)庫邏輯結構設計 205.9完成的工作 251、設計背景和作品簡介隨著通訊行業(yè)的發(fā)展和人們現(xiàn)代生活工作節(jié)奏的日趨加快,移動信息產(chǎn)品和服務的品種越來越多,更新?lián)Q代速度越來越快,手機市場爭奪日趨激烈和殘酷。自2000年5月,國際電信聯(lián)盟公布了第三代移動通訊標準,分別是美國CDMA2000,歐洲WCDMA,中國TD-SCDMA,成為3G時代最為主流的三大技術,還有后面加入的WiMAX的第四個3G標準,3G(3ul-generation)是第三代移動通訊技術的簡稱,是支持高速數(shù)據(jù)傳輸?shù)姆涓C移動通訊技術。全球范圍內移動通信發(fā)展迅速,國內電信市場競爭日益加劇,行業(yè)發(fā)展面臨著新的機遇和挑戰(zhàn),為了以發(fā)展3G為契機,合理配置現(xiàn)有電信網(wǎng)絡資源,實現(xiàn)全業(yè)務經(jīng)營,形成適度、健康的市場競爭格局,2008年5月,工信部、國家發(fā)改委、財政部聯(lián)合發(fā)布《關于深化電信體制改革的通告》,中國電信收購中國聯(lián)通CDMA網(wǎng),中國聯(lián)通和中國網(wǎng)通合并,中國衛(wèi)通的電信業(yè)務并入中國電信,中國鐵通并入中國移動,經(jīng)過重組合并,國內電信運營商由六家變?yōu)槿?。并在當?2月,國務院常務委員會開始啟動3G牌照發(fā)放,中國電信經(jīng)營CDMA2000網(wǎng),中國聯(lián)通經(jīng)營WCDMA網(wǎng),中國移動則是TD-SCDMA網(wǎng),至此,中國的通訊行業(yè)進入了全面發(fā)展3G網(wǎng)絡的時代。市場迫切需要一個開發(fā)性很強的手機操作系統(tǒng)平臺。隨著第三代數(shù)字通訊技術獲得普遍接受,Google于2005年收購“Android.Inc”后,繼續(xù)進行對Android操作系統(tǒng)開發(fā),并于2007年11月推出了專為移動設備設計的軟件平臺“Android操作系統(tǒng)”。據(jù)有關資料顯示,我國使用手機上網(wǎng)的人數(shù)規(guī)模達約三億,而手機的操作系統(tǒng)絕大多數(shù)是Android系統(tǒng),使得Android應用平臺廣泛的擴大,了解到社會需要一款,能在Android平臺上運行的圖書信息管理系統(tǒng),所以特別做了一套圖書信息管理系統(tǒng)“圖書信息管理系統(tǒng)”的實現(xiàn),進一步方便了圖書管理對圖書的管理,對于初步操作“圖書管理系統(tǒng)”人員而言能快速的學上手,從而對圖書信息的快速操作,因此,研究信息管理軟件的設計與實現(xiàn)是非常重要的。圖書管,對于我們而言,是熟悉的不能在熟悉了,它,給予了我們太多太多,讓我在知識海洋中盡情的遨游,讓我們學習到更多的課外的知識,使我們對圖書館產(chǎn)生了一種情感,只要是認真學習過的人都知道,圖書館對我們的意義之大,所以,做了一套基于Android平臺上圖書管理系統(tǒng),為圖書館的管理獻上自己的綿薄之力?!秷D書信息管理系統(tǒng)》中的所有的數(shù)據(jù)都保存在Android系統(tǒng)自身所帶的SQLite數(shù)據(jù)庫中,主要包括:基本信息管理,圖書庫存管理,圖書信息查詢,以及賬號管理,這四大塊。基本信息管理包括:讀者信息管理,圖書信息管理;圖書庫存管理包括:借出圖書信息管理,還入圖書信息管理;圖書信息查詢包括圖書視圖查詢和圖書自定義查詢;賬戶管理,包括管理員賬戶和密碼兩部分,管理員賬戶的修改是設置權限的,只允許超級管理員才能進行操作的?!秷D書信息管理系統(tǒng)》中的每個界面的設計,都非常的清晰,而采用的界面設計是同一種風格,使用的圖片也比較的優(yōu)美。管理員只要瀏覽幾分鐘,就知道怎么去操作它,簡單且實用。
2、設計目的與意義隨著網(wǎng)絡技術的迅猛發(fā)展,信息科技水平的不斷提高,移動終端技術逐漸增強,各種智能操作平臺的出現(xiàn),為即時通信系統(tǒng)移動化發(fā)展提供了硬件基礎;移動設備中開放性的Android平臺,隨著3G網(wǎng)絡發(fā)展迅猛占領了市場,開發(fā)Android平臺下的軟件成為了迎合行業(yè)發(fā)展的一種趨勢。Android是Google推出的一個基于Linux內核的手機操作系統(tǒng),包含底層框架,中間件和開發(fā)環(huán)境的一套平臺系統(tǒng)。它支持流行的組件式程序設計,具有針對性移動設備的Dalvik虛擬機。瀏覽器核心是基于開源的WebKit引擎,對基于html的各種語言具有良好的支持。圖像引擎使用基于openGLES1.0的三維圖形庫。又因為Google與運營商、設備制造商、開發(fā)商和其它第三方結成深層次的合作伙伴關系,希望通過建立標準化、開放式的移動電話軟件平臺,在移動產(chǎn)業(yè)內形成一個開放式的生態(tài)系統(tǒng)。Android平臺正在被越來越多的開發(fā)者和使用者所接受。目前,國內外對在Android平臺下開發(fā)應用程序的熱情很高,開發(fā)Android平臺下的即時通信軟件也層出不窮,其中涌現(xiàn)了許多有價值的開源社區(qū)以及一些第三方做的框架,例如:,AndroidAsmack等等,這對于完成Android平臺下的即時通信軟件有著階段性的貢獻,還有許許多多Android愛好者在一些論壇和博客中,例如最有名的CSDN,共同交流和完善中這個Android即時通信系統(tǒng),給用戶的體驗也越來越好;這也吸引了越來越多的人投身到對Android軟件開發(fā)的研究當中,因為它是開源的,因為它有許許多多的志同道合的人能夠進行交流,并且從中獲取經(jīng)驗和進步;深深地被吸引后,我也懷著對Android平臺學習的熱情,看中這個行業(yè)的發(fā)展,想在這個領域有所發(fā)展,于是我選擇了開源項目比較豐富,不管是對于企業(yè)還是個人來說,實用性比較強的信息管理系統(tǒng)的研究;希望通過對此研究過后,能夠完成對Android平臺有個整體的學習和掌握,掌握開發(fā)Android程序的流程,Android平臺下的程序設計模式以及對Android程序框架,內核有個基本認識,為以后更深入的研究打好基礎。
3、設計要求主要功能:實現(xiàn)圖書庫存的移動設備管理。實現(xiàn)功能:實現(xiàn)圖書和讀者的連接;實現(xiàn)庫存管理功能;實現(xiàn)增刪改查圖書信息的操作;實現(xiàn)增刪改查讀者信息的操作,實現(xiàn)增刪改查借出圖書和還入圖書信息的操作,實現(xiàn)圖書庫存自定義查詢和視圖查詢操作,實現(xiàn)帳戶和密碼的修改和刪除等操作。性能要求:功能齊全,運行穩(wěn)定。輸出要求:數(shù)據(jù)完整,詳實。安全與保密要求:實行權限管理,防止數(shù)據(jù)遭到破壞。數(shù)據(jù)庫要求:實現(xiàn)數(shù)據(jù)庫表、查詢、報表等設計;同時提高數(shù)據(jù)庫處理效率及便于數(shù)據(jù)庫處理兩方面考慮。硬件要求:CPU:主頻500MHZ或更高內存(RAM):最少64M,建議128M或更多SDK:250MB或更多軟件要求:Android2.3操作系統(tǒng)或更高版本
4、基礎知識介紹這一章主要介紹了在系統(tǒng)中運用到的相關基礎知識,包括JAVA相關基礎,面向對象的設計模式4.1Android架構分析我們將分為三個方面對Android架構進行分析闡述,這三個方面包括Android特征、Android系統(tǒng)架構和Android應用組件4.1.1、Android特點Android特征介紹主要是對Android操作系統(tǒng)中所采用的技術進行綜合闡述,具體內容如下:Android應用框架包含很多應用程序組件,這些組件在開發(fā)中可以被反復利用,并且軟件開發(fā)人員可以基于已有的組件開發(fā)出屬于自己的特色組件,這樣可以節(jié)約開發(fā)成本,提高軟件開發(fā)的效率。Dalvik虛擬機是Android所采用的Java虛擬機,區(qū)別于甲骨文的java虛擬機,它在性能上更加出色,占用資源更少,運行速度快,更適合移動設備平臺。內嵌的瀏覽器基于WebKit引擎,WebKit在開源界非常流行,它是一個優(yōu)秀的瀏覽器網(wǎng)頁排版引擎。Android的瀏覽器速度更快,因為Android優(yōu)化了Java的腳本編輯器,當瀏覽器調用包含Java的Web頁面時,與其他瀏覽器相比,頁面顯示速度有明顯的提升。Android系統(tǒng)包含OpenCLES的3D圖形功能,這意味著Android手機支持3D程序開發(fā),這無疑對游戲開發(fā)商有很大的吸引力,Android上的游戲畫面體驗必然會更上一層樓。多媒體技術是基于OpenCorePlatform來實現(xiàn),它是PacketVideo公司開發(fā)的多媒體軟件平臺,該軟件平臺功能非常強大。Android的多媒體能夠播放大多數(shù)的音頻,視頻格式文件,支持的編碼包括MP3、3GP等等。通過OpenCore多媒體框架,程序員可以開發(fā)出屬于自己的多媒體應用,比如多人視頻會議應用程序等。Android操作系統(tǒng)采用SQLite數(shù)據(jù)庫作為標準數(shù)據(jù)庫,SQLite是一款開源的數(shù)據(jù)庫,輕巧方便,資源占有率低,性能好,速度快,非常適用于移動嵌入式系統(tǒng)。所有Android應用程序的數(shù)據(jù)庫都存放在/data/package/databases/下面。Android軟件提供了對藍牙和WiFi等無線技術的支持,為人們的近距離信息通訊提供了方便。藍牙是一種無線電技術,支持設備短距離通信,距離大概是在10米左右,可以使用無線傳輸語音本和數(shù)據(jù)等。相比之下,WiFi應用更為廣泛,因為WiFi傳輸距離更遠,速度更快。Android系統(tǒng)為傳感器提供了豐富的API支持,現(xiàn)在支持的傳感器種類包括加速度傳感器(aeeelerometer)、距離傳感器(Proximity)、陀螺儀(gyroseope)、環(huán)境光照傳感器(light)、磁力傳感器(magnetiofield)、方向傳感器(orientation)和溫度傳感器(temperature)等。這些傳感器為應用程序和游戲開發(fā)人員提供了創(chuàng)造各種有趣應用的前提條件,現(xiàn)在加速度傳感器己經(jīng)普遍應用于游戲中了。GPS(GlobalPositioningSystem)是一個使用通訊衛(wèi)星來定位用戶位置的系統(tǒng)。通過GPS提供的服務,應用程序可以根據(jù)用戶所在的位置,提供相應的特色服務。同時LBS服務在未來的移動互聯(lián)網(wǎng)發(fā)展中,占有至關重要的地位,發(fā)展GPS技術,提供更加精確的位置服務,是未來各大SNS社交網(wǎng)站、手機服務提供商、運營商等移動互聯(lián)網(wǎng)主力軍所共同面臨的問題與挑戰(zhàn)。語音搜索為用戶提供了將語音數(shù)據(jù)轉換成文木數(shù)據(jù)或手機操作命令的功能,如果用戶想要使用Google搜索引擎搜索,只需要對著手機說出想要搜索的內容,即可實現(xiàn)手機網(wǎng)頁搜索。4.1.2、Android系統(tǒng)架構Android系統(tǒng)采用分層的架構實現(xiàn),從下到上依次是Linux內核(LinuxKernel)、Libraries、C/C++函數(shù)庫、dalvik虛擬機、應用框架(ApplicationFramework)以及最上層的應用程序(Applications)。如圖4-1所示。圖4-1Android系統(tǒng)架構圖4.1.3、主要的應用程序Android平臺內包含很多重要的應用程序,如聯(lián)系人通訊錄、SMS程序、瀏覽器程序、拍照程序、圖片瀏覽程序、語音搜索程序等,手機軟件開發(fā)者可以在Android上,利用系統(tǒng)提供的應用程序API,開發(fā)出自己想要的應用程序。4.1.4、應用程序框架Android應用程序框架具有很好的分層邏輯結構。Android系統(tǒng)本身現(xiàn)存的開發(fā)組件不勝枚舉,軟件開發(fā)者可以根據(jù)SDK輕而易舉的寫出Android程序。當然,軟件開發(fā)者也可以繼承現(xiàn)有的組件,或者實現(xiàn)系統(tǒng)提供的接口,派生出新的、功能更豐富的組件,從而調動開發(fā)者積極性、激發(fā)創(chuàng)造力。開發(fā)出來的新組件放入應用程序框架中,這樣增加了代碼的重用性。4.1.5、C/C++函數(shù)庫C/C++程序的效率眾人皆知,Google的上層應用程序采用Java編程語言,但Android應用程序框架之下封裝了一套標準的C/C++函數(shù)庫,Android系統(tǒng)通過Java的JNI將C/C++提供的服務傳遞給Android的上層應用程序組件,軟件開發(fā)人員可以通過應用程序組件,獲取C/C++提供的服務,以便提高程序性能。這些函數(shù)庫包括:標準C函數(shù)庫、Webkit、SSL(SecureSocketsLayer)、MediaFramework、Surface、OpenGLES等。4.1.6、Java程序運行環(huán)境Android中的Java程序運行環(huán)境是指Dalvik虛擬機環(huán)境。一般JAVA虛擬機執(zhí)行的是Java標準的字節(jié)碼,與其不同的是,Dalvik執(zhí)行的是.dex格式的文件。Dalvik和一般的Java虛擬機存在很多區(qū)別,比如,Dalvik是基于寄存器的虛擬機,但JavaVM是基于棧的虛擬機。基于寄存器的虛擬機可以根據(jù)硬件進行優(yōu)化,提高程序的運行效率,這是Dalvik的明顯優(yōu)勢。4.1.7、Linux內核Android的核心服務基于Linux內核,如安全性、網(wǎng)絡協(xié)議棧和進程管理等都依賴于此內核。Android的Linux內核是一個功能增強版本,它提供了大量用于支持Android平臺的設備驅動程序,同時修改了內核本身的一些問題,其核心驅動主要包括:AndroidBinder、LowMemoryKiller、AndroidLogger、Android電源管理(PM)等等。4.2Android應用組件4.2.1、Activity組件Activity是Android應用程序中最為基本也是最為重要的組件之一,在Android應用程序中,手機屏幕上顯示的每個窗口都是一個Activity,用戶主要通過Activity組件與應用程序交互。軟件開發(fā)人員可以在Activity的onCreate()方法中調用setContentView(R.layout.main)方法來關聯(lián)個性化用戶界面,R.layout.main是main.xml文件的標識符,main.xml是用戶界面的配置文件。同時在這個方法中初始化程序中需要的實例對象。關閉窗口時,程序在onDestroy()方法中銷毀這個窗口中的實例對象,并釋放所使用的資源。Activity的生命周期如圖4-2所示:圖4-2Activity生命周期圖一個Activity的整個生命周期是從調用onCreate()方法開始,到調用onDestroy()方法結束。Activity在onCreate()方法中進行所有數(shù)據(jù)的初始化工作,然后在onDestroy()方法中,清除不再使用的對象實例。比如在onCreate()中使用AysncTask進行異步數(shù)據(jù)請求或下載數(shù)據(jù)等操作,在onDestroy()方法中使用AysncTask的cancle()方法取消異步任務。一個Activity從onStart()方法開始,到onStop()方法之間時,始終處于可見狀態(tài),當Activity不可見時,調用onStop()方法,當Activity再次可見時,系統(tǒng)會調用Activity的onReStart()方法,用戶可以看到屏幕上顯示之前的界面。一個Activity能夠在前臺顯示的生命周期是從onResume()方法開始,直到調用onPause()方法為止。在這個過程中,Activity始終是在所有Activity的最前面,用戶可以與之進行交互。4.2.2、ActivityGroup組件Android還提供了一個ActivityGroup組件,此組件是Android的容器,在Android2.3API未出現(xiàn)之前,ActivityGroup組件是實現(xiàn)平板電腦分屏顯示的最好方法。ActivityGroup可以嵌套多個Activity組件,兩者的生命周期相同。ActivityGroup的所有功能都委托給一個成員變量:ProtectedLocalActivityManagermLocalActivityManager;該成員變量在ActivityGroup構造函數(shù)中進行相應的初始化操作。4.2.3、Intent組件Intent即“意圖”的意思,Android使用Intent這個組件實現(xiàn)Activity與Activity之間的導航功能。描述Intent的結構中,有兩個重要的組成部分:動作與動作對應的數(shù)據(jù)。系統(tǒng)提供的動作包括:MAIN、PICK、VIEW、CALL等,動作對應的數(shù)據(jù)以URI的形式表示。通過解析各種Intent,可以實現(xiàn)從一個屏幕跳轉到其他屏幕。程序中采用startActivity(Intentintent)方法實現(xiàn)Activity之間的跳轉。Android系統(tǒng)會在所有存在的應用程序中定義的IntentFilter中進行查找,一旦Intent匹配成功,新的Activity就開始運行了。Intent的屬性設置包括以下幾點:Action即“動作”,SDK中定義了一些標準動作,如表4-1所示。
ConstantTargetcomponentActionACTION_CALLactivityActivityAction:Performacalltosomeonespecifiedbythedata.ACTION_EDITactivityActivityAction:Provideexpliciteditableaccesstothegivendata.ACTION_MAINactivityActivityAction:Startasamainentrypoint,doesnotexpecttoreceivedata.ACTION_SYNCactivityActivityAction:PerformadatasynchronizationACTION_VIEWactivityActivityAction:Displaythedatatotheuser.ACTION_BATTERY_LOWBroadcastReceiverBroadcastAction:Indicateslowbatteryconditiononthedevice.ACTION_HEADSET_PLUGBroadcastReceiverBroadcastAction:WiredHeadsetpluggedinorunplugged.ACTION_SCREEN_ONBroadcastReceiverBroadcastAction:SentafterthescreenturnsonACTION_REBOOTBroadcastReceiverBroadcastAction:Havethedevicereboot.表4-1Intent的Action屬性表軟件開發(fā)人員自定義的Action需要加上包名作為前綴,例如“ject.SHOW_NAME”,然后再相應的Activity來處理自定義的動作。Data是執(zhí)行動作要操作的數(shù)據(jù)內容"Android中是采用URL來表示數(shù)據(jù)的,如ACTION_DIAL指定Data為content://contacts/people/1,表示與ID是1的人進行通話,ACTION_EDIT指定Data為content://contacts/People/1,則表示對ID是1聯(lián)系人信息進行編輯。Type(數(shù)據(jù)類型)顯式指定Intent的數(shù)據(jù)類型(MIME類型)。一般情況下,Intent的數(shù)據(jù)類型是能夠根據(jù)數(shù)據(jù)本身判定的。Category是被執(zhí)行Action的附加信息。例如LAUNCHER_CATEGORY表示Intent的接收者必須在Launcher中作為頂級應用。Category屬性如表4-2所示。ConstantMeaningCATEGORY_HOMEThisisthehomeactivity,thatisthefirstactivitythatisdisplayedwhenthedeviceboots.CATEGORY_BROWSABLEActivitiesthatcanbesafelyinvokedfromabrowsermustsupportthiscategory.CATEGORY_LAUNCHERShouldbedisplayedinthetop-levellauncher.CATEGORY_PREFERENCEThisactivityisapreferencepanel.表4-2Intent的Category屬性表Component指定了Intent的目標組件的類名稱。Extras(附加信息)是Intent進行Activity跳轉時,附帶的數(shù)據(jù)信息"使用Extras可以為即將運行的Activity提供附加信息,例如,用戶在從編輯日記頁面跳轉到圖片瀏覽界面,可以使用Extras傳遞相應的用戶名和認證標識作為身份驗證信息等。4.2.4、Service組件Service是“服務”的意思,顧名思義,Service在Android中是一種生命周期很長的組件,而且是不存在界面的應用程序組件,它在應用程序后臺運行。最常見的例子如:多媒體播放器程,當用戶切換到其他應用程序時,它可以在后臺運行并能正常播放聲音;或者如文件下載程序,它可以運行在后臺執(zhí)行文件的下載操作,而不會阻塞用戶界面。Activity使用Context.startService()方法來啟動一個Service,還可以通過Context.bindService()方法與其他Service相連接,當連接成功時,還可以使用Service提供的接口與之進行通信。4.2.5、ContentProvider組件Android提供了ContentProvider組件,這個組件的作用是:凡是實現(xiàn)ContentProvider接口的應用程序,都可以將自己的數(shù)據(jù)提供給其他應用程序共享??梢哉fContentProvider是所有應用程序之間數(shù)據(jù)共享的紐帶。Android系統(tǒng)同時提供了視頻、音頻、圖像、個人基本信息等常用的ContentProvider。不同于普通獲取數(shù)據(jù)的方式,ContentProvider采用URI的形式為外界提供數(shù)據(jù)。而具體獲取哪個數(shù)據(jù)庫中的數(shù)據(jù),由Android操作系統(tǒng)的底層程序實現(xiàn),外界不需要知道存儲的具體細節(jié)就可以獲取想要的數(shù)據(jù)。每個ContentProvider都會對外提供一個URI,URI由三部分組成,分別是“content://”、數(shù)據(jù)的路徑、表示ID。例如下面是一些URI。content:/contacts/people表示返回所有聯(lián)系人信息。content:/contacts/people/10表示返回聯(lián)系人中ID是10的聯(lián)系人信息"content://media/internal/images表示返回設備上的所有圖片。4.2.6、Recognizerlntent語音識別組件語音識別技術是讓機器將語音識別成文本或者命令的高新技術,涉及到多個學科。Android操作系統(tǒng)為軟件開發(fā)人員提供了語音識別的接口API,屏蔽了語音識別的具體細節(jié),方便軟件開發(fā)"Recognizerlntent組件即為Android提供了軟件開發(fā)人員的語音識別接口API,它通過Intent的Action動作來完成相應操作。Android存在兩種主要的識別模式,分別是ACTION_RECOGNIZE_SPEECH和ACTION_WEB_SEARCH。前者是一般的語音識別,這種模式下,我們可以捕捉到語音識別后的文字,然后進行后續(xù)處理;后者是網(wǎng)絡搜索模式,用于網(wǎng)絡搜索"。
5、總體方案設計和完成的工作5.1系統(tǒng)的目標圖書管理系統(tǒng)的總目標是:在數(shù)據(jù)庫和先進的開發(fā)平臺上,利用現(xiàn)有資源,開發(fā)一個體系結構完善的、易擴充的、易維護的、具有良好人機交互界面的圖書管理系統(tǒng);實現(xiàn)一整套圖書管理系統(tǒng),提供完善的功能,為圖書管理員提供便利的工作方式。5.2可行性分析5.2.1目的 可行性分析的目的是對問題進行分析,以及根據(jù)對所選擇的開發(fā)工具的了解,分析是否可以開發(fā)出一個比較完善的倉庫管理系統(tǒng),較好地完成任務。5.2.2具體分析(1)eclipse是一個開放源代碼的,基于Java的可擴展開發(fā)平臺。雖然大多數(shù)用戶很樂于將Eclipse當作Java集成開發(fā)環(huán)境(IDE)來使用,但Eclipse的目標卻不僅限于此。Eclipse還包括插件開發(fā)環(huán)境(Plug-inDevelopmentEnvironment,PDE),這個組件主要針對希望擴展Eclipse的軟件開發(fā)人員,因為它允許他們構建與Eclipse環(huán)境無縫集成的工具。由于Eclipse中的每樣東西都是插件,對于給Eclipse提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。只要將Android的SDK以及ADT導入至eclipse即可在此平臺上進行Android軟件的開發(fā)編程。此次設計的倉庫管理系統(tǒng)是一個信息管理系統(tǒng),用eclipse進行開發(fā)是可行的。(2)Android系統(tǒng)集成了一個輕量級的數(shù)據(jù)庫:SQLite,SQLite只是一個嵌入式的數(shù)據(jù)庫引擎,專門適用于資源有限的設備上(手機、PDA等)適量數(shù)據(jù)存取。但是它支持絕大部分SQL語法,也允許開發(fā)者使用SQL語句操作數(shù)據(jù)庫中的數(shù)據(jù)。它可用于所有用戶的數(shù)據(jù)庫活動模型,包括系統(tǒng)管理員、數(shù)據(jù)庫管理員、應用程序員、決策支持系統(tǒng)人員及許多其他類型的終端用戶?;镜腟QL命令只需要很少時間就能學會,最高級的命令在幾天內便可掌握。而此次設計的倉庫管理系統(tǒng)的是一個小型的信息管理系統(tǒng),對數(shù)據(jù)庫的要求并不是太高。所有用SQLite對圖書管理系統(tǒng)的開發(fā)是可行的。5.3系統(tǒng)性能特點及控制要求5.3.1系統(tǒng)簡要描述本系統(tǒng)通過基本信息管理功能管理圖書,讀者的基本信息;通過庫存管理功能實行圖書的借出,還入登記表操作,以及入庫單和出庫單的相關查詢;通過信息查詢,查詢庫存信息,圖書信息。5.3.2處理流程管理人員通過基本信息管理管理圖書,讀者的基本信息?;静僮靼ㄌ砑?、刪除、修改和查詢。這些基本信息放在通過第三章建立的表放在數(shù)據(jù)庫當中。系統(tǒng)訪問數(shù)據(jù)庫,并且完成用戶的這些操作需求。以表單的形式顯示出來,方便用戶查看。用戶通過庫存管理來完成借出圖書和還入圖書操作,同樣,借出圖書操作和還入操作也包括添加、刪除、修改和查詢。圖書借出信息和圖書還入信息也放在數(shù)據(jù)庫中,當用戶有入庫和出庫操作時,系統(tǒng)訪問數(shù)據(jù)庫,生成借出單和還入單,以表單的形式顯示出來,方便用戶查看。處理流程如圖5-1所示:管理員管理員基本信息管理生成基本信息庫存管理數(shù)據(jù)庫生成借出單生成還入單賬戶管理生成賬戶信息圖5-1處理流程5.4數(shù)據(jù)庫設計所謂數(shù)據(jù)庫設計是指從對現(xiàn)行非計算機管理的數(shù)據(jù)庫系統(tǒng)的分析到最終實現(xiàn)由計算機管理的數(shù)據(jù)庫系統(tǒng)的全過程。它包括表、查詢、報表等的設計??偟脑瓌t應從提高數(shù)據(jù)處理效率及便于數(shù)據(jù)處理兩方面考慮。數(shù)據(jù)庫是信息系統(tǒng)的核心和基礎。它把信息系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來,提供存儲、維護、檢索數(shù)據(jù)的功能,使信息系統(tǒng)可以方便、及時、準確地從數(shù)據(jù)庫中獲得所需的信息。數(shù)據(jù)庫設計的步驟有需求分析,概念結構設計,邏輯結構設計。5.5需求分析進行數(shù)據(jù)庫設計首先必須準確了解與分析用戶需求(包括數(shù)據(jù)與處理)。需求分析是整個設計過程的基礎,是最困難、最耗費時間的一步。作為地基的需求分析是否做得充分與準確,決定了在其上構建數(shù)據(jù)庫大廈的速度與質量。需求分析做得不好,甚至會導致整個數(shù)據(jù)庫設計返工重做。5.5.1圖書借出操作圖書借出功能實現(xiàn)可分為以下幾個部分:(1)定制借出單由操作人員輸入最基本的信息,從圖書信息表中獲取圖書相關信息,從讀者信息表中獲取讀者的相關信息。(2)輸入借出單對應的圖書信息借出圖書與借出單自動關聯(lián),從圖書信息表中獲取圖書的相關信息。圖書借出操作的數(shù)據(jù)流圖如圖2-1所示。5.5.2圖書還入操作圖書還入功能實現(xiàn)可分為以下幾個部分:(1)定制還入單由操作人員輸入最基本的信息,從圖書信息表中獲取圖書相關信息,從讀者信息表中獲取讀者相關信息。(2)輸入還入單對應的圖書信息還入圖書與還入單自動關聯(lián),從圖書信息表中獲取圖書的相關信息。處理流程如圖2-2所示。5.6功能模塊設計系統(tǒng)功能模塊結構圖,如圖5-2和5-3所示:登記借出單登記借出單借出單基本信息讀者基本信息圖書基本信息借出單信息借出單表借出單編號制單制定借出單圖書信息借出單圖書信息借出單圖書信息表圖5-2借出表數(shù)據(jù)流程圖登記還入單登記還入單還入單基本信息讀者基本信息圖書基本信息還入單信息還入單表還入單編號制單制定還入單圖書信息還入單圖書信息還入單圖書信息表圖5-3還入表數(shù)據(jù)流程圖該系統(tǒng)功能模塊圖列出了系統(tǒng)的主要功能模塊。包括基本信息管理,庫存信息管理以及系統(tǒng)設置?;拘畔⒐芾碛职▓D書信息管理,讀者信息管理。庫存信息管理包括借出圖書管理和還入圖書管理。系統(tǒng)設置包括管理用戶,修改密碼和退出三個功能。其中圖書信息管理包括添加圖書信息、修改圖書信息、刪除圖書信息、查詢圖書信息四個子功能。讀者信息管理包括添加讀者信息、修改讀者信息、刪除讀者信息、查詢讀者信息四個子功能。借出圖書管理包括添加借出圖書信息、修改借出圖書信息、刪除借出圖書信息、查詢借出圖書信息四個子功能。還入圖書管理包括添加還入圖書信息、修改還入圖書信息、刪除還入圖書信息、查詢還入圖書信息四個子功能。圖書信息查詢,包括視圖項查詢,和自定義圖書查詢,各個功能的操作步驟見第3章詳細設計。5.7數(shù)據(jù)庫概念結構設計概念結構設計是整個數(shù)據(jù)庫設計的關鍵,它通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型。(1)圖書實體屬性圖,如圖5-4:圖書圖書ISBN單價出版日期編號名稱作者出版單位圖5-4圖書實體屬性圖圖書信息包括:圖書編號,圖書名稱,圖書作者,出版單位,ISBN,單價,出版日期。(2)讀者實體屬性圖,如圖5-5:E-mailE-mail讀者所屬院系所屬年級聯(lián)系地址編號姓名密碼讀者類型聯(lián)系電話圖5-5讀者實體屬性圖讀者信息包括:讀者編號,讀者姓名,讀者密碼,讀者類型,所屬院系,所屬年級,聯(lián)系地址,E-mail讀者圖書讀者圖書圖書圖書管理系統(tǒng)圖5-6實體關系圖讀者與圖書的之間的實體聯(lián)系圖。5.8數(shù)據(jù)庫邏輯結構設計概念結構是獨立于任何一種數(shù)據(jù)模型的信息結構。邏輯結構設計的任務就是把概念結構設計階段設計好的基本E-R圖轉換為與選用的DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結構?,F(xiàn)在需要將上面的數(shù)據(jù)庫概念結構轉化為SQLite數(shù)據(jù)庫系統(tǒng)所支持的實際數(shù)據(jù)模型,也就是數(shù)據(jù)庫的邏輯結構。圖書管理系統(tǒng)數(shù)據(jù)庫中的各個表格的設計結果如下面的表格所示。每個表格表示數(shù)據(jù)庫中的一個表。表2-1管理員信息表列名數(shù)據(jù)類型可否為空說明_idintauto_incrementNOTNULL自動增長idusernameVarcharNOTNULL管理員名passwordVarcharNOTNULL管理員密碼idencharNULL管理員編號表5-1管理員信息表表5-1管理員信息表一共4個列名,即為管理員的基本屬性其中第一個_id表示自動增長值,且不能為空,下面各表中,表示的意思相同,不再詳述。其中管理員(username),它不能為空且唯一標識一個管理員組,且管理員名不能重復。建表程序代碼如下:CREATETABLE[dbo].[user]([_id][int](20)COLLATEChinese_PRC_CI_ASNOTNULL, [username][varchar](30)COLLATEChinese_PRC_CI_ASNULL, [password][varchar](30)COLLATEChinese_PRC_CI_ASNULL, [iden][varchar](30)COLLATEChinese_PRC_CI_ASNULL,表5-2為圖書信息表:列名數(shù)據(jù)類型可否為空說明_idintauto_incrementNOTNULL自動增長idbianhaoVarcharNOTNULL圖書編號mingchengVarcharNULL圖書名稱zuozheVarcharNULL圖書作者danweiVarcharNULL出版單位isbnVarcharNULL國際標準圖書編號danjiaVarcharNULL圖書單價dateDatatimeNULL出版日期表2-2圖書信息表表5-2圖書信息表共包括8個列名,即為圖書實體的基本屬性。其中圖書名稱mingcheng為候選碼(Candidatekey),根據(jù)實體完整性規(guī)則,它不能為空且唯一標識一個圖書元組。由于只有一個候選碼,故bianhao為主碼(Primarykey)。由于選擇了圖書編號bianhao為主碼,則不允許圖書編號重名。其它六個屬性為非碼屬性,是可以為空的。建表程序代碼如下:CREATETABLE[dbo].[tushu]([_id][int](20)COLLATEChinese_PRC_CI_ASNOTNULL, [bianhao][varchar](30)COLLATEChinese_PRC_CI_ASNULL, [mingcheng][varchar](60)COLLATEChinese_PRC_CI_ASNULL, [zuozhe][varchar](40)COLLATEChinese_PRC_CI_ASNULL, [danwei][varchar](40)COLLATEChinese_PRC_CI_ASNULL,[isbn][varchar](20)COLLATEChinese_PRC_CI_ASNULL, [danjia][float]NULL, [date][datetime]NULL,表5-3為讀者信息表:
列名數(shù)據(jù)類型可否為空說明_idintauto_incrementNOTNULL自動增長idbianhaoVarcharNOTNULL讀者編號xingmingVarcharNULL讀者姓名mimaVarcharNULL讀者密碼leixingVarcharNULL讀者類型yuanxiVarcharNULL所屬院系nianjiVarcharNULL所屬年級dizhiVarcharNULL地址dianhuaVarcharNULL電話mailVarcharNULLE-mail表5-3讀者信息表表中共包含10個列名,即為讀者實體的基本屬性。其中xingming(讀者姓名)為候選碼,它不能為空且它們唯一標識一個讀者信息元組。由于只有一個候選碼,bianhao即為主碼。由于選擇了讀者姓名xingming為候選碼,則不允許讀者編號重名。其它八個屬性為非碼屬性,是可以為空的。建表程序與建圖書表類似,在這里不再列出。表5-4為借出圖書信息表:表中共包括10個表項,分別表示讀者編號,讀者姓名,讀者電話,讀者地址,圖書編號,圖書名稱,圖書作者,圖書單價,借出日期。其中bianhaod(讀者編號)和bianhaot(圖書編號)為主碼,不能夠為空。其它7項為非碼屬性,可以為空。建表程序如下:列名數(shù)據(jù)類型可否為空說明_idintauto_incrementNOTNULL自動增長idbianhaodVarcharNOTNULL讀者編號xingmingVarcharNULL讀者姓名dianhuaVarcharNULL讀者電話dizhiVarcharNULL讀者地址bianhaotVarcharNOTNULL圖書編號mingchengDatatimeNULL圖書名稱zuozheVarcharNULL圖書作者danjiaVarcharNULL圖書單價dateDatatimeNULL借出日期表5-4借出信息表CREATETABLE[dbo].[jiechu]( [_id][int](20)COLLATEChinese_PRC_CI_ASNULL, [bianhaod][varchar](20)COLLATEChinese_PRC_CI_ASNULL, [xingming][varchar](30)COLLATEChinese_PRC_CI_ASNULL, [dianhua][varchar](20)COLLATEChinese_PRC_CI_ASNULL, [dizhi][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[bianhaot][varchar](20)COLLATEChinese_PRC_CI_ASNULL, [mingcheng][varchar](30)COLLATEChinese_PRC_CI_ASNULL, [zuozhe][varchar](20)COLLATEChinese_PRC_CI_ASNULL, [danjia][float]NULL, [date][datetime]NULL, 表5-5為還入圖書信息表:表中共包括10個表項,分別表示讀者編號,讀者姓名,讀者電話,讀者地址,圖書編號,圖書名稱,圖書作者,圖書單價,借出日期。其中bianhaod(讀者編號)和bianhaot(圖書編號)為主碼,不能夠為空。其它7項為非碼屬性,可以為空。列名數(shù)據(jù)類型可否為空說明_idintauto_incrementNOTNULL自動增長idbianhaodVarcharNOTNULL讀者編號xingmingVarcharNULL讀者姓名dianhuaVarcharNULL讀者電話dizhiVarcharNULL讀者地址bianhaotVarcharNOTNULL圖書編號mingchengDatatimeNULL圖書名稱zuozheVarcharNULL圖書作者danjiaVarcharNULL圖書單價dateDatatimeNULL還入日期表5-5還入信息表經(jīng)過前面的需求分析和概念結構設計以后,得到數(shù)據(jù)庫的邏輯結構?,F(xiàn)在在SQLlite數(shù)據(jù)庫系統(tǒng)中實現(xiàn)該邏輯結構。這是利用SQLite數(shù)據(jù)庫系統(tǒng)中的SQL查詢分析器實現(xiàn)的。根據(jù)上面所舉的建表語句分別建立下面幾個表:創(chuàng)建管理員信息表創(chuàng)建圖書基本信息表創(chuàng)建讀者基本信息表創(chuàng)建圖書庫存基本信息表創(chuàng)建借出圖書基本信息表創(chuàng)建還入圖書基本信息表上面的表格的SQL語句在SQLite中查詢分析器的執(zhí)行,將自動產(chǎn)生需要的所有表格。有關數(shù)據(jù)庫結構的所有后臺工作已經(jīng)完成。接下來就是系統(tǒng)的詳細設計。
5.9完成的工作經(jīng)過以上章節(jié)的分析、建模過程已經(jīng)完成了數(shù)據(jù)庫的后臺工作,建立起了能夠使系統(tǒng)順利運行的后臺,完成了初期的工作,接下來就要進入系統(tǒng)的實現(xiàn)工作階段,也是本人要完成的工作。包括:界面設計和代碼編寫。系統(tǒng)主體功能由三部分組成,下面主要對程序總體框架的搭建以及數(shù)據(jù)庫的連接、基本信息的管理(包括供應商基本信息、顧客基本信息、商品基本信息)、庫存管理(包括入庫操作、出庫操作)、信息查詢(包括庫存信息查詢)、系統(tǒng)設置(包括添加用戶、修改密碼、退出)的詳細設計過程。數(shù)據(jù)庫連接數(shù)據(jù)庫程序設計是建立在數(shù)據(jù)庫的基礎之上的,因此,在開始程序設計時首要的任務是建立程序與數(shù)據(jù)庫后臺的聯(lián)系。由于Android系統(tǒng)自己集成了自己的輕量級數(shù)據(jù)庫,所以在連接時只需要創(chuàng)建一個代表指定數(shù)據(jù)庫的SQLiteDatabase的對象,然后就可以通過SQLitedatabase對象來管理、操作數(shù)據(jù)庫了。5.9.1主界面、注冊界面、登錄界面設計管理員登錄模塊管理員登錄模塊是系統(tǒng)模塊中一個重要的子系統(tǒng)模塊,它是系統(tǒng)安全的一個保障。它的主要功能是安全帳號管理,需要正確帳號和密碼才能進入系統(tǒng)。對于錯誤帳號和密碼給出提示。登錄界面具體樣式如圖所示:圖5-7登錄界面圖處理流程:輸入:管理員和密碼。處理:(1)管理員登錄窗體啟動。(2)操作人員填寫管理員名并輸入密碼。(3)從操作人員表中檢查是否有相應的管理員和密碼。(4)如果管理員名或密碼錯誤,進行提示。(5)如果輸入的管理員名和相應密碼正確,則根據(jù)該管理員的權限類別進行權限設置。(6)進入主控制平臺。設計流程圖,如圖5-8:輸入管理員和密碼登錄輸入管理員和密碼登錄密碼正確?進入主控制平臺開始結束YN圖5-8登錄流程圖5.9.2管理員注冊模塊管理員注冊模塊是系統(tǒng)模塊中一個子系統(tǒng)模塊,它也是系統(tǒng)安全的一個保障。它的主要功能是注冊新的管理員號,需要輸入正確管理員號,管理員編號和密碼才能注冊。對于注冊相同的管理員號給出提示。注冊界面具體樣式如圖所示:圖5-9管理員注冊圖處理流程:輸入:管理員,編號,密碼,確認密碼。處理:(1)管理員注冊窗體啟動。(2)操作人員填寫管理員名,編號,密碼,確認密碼。(3)從操作人員檢查是否注冊相同的管理員號。(4)如果管理員名或密碼錯誤,進行提示。(5)如果輸入的用戶名和相應密碼正確,保存數(shù)據(jù)。(6)進入登錄界面。設計流程圖,如圖5-10:輸入用管理員,編號,密碼,確認密碼輸入用管理員,編號,密碼,確認密碼注冊信息是否正確?進入登陸界面開始結束NY圖5-10注冊流程圖主界面具體樣式如圖5-11示:圖5-11主界面Android對布局、組件的設置與修改是非常方便的。所以我設計的界面比較的簡潔清晰。
參考文獻[1](美)埃克爾(Eckel,B.)著;陳昊鵬譯.JAVA編程思想(第四版).北京:機械工業(yè)出版社,2007.[2](印)SatyaKomatineni(美)DaveMacLean著曾少寧楊越譯.ProAndroid4北京:人民郵電出版社,2013.1[3]黃維通.SQLServer2000簡明教程[M].北京:清華大學出版社,2002[4]李剛.瘋狂Android講義(第二版)[M].北京:電子工業(yè)出版社,2013.3
附錄程序部分代碼:配置文件AndroidManifest.xml:<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="/apk/res/android"package="com.example.library"android:versionCode="1"android:versionName="1.0"><uses-sdkandroid:minSdkVersion="10"/><applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"><activityandroid:name=".MainActivity"android:label="@string/app_name"android:screenOrientation="landscape"android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"><intent-filter><actionandroid:name="ent.action.MAIN"/><categoryandroid:name="ent.category.LAUNCHER"/></intent-filter></activity><!--注冊賬戶--><activityandroid:name="UserRegister"android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"android:screenOrientation="landscape"></activity><!--主界面--><activityandroid:name="MenuDemo"android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"android:screenOrientation="landscape"></activity><!--圖書信息--><activityandroid:name="com.example.tushu.Tianjiat"android:screenOrientation="landscape"></activity><activityandroid:name="com.example.tushu.Shanchut"android:screenOrientation="landscape"></activity><activityandroid:name="com.example.tushu.Xiugait"android:screenOrientation="landscape"></activity><activityandroid:name="com.example.tushu.Xiugait1"android:screenOrientation="landscape"></activity><activityandroid:name="com.example.tushu.Chaxunt"android:screenOrientation="landscape"></activity><!--讀者信息--><activityandroid:name="com.example.duzhe.Tianjiad"android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"android:screenOrientation="landscape"></activity><activityandroid:name="com.example.duzhe.Shanchud"android:screenOrientation="landscape"></activity><activityandroid:name="com.example.duzhe.Xiugaid"android:screenOrientation="landscape"></activity><activityandroid:name="com.example.duzhe.Xiugaid1"android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"android:screenOrientation="landscape"></activity><activityandroid:name="com.example.duzhe.Chaxund"android:screenOrientation="landscape"></activity><!--圖書借出信息--><activityandroid:name="com.example.jiechu.Tianjiac"android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"android:screenOrientation="l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銷售代理合同模板(樣式一)
- 教育實習單位與實習生合同樣本
- 5《江上漁者》教學設計-2023-2024學年六年級下冊語文統(tǒng)編版
- 拆除與廢棄物處理合同
- 臨床試驗數(shù)據(jù)分析合同
- 2024秋閩教版信息技術五年級上冊《第5課 插入圖片秀美景》教學設計
- 外商投資企業(yè)員工股權激勵合同
- 銷售合同萬能模板
- 新版車輛抵押合同范本
- 11 對人有禮貌 教學設計-2024-2025學年道德與法治一年級上冊統(tǒng)編版
- 胃癌影像診斷(共42張)
- 汽車維修合同管理制度
- 劍橋KET詞匯表(中英對照)
- 2024年湖南高速鐵路職業(yè)技術學院單招職業(yè)技能測試題庫附答案
- (完整)低壓配電柜技術規(guī)范
- 《通信原理》樊昌信曹麗娜編著第六版課件
- 《書籍裝幀設計》 課件 項目2 書籍裝幀設計要素
- 妊娠期合并癥婦女的護理-妊娠合并心臟病的護理(婦產(chǎn)科護理課件)4EX
- 中職語文高教版基礎模塊上冊《風景談》公開課一等獎創(chuàng)新教學設計
- 汪小蘭有機化學課件第四版
- Unit1 My day 單元作業(yè)設計(素材)人教PEP版英語五年級下冊
評論
0/150
提交評論