九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類(lèi) > DOC文檔下載  

網(wǎng)上書(shū)店系統(tǒng)畢業(yè)論文

  • 資源ID:37032271       資源大小:170.52KB        全文頁(yè)數(shù):24頁(yè)
  • 資源格式: DOC        下載積分:15積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開(kāi)放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機(jī):
溫馨提示:
用戶(hù)名和密碼都是您填寫(xiě)的郵箱或者手機(jī)號(hào),方便查詢(xún)和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類(lèi)文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

網(wǎng)上書(shū)店系統(tǒng)畢業(yè)論文

目 錄摘 要3第1章 概 述41.2 主要工作內(nèi)容4第二章 開(kāi)發(fā)工具的簡(jiǎn)介52.2 Java語(yǔ)言的特點(diǎn)52.3 Java語(yǔ)言的發(fā)展7第三章 系統(tǒng)需求分析93.1 系統(tǒng)的任務(wù)概述93.2 系統(tǒng)的綜合要求93.2.1 硬件平臺(tái)93.2.2 軟件平臺(tái)9第四章 系統(tǒng)詳細(xì)設(shè)計(jì)104.1 界面設(shè)計(jì)的實(shí)現(xiàn)104.1.1 加載圖片104.1.2 分割任意圖片,然后拼圖114.1.3 畫(huà)出界面124.2 鼠標(biāo)事件處理134.2.1 判斷鼠標(biāo)點(diǎn)擊的是哪個(gè)拼圖144.2.2 判斷這個(gè)拼圖可以往哪個(gè)方向移動(dòng)144.2.3 移動(dòng)該拼圖的事件15如果可以移動(dòng)圖片,那么就編寫(xiě)以下代碼:15public void move(int nRow,int nCol,int nDirection)15 switch(nDirection)154.3 判斷游戲的步數(shù)及所用時(shí)間164.3.1記錄所用的步數(shù)164.3.2記錄所用的時(shí)間164.3.3 計(jì)算玩家的分?jǐn)?shù)174.4 讓游戲能夠判斷游戲是否結(jié)束及怎樣重新開(kāi)始174.4.1游戲怎樣結(jié)束174.4.2 游戲怎樣開(kāi)始184.5 讓游戲的每次初始化狀態(tài)都不一樣194.6 增加預(yù)覽的功能194.7 添加音響效果204.8 編寫(xiě)HTML代碼20第五章 小結(jié)22致 謝23參考文獻(xiàn)24摘 要JAVA語(yǔ)言是目前Internet上大型的WEB應(yīng)用程序開(kāi)發(fā)時(shí)使用得最熱門(mén)的編程語(yǔ)言,本文描述了JAVA和JSP技術(shù)的特點(diǎn)以及在互聯(lián)網(wǎng)上的使用情況,介紹這兩種技術(shù)的重要編程方法和兩者之關(guān)的聯(lián)系,并完成一個(gè)基于這種技術(shù)的網(wǎng)上書(shū)店系統(tǒng)?!娟P(guān)鍵字】JAVA, JavaBeans, Servlet, JSP, 網(wǎng)絡(luò)編程, 電子商務(wù), 網(wǎng)上書(shū)店第1章 概 述1.1 引言隨著Internet 的發(fā)展,網(wǎng)絡(luò)已經(jīng)改變了人們學(xué)習(xí)、工作和生活的方式,電子商務(wù)活動(dòng)正飛速度發(fā)展,它使人類(lèi)社會(huì)進(jìn)入*和“虛擬化”運(yùn)作的電子商務(wù)時(shí)代。網(wǎng)上書(shū)店系統(tǒng)是在網(wǎng)絡(luò)上建立一種虛擬的圖書(shū)書(shū)店,用戶(hù)足不出戶(hù)就可以購(gòu)買(mǎi)到自己想要的圖書(shū),使用戶(hù)不受時(shí)間、空間的限制,讓用戶(hù)可以更方便、更快捷地挑選圖書(shū)。同時(shí),網(wǎng)上書(shū)店可以推動(dòng)網(wǎng)上支付、郵政、速遞等服務(wù)行業(yè)的迅速發(fā)展。本文從理論和實(shí)際角度出發(fā),設(shè)計(jì)了基于XML 技術(shù)和. NET 平臺(tái)的網(wǎng)上書(shū)店系統(tǒng)。1.2 主要工作內(nèi)容網(wǎng)上書(shū)店系統(tǒng)主要實(shí)現(xiàn)網(wǎng)上購(gòu)書(shū)和后臺(tái)管理的書(shū)店系統(tǒng),主要功能模塊描述如下:(1) 注冊(cè)登錄功能。系統(tǒng)提供免費(fèi)注冊(cè)功能。注冊(cè)用戶(hù)登錄之后,可以修改個(gè)人基本信息、刪除非法用戶(hù)以及過(guò)期登錄用戶(hù)的;用戶(hù)必須登錄系統(tǒng)后才可以瀏覽圖書(shū)信息。(2) 書(shū)籍管理功能。主要包括顯示書(shū)籍信息,增加、刪除或更新數(shù)據(jù)信息。(3) 圖書(shū)瀏覽查詢(xún)功能。該功能提供用戶(hù)分類(lèi)書(shū)籍查詢(xún)功能。用戶(hù)登錄系統(tǒng)后,系統(tǒng)應(yīng)提供本店圖書(shū)目錄供用戶(hù)搜索;用戶(hù)根據(jù)搜索條目,系統(tǒng)向用戶(hù)提供顯示查找后的書(shū)籍詳細(xì)信息。在顯示書(shū)籍詳細(xì)信息頁(yè)面,系統(tǒng)向用戶(hù)提供是否決定購(gòu)買(mǎi)圖書(shū)。(4) 購(gòu)物車(chē)功能。當(dāng)用戶(hù)登錄系統(tǒng)后,系統(tǒng)會(huì)為用戶(hù)準(zhǔn)備一輛“購(gòu)物車(chē)”。當(dāng)用戶(hù)進(jìn)行瀏覽圖書(shū)或進(jìn)行搜索到自己想要的書(shū)之后,將其添加到購(gòu)物車(chē)中,每次買(mǎi)完后,系統(tǒng)會(huì)自動(dòng)到購(gòu)物車(chē)界面,購(gòu)物車(chē)中要清楚地顯示所購(gòu)圖書(shū)的名稱(chēng)、數(shù)量、價(jià)格、總價(jià)格信息。該功能還應(yīng)包括是否允許用戶(hù)更改當(dāng)前購(gòu)物車(chē)中購(gòu)買(mǎi)圖書(shū)的數(shù)量。用戶(hù)點(diǎn)擊“繼續(xù)購(gòu)物”可以繼續(xù)搜索圖書(shū),單擊“更新”后可以更新購(gòu)物車(chē)的內(nèi)容。(5) 圖書(shū)結(jié)賬功能。當(dāng)用戶(hù)購(gòu)物結(jié)束,系統(tǒng)提供結(jié)賬功能。第二章 開(kāi)發(fā)工具的簡(jiǎn)介2.1 XML 技術(shù)的優(yōu)勢(shì) 可擴(kuò)展標(biāo)記語(yǔ)言( eXtensible markup language ,XML) 是由萬(wàn)維網(wǎng)聯(lián)盟(World Wide Web COMsortium ,W3C) 推出用于新一代網(wǎng)絡(luò)數(shù)據(jù)表示、傳遞和交換的標(biāo)準(zhǔn),是Internet 環(huán)境中跨平臺(tái)的、依賴(lài)于內(nèi)容的技術(shù)。XML 的優(yōu)勢(shì)十分顯著, 主要表現(xiàn)在如下幾個(gè)方面:(1) 良好的可讀性。在XML 文檔中,人們可以使用特定的標(biāo)記為數(shù)據(jù)定義相關(guān)的語(yǔ)義。(2) 數(shù)據(jù)內(nèi)容與形式的分離。在XML 文檔中,數(shù)據(jù)的顯示樣式已從文檔中分離出來(lái),放入相關(guān)的樣式表文件中。如果要改動(dòng)數(shù)據(jù)的表現(xiàn)形式,就不需要改動(dòng)數(shù)據(jù)本身,而只要改動(dòng)控制數(shù)據(jù)顯示的樣式表文件。(3) 可以輕松跨平臺(tái)應(yīng)用。XML 文檔是基于文本的,所以很容易被人和機(jī)器閱讀,也非常容易使用,便于不同設(shè)備和不同系統(tǒng)間的信息交換。XML 可以定義自己的數(shù)據(jù)格式,很容易使用軟件工具去讀、寫(xiě)、交換這些格式的文檔。(4) 方便的可擴(kuò)展性。XML 允許各個(gè)組織或個(gè)人建立適合他們自己需要的標(biāo)記集合或標(biāo)記庫(kù),并且這些標(biāo)記集合可以迅速地投入到互聯(lián)網(wǎng)的使用中??傊?XML 技術(shù)的優(yōu)勢(shì)顯著,應(yīng)用之廣泛。XML主要在B2B (企業(yè)對(duì)企業(yè)) 或B2C(企業(yè)對(duì)客戶(hù)) 的電子商務(wù)中應(yīng)用。網(wǎng)上書(shū)店主要是把數(shù)據(jù)庫(kù)和XML 技術(shù)結(jié)合起來(lái),讓用戶(hù)在瀏覽器中以XML 文檔形式向Web服務(wù)器進(jìn)行數(shù)據(jù)交換,Web 服務(wù)器把XML 文檔提交給XML 解析器,后臺(tái)處理程序通過(guò)XML 文件或數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)數(shù)據(jù)并進(jìn)行處理,后臺(tái)處理程序再把處理后的數(shù)據(jù)封裝成XML 文檔返回給客戶(hù)端瀏覽器。2.2 Java語(yǔ)言的特點(diǎn)1. 簡(jiǎn)單性 Java是一種簡(jiǎn)單的語(yǔ)言。Java取消了其它的許多編程語(yǔ)言中十分繁瑣的和難以理解的內(nèi)容,例如C/C+中的指針,+中類(lèi)的多重繼承等。Java語(yǔ)言在外觀上讓大多數(shù)程序員都感到很熟悉,這樣程序員不需要經(jīng)過(guò)長(zhǎng)時(shí)間訓(xùn)練就能夠?qū)W會(huì)使用這種新型的程序開(kāi)發(fā)工具。Java要求的基本解釋器約為40KB ,若加上基本的程序庫(kù),約為215KB。由于Java程序很小,因此在小型機(jī)上Java程序也能夠很好地執(zhí)行。2. 面向?qū)ο?Java是一種面向?qū)ο蟮恼Z(yǔ)言。這里的“對(duì)象”是指應(yīng)用程序的數(shù)據(jù)及其操作方法。Java程序的設(shè)計(jì)思想不同于語(yǔ)言基于過(guò)程的程序設(shè)計(jì)思想。設(shè)計(jì)面向?qū)ο蟮某绦蛐枰獙⒕幊讨攸c(diǎn)放在資料和接口上。3. 分布式特性 Java是一種分布式的語(yǔ)言。Java有一個(gè)很周全的程序庫(kù),且很容易與HTTP和TCP/IP通信協(xié)議相配合。Java應(yīng)用程序能在網(wǎng)絡(luò)上開(kāi)啟并連結(jié)使用對(duì)象,就如同透過(guò)URL鏈接使用一個(gè)本地文件系統(tǒng)。利用Java來(lái)開(kāi)發(fā)分布式的網(wǎng)絡(luò)程序是Java的一個(gè)重要應(yīng)用。4. 健壯性 用Java編寫(xiě)的程序在多種情況下都能穩(wěn)定地執(zhí)行。Java與/C+最大的不同點(diǎn)是在于Java有一個(gè)專(zhuān)門(mén)的指針模型,它的作用是排除內(nèi)存中的數(shù)據(jù)被覆蓋和毀損的可能性。5. 安全性 Java是一種安全的網(wǎng)絡(luò)編程語(yǔ)言。Java是被設(shè)計(jì)用于網(wǎng)絡(luò)及分布的環(huán)境中的,所以Java程序的安全性自然是非常重要的。Java擁有數(shù)個(gè)階層的互鎖保護(hù)措施,能有效地防止病毒的侵入和破壞行為的發(fā)生。6. 結(jié)構(gòu)中立性 眾所周知,網(wǎng)絡(luò)是由很多不同機(jī)型的計(jì)算機(jī)組合而成的。這些計(jì)算機(jī)的CPU和操作系統(tǒng)體系結(jié)構(gòu)均有所不同。因此,要使一個(gè)應(yīng)用程序可以在每一種計(jì)算機(jī)上都能夠執(zhí)行是很難的。所幸的是,Java的編譯器能夠產(chǎn)生一種結(jié)構(gòu)中立的目標(biāo)文件格式,這使得編譯碼能夠在多數(shù)的處理器中執(zhí)行。7. 可移植性 Java的源代碼和C/C+的源代碼一樣具有可移植性,而且Java的可移植性在相比之下還要更強(qiáng)一些。只要有對(duì)應(yīng)系統(tǒng)的解釋器,Java程序就可以在所有的系統(tǒng)上執(zhí)行。Java的原始資料形式的大小是被指定的,例如Java之所以一直用“float”來(lái)表示一個(gè)32位字節(jié)的IEEE754的浮點(diǎn)運(yùn)算數(shù)字,正是因?yàn)榻^大多數(shù)的CPU都有此共同特征。Java自帶的程序庫(kù)定義了一些可移植的程序接口,這使Java語(yǔ)言具備了很好的可移植性。8. 解釋型語(yǔ)言 Java的源程序首先由編譯器編譯成字節(jié)碼,之后再由解釋器解釋執(zhí)行。Java解釋器能直接在任何機(jī)器上執(zhí)行Java字節(jié)碼(Byte Codes),因此在進(jìn)行程序鏈接時(shí)節(jié)省了時(shí)間,這對(duì)于縮短程序的開(kāi)發(fā)過(guò)程有極大的幫助。9. 高效性 Java字節(jié)碼能迅速地轉(zhuǎn)換成機(jī)器碼(Machine Code)。Java的這種效能幾乎與C/C+沒(méi)有分別。用Java編制的Java小應(yīng)用程序可以取代部分CGI腳本(CGI Scripts)的功能,但是考到效率方面的問(wèn)題,在大多數(shù)的情況下很多客戶(hù)端的基本操作還是由腳本語(yǔ)言來(lái)完成的。涉及到復(fù)雜算法的計(jì)算以及一些特別的效果,就可以由Applet或者ActiveX來(lái)完成。10. 多線(xiàn)程性 Java語(yǔ)言具有多個(gè)線(xiàn)程,這對(duì)于交互回應(yīng)能力和即時(shí)行為是有幫助的。11. 動(dòng)態(tài)性 Java比C/C+語(yǔ)言更具有動(dòng)態(tài)性,更能適應(yīng)時(shí)刻在變的環(huán)境。Java不會(huì)因程序庫(kù)的更新而重新編譯程序。2.3 Java語(yǔ)言的發(fā)展Java自正式問(wèn)世以來(lái)已經(jīng)歷了四年的歷程,時(shí)間雖短,發(fā)展極快。一年一度在美國(guó)舊金山召開(kāi)的世界Java One語(yǔ)言開(kāi)發(fā)者大會(huì)(Java One Developer Conference)盛況空前正說(shuō)明了這一點(diǎn)。四年中每年的Java One大會(huì),既是了解Java最新技術(shù)動(dòng)態(tài)、應(yīng)用成果和下一步發(fā)展趨勢(shì)的最好場(chǎng)所,又是推動(dòng)下一年Java快速發(fā)展的重要?jiǎng)恿?。首屆Java One大會(huì)于1996年召開(kāi),各屆簡(jiǎn)況如下: 1996年5月29-31日,第一屆,出席會(huì)議者6500余人,來(lái)自工業(yè)界的超過(guò)一半。有人評(píng)價(jià)說(shuō):“這是近年計(jì)算機(jī)界最光輝的一次盛會(huì)”。工業(yè)界相當(dāng)看好Java語(yǔ)言,認(rèn)為它的使用將會(huì)引起一場(chǎng)軟件革命:從軟件的設(shè)計(jì)風(fēng)格、設(shè)計(jì)方法、設(shè)計(jì)目標(biāo)到設(shè)計(jì)過(guò)程,都會(huì)產(chǎn)生徹底的變革,“甚至?xí)淖兇诵乔虻纳罘绞健薄?1997年,第二屆,出席會(huì)議者10000人。Java的追隨者不斷增加,應(yīng)用開(kāi)發(fā)迅速起步。 1998年3月24-27日,第三屆,出席會(huì)議者14000余人(注冊(cè)人數(shù)),注冊(cè)門(mén)票售價(jià)1195美元,否則1395美元,即使如此,仍有不少人不惜工本,擠入會(huì)場(chǎng)。本次會(huì)議除了軟件巨頭微軟未參加會(huì)議外,幾乎所有的計(jì)算機(jī)公司都參加了。展廳內(nèi)設(shè)300多個(gè)展臺(tái),先后舉行了90場(chǎng)專(zhuān)題討論會(huì),每場(chǎng)參加的人數(shù)從千人至五六千人不等。會(huì)議的主題是:通過(guò)Java的培訓(xùn)來(lái)帶動(dòng)Java軟件的開(kāi)發(fā)和技術(shù)研究,從而發(fā)展生產(chǎn)力,獲取高額利潤(rùn),提高生活質(zhì)量,推動(dòng)信息產(chǎn)業(yè)的進(jìn)步。會(huì)議展出的內(nèi)容大致如下: Java開(kāi)發(fā)工具軟件,如:JMF、JDK、Symantec Visual Cafe、Java Dynamic Management Kit、JFC、JNDI、Java Studio 等; 企業(yè)信息管理解決方案軟件,如:EJB(Enterprise JavaBeans); 基于Java技術(shù)的信息家電,如:機(jī)頂盒、Java電話(huà)等; 個(gè)人信息綜合服務(wù)(Java戒指)、社會(huì)信息綜合查詢(xún)亭(Kiosk); 電子商務(wù)軟件、智能卡、Java Card API 等; 網(wǎng)絡(luò)計(jì)算環(huán)境下的Java服務(wù)器軟件、遠(yuǎn)程方法調(diào)用(RMI)、基于Java技術(shù)的移動(dòng)計(jì)算設(shè)備; JMS(Java Message Service)用于出版、票據(jù)訂閱的軟件; JOS(Java OS)、基于Java技術(shù)的NC和Java Station。 1999年6月15-18日,第四屆,出席會(huì)議者達(dá)20000人,300多家廠商參展,舉辦400多場(chǎng)技術(shù)講座,555名演講者慷慨陳詞,精彩紛呈。這次大會(huì)的主要特點(diǎn)是: Java框架結(jié)構(gòu)被梳理清晰 本次JavaOne大會(huì)上,Sun公司的一個(gè)重大舉措就是公布了Java平臺(tái)的最新架構(gòu)。重新定義的Java平臺(tái)以Java 2為核心,由面向企業(yè)和服務(wù)器市場(chǎng)的企業(yè)版Java 2(J2EE)、面向傳統(tǒng)PC客戶(hù)機(jī)市場(chǎng)的標(biāo)準(zhǔn)版Java 2(J2SE)和面向信息電器等后PC終端設(shè)備市場(chǎng)的Micro版Java 2(J2ME)三大部分組成。其中,J2EE包括Enterprise JavaBeans(EJB)、Java Server Pages & Java Servlets、Java Mail API和Java Massage Service組成。而J2ME則是原有的Personal Java、EmbeddedJava、JavaCard以及剛剛推出的Kjava組成。雖然新框架結(jié)構(gòu)中的內(nèi)容都是已有的,但這樣重新定義和組合,使得Java平臺(tái)的概念簡(jiǎn)單化,從而變得易于理解,更適合于進(jìn)行市場(chǎng)推廣。第三章 系統(tǒng)需求分析3.1 系統(tǒng)的任務(wù)概述這個(gè)游戲?qū)⒁粡埓髨D打散成9張小圖,然后在游戲里任意挑8張圖,貼在9個(gè)位置中的任意位置。通過(guò)鼠標(biāo)鍵移動(dòng)打亂的8張圖片,讓其復(fù)原成原來(lái)的順序,玩家就勝利了,游戲結(jié)束。3.2 系統(tǒng)的綜合要求3.2.1 硬件平臺(tái)CPU: Pentium II、 Celeron800(或以上)。內(nèi)存:256MB(或以上)。顯卡:16MB(或以上)顯存。硬盤(pán):至少150M剩余空間。3.2.2 軟件平臺(tái)操作系統(tǒng):Microsoft Windows 2000/XP、Linux等。開(kāi)發(fā)工具:JBuilder7.0以上。文檔工具:Microsoft Word 2000以上簡(jiǎn)體中文版。瀏覽工具:Internet Explorer 6.0以上。 第四章 系統(tǒng)詳細(xì)設(shè)計(jì)4.1 界面設(shè)計(jì)的實(shí)現(xiàn)4.1.1 加載圖片首先找一張漂亮的圖片,用作拼圖游戲的畫(huà)面,大小為360*360像素。首先定義兩個(gè)常量,來(lái)記錄每塊拼圖的大小。在此將大圖片分成3*3的拼圖,則每張拼圖的大小為120*120。并定義以下常量:每張拼圖的寬:final int IMAGE_WIDTH=120; 每張拼圖的高:final int IMAGE_HEIGHT=120; 再定義10個(gè)圖片對(duì)象。其中1個(gè)用來(lái)裝入總的大圖片,9個(gè)用來(lái)裝入每個(gè)拼圖的圖片:image m_Image=new Image9; 為大圖定義:image m_ImaAll;在init()中填寫(xiě)裝入圖片的代碼,如總圖的名稱(chēng)為:pintu.jpg代碼如下:m_ImaAll=getImage(getCodeBase(),“imgpintu.jpg”);通過(guò)圖像處理工具把整個(gè)圖像分成了9個(gè)小圖像,分別命名為0.jpg-8.jpg,然后分別加載,如圖:總圖:pintu.jpg 以下是分圖:0.jpg 1.jpg 2.jpg 3.jpg 4.jpg 5.jpg 6.jpg 7.jpg 8.jpg用以下代碼加載8張圖片:for(int i=0;i<9;i+) m_Imagei=getImage(getCodeBase(),"img/"+i+".jpg"); 將第2行第2列的拼圖初始化為第8個(gè)拼圖。將第3行第2列的拼圖初始化為無(wú)。 ImageNo11=7; ImageNo21=NO_IMAGE;并對(duì)paint方法進(jìn)行處理:if(ImageNoij=NO_IMAGE)g.fill3DRect(x,y,IMAGE_WIDTH,IMAGE_HEIGHT,true) ; else g.drawImage(m_ImageImageNoij,x,y,this) ; g.drawRect(x,y,IMAGE_WIDTH,IMAGE_HEIGHT) ; 4.1.2 分割任意圖片,然后拼圖private void jbInit() throws Exception m_ImaAll=getImage(getCodeBase(),"imgImage00001.jpg"); for(int i=0;i<9;i+) m_Imagei=createImage(IMAGE_WIDTH,IMAGE_HEIGHT); Graphics g=m_Imagei.getGraphics() ; int nRow=i/3; int nCol=i%3;g.drawImage(m_ImaAll,0,0,IMAGE_WIDTH,IMAGE_HEIGHT,nCol*IMAGE_WIDTH,nRow*IMAGE_HEIGHT,(nCol+1)*IMAGE_WIDTH,(nRow+1)*IMAGE_HEIGHT,this); 4.1.3 畫(huà)出界面一、分割界面在4.1.1中介紹了怎樣分割并加載圖片,圖片裝載完畢后,下一步設(shè)計(jì)界面,并畫(huà)出來(lái)。讓界面在左邊留下一定的區(qū)域用來(lái)顯示游戲的一些信息,如玩家走了多少步了,玩家是否已經(jīng)贏了,等等;然后在右邊將拼圖的圖片畫(huà)出,可以定義一個(gè)常量來(lái)標(biāo)識(shí)左邊提示信息區(qū)域的寬度,代碼為:final int LEFTX=120;為了標(biāo)識(shí)現(xiàn)在各個(gè)拼圖的排列情況,本設(shè)計(jì)定義一個(gè)二位數(shù)組:int ImageNo=new int33; 數(shù)組下標(biāo)表明了這個(gè)地方為哪張拼圖,如項(xiàng)ImageNoij表明第(i+1)行第(j+1)列上的拼圖為第ImageNoij張拼圖。定義一個(gè)常量,當(dāng)ImageNo的某一項(xiàng)等于這個(gè)常量時(shí),表明這個(gè)位置的拼圖為空:final int NO_IMAGE=-1;定義一個(gè)方法,用來(lái)初始化各個(gè)拼圖的排列情況,將拼圖按順序排列在各個(gè)位置上。public void initData() for(int i=0;i<3;i+) for(int j=0;j<3;j+) ImageNoij=i*3+j; 二、畫(huà)左邊的提示信息區(qū)域在Applet的paint()方法里寫(xiě)代碼,按照數(shù)組所提供的信息來(lái)畫(huà)出界面。將當(dāng)前顏色設(shè)置為深紅色,并填充左邊的提示信息區(qū)域并設(shè)置區(qū)域里的字體為華文行楷,大小20,粗體,白色,顯示位置坐標(biāo)10,40: Color c=new Color(150,0,0);g.setColor(c ); g.fillRect(0,0,LEFTX,IMAGE_HEIGHT*3); g.setFont(new Font("華文行楷",Font.BOLD ,20) ; g.setColor(Color.white ) ; g.drawString("步數(shù):"+nStep,10,40) ; 三、畫(huà)出拼圖區(qū)域遍歷ImageNoij數(shù)組,按數(shù)組里所表述的拼圖的排列順序畫(huà)出拼圖區(qū)域: for(int i=0;i<3;i+) for(int j=0;j<3;j+) int x=j*IMAGE_WIDTH+LEFTX; int y=i*IMAGE_HEIGHT; g.drawImage(m_ImageImageNoij,x,y,this) ; g.drawRect(x,y,IMAGE_WIDTH,IMAGE_HEIGHT) ; 4.2 鼠標(biāo)事件處理本設(shè)計(jì)將增加對(duì)鼠標(biāo)的事件處理,這樣才能使游戲玩起來(lái),能夠判斷游戲是否結(jié)束。游戲應(yīng)該讓玩家在用鼠標(biāo)點(diǎn)擊能夠移動(dòng)的拼圖時(shí),移動(dòng)拼圖到周?chē)崭竦牡胤?。加上鼠?biāo)Listener,實(shí)現(xiàn)它的接口:1)首先導(dǎo)入包含MouseListener接口的包,這一步JBuilder已經(jīng)為本設(shè)計(jì)完成。2)聲明實(shí)現(xiàn)MouseListener接口public class pintu extends Applet implements MouseListenerpublic void mouseClicked(MouseEvent e)public void mouseEntered(MouseEvent e)public void mouseExited(MouseEvent e)public void mousePressed(MouseEvent e)public void mouseReleased(MouseEvent e)3)給這個(gè)Applet添加MouseListener public void init()addMouseListener(this);4.2.1 判斷鼠標(biāo)點(diǎn)擊的是哪個(gè)拼圖int nX=e.getX()-LEFTX;int nY=e.getY();int nRow=nY/IMAGE_HEIGHT;int nCol=nX/IMAGE_WIDTH;4.2.2 判斷這個(gè)拼圖可以往哪個(gè)方向移動(dòng)本設(shè)計(jì)建立一個(gè)獨(dú)立的方法directionCanMove(int nCol,int nRow),返回整型值。用一個(gè)整型來(lái)代表這個(gè)拼圖可以移動(dòng)的方向。定義常量(其中:1代表向上,2代表向下,3代表向左,4代表向右,-1代表不能移動(dòng)): final int DIRECTION_UP=1; final int DIRECTION_DOWN=2; final int DIRECTION_LEFT=3; final int DIRECTION_RIGHT=4; final int DIRECTION_NONE=-1; 需要在4個(gè)方向上依次判斷有沒(méi)有拼圖,若沒(méi)有,則返回這個(gè)方向值。若4個(gè)方向都有拼圖存在,則返回一個(gè)整數(shù)值標(biāo)志不能移動(dòng)。該方法的代碼如下: public int directionCanMove(int nRow,int nCol)if(nRow-1)>=0) if(ImageNonRow-1nCol=NO_IMAGE) return DIRECTION_UP; if(nRow+1)<=2) if(ImageNonRow+1nCol=NO_IMAGE) return DIRECTION_DOWN; if(nCol-1)>=0) if(ImageNonRownCol-1=NO_IMAGE) return DIRECTION_LEFT; if(nCol+1)<=2) if(ImageNonRownCol+1=NO_IMAGE) return DIRECTION_RIGHT; return DIRECTION_NONE; 4.2.3 移動(dòng)該拼圖的事件 如果可以移動(dòng)圖片,那么就編寫(xiě)以下代碼: public void move(int nRow,int nCol,int nDirection) switch(nDirection) case DIRECTION_UP: ImageNonRow-1nCol=ImageNonRownCol; ImageNonRownCol=NO_IMAGE; break; case DIRECTION_DOWN: ImageNonRow+1nCol=ImageNonRownCol; ImageNonRownCol=NO_IMAGE; break; case DIRECTION_LEFT: ImageNonRownCol-1=ImageNonRownCol; ImageNonRownCol=NO_IMAGE; break; case DIRECTION_RIGHT: ImageNonRownCol+1=ImageNonRownCol; ImageNonRownCol=NO_IMAGE; break; 4.3 判斷游戲的步數(shù)及所用時(shí)間4.3.1記錄所用的步數(shù)定義兩個(gè)常量,用于存儲(chǔ)當(dāng)前玩家所走的步數(shù)和已經(jīng)玩的時(shí)間:int nStep=0; int nTime=0;在mouseClicked()方法里添加如下代碼了:int nDirection=directionCanMove(nRow,nCol); if(nDirection!=DIRECTION_NONE) move(nRow,nCol,nDirection); nStep+; 4.3.2記錄所用的時(shí)間本設(shè)計(jì)通過(guò)Runnable接口來(lái)實(shí)現(xiàn)多線(xiàn)程,過(guò)程如下:(1)首先聲明要實(shí)現(xiàn)Runnable接口public class pintu extends Applet implements MouseListener,Runnable(2)實(shí)現(xiàn)接口里的方法: public void run() while(true) try timeThread.sleep(999) ; String str="你玩了"+nTime+"秒的時(shí)間" if(nTime>200)str=str+",你可要加油啦!" else str=str+"別緊張,慢慢來(lái)。" showStatus(str); if(!WantStartNewGame)nTime+; catch(Exception e) 在init方法里新建一個(gè)線(xiàn)程:timeThread=new Thead(this);timeThread.start();在initData里將nTime置為0:nTime=0;4.3.3 計(jì)算玩家的分?jǐn)?shù)采用(1000-步數(shù)*10-時(shí)間)來(lái)記分4.4 讓游戲能夠判斷游戲是否結(jié)束及怎樣重新開(kāi)始 4.4.1游戲怎樣結(jié)束本設(shè)計(jì)只要判斷8張拼圖是否都已經(jīng)到了正確的位置上就行了。如果是,游戲結(jié)束,并給出相應(yīng)的分?jǐn)?shù),并讓玩家可以重新開(kāi)始游戲。先定義一個(gè)Applet的成員WantStartNewGame,用來(lái)標(biāo)志游戲是否結(jié)束,是否需要重新開(kāi)始新游戲:boolean WantStartNewGame=false;方法如下: public void checkStatus() boolean Win=true; int CorrectNum=0; for(int i=0;i<3;i+) for(int j=0;j<3;j+) if(ImageNoij!=CorrectNum&&ImageNoij!=NO_IMAGE) Win=false; CorrectNum+; if(Win)WantStartNewGame=true; 調(diào)用這個(gè)方法后,會(huì)將當(dāng)前的游戲狀態(tài)存在WantStartNewGame里,通過(guò)查看WantStartNewGame的值,就可以得知當(dāng)前的游戲狀態(tài)是還沒(méi)有結(jié)束,還是已經(jīng)贏了。4.4.2 游戲怎樣開(kāi)始由于每次移動(dòng)拼圖之后,都要調(diào)用重畫(huà)方法,所以,本設(shè)計(jì)將這個(gè)方法的調(diào)用放到paint方法里。 在paint方法里本設(shè)計(jì)增加如下代碼,讓游戲能夠判斷當(dāng)前狀態(tài),并能夠在游戲可以結(jié)束時(shí)打印出有關(guān)信息,如“你贏了”之類(lèi)的信息:public void paint(Graphics g) checkStatus(); if(WantStartNewGame) g.setColor(Color.yellow ) ; g.setFont(new Font(“宋體”,Font.BOLD ,15) ; g.drawString("你贏了,祝賀你!",5,180) ; 4.5 讓游戲的每次初始化狀態(tài)都不一樣前面寫(xiě)下的初始化游戲狀態(tài)的方法過(guò)于簡(jiǎn)單,玩家只要玩過(guò)一次之后,就沒(méi)有什么可玩的了。本設(shè)計(jì)用Math包里的random()方法來(lái)產(chǎn)生隨機(jī)數(shù),用這個(gè)隨機(jī)數(shù)來(lái)初始化游戲的狀態(tài)。 randoam():返回一個(gè)double類(lèi)型的值,這個(gè)值是正的,大于等于0小于1。使用這個(gè)方法必須要注意:每個(gè)拼圖只能在游戲里出現(xiàn)一次,也就是本設(shè)計(jì)應(yīng)該在9張圖片里隨機(jī)挑出其中的8張,隨機(jī)分配到9個(gè)位置中的8個(gè)位置。代碼如下:public void initData() int HasDistrib=new int9; for(int i=0;i<9;i+)HasDistribi=0; for(int i=0;i<3;i+) for(int j=0;j<3;j+) int ImgNo=-1; do ImgNo=(int)(Math.random() *9);while(HasDistribImgNo=1); ImageNoij=ImgNo; HasDistribImgNo=1; ImageNo(int)(Math.random() *3)(int)(Math.random() *3)=No_Image; nStep=0; 4.6 增加預(yù)覽的功能定義變量Image previewIma;在jbInit() 方法里繼續(xù)添加:previewIma=createImage(IMAGE_WIDTH,IMAGE_HEIGHT);Graphics g= previewIma.getGraphics() ;g.drawImage(m_ImaAll,0,0,IMAGE_WIDTH,IMAGE_HEIGHT,0,0,360,360,this) ;在paint方法里添加: g.drawImage(previewIma,0,0,this) ;4.7 添加音響效果一、準(zhǔn)備聲音文件可以隨便找任何*.au或*.wav等的聲音文件,讓游戲在每一次移動(dòng)拼圖時(shí)都發(fā)出這個(gè)聲音。二、裝載聲音文件先定義一個(gè)Applet的公共變量來(lái)保存裝載的聲音文件。 AudioClip audio1,audio2; 裝載聲音這一部分代碼寫(xiě)在init方法中audio1=getAudioClip(getCodeBase(),”au/move.au”)audio2=getAudioClip(getCodeBase(),”au/notmove.au”)三、在必要的地方播放聲音文件。本設(shè)計(jì)準(zhǔn)備在拼圖能夠移動(dòng)的時(shí)候,播放這個(gè)聲音文件,那么代碼應(yīng)該加在mouseClicked方法里。if(nDirection!=DIRECTION_NONE) move(nRow,nCol,nDirection); nStep+; audio1.play() ; else audio2.play() ; 4.8 編寫(xiě)HTML代碼<html><head><meta http-equiv="Content-Type" content="text/html; charset=GBK"><title>HTML Test Page</title></head><body>拼圖游戲<hr>這是一個(gè)拼圖游戲。玩家應(yīng)該將打散的小圖拼成一張大圖<br>玩家可以通過(guò)鼠標(biāo)和鍵盤(pán)來(lái)移動(dòng)小圖,移動(dòng)的次數(shù)在左邊顯示<br>按replay游戲會(huì)重新開(kāi)始。<br><hr><applet codebase = "." code = "pintu.class" name = "TestApplet" width = “480" height = “360" hspace = "0" vspace = "0" align = "middle"></applet></body></html>第五章 小結(jié)一、雖然理論知識(shí)我們都學(xué)習(xí)了,但是,具體做起來(lái)還是有一定的難度。這就說(shuō)明,自己的實(shí)踐經(jīng)驗(yàn)還是不夠,理論知識(shí)掌握的扎實(shí)的同時(shí)更應(yīng)注重實(shí)際應(yīng)用。二、學(xué)習(xí)應(yīng)該學(xué)會(huì)舉一反三,這樣才能把學(xué)到的知識(shí)充分利用起來(lái)。三、做程序設(shè)計(jì),應(yīng)該從實(shí)際出發(fā),即要考慮應(yīng)實(shí)現(xiàn)的功能,也要考慮細(xì)節(jié),考慮可能出現(xiàn)的特殊情況。四、對(duì)Java的語(yǔ)發(fā)結(jié)構(gòu)的掌握比較清楚和熟練,這樣在編寫(xiě)代碼是才不容易出錯(cuò)。五、要想把系統(tǒng)做好,就必須做多次的程序測(cè)試,經(jīng)過(guò)反復(fù)的測(cè)試和調(diào)試,才能不斷完善此系統(tǒng)。參考文獻(xiàn)1 張孝祥.Java就業(yè)培訓(xùn)教程M.清華大學(xué)出版社.20032 樊榮.Java基礎(chǔ)教程M.機(jī)械工業(yè)出版社.20043 Bruce Eckel.Java編程思想M.機(jī)械工業(yè)出版社.20054 孫衛(wèi)琴.Java面向?qū)ο缶幊蘉.電子工業(yè)出版社.20065 孫印杰.劉斌.孫玉強(qiáng).Java編程案例精解.電子工業(yè)才出版社.20056 王克宏.Java技術(shù)教程M.清華大學(xué)出版社.20057 葉思義.宋昀璐.游戲設(shè)計(jì)全方位學(xué)習(xí)M.中國(guó)鐵路出版社,20068 李遠(yuǎn)靜.莫誠(chéng)生.Windows游戲編程M.清華大學(xué)出版社.20049 張鵬.寧瑩璋.王雪梅.Java游戲?qū)嵗謨?cè)M.海洋出版社.200610 Mark Grand.Java 模式M.電子工業(yè)出版社.200411 馬特納.EJB應(yīng)用指南M.清華大學(xué)出版社.200412 Peter C.Dibble.實(shí)時(shí)Java平臺(tái)編程M.機(jī)械工業(yè)出版社,200313 閻宏.Java與模式M.電子工業(yè)出版社.200214 舒爾第.Java2參考大全M.電子工業(yè)出版社.200415 史斌星.史佳.Java基礎(chǔ)編程貫通大全教程M.清華大學(xué)出版社.200316 陳立偉.張克非.黎秀紅.精通Java手機(jī)游戲與應(yīng)用程序設(shè)計(jì)M.中國(guó)青年出版社.200517 陳國(guó)軍.陳磊.陳錫禎.劉洋.Java2程序設(shè)計(jì)M.清華大學(xué)出版社.200618 吳萍.蒲鵬.朱麗娟.Java程序設(shè)計(jì).北京交通大學(xué)出版社.200624

注意事項(xiàng)

本文(網(wǎng)上書(shū)店系統(tǒng)畢業(yè)論文)為本站會(huì)員(1888****888)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!