手持移動設(shè)備應(yīng)用開發(fā)課程設(shè)計說明書_第1頁
手持移動設(shè)備應(yīng)用開發(fā)課程設(shè)計說明書_第2頁
手持移動設(shè)備應(yīng)用開發(fā)課程設(shè)計說明書_第3頁
手持移動設(shè)備應(yīng)用開發(fā)課程設(shè)計說明書_第4頁
手持移動設(shè)備應(yīng)用開發(fā)課程設(shè)計說明書_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計指導(dǎo)Name _手持移動設(shè)備應(yīng)用開發(fā)課程設(shè)計_ 目錄TOC o 1-3 h z u HYPERLINK l _RefHeading_Toc312914363 一、課程設(shè)計目的與要求1 HYPERLINK l _RefHeading_Toc312914364 1.1 設(shè)計目的1 HYPERLINK l _RefHeading_Toc312914365 1.2 設(shè)計要求1 HYPERLINK l _RefHeading_Toc312914366 1.3 設(shè)計容簡介1 HYPERLINK l _RefHeading_Toc312914367 二、開發(fā)環(huán)境與系統(tǒng)流程2 HYPERLINK l

2、_RefHeading_Toc312914368 2.1開發(fā)平臺構(gòu)建2 HYPERLINK l _RefHeading_Toc312914369 2.1.1環(huán)境簡介2 HYPERLINK l _RefHeading_Toc312914370 2.1.2安裝步驟2 HYPERLINK l _RefHeading_Toc312914371 2.2系統(tǒng)流程圖5 HYPERLINK l _RefHeading_Toc312914372 三、詳細設(shè)計與分析6 HYPERLINK l _RefHeading_Toc312914373 3.1主界面程序設(shè)計6 HYPERLINK l _RefHeading_

3、Toc312914374 3.1.1 SocketMIDlet功能簡介6 HYPERLINK l _RefHeading_Toc312914375 3.1.2界面截圖6 HYPERLINK l _RefHeading_Toc312914376 3.1.3界面關(guān)鍵代碼和描述6 HYPERLINK l _RefHeading_Toc312914377 3.2服務(wù)器端界面程序設(shè)計7 HYPERLINK l _RefHeading_Toc312914378 3.2.1Server功能簡介7 HYPERLINK l _RefHeading_Toc312914379 3.2.2界面截圖7 HYPERLIN

4、K l _RefHeading_Toc312914380 3.2.3界面關(guān)鍵代碼和描述8 HYPERLINK l _RefHeading_Toc312914381 3.3服務(wù)器端接收信息程序設(shè)計8 HYPERLINK l _RefHeading_Toc312914382 3.3.1功能簡介8 HYPERLINK l _RefHeading_Toc312914383 3.3.2界面截圖8 HYPERLINK l _RefHeading_Toc312914384 3.3.3界面關(guān)鍵代碼和描述9 HYPERLINK l _RefHeading_Toc312914385 3.4客戶端主界面設(shè)計10 H

5、YPERLINK l _RefHeading_Toc312914386 3.4.1功能簡介10 HYPERLINK l _RefHeading_Toc312914387 3.4.2界面截圖11 HYPERLINK l _RefHeading_Toc312914388 3.4.3界面關(guān)鍵代碼和描述11 HYPERLINK l _RefHeading_Toc312914389 3.5客戶端發(fā)送/接收信息設(shè)計11 HYPERLINK l _RefHeading_Toc312914390 3.5.1功能簡介11 HYPERLINK l _RefHeading_Toc312914391 3.5.2界面截

6、圖12 HYPERLINK l _RefHeading_Toc312914392 3.5.3界面關(guān)鍵代碼和描述12 HYPERLINK l _RefHeading_Toc312914393 四、課程設(shè)計總結(jié)14 HYPERLINK l _RefHeading_Toc312914394 五、參考文獻14 HYPERLINK l _RefHeading_Toc312914395 附錄(源程序代碼)15一,課程設(shè)計的目的和要求1.1設(shè)計目的本課程設(shè)計課題是手持設(shè)備移動應(yīng)用開發(fā)教學(xué)的實踐課程。旨在要求學(xué)生全面掌握在Eclipse集成開發(fā)環(huán)境下基于J2ME技術(shù)的手持移動設(shè)備應(yīng)用開發(fā)的全過程,特別是掌握基

7、于Socket網(wǎng)絡(luò)連接的用戶界面設(shè)計和編程方法,進一步熟悉WTK文檔的使用,強化學(xué)生對專業(yè)應(yīng)用的綜合編程能力。1.2設(shè)計要求(1)掌握Eclipse集成開發(fā)環(huán)境下基于J2ME技術(shù)的手持移動設(shè)備應(yīng)用開發(fā)的完整開發(fā)流程;(二)掌握課程設(shè)計的工作原理,完成系統(tǒng)分析和相應(yīng)的程序設(shè)計,包括:(1)主界面的編程,指定服務(wù)器、客戶端和通信端口號的功能;(2)服務(wù)器端的接口程序設(shè)計和服務(wù)器端讀取客戶發(fā)送信息過程的線程設(shè)計;(3)客戶端界面程序設(shè)計,客戶端發(fā)送/接收信息線程設(shè)計。(3)完成課程設(shè)計說明書的編寫。1.3設(shè)計能力介紹本課程設(shè)計參考WTK文檔實現(xiàn)了一個基于Socket網(wǎng)絡(luò)編程協(xié)議的智能手機J2ME網(wǎng)絡(luò)

8、通信應(yīng)用程序。該系統(tǒng)包括服務(wù)器和客戶端功能,可以根據(jù)通信需要啟用服務(wù)器或客戶端功能,并可以指定通信端口號??蛻舳撕头?wù)器之間的通信由獨立的線程完成。二。開發(fā)環(huán)境和系統(tǒng)流程2.1.開發(fā)平臺建設(shè)環(huán)境介紹為了使Java語言進入嵌入式系統(tǒng)和消費電子產(chǎn)品領(lǐng)域,孫在Java2中引入了,并提供了一整套開發(fā)工具,可以在PC上完成應(yīng)用的開發(fā)、調(diào)試、預(yù)驗證和運行。用J2ME的CLDC/MIDP編寫的Java程序被稱為MIDlet。為了開發(fā)MIDlet應(yīng)用程序,選擇了Windows操作系統(tǒng)平臺。在這個平臺上安裝相關(guān)軟件:JDK、SunWTK、Eclipse、Eclipse插件、WTK插件。安裝步驟作為Eclipse

9、的插件,Eclipse致力于幫助開發(fā)人員開發(fā)J2ME應(yīng)用程序。Eclipse不為開發(fā)者提供無線設(shè)備模擬器,而是將各個手機廠商的實用模擬器緊密連接到Eclipse開發(fā)環(huán)境中,為開發(fā)者提供一個無縫統(tǒng)一的集成開發(fā)環(huán)境。下載/downloads/index.php.月食從oracle下載無線工具包。/tech network/Java/download-135801 . html/。安裝步驟:安裝jdk-7u1-windows-i586.exe(設(shè)置系統(tǒng)環(huán)境變量)安裝01-win.exe WTK 2.5正式版。解壓縮eclipse-SDK-3.7.1-win32.zip。加載ec

10、lipse.feature _ 1.7.9 _ site.zip插件,如下所示:通過在菜單窗口-首選項的J2ME選項中添加無線工具包來組合eclipse和WTK。加載WTK插件安裝Eclipse簡體中文語言包2.2.系統(tǒng)流程圖主接口服務(wù)器客戶端監(jiān)聽端口接受客戶端連接將套接字連接到客戶端。打開輸入流。打開輸出流。通過輸出流發(fā)送數(shù)據(jù)通過輸入流接收數(shù)據(jù)連接服務(wù)器端口打開輸入流。打開輸出流。通過輸入流接收數(shù)據(jù)通過輸出流發(fā)送數(shù)據(jù)結(jié)束?結(jié)束?拆開拆開目標目標是是不不發(fā)射端三。詳細設(shè)計和分析3.1主界面編程3 . 1 . 1 Socket Midlet功能介紹主界面定義了相關(guān)的端口號、類型名稱和顯示功能,并

11、指定了服務(wù)器、客戶端和通信端口號的設(shè)計。界面截圖3.1.3界面的關(guān)鍵代碼和描述該程序段實現(xiàn)了主界面顯示效果的功能,主要程序段如下:public SocketMIDlet() display = display . get display(this);/獲取系統(tǒng)屏幕f =新表單(“套接字演示”);/創(chuàng)建界面的標題cg = new ChoiceGroup(請選擇同行,Choice。獨占,名稱,空);/創(chuàng)建兩個單選按鈕f .追加(CG);portField = new TextField(端口號:,String.valueOf(DEFAULT_PORT),6,TextField。數(shù)值);/創(chuàng)建一個不

12、超過6個字符的文本框?qū)ο骹 . append(portField);f . add command(exit command);f . add command(start command);/將命令按鈕添加到窗體窗口f.setCommandListener(這個);/設(shè)置當前窗口的偵聽器display . set current(f);3.2服務(wù)器端接口編程3.2.1服務(wù)器功能介紹服務(wù)器接口程序設(shè)計,讀取客戶發(fā)送信息的服務(wù)器端線程設(shè)計。界面截圖3.2.3界面的關(guān)鍵代碼和描述該程序段實現(xiàn)了服務(wù)器端界面顯示的功能,主要程序段如下:公共服務(wù)器(SocketMIDlet m,int p) parent

13、 = m;port = p;display = display . get display(parent);f =新形式(“套接字服務(wù)器”);si = new StringItem(Status:, );tf = new TextField(Send:,30,TextField。任何);f .追加(si);f .追加(TF);f . add command(exit command);f.setCommandListener(這個);display . set current(f);3.3服務(wù)器接收信息的程序設(shè)計3.3.1功能介紹打開兩個模擬器,一個作為服務(wù)端,一個作為客戶端,客戶端向服務(wù)端發(fā)

14、送“1231AD”。界面截圖3.3.3界面的關(guān)鍵代碼和描述這個程序段實現(xiàn)了在服務(wù)器端發(fā)送/接收信息的功能。主要節(jié)目片段如下:public void start() Thread t =新線程(this);t . start();/啟動線程以防止網(wǎng)絡(luò)擁塞公共無效運行()string port string = string . value of(port);嘗試si.setText(等待端口上的連接+portString);SCN =(ServerSocketConnection)connector . open( socket:/:+portString);/等待連接sc =(socket c

15、onnection)SCN . acceptand open();si.setText(接受連接);is = sc . open inputstream();/打開輸入流OS = sc . open output stream();/打開輸出流發(fā)件人=新發(fā)件人(OS);/僅在創(chuàng)建發(fā)件人后才允許發(fā)送消息f . add command(send command);while (true) string buffer sb = new string buffer();int c = 0;while(c = is . read()!= n) & (c!= -1) /判斷讀取的字符sb . append

16、(char)c);if (c = -1) 打破;si.setText(消息接收-+sb . tostring();stop();si.setText(連接關(guān)閉);f.removeCommand(發(fā)送命令); catch (IOException ioe) if (ioe.getMessage()。equals( server socket Open )Alert a =新警報(服務(wù)器,端口+端口字符串+已被占用。,null,AlertType。錯誤);a.setTimeout(Alert。永遠);a . setcommandlistener(this);display . set curren

17、t(a);否則如果(!停止)ioe . printstacktrace(); catch(異常e) e . printstacktrace();public void commandAction(命令c,可顯示s) if (c = sendCommand) &!parent.isPaused() sender . send(TF . getstring();/發(fā)送數(shù)據(jù)if (c = Alert。dissolve _ COMMAND)| |(c = = exit COMMAND)parent . notify destroyed();parent . destroyapp(true);/退出3.

18、4客戶端主界面設(shè)計功能介紹客戶端界面程序設(shè)計,客戶端發(fā)送/接收信息線程設(shè)計界面截圖3.4.3關(guān)鍵代碼和界面描述該程序段實現(xiàn)了客戶端界面顯示的功能,主要程序段如下:公共客戶端(SocketMIDlet m,int p) parent = m;port = p;display = display . get display(parent);f =新表單(“套接字客戶端”);si = new StringItem(Status:, );tf = new TextField(Send:,30,TextField。任何);f .追加(si);f .追加(TF);f . add command(exit

19、command);f . add command(send command);f.setCommandListener(這個);display . set current(f);3.5客戶端發(fā)送/接收信息設(shè)計功能介紹服務(wù)器接收客戶端發(fā)送的消息“1231AD”,并向客戶端發(fā)送消息:“GJ1JMAMJM”界面截圖3.5.3界面的關(guān)鍵代碼和描述這個程序段實現(xiàn)了客戶端發(fā)送/接收信息的功能。主要節(jié)目片段如下:public void start() Thread t =新線程(this);t . start();公共無效運行()string port string = string . value of(

20、port);嘗試sc =(socket connection)connector . open( socket:/localhost:+portString);si.setText(連接到服務(wù)器的端口+portString);is = sc . open inputstream();OS = sc . open output stream();/啟動發(fā)送消息的線程-查看發(fā)送方的主/注釋進行解釋發(fā)件人=新發(fā)件人(OS);/永遠循環(huán),接收數(shù)據(jù)while (true) string buffer sb = new string buffer();int c = 0;while(c = is . re

21、ad()!= n) & (c!= -1) sb . append(char)c);if (c = -1) 打破;/顯示發(fā)送的信息。si.setText(消息接收-+sb . tostring();stop();si.setText(連接關(guān)閉);f.removeCommand(發(fā)送命令); catch(ConnectionNotFoundExceptionfe)警報a =新警報(客戶端,請首先在端口+ portString上運行服務(wù)器MIDlet,null,AlertType。錯誤);a.setTimeout(Alert。永遠);a . setcommandlistener(this);disp

22、lay . set current(a); catch (IOException ioe) 如果(!停止)ioe . printstacktrace(); catch(異常e) e . printstacktrace();四。課程設(shè)計概要本課程設(shè)計是一個客戶端-服務(wù)器的信息發(fā)送和接收系統(tǒng),分為實踐和測試兩部分。系統(tǒng)采用的技術(shù)主要是使用MyEclipse集成開發(fā)環(huán)境和WTK文檔。套接字通信的基本原理是創(chuàng)建套接字,然后連接、監(jiān)聽、接受、發(fā)送、關(guān)閉等。在這次實踐中,我印象最深的是通過運行繼承自MIDlet的主程序來看結(jié)果,然后分析程序的接口設(shè)計和通信過程,遇到一些不懂的知識就查閱WTK文檔,或者從網(wǎng)

23、上查了很多資料,比如ChoiceGroup類的getSelectedIndex()方法的含義,Choice。獨家等。底層接口的手機應(yīng)用軟件設(shè)計,讓我更好地掌握了Java編程和J2ME程序調(diào)試的基本技能。讓我掌握了設(shè)計手機應(yīng)用軟件的基本思路和方法,提高了運用J2ME解決實際問題的能力。通過這次課程設(shè)計,我不僅學(xué)到了課程中知識的實際應(yīng)用,還學(xué)到了編程的基本習(xí)慣和開發(fā)系統(tǒng)時應(yīng)該注意的過程。體現(xiàn)自己獨立設(shè)計和綜合運用知識的能力,體會學(xué)以致用和突出勞動成果的喜悅,找出平時學(xué)習(xí)中的不足和薄弱環(huán)節(jié),以便彌補。從這個意義上說,我們的賈老師,他嚴謹細致的作風(fēng)一直是我工作學(xué)習(xí)的榜樣;老師的循循善誘的教學(xué)和不拘一格

24、的思維給了我無盡的啟迪;這個課程設(shè)計的每一個細節(jié)和數(shù)據(jù),都離不開你們老師的悉心指導(dǎo)。而你開朗的性格和寬容的態(tài)度幫助我順利完成了這次課程設(shè)計。動詞 (verb的縮寫)參考1藍光。基于J2ME的手機日志系統(tǒng)的設(shè)計與實現(xiàn)。信息工程學(xué)院,2007。2高名娟?;贘2ME的手機考試系統(tǒng)的設(shè)計與實現(xiàn)。信息工程學(xué)院,2007。附錄(源代碼)SocketMIDlet包裝插座;導(dǎo)入javax . micro edition . lcdui . choice;導(dǎo)入javax . micro edition . lcdui . choice group;導(dǎo)入javax . micro edition . LC du

25、i mand;導(dǎo)入javax . micro edition . lcdui mand listener;導(dǎo)入javax . micro edition . LC dui . display;導(dǎo)入javax . micro edition . lcdui . displayable;導(dǎo)入javax . micro edition . LC dui . form;導(dǎo)入javax . micro edition . LC dui . textfield;導(dǎo)入javax . micro edition . midlet . midlet;公共類SocketMIDlet擴展MIDlet實現(xiàn)Comman

26、dListener 私有靜態(tài)final int DEFAULT _ PORT = 5000private static final String SERVER = SERVER ;私有靜態(tài)最終字符串CLIENT = Client私有靜態(tài)最終字符串 names = SERVER,CLIENT ;私人靜態(tài)顯示顯示器;私人表格f;私人選擇組CG;私有布爾值被禁用;私有TextField portField私有服務(wù)器服務(wù)器;私人客戶客戶;私有命令exitCommand = new Command(Exit ,命令。退出,1);私有命令startCommand =新命令(“開始”,命令。項,1);pub

27、lic SocketMIDlet() display = display . get display(this);f =新表單(“套接字演示”);cg = new ChoiceGroup(請選擇同行,Choice。獨家,名字,null);f .追加(CG);portField = new TextField(端口號:,String.valueOf(DEFAULT_PORT),6,TextField。數(shù)值);f . append(portField);f . add command(exit command);f . add command(start command);f.setCommand

28、Listener(這個);display . set current(f);public boolean isPaused() 返回被暫停;public void startApp() isPaused = falsepublic void pauseApp() isPaused = truepublic void destroyApp(布爾型無條件)如果(服務(wù)器!= null) server . stop();如果(客戶端!= null) client . stop();public void commandAction(命令c,可顯示s) if (c = exitCommand) dest

29、royApp(真);notify destroyed(); else if (c = startCommand) string name = CG . getstring(CG . getselectedindex();int port = integer . parse int(portfield . getstring();if (name.equals(SERVER) server =新服務(wù)器(這個,端口);server . start();否則client =新客戶端(this,port);client . start();客戶包裝插座;導(dǎo)入Java . io . io excepti

30、on;導(dǎo)入Java . io . inputstream;導(dǎo)入Java . io . output stream;導(dǎo)入javax . micro edition . io . connectionnotfoundexception;導(dǎo)入javax . micro edition . io . connector;導(dǎo)入javax . micro edition . io . socket connection;導(dǎo)入javax . micro edition . LC dui . alert;導(dǎo)入javax . micro edition . LC dui . alert type;導(dǎo)入javax

31、 . micro edition . LC dui mand;導(dǎo)入javax . micro edition . lcdui mand listener;導(dǎo)入javax . micro edition . LC dui . display;導(dǎo)入javax . micro edition . lcdui . displayable;導(dǎo)入javax . micro edition . LC dui . form;導(dǎo)入javax . micro edition . lcdui . stringitem;導(dǎo)入javax . micro edition . LC dui . textfield;公共類客

32、戶端實現(xiàn)Runnable、CommandListener 私有SocketMIDlet父級;私人展示展示;私人表格f;私有字符串si;私有TextField tf私有布爾停止;私有命令sendCommand =新命令(“發(fā)送”,命令。項,1);私有命令exitCommand = new Command(Exit ,命令。退出,1);InputStream是;OutputStream osSocketConnection sc發(fā)送者發(fā)送者;專用int端口;公共客戶端(SocketMIDlet m,int p) parent = m;port = p;display = display . get

33、 display(parent);f =新表單(“套接字客戶端”);si = new StringItem(Status:, );tf = new TextField(Send:,30,TextField。任何);f .追加(si);f .追加(TF);f . add command(exit command);f . add command(send command);f.setCommandListener(這個);display . set current(f);/*啟動客戶端線程*/public void start() Thread t =新線程(this);t . start();

34、公共無效運行()string port string = string . value of(port);嘗試sc =(socket connection)connector . open( socket:/localhost:+portString);si.setText(連接到服務(wù)器的端口+portString);is = sc . open inputstream();OS = sc . open output stream();/啟動發(fā)送消息的線程-查看發(fā)送方的主/注釋進行解釋發(fā)件人=新發(fā)件人(OS);/永遠循環(huán),接收數(shù)據(jù)while (true) string buffer sb =

35、new string buffer();int c = 0;while(c = is . read()!= n) & (c!= -1) sb . append(char)c);if (c = -1) 打破;/向用戶顯示消息si.setText(消息接收-+sb . tostring();stop();si.setText(連接關(guān)閉);f.removeCommand(發(fā)送命令); catch(ConnectionNotFoundExceptionfe)警報a =新警報(客戶端,請首先在端口+ portString上運行服務(wù)器MIDlet,null,AlertType。錯誤);a.setTimeo

36、ut(Alert。永遠);a . setcommandlistener(this);display . set current(a); catch (IOException ioe) 如果(!停止)ioe . printstacktrace(); catch(異常e) e . printstacktrace();public void commandAction(命令c,可顯示s) if (c = sendCommand) &!parent.isPaused() sender . send(TF . getstring();if (c = Alert。dissolve _ COMMAND)|

37、|(c = = exit COMMAND)parent . notify destroyed();parent . destroyapp(true);/*關(guān)閉所有打開的流*/公共無效站點()嘗試stop = true如果(發(fā)件人!= null) sender . stop();如果(是!= null) is . close();如果(os!= null) OS . close();如果(sc!= null) sc . close(); catch (IOException ioe) 發(fā)報機包裝插座;導(dǎo)入Java . io . io exception;導(dǎo)入Java . io . output

38、stream;公共類發(fā)送方擴展線程私有輸出流操作系統(tǒng);私有字符串消息;公共發(fā)送方(輸出流操作系統(tǒng))this.os = osstart();公共同步void發(fā)送(字符串消息)消息= msgnotify();公共同步void運行()while (true) /如果沒有客戶端要處理,請等待,直到有一個客戶端連接if (message = null) 嘗試wait(); catch (InterruptedException e) if (message = null) 打破;嘗試OS . write(message . getbytes();os.write(rn 。getBytes(); catc

39、h (IOException ioe) ioe . printstacktrace();/完成客戶端處理,將處理程序返回到池中/標記為等待message = null公共同步void stop() message = nullnotify();計算機網(wǎng)絡(luò)服務(wù)器包裝插座;導(dǎo)入Java . io . io exception;導(dǎo)入Java . io . inputstream;導(dǎo)入Java . io . output stream;導(dǎo)入javax . micro edition . io . connector;導(dǎo)入javax . micro edition . io . serversocket

40、connection;導(dǎo)入javax . micro edition . io . socket connection;導(dǎo)入javax . micro edition . LC dui . alert;導(dǎo)入javax . micro edition . LC dui . alert type;導(dǎo)入javax . micro edition . LC dui mand;導(dǎo)入javax . micro edition . lcdui mand listener;導(dǎo)入javax . micro edition . LC dui . display;導(dǎo)入javax . micro edition .

41、lcdui . displayable;導(dǎo)入javax . micro edition . LC dui . form;導(dǎo)入javax . micro edition . lcdui . stringitem;導(dǎo)入javax . micro edition . LC dui . textfield;公共類服務(wù)器實現(xiàn)Runnable、CommandListener 私有SocketMIDlet父級;私人展示展示;私人表格f;私有字符串si;私有TextField tf私有布爾停止;私有命令sendCommand =新命令(“發(fā)送”,命令。項,1);私有命令exitCommand = new Command(Exit ,命令。退出,1);InputStream是;OutputStream osSocketConnection scServerSocketConnection scn發(fā)送者發(fā)送者;專用int端口;公共服務(wù)器(SocketMIDlet m,int p) parent = m;port = p;display = display . get display(parent);f =新形式(“套接字服務(wù)器”);si = new StringItem(Status:, );tf = new T

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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

提交評論