移動(dòng)互聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告(彭文斌))_第1頁(yè)
移動(dòng)互聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告(彭文斌))_第2頁(yè)
移動(dòng)互聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告(彭文斌))_第3頁(yè)
移動(dòng)互聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告(彭文斌))_第4頁(yè)
移動(dòng)互聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告(彭文斌))_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 實(shí) 驗(yàn) 報(bào) 告學(xué)年學(xué)期:20152016學(xué)年第一學(xué)期課程名稱(chēng):移動(dòng)互聯(lián)網(wǎng)指導(dǎo)老師:吳岳忠學(xué) 院:計(jì)算機(jī)與通信學(xué)院班 級(jí):物聯(lián)網(wǎng)工程1302班學(xué) 號(hào)姓 名:彭文斌 湖 南 工 業(yè) 大 學(xué)實(shí) 驗(yàn) 報(bào) 告 第 14 周實(shí) 驗(yàn) 名 稱(chēng)實(shí)驗(yàn)1 移動(dòng)互聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)平臺(tái)實(shí)驗(yàn)性質(zhì)必修實(shí)驗(yàn)類(lèi)型開(kāi)發(fā)實(shí)驗(yàn)課時(shí)4實(shí)驗(yàn)日期、時(shí)間12.3實(shí)驗(yàn)消耗器材臺(tái)式計(jì)算機(jī)實(shí)驗(yàn)儀器設(shè)備Intel Core i3 CPU,硬盤(pán)500G,Window 7操作系統(tǒng),MyEclipse 6.5, SQL Server 2005實(shí)驗(yàn)?zāi)康氖煜げ⒄莆找苿?dòng)互聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)平臺(tái),確定實(shí)驗(yàn)項(xiàng)目的應(yīng)用開(kāi)發(fā)平臺(tái)。實(shí)驗(yàn)內(nèi)容(實(shí)驗(yàn)原理、

2、運(yùn)用的理論知識(shí)和數(shù)據(jù)、算法、程序、步驟和方法)一、Java是一種可以撰寫(xiě)跨平臺(tái)應(yīng)用程序的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。Java技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話(huà)和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開(kāi)發(fā)者專(zhuān)業(yè)社群。Java分為三個(gè)體系,分別為Java SE(J2SE,Java2 Platform Standard Edition,標(biāo)準(zhǔn)版),JavaEE(J2EE,Java 2 Platform, Enterprise Edition,企業(yè)版),Java ME(J2ME,Java 2 Platform Micro Edition,微型

3、版)。Java由四方面組成:1.Java編程語(yǔ)言,即語(yǔ)法。2.文件格式,即各種文件夾、文件的后綴。3.Java虛擬機(jī)(JVM),即處理*.class文件的解釋器。4.Java應(yīng)用程序接口(Java API)。Java編程語(yǔ)言的風(fēng)格十分接近C語(yǔ)言、C+語(yǔ)言。Java是一個(gè)純粹的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,它繼承了 C+語(yǔ)言面向?qū)ο蠹夹g(shù)的核心。Java舍棄了C語(yǔ)言中容易引起錯(cuò)誤的指針(以引用取代)、運(yùn)算符重載(operator overloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對(duì)象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔(dān)憂(yōu)。在 Java

4、1.5 版本中,Java 又引入了泛型編程(Generic Programming)、類(lèi)型安全的枚舉、不定長(zhǎng)參數(shù)和自動(dòng)裝/拆箱等語(yǔ)言特性。實(shí)驗(yàn)內(nèi)容(實(shí)驗(yàn)原理、運(yùn)用的理論知識(shí)和數(shù)據(jù)、算法、程序、步驟和方法)Java不同于一般的編譯執(zhí)行計(jì)算機(jī)語(yǔ)言和解釋執(zhí)行計(jì)算機(jī)語(yǔ)言。它首先將源代碼編譯成二進(jìn)制字節(jié)碼(bytecode),然后依賴(lài)各種不同平臺(tái)上的虛擬機(jī)來(lái)解釋執(zhí)行字節(jié)碼。從而實(shí)現(xiàn)了“一次編譯、到處執(zhí)行”的跨平臺(tái)特性。不過(guò),每次的執(zhí)行編譯后的字節(jié)碼需要消耗一定的時(shí)間,這同時(shí)也在一定程度上降低了 Java 程序的性能。java主要特性:Java語(yǔ)言是易學(xué)的。Java語(yǔ)言的語(yǔ)法與C語(yǔ)言和C+語(yǔ)言很接近,使得

5、大多數(shù)程序員很容易學(xué)習(xí)和使用Java。另一方面,Java丟棄了C+中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動(dòng)的強(qiáng)制類(lèi)型轉(zhuǎn)換。特別地,Java語(yǔ)言不使用指針,而是引用。并提供了自動(dòng)的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂(yōu)。Java語(yǔ)言是強(qiáng)制面向?qū)ο蟮?。Java語(yǔ)言提供類(lèi)、接口和繼承等原語(yǔ),為了簡(jiǎn)單起見(jiàn),只支持類(lèi)之間的單繼承,但支持接口之間的多繼承,并支持類(lèi)與接口之間的實(shí)現(xiàn)機(jī)制(關(guān)鍵字為implements)。Java語(yǔ)言全面支持動(dòng)態(tài)綁定,而C+語(yǔ)言只對(duì)虛函數(shù)使用動(dòng)態(tài)綁定。總之,Java語(yǔ)言是一個(gè)純的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言。Java語(yǔ)言是分布式的。Java語(yǔ)言支持In

6、ternet應(yīng)用的開(kāi)發(fā),在基本的Java應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口(java net),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類(lèi)庫(kù),包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠(yuǎn)程方法激活)機(jī)制也是開(kāi)發(fā)分布式應(yīng)用的重要手段。實(shí)驗(yàn)內(nèi)容(實(shí)驗(yàn)原理、運(yùn)用的理論知識(shí)和數(shù)據(jù)、算法、程序、步驟和方法)Java語(yǔ)言是健壯的。Java的強(qiáng)類(lèi)型機(jī)制、異常處理、垃圾的自動(dòng)收集等是Java程序健壯性的重要保證。對(duì)指針的丟棄是Java的明智選擇。Java的安全檢查機(jī)制使得Java更具健壯性。Java語(yǔ)言是安全的。Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一

7、個(gè)安全機(jī)制以防惡意代碼的攻擊。除了Java語(yǔ)言具有的許多安全特性以外,Java對(duì)通過(guò)網(wǎng)絡(luò)下載的類(lèi)具有一個(gè)安全防范機(jī)制(類(lèi)ClassLoader),如分配不同的名字空間以防替代本地的同名類(lèi)、字節(jié)代碼檢查,并提供安全管理機(jī)制(類(lèi)SecurityManager)讓Java應(yīng)用設(shè)置安全哨兵。Java語(yǔ)言是體系結(jié)構(gòu)中立的。Java程序(后綴為java的文件)在Java平臺(tái)上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件),然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)。Java語(yǔ)言是可移植的。這種可移植性來(lái)源于體系結(jié)構(gòu)中立性,另外,Java還嚴(yán)格規(guī)定了

8、各個(gè)基本數(shù)據(jù)類(lèi)型的長(zhǎng)度。Java系統(tǒng)本身也具有很強(qiáng)的可移植性,Java編譯器是用Java實(shí)現(xiàn)的,Java的運(yùn)行環(huán)境是用ANSI C實(shí)現(xiàn)的。8 Java語(yǔ)言是解釋型的。如前所述,Java程序在Java平臺(tái)上被編譯為字節(jié)碼格式,然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。在運(yùn)行時(shí),Java平臺(tái)中的Java解釋器對(duì)這些字節(jié)碼進(jìn)行解釋執(zhí)行,執(zhí)行過(guò)程中需要的類(lèi)在聯(lián)接階段被載入到運(yùn)行環(huán)境中。Java是性能略高的。與那些解釋型的高級(jí)腳本語(yǔ)言相比,Java的性能還是較實(shí)驗(yàn)內(nèi)容(實(shí)驗(yàn)原理、運(yùn)用的理論知識(shí)和數(shù)據(jù)、算法、程序、步驟和方法)優(yōu)的。Java語(yǔ)言是原生支持多線(xiàn)程的。在Java語(yǔ)言中,線(xiàn)程是一

9、種特殊的對(duì)象,它必須由Thread類(lèi)或其子(孫)類(lèi)來(lái)創(chuàng)建。通常有兩種方法來(lái)創(chuàng)建線(xiàn)程:其一,使用型構(gòu)為T(mén)hread(Runnable)的構(gòu)造子將一個(gè)實(shí)現(xiàn)了Runnable接口的對(duì)象包裝成一個(gè)線(xiàn)程,其二,從Thread類(lèi)派生出子類(lèi)并重寫(xiě)run方法,使用該子類(lèi)創(chuàng)建的對(duì)象即為線(xiàn)程。值得注意的是Thread類(lèi)已經(jīng)實(shí)現(xiàn)了Runnable接口,因此,任何一個(gè)線(xiàn)程均有它的run方法,而run方法中包含了線(xiàn)程所要運(yùn)行的代碼。線(xiàn)程的活動(dòng)由一組方法來(lái)控制。Java語(yǔ)言支持多個(gè)線(xiàn)程的同時(shí)執(zhí)行,并提供多線(xiàn)程之間的同步機(jī)制(關(guān)鍵字為synchronized)。Java語(yǔ)言是動(dòng)態(tài)的。Java語(yǔ)言的設(shè)計(jì)目標(biāo)之一是適應(yīng)于動(dòng)態(tài)變

10、化的環(huán)境。Java程序需要的類(lèi)能夠動(dòng)態(tài)地被載入到運(yùn)行環(huán)境,也可以通過(guò)網(wǎng)絡(luò)來(lái)載入所需要的類(lèi)。這也有利于軟件的升級(jí)。另外,Java中的類(lèi)有一個(gè)運(yùn)行時(shí)刻的表示,能進(jìn)行運(yùn)行時(shí)刻的類(lèi)型檢查。Java語(yǔ)言的優(yōu)良特性使得Java應(yīng)用具有無(wú)比的健壯性和可靠性,這也減少了應(yīng)用系統(tǒng)的維護(hù)費(fèi)用。Java對(duì)對(duì)象技術(shù)的全面支持和Java平臺(tái)內(nèi)嵌的API能縮短應(yīng)用系統(tǒng)的開(kāi)發(fā)時(shí)間并降低成本。Java的編譯一次,到處可運(yùn)行的特性使得它能夠提供一個(gè)隨處可用的開(kāi)放結(jié)構(gòu)和在多平臺(tái)之間傳遞信息的低成本方式。特別是Java企業(yè)應(yīng)用編程接口(Java Enterprise APIs)為企業(yè)計(jì)算及電子商務(wù)應(yīng)用系統(tǒng)提供了有關(guān)技術(shù)和豐富的類(lèi)庫(kù)

11、。實(shí)驗(yàn)內(nèi)容(實(shí)驗(yàn)原理、運(yùn)用的理論知識(shí)和數(shù)據(jù)、算法、程序、步驟和方法)二、SQL Server 是Microsoft 公司推出的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨越從運(yùn)行Microsoft Windows 98 的膝上型電腦到運(yùn)行Microsoft Windows 2012 的大型多處理器的服務(wù)器等多種平臺(tái)使用。Microsoft SQL Server 是一個(gè)全面的數(shù)據(jù)庫(kù)平臺(tái),使用集成的商業(yè)智能 (BI)工具提供了企業(yè)級(jí)的數(shù)據(jù)管理。Microsoft SQL Server 數(shù)據(jù)庫(kù)引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲(chǔ)功能,可以構(gòu)建和

12、管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。Microsoft SQL Server 2005 是一個(gè)全面的數(shù)據(jù)庫(kù)平臺(tái),使用集成的商業(yè)智能 (BI)工具提供了企業(yè)級(jí)的數(shù)據(jù)管理。Microsoft SQL Server 2005數(shù)據(jù)庫(kù)引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲(chǔ)功能,可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。實(shí) 驗(yàn) 報(bào) 告 第 14 周實(shí) 驗(yàn) 名 稱(chēng)實(shí)驗(yàn)2 移動(dòng)互聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)技術(shù)實(shí)驗(yàn)性質(zhì)必修實(shí)驗(yàn)類(lèi)型開(kāi)發(fā)實(shí)驗(yàn)課時(shí)4實(shí)驗(yàn)日期、時(shí)間12.3實(shí)驗(yàn)消耗器材臺(tái)式計(jì)算機(jī)實(shí)驗(yàn)儀器設(shè)備Intel Core i3 CPU,硬盤(pán)500G,Window 7操作系統(tǒng),MyEclipse

13、6.5, SQL Server 2005實(shí)驗(yàn)?zāi)康氖煜げ⒄莆找苿?dòng)互聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)技術(shù),確定實(shí)驗(yàn)項(xiàng)目的應(yīng)用開(kāi)發(fā)技術(shù)及技術(shù)方案。實(shí)驗(yàn)內(nèi)容(實(shí)驗(yàn)原理、運(yùn)用的理論知識(shí)和數(shù)據(jù)、算法、程序、步驟和方法)一、 項(xiàng)目開(kāi)發(fā)技術(shù)1、Java技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話(huà)和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開(kāi)發(fā)者專(zhuān)業(yè)社群。2、Microsoft SQL Server 2005 是一個(gè)全面的數(shù)據(jù)庫(kù)平臺(tái),使用集成的商業(yè)智能 (BI)工具提供了企業(yè)級(jí)的數(shù)據(jù)管理。Microsoft SQL Server 2005數(shù)據(jù)庫(kù)引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更

14、安全可靠的存儲(chǔ)功能,可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。二、技術(shù)方案:超市管理系統(tǒng)1、主要內(nèi)容超市管理系統(tǒng)是在超市管理中引進(jìn)現(xiàn)代化的辦公軟件,它可以實(shí)現(xiàn)超市龐大商品的控制和傳輸,從而方便銷(xiāo)售行業(yè)的管理和決策,為超市和超市管理人員解除后顧之憂(yōu)。一款好的超市銷(xiāo)售管理系統(tǒng),應(yīng)該是可以幫助銷(xiāo)售部門(mén)提高工作效率,幫助超市工作人員利用計(jì)算機(jī),極為方便的對(duì)超市的有關(guān)數(shù)據(jù)進(jìn)行管理、輸入、輸出、查找等有關(guān)操作,使雜亂的超市數(shù)據(jù)能夠具體化、直觀(guān)化、合理化等。一款好的超市銷(xiāo)售管理系統(tǒng),應(yīng)該是可以幫助銷(xiāo)售部門(mén)提高工作效率,幫助超市工作人員利用計(jì)算機(jī),極為方便的對(duì)超市的有關(guān)數(shù)據(jù)進(jìn)行管理、輸入、輸出、查

15、找等有關(guān)操作,使雜亂的超市數(shù)據(jù)能夠具體化、直觀(guān)化、合理化等。實(shí)驗(yàn)內(nèi)容(實(shí)驗(yàn)原理、運(yùn)用的理論知識(shí)和數(shù)據(jù)、算法、程序、步驟和方法)2、實(shí)現(xiàn)目標(biāo)首先,需要做到支持前臺(tái)銷(xiāo)售;第二,支持會(huì)員卡的管理;第三、支持多種結(jié)賬方式:現(xiàn)金,信用卡;第四、支持連鎖店管理;第五、支持?jǐn)嗑W(wǎng)收銀功能,各個(gè)收銀臺(tái)能單獨(dú)收銀;第六、完整的供貨商管理和客戶(hù)綜合管理;第七、簡(jiǎn)單使用的庫(kù)存盤(pán)點(diǎn)功能;第八、實(shí)現(xiàn)對(duì)超市全體工作人員的管理;第九、實(shí)現(xiàn)對(duì)二維碼購(gòu)物結(jié)賬功能。3、市場(chǎng)分析我國(guó)零售業(yè)信息化狀況的三個(gè)層面的分布基本明朗:在高端企業(yè),進(jìn)銷(xiāo)調(diào)存核心結(jié)構(gòu)體系基本運(yùn)作正常,面臨的主要問(wèn)題是數(shù)據(jù)的深挖掘和加工、財(cái)務(wù)業(yè)務(wù)系統(tǒng)的高度集成、根據(jù)

16、企業(yè)的并購(gòu)重組保證系統(tǒng)和數(shù)據(jù)的統(tǒng)一、穩(wěn)定。在中端企業(yè),分散營(yíng)運(yùn)向集中管理轉(zhuǎn)變,進(jìn)銷(xiāo)調(diào)存核心結(jié)構(gòu)系統(tǒng)正在由分散單店管理、銷(xiāo)售核算向連鎖管理、進(jìn)價(jià)核算過(guò)渡。在低端企業(yè),剛剛涉足,對(duì)于信息化認(rèn)識(shí)處于表面層次,業(yè)務(wù)流程和信息系統(tǒng)建設(shè)需要一段時(shí)間的探索、認(rèn)識(shí)和漸進(jìn)過(guò)程。超市管理系統(tǒng)從企業(yè)的運(yùn)營(yíng)和管理的實(shí)際情況出發(fā),結(jié)合該行業(yè)的發(fā)展趨勢(shì),實(shí)驗(yàn)內(nèi)容(實(shí)驗(yàn)原理、運(yùn)用的理論知識(shí)和數(shù)據(jù)、算法、程序、步驟和方法)為商業(yè)管理系統(tǒng)提供了全面的技術(shù)解決方案。基于這些原因,超市管理系統(tǒng)在各個(gè)商業(yè)領(lǐng)域都發(fā)揮了很大的作用,也得到了越來(lái)越多大、中、小型企業(yè)的應(yīng)用。但是就目前的現(xiàn)狀來(lái)看,該系統(tǒng)在高端企業(yè)中得到了廣泛的應(yīng)用,但是在小

17、型企業(yè)中,卻沒(méi)有得到高度的重視。同時(shí),小企業(yè)也因資金方面問(wèn)題限制了其向更高程度信息化的應(yīng)用!4、可行性分析超市的軟件管理系統(tǒng)能夠?qū)崟r(shí)的和準(zhǔn)確的控制店內(nèi)的銷(xiāo)售情況??梢暂p松地對(duì)超市的人員進(jìn)行管理,并且可以在進(jìn)貨和銷(xiāo)售商品進(jìn)行進(jìn)一步的審查登記。超市需要處理大量的庫(kù)存信息,還要時(shí)刻更新產(chǎn)品的銷(xiāo)售信息,不斷添加商品信息。面對(duì)不同種類(lèi)的信息,需要合理的數(shù)據(jù)庫(kù)結(jié)構(gòu)來(lái)保存數(shù)據(jù)信息,需要有效的程序結(jié)構(gòu)支持各種數(shù)據(jù)操作的執(zhí)行。讓管理人員對(duì)超市的進(jìn)貨情況、銷(xiāo)售情況和庫(kù)存情況了如指掌,進(jìn)而能更好的對(duì)商品進(jìn)行調(diào)度??梢约哟笕肆ぷ鞯男屎蜕唐返倪M(jìn)出貨效率并且可以減輕使用者繁雜的工作。系統(tǒng)實(shí)現(xiàn)后,大大提高超市的管理水平

18、。降低誤差,減少開(kāi)銷(xiāo)。如今手機(jī)支付越來(lái)越普遍,一鍵支付已經(jīng)成為潮流,便捷支付成為了人們的習(xí)慣,超市的自助購(gòu)物一定會(huì)受到消費(fèi)者的歡迎。5、技術(shù)路線(xiàn)管理系統(tǒng)前臺(tái)采用java進(jìn)行界面制作,后臺(tái)由sqlserver、mysql或者Oracle數(shù)據(jù)庫(kù)支持(視超市規(guī)模,數(shù)據(jù)大小定),通過(guò)java圖形界面語(yǔ)言實(shí)現(xiàn)界面制作,實(shí)驗(yàn)內(nèi)容(實(shí)驗(yàn)原理、運(yùn)用的理論知識(shí)和數(shù)據(jù)、算法、程序、步驟和方法)通過(guò)JDBC達(dá)到對(duì)數(shù)據(jù)庫(kù)的操作以完成使用者的要求。使用自助購(gòu)物機(jī),通過(guò)RFID技術(shù)掃二維碼,系統(tǒng)內(nèi)部生成貨物清單,再通過(guò)二維碼生成器生成付款二維碼。6、創(chuàng)新性消費(fèi)者在購(gòu)買(mǎi)商品時(shí)可以通過(guò)掃碼自助結(jié)賬,自行確認(rèn)購(gòu)物清單,不需要等

19、待營(yíng)業(yè)員的掃碼,方便快捷;同時(shí)可以分散超市人工支付平臺(tái)的人流量,節(jié)省消費(fèi)者時(shí)間;操作流程簡(jiǎn)單快捷,消費(fèi)者容易學(xué)會(huì),熟悉以后會(huì)被消費(fèi)者慢慢適應(yīng)。實(shí) 驗(yàn) 報(bào) 告 第 14 周實(shí) 驗(yàn) 名 稱(chēng)實(shí)驗(yàn)3 移動(dòng)互聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)實(shí)驗(yàn)性質(zhì)必修實(shí)驗(yàn)類(lèi)型開(kāi)發(fā)實(shí)驗(yàn)課時(shí)4實(shí)驗(yàn)日期、時(shí)間12.10實(shí)驗(yàn)消耗器材臺(tái)式計(jì)算機(jī)實(shí)驗(yàn)儀器設(shè)備Intel Core i3 CPU,硬盤(pán)500G,Window 7操作系統(tǒng),MyEclipse 6.5, SQL Server 2005實(shí)驗(yàn)?zāi)康倪M(jìn)行設(shè)計(jì)及編碼,實(shí)現(xiàn)移動(dòng)互聯(lián)網(wǎng)應(yīng)用實(shí)驗(yàn)項(xiàng)目。實(shí)驗(yàn)內(nèi)容(實(shí)驗(yàn)原理、運(yùn)用的理論知識(shí)和數(shù)據(jù)、算法、程序、步驟和方法)一、 MyEclipse6.5下java代碼

20、的編寫(xiě)1、 代碼設(shè)計(jì)a、java代碼將java代碼分為三層,第一層為界面層,為用戶(hù)的使用提供窗口;第二層為模型層,界面通過(guò)調(diào)用模型進(jìn)行界面顯示;第三層為映射層,對(duì)數(shù)據(jù)庫(kù)內(nèi)的表格進(jìn)行映射,進(jìn)行數(shù)據(jù)的查詢(xún)與更新操作。界面層中的類(lèi)通過(guò)繼承JFrame類(lèi)和JDialog類(lèi),設(shè)計(jì)出整個(gè)界面的樣式;通過(guò)按鈕和文本框?qū)?duì)數(shù)據(jù)進(jìn)行操作以及窗口間的切換;通過(guò)JDBC技術(shù)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行操作。模型層中的類(lèi)通過(guò)寫(xiě)各界面需要用到的模型方法,給界面層提供所需要的樣式模型。映射層通過(guò)與數(shù)據(jù)庫(kù)中的表進(jìn)行一一映射,每一個(gè)屬性對(duì)應(yīng)一個(gè)字段,方便通過(guò)MyEclipse對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。b、數(shù)據(jù)庫(kù)設(shè)計(jì)該項(xiàng)目總共設(shè)計(jì)了11個(gè)表格

21、,分別為管理員表、經(jīng)理表、員工表、會(huì)員表、供應(yīng)商表、商品類(lèi)型表、進(jìn)貨表、庫(kù)存表、商品表、銷(xiāo)售表、記錄表。2、 代碼截選a 員工模型層代碼package typedefModel;import java.sql.Connection;import java.sql.Date;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.text.SimpleDateFormat;import java.util.Vector;import javax.sw

22、ing.table.DefaultTableModel;public class StaffModel public static DefaultTableModel staffModel() / 表頭Vector<String> thvector = new Vector<String>();thvector.add("員工編號(hào)");thvector.add("經(jīng)理編號(hào)");thvector.add("經(jīng)理職稱(chēng)");thvector.add("經(jīng)理姓名");thvector.add(&qu

23、ot;員工姓名");thvector.add("性別");thvector.add("身份證號(hào)");thvector.add("家庭住址");thvector.add("入職日期");thvector.add("是否在職");/ 表數(shù)據(jù)Vector<Vector<String>> datavector = null;try Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"

24、);Connection connection = DriverManager.getConnection("jdbc:sqlserver:/127.0.0.1:1433;DatabaseName=sj", "sa","sasa");String sql = "select sid,staff.mid,mjob,mname,sname,ssex,scard,sadress,sdate,svalue from staff left join manager on manager.mid=staff.mid"Prepa

25、redStatement ps = connection.prepareStatement(sql);ResultSet rs = ps.executeQuery();datavector = new Vector<Vector<String>>();while (rs.next() Vector<String> vector = new Vector<String>();vector.add(rs.getInt(1) + "");/ 員工編號(hào)vector.add(rs.getInt(2)+"");/經(jīng)理編

26、號(hào)vector.add(rs.getString(3);/ 經(jīng)理職位vector.add(rs.getString(4);/ 經(jīng)理姓名vector.add(rs.getString(5);/員工姓名vector.add(rs.getInt(6) = 0 ? "女" : "男");/ 性別vector.add(rs.getString(7);/ 身份證號(hào)vector.add(rs.getString(8);/ 住址/ 入職日期Date date = rs.getDate(9);SimpleDateFormat sdf = new SimpleDateFor

27、mat("yyyy-MM-dd");String dateString = sdf.format(date);vector.add(dateString);vector.add(rs.getInt(10) = 0 ? "否" : "是");/ 在職情況datavector.add(vector); catch (Exception e) e.printStackTrace();DefaultTableModel managerModel = new DefaultTableModel(datavector,thvector);retu

28、rn managerModel;B:?jiǎn)T工映射層代碼package view;import java.awt.HeadlessException;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.sql.Con

29、nection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.Vector;import javax

30、.swing.JButton;import javax.swing.JComboBox;import javax.swing.JDialog;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.table.DefaultTableCellRenderer;import javax.swing.table.DefaultTab

31、leModel;import pojo.Manager;import typedefModel.ManagerModel;import typedefModel.StaffModel;public class StaffView extends JDialog / 界面private JScrollPane pane = new JScrollPane();private JTable table = new JTable();/ 按鈕private JButton addButton = new JButton("添加");private JButton updateBu

32、tton = new JButton("修改");private JButton selButton = new JButton("查詢(xún)");private JButton rfreshlButton = new JButton("刷新");/ 查詢(xún)private JLabel manageridLabel = new JLabel("經(jīng)理編號(hào)");private JComboBox manageridBox = new JComboBox();private JLabel mjobLabel = new JLab

33、el("經(jīng)理職稱(chēng)");/ 經(jīng)理職稱(chēng)private JLabel mnameLabel = new JLabel("經(jīng)理姓名");/ 經(jīng)理姓名private JLabel nameLabel = new JLabel("員工姓名:");private JTextField nameField = new JTextField();private JLabel sexLabel = new JLabel("性 別:");private JComboBox sexBox = new JComboBox();private

34、 JLabel valueLabel = new JLabel("在職情況:");private JComboBox valueBox = new JComboBox();private JLabel dateLabel = new JLabel("入職時(shí)間:");private JComboBox byearBox = new JComboBox();private JComboBox bmonthBox = new JComboBox();private JComboBox bdayBox = new JComboBox();private JLab

35、el bnian = new JLabel("年");private JLabel byue = new JLabel("月");private JLabel bri = new JLabel("日");private JLabel zhi = new JLabel("至");private JComboBox eyearBox = new JComboBox();private JComboBox emonthBox = new JComboBox();private JComboBox edayBox = ne

36、w JComboBox();private JLabel enian = new JLabel("年");private JLabel eyue = new JLabel("月");private JLabel eri = new JLabel("日");/ 修改private JLabel manageridLabel2 = new JLabel("經(jīng)理編號(hào):");private JComboBox manageridBox2 = new JComboBox();private JLabel mjobLabel2

37、 = new JLabel("經(jīng)理職稱(chēng)");/ 經(jīng)理職稱(chēng)private JLabel mnameLabel2 = new JLabel("經(jīng)理姓名");/ 經(jīng)理姓名private JLabel nameLabel2 = new JLabel("員工姓名:");private JTextField nameField2 = new JTextField();private JLabel sexLabel2 = new JLabel("性 別:");private JComboBox sexBox2 = new JCo

38、mboBox();private JLabel cardLabel = new JLabel("身份證號(hào):");private JTextField cardField = new JTextField();private JLabel adressLabel = new JLabel("家庭住址:");private JTextField adressField = new JTextField();private JLabel valueLabel2 = new JLabel("在職情況:");private JComboBox

39、valueBox2 = new JComboBox();public StaffView() this.setTitle("員工管理");this.setSize(800, 600);this.setLocationRelativeTo(null);this.setLayout(null);/ 關(guān)閉鍵setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);addWindowListener(new WindowAdapter() Overridepublic void windowClosing(WindowEvent arg0) dis

40、pose(););/ 按鈕設(shè)置selButton.setBounds(720, 10, 60, 20);addButton.setBounds(720, 40, 60, 20);updateButton.setBounds(720, 540, 60, 20);rfreshlButton.setBounds(720, 510, 60, 20);add(selButton);add(addButton);add(updateButton);add(rfreshlButton);/ 修改設(shè)置nameLabel2.setBounds(160, 510, 100, 20);sexLabel2.setBo

41、unds(260, 510, 100, 20);cardLabel.setBounds(370, 510, 140, 20);adressLabel.setBounds(520, 510, 100, 20);valueLabel2.setBounds(630, 510, 100, 20);add(nameLabel2);add(sexLabel2);add(cardLabel);add(adressLabel);add(valueLabel2);/ 經(jīng)理編號(hào)manageridLabel2.setBounds(10, 510, 100, 20);manageridBox2.setBounds(1

42、0, 540, 50, 20);try Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");Connection connection = DriverManager.getConnection("jdbc:sqlserver:/127.0.0.1:1433;DatabaseName=sj", "sa","sasa");String sql = "select mid,mjob,mname from manager"Prep

43、aredStatement ps = connection.prepareStatement(sql);ResultSet rs = ps.executeQuery();manageridBox2.addItem("");while (rs.next() Manager manager = new Manager();manager.setMid(rs.getInt(1);manager.setMjob(rs.getString(2);manager.setMname(rs.getString(3);manageridBox2.addItem(manager.getMid(

44、); catch (Exception e1) e1.printStackTrace();mjobLabel2.setBounds(80, 510, 60, 20);mnameLabel2.setBounds(80, 540, 60, 20);add(mjobLabel2);add(mnameLabel2);add(manageridLabel2);add(manageridBox2);nameField2.setBounds(160, 540, 80, 20);add(nameField2);sexBox2.setBounds(260, 540, 40, 20);add(sexBox2);s

45、exBox2.addItem("");sexBox2.addItem("男");sexBox2.addItem("女");cardField.setBounds(340, 540, 150, 20);add(cardField);adressField.setBounds(510, 540, 110, 20);add(adressField);valueBox2.setBounds(640, 540, 40, 20);valueBox2.addItem("");valueBox2.addItem("是&q

46、uot;);valueBox2.addItem("否");add(valueBox2);/ 查詢(xún)?cè)O(shè)置/ 經(jīng)理編號(hào)manageridLabel.setBounds(10, 10, 60, 20);manageridBox.setBounds(80, 10, 50, 20);try Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");Connection connection = DriverManager.getConnection("jdbc:sqlserver:/127.

47、0.0.1:1433;DatabaseName=sj", "sa","sasa");String sql = "select mid,mjob,mname from manager"PreparedStatement ps = connection.prepareStatement(sql);ResultSet rs = ps.executeQuery();manageridBox.addItem("");while (rs.next() Manager manager = new Manager();m

48、anager.setMid(rs.getInt(1);manager.setMjob(rs.getString(2);manager.setMname(rs.getString(3);manageridBox.addItem(manager.getMid(); catch (Exception e1) e1.printStackTrace();add(manageridLabel);add(manageridBox);mjobLabel.setBounds(150, 10, 60, 20);mnameLabel.setBounds(220, 10, 60, 20);add(mjobLabel)

49、;add(mnameLabel);/ 顯示經(jīng)理編號(hào)和姓名String id2 = (String) manageridBox2.getSelectedItem();manageridBox2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) if (manageridBox2.getSelectedItem() = "") mjobLabel2.setText("經(jīng)理職稱(chēng)");mnameLabel2.setText("經(jīng)理姓名

50、");add(mjobLabel2);add(mnameLabel2); else int id2 = (Integer) manageridBox2.getSelectedItem();try Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");Connection connection = DriverManager.getConnection("jdbc:sqlserver:/127.0.0.1:1433;DatabaseName=sj","sa"

51、, "sasa");String sql = "select mjob,mname from manager where mid=?"PreparedStatement ps = connection.prepareStatement(sql);ps.setObject(1, id2);ResultSet rs = ps.executeQuery();while (rs.next() mjobLabel2.setText(rs.getString(1);mnameLabel2.setText(rs.getString(2);add(mjobLabel2)

52、;add(mnameLabel2); catch (Exception e) e.printStackTrace(););/ 員工姓名nameLabel.setBounds(320, 10, 60, 20);nameField.setBounds(390, 10, 80, 20);add(nameLabel);add(nameField);/ 性別sexLabel.setBounds(520, 10, 60, 20);sexBox.setBounds(590, 10, 50, 20);add(sexLabel);add(sexBox);/ 在職情況valueLabel.setBounds(10

53、, 40, 60, 20);valueBox.setBounds(80, 40, 50, 20);add(valueBox);add(valueLabel);/ 日期標(biāo)簽及選框dateLabel.setBounds(150, 40, 60, 20);add(dateLabel);byearBox.setBounds(220, 40, 60, 20);bnian.setBounds(280, 40, 20, 20);add(byearBox);add(bnian);bmonthBox.setBounds(310, 40, 40, 20);byue.setBounds(350, 40, 20, 2

54、0);add(bmonthBox);add(byue);bdayBox.setBounds(380, 40, 40, 20);bri.setBounds(420, 40, 20, 20);add(bdayBox);add(bri);/ 至zhi.setBounds(445, 40, 20, 20);add(zhi);eyearBox.setBounds(460, 40, 60, 20);enian.setBounds(520, 40, 20, 20);add(eyearBox);add(enian);emonthBox.setBounds(550, 40, 40, 20);eyue.setBounds(590, 40, 20, 20);add(emonthBox);add(eyue);edayBox.setBounds(620, 40, 40, 20);eri.setBounds(660, 40, 20, 20);add(edayBox);add(eri);/ 顯示經(jīng)理編號(hào)和姓名String id = (String) manageridBox.getSelectedItem();manageridBox.addActionListener(new ActionListener() public void a

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論