




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、利用java實(shí)現(xiàn)簡(jiǎn)單聊天室1.課程設(shè)計(jì)目的在當(dāng)今的信息時(shí)代,越來越多的聊天工具被應(yīng)用 ,java語言是當(dāng)今流行的網(wǎng)絡(luò)編程語言,它具有面向?qū)ο?、與平臺(tái)無關(guān)、安全、多線程 等特點(diǎn)。使用java語言不僅可以實(shí)現(xiàn)大型企業(yè)級(jí)的分布式應(yīng)用系統(tǒng),還能夠?yàn)樾⌒偷摹⑶度?式設(shè)備進(jìn)行應(yīng)用程序的開發(fā)。面向?qū)ο蟮拈_發(fā)方法是當(dāng)今世界最流行的開發(fā)方法,它不僅具有更貼近自然的語義,而且有利于軟件的維護(hù)和繼承。為了進(jìn)一步鞏固課堂上所學(xué)到的知識(shí),深刻把握java語言的重要概念及其面向?qū)ο蟮奶匦?,鍛煉我們熟練的?yīng)用面向?qū)ο蟮乃枷牒驮O(shè)計(jì)方法解決實(shí)際問題的能力,開設(shè)了java程序設(shè)計(jì)課程設(shè)計(jì)。此次課程設(shè)計(jì)的題目為簡(jiǎn)單的聊天室,通過做
2、鞏固所學(xué)java語言基本知識(shí),增進(jìn)java語言編輯基本功,掌握jdk、jcreator等開發(fā)工具的運(yùn)用,拓寬常用類庫的應(yīng)用。使我們通過該教學(xué)環(huán)節(jié)與手段,把所學(xué)課程及相關(guān)知識(shí)加以融會(huì)貫通,全面掌握java語言的編程思想及面向?qū)ο蟪绦蛟O(shè)計(jì)的方法,為今后從事實(shí)際工作打下堅(jiān)實(shí)的基礎(chǔ)。2設(shè)計(jì)方案論證2.1設(shè)計(jì)思路java是一種簡(jiǎn)單的,面向?qū)ο蟮模植际降?,解釋的,鍵壯的,安全的,結(jié)構(gòu)中立的,可移植的,性能很優(yōu)異的,多線程的,動(dòng)態(tài)的語言。java去掉了c+語言的許多功能,如:指針運(yùn)算、結(jié)構(gòu)、typedefs、#define,讓java的語言功能很精煉,并增加了一些很有用的功能,如自動(dòng)收集碎片。這將減少平常
3、出錯(cuò)的50%。而且,java很小,整個(gè)解釋器只需215k的ram。因此運(yùn)用java程序編寫聊天室,實(shí)現(xiàn)簡(jiǎn)單聊天功能。本次課程設(shè)計(jì)做的是java簡(jiǎn)單聊天室,它是圖形界面、線程、流與文件等技術(shù)的綜合應(yīng)用,其界面主要采用了java.awt包,javax.swing包等。 程序?qū)崿F(xiàn)了聊天室的基本功能,其中有:(1)啟動(dòng)服務(wù)器:實(shí)現(xiàn)網(wǎng)絡(luò)的連接,為注冊(cè)進(jìn)入聊天室做準(zhǔn)備。(2)注冊(cè)登陸界面:填寫基本信息如姓名等,可以供多人進(jìn)入實(shí)現(xiàn)多人聊天功能。(3)發(fā)送信息:為用戶發(fā)送信息提供平臺(tái)。(4)離開界面:使用戶退出聊天室。(5)關(guān)閉服務(wù)器:斷開與網(wǎng)絡(luò)的連接,徹底退出聊天室。2.2設(shè)計(jì)方法 在設(shè)計(jì)簡(jiǎn)單聊天室時(shí),需要
4、編寫5個(gè)java源文件:server.java、objecting.java、login.java、clientuser.java、client.java。 聊天室除了需要編寫的上述5個(gè)java源文件所給出的類外,還需要java系統(tǒng)提供的一些重要的類,如jtextfield、jtextarea和file類。2.4 運(yùn)行環(huán)境cpu:pentium 2.8ghz以上內(nèi)存:256mb以上硬盤空間:80g以上操作系統(tǒng):windows xp運(yùn)行環(huán)境:jdk,jcreator2.5 程序功能圖及程序相關(guān)說明2.5.1 主功能框圖 啟動(dòng)服務(wù)器注冊(cè)界面發(fā)送信息(用戶a)發(fā)送信息(用戶b)發(fā)送信息(用戶c)關(guān)閉
5、服務(wù)器圖1 程序基本框圖表1 聊天室基本功能表序號(hào)文件名主要功能1serverhost被服務(wù)器調(diào)用2client顯示聊天室3clientuser被客戶端調(diào)用4login注冊(cè)登陸5objecting連接服務(wù)器6server啟動(dòng)服務(wù)器2.5.2 程序代碼是說明程序中引入的包:package chat;import .*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import java.io.*;(1)服務(wù)器端代碼中用戶自定義類:類名:server作用:服務(wù)器啟動(dòng)
6、繼承的接口名:actionlistenerpublic class server implements actionlistener定義的對(duì)象:count /記錄點(diǎn)機(jī)關(guān)閉按鈕次數(shù)2次關(guān)閉soconly /只有socket,用于群發(fā)sockets /所有客戶的socketsocket_thread /socket所在的線乘,用于退出;frame / 定義主窗體panel /定義面板start,stop /啟動(dòng)和停止按鈕主要成員方法:public void center /定義小程序查看器的位置public void actionperformed /定義處理異常機(jī)制定義子類:serverrun,
7、details繼承的父類名:threadclass serverrun extends thread /啟線乘用于接收連入的socketclass details extends thread /具體處理消息的線乘,只管發(fā)送消息創(chuàng)建一個(gè)serversocket 對(duì)象,用于接受指定端口客戶端的信息serversocket server = new serversocket(1234);接受請(qǐng)求時(shí)候,通過accept()方法,得到一個(gè)socket對(duì)象。socket socket = server.accept();通過socket創(chuàng)建流(輸入,輸出)。bufferedreaderbr=newbuf
8、feredreader(newinputstreamreader(socket.getinputstream()datainputstream dis = new datainputstream(socket.getinputstream();printwriter out = new printwriter(socket.getoutputstream();通過流,來和客戶交互。(2)用戶注冊(cè)代碼中相關(guān)類: 類名:login作用:用戶注冊(cè)登錄繼承的接口名:actionlistener public class login implements actionlistener定義的對(duì)象:titl
9、e /定義標(biāo)題name /提示輸入姓名,添加注冊(cè)信息send /提示點(diǎn)擊“進(jìn)入”,進(jìn)入聊天室構(gòu)造方法:public login()(3)客戶端: 創(chuàng)建一個(gè)socket對(duì)象,用于連接服務(wù)器。 用socket創(chuàng)建流。 通過流和服務(wù)器進(jìn)行交互。 交互完畢,將流和socket關(guān)閉。(4)聊天室:類名:client作用:實(shí)現(xiàn)發(fā)送即時(shí)信息。繼承的接口名:actionlistenerpublic class client implements actionlistener構(gòu)造方法:public client(string name2)異常處理:public void actionperformed(acti
10、onevent e)public void connect()public void actionperformed(actionevent e) 定義的子類:clientsocket 繼承的父類:thread class clientsocket extends thread ()3.設(shè)計(jì)結(jié)果與分析將5個(gè)java源文件:server.java、objecting.java、login.java、clientuser.java、client.java。分別編譯這5個(gè)java源文件,或運(yùn)行“javac *.java”命令,編譯全部的源文件,然后運(yùn)行連接服務(wù)器的主類,即運(yùn)行server類。連接完畢
11、后在運(yùn)行注冊(cè)的主函數(shù)類,即運(yùn)行l(wèi)ogin類。 首先運(yùn)行啟動(dòng)服務(wù)器的文件server.java,運(yùn)行結(jié)果如下:圖2服務(wù)器啟動(dòng)成功結(jié)果分析:在進(jìn)入聊天室之前必須先啟動(dòng)服務(wù)器,實(shí)現(xiàn)服務(wù)器端的連接為用戶的登錄打開“窗口”。其次運(yùn)行用戶注冊(cè)登錄文件login.java,運(yùn)行結(jié)果如下:圖3用戶登陸界面結(jié)果分析:添加用戶信息,輸入用戶姓名,為用戶進(jìn)入聊天室提供關(guān)口。并且利用以下語句實(shí)現(xiàn)如圖4的界面 jlabel title=new jlabel(免注冊(cè)版);jlabel name=new jlabel(輸入姓名);jbutton send=new jbutton(進(jìn)入);添加注冊(cè)信息后點(diǎn)擊“進(jìn)入”按鈕,結(jié)果
12、如圖5圖4顯示用戶已登錄結(jié)果分析:當(dāng)服務(wù)器啟動(dòng)用戶完成信息注冊(cè)時(shí),在服務(wù)期端的界面中會(huì)顯示當(dāng)前在線的人員,并且提示客戶已連接到服務(wù)器,可以進(jìn)行聊天行為。圖5 顯示聊天內(nèi)容結(jié)果分析:多個(gè)用戶進(jìn)入聊天室之后,用戶可以在發(fā)送信息的文本框里填寫自己的內(nèi)容,點(diǎn)擊“發(fā)送信息”按鈕,信息會(huì)出現(xiàn)在上方的區(qū)域內(nèi),在界面的右方還可以顯示在線人員的姓名,另在線用戶可以知道有誰在聊天室內(nèi)。聊天結(jié)束點(diǎn)擊“離開”按鈕,結(jié)果如圖7所示:圖6離開聊天室點(diǎn)擊服務(wù)器中的“停止”按鈕,結(jié)果如圖8.圖9所示:圖7 點(diǎn)擊“停止”按鈕圖8終止與服務(wù)器端連接結(jié)果分析:用戶聊天結(jié)束點(diǎn)擊“離開”按鈕之后會(huì)在服務(wù)器端的界面上自動(dòng)顯示該用戶已離開
13、,提時(shí)、示服務(wù)器執(zhí)行相關(guān)行為。 綜上所述:通過運(yùn)行這5個(gè)文件基本實(shí)現(xiàn)多用戶在線聊天的功能,如啟動(dòng)服務(wù)器:實(shí)現(xiàn)網(wǎng)絡(luò)的連接,為注冊(cè)進(jìn)入聊天室做準(zhǔn)備;注冊(cè)登陸界面:填寫基本信息如姓名等,可以供多人進(jìn)入實(shí)現(xiàn)多人聊天功能;發(fā)送信息:為用戶發(fā)送信息提供平臺(tái)。離開界面:使用戶退出聊天室;關(guān)閉服務(wù)器:斷開與網(wǎng)絡(luò)的連接,徹底退出聊天室。但還存在一定的不完善,在以后的編程中還有待于加強(qiáng)。4.設(shè)計(jì)心得我花費(fèi)了近一個(gè)多星期的時(shí)間,查閱了許多相關(guān)的資料,終于把這個(gè)java聊天室,程序基本實(shí)現(xiàn)了該課程設(shè)計(jì)的基本要求。在設(shè)計(jì)的過程中了解到自己的知識(shí)還是比較有限,更肯定了自己在以后學(xué)習(xí)編程的道路上堅(jiān)定不移的但由于只學(xué)習(xí)了一個(gè)
14、學(xué)期的java語言,自己水平有限,使得程序還有不是很完善?;仡櫰鸫舜蝚ava,至今我仍感慨頗多,的確,從選題到定稿,從理論到實(shí)踐,在整整一星期的日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正掌握這門技術(shù),也提高了自己的獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得上是困難重重,這畢竟第一次做的,難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,
15、對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固,通過這次課程設(shè)計(jì)之后,一定把以前所學(xué)過的知識(shí)重新溫故。通過此次課程設(shè)計(jì),將我本學(xué)期所學(xué)的java知識(shí)得到鞏固和應(yīng)用,在設(shè)計(jì)的過程中我遇到了很到問題,不過在老師和同學(xué)們的幫助和自己的思考下還是很好的完成了。這此課程設(shè)計(jì)還讓我懂得了寫程序不能閉門造車,要努力拓寬知識(shí)面,開闊視野,拓展思維。它還讓我學(xué)會(huì)了在網(wǎng)上查閱那些無限的資料。讓我不僅學(xué)會(huì)了書本上的知識(shí),還讓自己能夠面對(duì)困難并且克服它。5.參考文獻(xiàn)1張思民,梁維娜java程序設(shè)計(jì)實(shí)踐教程m北京:清華大學(xué)出版社;2006.8:1-212 葉核亞java2程序設(shè)計(jì)實(shí)用教程m(第2版)北京:電子工業(yè)出版
16、社;2008.4.3 范立南, 韓曉微, 王忠石等 基于多結(jié)構(gòu)元的噪聲污染灰度圖像邊緣檢測(cè)研究j 武漢大學(xué)學(xué)報(bào)(工學(xué)版) ;2003.45-494陳國君、陳磊、陳錫禎、劉洋.java2程序設(shè)計(jì)基礎(chǔ)m,第一版.北京:清華大學(xué)出版社,2006:324-3375 ,路遲. java語言與面向?qū)ο蟪绦蛟O(shè)計(jì)m. 武漢:武漢大學(xué)出版社:2007.10:130-1356 , ,. m. 武漢:2002.12:154-1617 . java程序設(shè)計(jì)m. 北京:2007.05:56-626附錄:(1)server.javapackage chat;import .*;import java.aw
17、t.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import java.io.*;public class server implements actionlistener int count=0;/記錄點(diǎn)機(jī)關(guān)閉按鈕次數(shù)2次關(guān)閉 vector soconly=new vector();/只有socket,用于群發(fā) hashmap sockets=new hashmap();/所有客戶的socket hashmap socket_thread=new hashmap();/socket所在的線乘,用于退出;
18、serversocket serversocket; jframe frame; jtextarea area=new jtextarea(); jpanel panel=new jpanel(); jbutton start=new jbutton(啟動(dòng)); jbutton stop=new jbutton(停止); public server() /設(shè)置樣式 /frame.setdefaultlookandfeeldecorated(true);/ frame=new jframe(服務(wù)器); /添加 panel.add(start); panel.add(stop); frame.add
19、(panel,borderlayout.north); frame.add(area,borderlayout.center); frame.pack(); center(); frame.setdefaultcloseoperation(windowconstants.do_nothing_on_close); frame.setvisible(true); /添加監(jiān)聽 start.addactionlistener(this); stop.addactionlistener(this); system.out.println(new); public void center() toolk
20、it toolkit=toolkit.getdefaulttoolkit(); dimension e=toolkit.getscreensize(); int x=e.width/2-(int)(frame.getsize().getwidth()/2); int y=e.height/2-(int)(frame.getsize().getheight()/2); frame.setlocation(x,y); public void actionperformed(actionevent e) jbutton btn=(jbutton)e.getsource(); if(btn=start
21、) serverrun serverrun=new serverrun(); system.out.println(gogo); serverrun.start(); if(btn=stop) try iterator i = soconly.iterator(); while (i.hasnext() socket s = (socket) i.next(); /獲得其他socket的通信口 objectoutputstream out = new objectoutputstream(s. getoutputstream(); objecting bj=new objecting(); o
22、ut.writeobject(系統(tǒng)消息-服務(wù)器馬上關(guān)閉!請(qǐng)馬上關(guān)閉客戶端); count+; if(count=2) system.exit(0); joptionpane.showmessagedialog(frame,已通知客戶端,請(qǐng)?jiān)俅吸c(diǎn)擊關(guān)閉按鈕關(guān)閉); catch(exception ex)ex.printstacktrace(); class serverrun extends thread public void run() try system.out.println(開始serverrun); serversocket=new serversocket(55555); are
23、a.append(服務(wù)器啟動(dòng)n); start.setenabled(false); while(true) socket socket=serversocket.accept();/接受1個(gè)客戶連接 system.out.println(連接成功); bufferedreader br=new bufferedreader(new inputstreamreader(socket.getinputstream();/獲得客戶名稱 string name=br.readline(); area.append(服務(wù)器接收用戶+name+的連接n); soconly.add(socket);/收集
24、所有socket /發(fā)送新用戶消息 iterator i=soconly.iterator(); while(i.hasnext() socket s=(socket)i.next();/獲得其他socket的通信口 objectoutputstream out=new objectoutputstream(s.getoutputstream(); out.writeobject(系統(tǒng)消息-+name+用戶進(jìn)入+-); sockets.put(name,socket);/收集所有有標(biāo)市的socket vector v=getlist(); iterator j=soconly.iterator
25、(); while(j.hasnext() socket s = (socket) j.next(); /獲得其他socket的通信口 objectoutputstream out = new objectoutputstream(s.getoutputstream(); out.writeobject(v); system.out.println(服務(wù)器發(fā)送用戶列表進(jìn)入); details d=new details(socket); socket_thread.put(name,d);/收集socket線乘 d.start(); catch(exception e)e.printstack
26、trace(); class details extends thread boolean alive=true; objectinputstream in; objectoutputstream out; socket socket;/客戶socket details(socket socket) this.socket=socket; public void run() while(alive) try in = new objectinputstream(socket.getinputstream(); objecting objecting=(objecting)in.readobje
27、ct();/獲得對(duì)象 string name=objecting.getkey();/獲得名字 string content=objecting.getvalue();/獲得內(nèi)容 if(name.equalsignorecase(all) iterator i=soconly.iterator(); while(i.hasnext() socket s=(socket)i.next();/獲得其他socket的通信口 out=new objectoutputstream(s.getoutputstream(); out.writeobject(content); system.out.prin
28、tln(send); if(name.equalsignorecase(exit) details thread=(details)socket_thread.get(content); thread.alive=false; area.append(content+離開n); socket.close(); soconly.remove(socket);/群發(fā)socket消失 sockets.remove(content);/標(biāo)市socket消失 iterator i=soconly.iterator(); while(i.hasnext() socket s=(socket)i.next(
29、);/獲得其他socket的通信口 out=new objectoutputstream(s.getoutputstream(); out.writeobject(系統(tǒng)消息-+content+用戶離開+-); vector v=getlist(); iterator j=soconly.iterator(); while(j.hasnext() socket s = (socket) j.next(); /獲得其他socket的通信口 objectoutputstream out = new objectoutputstream(s.getoutputstream(); out.writeob
30、ject(v); system.out.println(服務(wù)器發(fā)送用戶列表離開); if(!name.equalsignorecase(all)&!name.equalsignorecase(exit) area.append(處理私聊信息); socket s=(socket)sockets.get(name); out=new objectoutputstream(s.getoutputstream(); out.writeobject(content); catch(exception e)e.printstacktrace(); public vector getlist() vect
31、or v=new vector(); set set=sockets.keyset(); iterator i=set.iterator(); while(i.hasnext() v.add(i.next(); return v; public static void main(string args) new server(); (2)objecting.javapackage chat;import java.io.serializable;public class objecting implements serializable string key; string value; pu
32、blic objecting() public objecting(string key,string value) this.key =key; this.value=value; public void setkey(string key) this.key = key; public void setvalue(string value) this.value = value; public string getkey() return key; public string getvalue() return value; (3)login.javapackage chat;import
33、 javax.swing.*;import java.awt.*;import java.awt.event.*;public class login implements actionlistener jframe frame; jlabel title=new jlabel(免注冊(cè)版); jpanel banner=new jpanel(); jtextfield text=new jtextfield(10); jpanel body=new jpanel(); jpanel buttom=new jpanel(); jlabel name=new jlabel(輸入姓名); jbutt
34、on send=new jbutton(進(jìn)入); public login() frame=new jframe(注冊(cè)); frame.setdefaultcloseoperation(windowconstants.dispose_on_close); banner.add(title); body.add(name); body.add(text); buttom.add(send); frame.add(banner,borderlayout.north); frame.add(body,borderlayout.center); frame.add(buttom,borderlayou
35、t.south); frame.pack(); center(); frame.setvisible(true); send.addactionlistener(this); public void center() toolkit toolkit=toolkit.getdefaulttoolkit(); dimension e=toolkit.getscreensize(); int x=e.width/2-(int)(frame.getsize().getwidth()/2); int y=e.height/2-(int)(frame.getsize().getheight()/2); f
36、rame.setlocation(x,y); public void actionperformed(actionevent e) if(text.gettext().equals() joptionpane.showmessagedialog(frame,姓名不能為空); return; else new client(text.gettext(); frame.dispose(); public static void main(string args) new login(); (4)clientuser.javapackage chat;import java.awt.*;import
37、 java.awt.event.*;import javax.swing.*;import .*;import java.io.*;public class clientuser extends windowadapter implements actionlistener,runnable public jframe jf; public jtextfield jt; public jtextfield name; public jbutton connect; public jscrollpane jsp; public jtextarea jta; public jbut
38、ton jb; public jlabel l; socket soc; inputstream soc_in; outputstream soc_out; bufferedreader bsoc_in; printwriter psoc_out;public clientuser() jf=new jframe(client chat room); jta=new jtextarea(10,30); jta.seteditable(false); jsp=new jscrollpane(jta,jscrollpane.vertical_scrollbar_always,jscrollpane
39、.horizontal_scrollbar_as_needed); jt=new jtextfield(30); name=new jtextfield(5); l=new jlabel(please in put your name); connect=new jbutton(connect); connect.addactionlistener(this); jt.addactionlistener(this); jb=new jbutton(send the message); jb.addactionlistener(this); jpanel jp=new jpanel(); jpa
40、nel jp2=new jpanel(); jp.setlayout(new flowlayout(); jp.add(jt); jp.add(jb); jp2.add(l); jp2.add(name); jp2.add(connect); container c=jf.getcontentpane(); c.setlayout(new gridbaglayout(); gridbagconstraints gbc=new gridbagconstraints(); gbc.gridx=0; gbc.gridy=0; c.add(jp2,gbc); gbc.gridx=0; gbc.grid
41、y=1; c.add(jsp,gbc); gbc.gridy=2; c.add(jp,gbc); jf.pack(); jf.setvisible(true); public static void main(string args) clientuser cuser=new clientuser(); public void windowclosing(windowevent e) system.exit(0);public void actionperformed(actionevent e) if (e.getsource()=connect) if(name.gettext().equ
42、als() new joptionpane().showmessagedialog(null,please in put your name first!); else try soc=new socket(localhost,55555); psoc_out=new printwriter(soc.getoutputstream(),true); bsoc_in=new bufferedreader(new inputstreamreader(soc.getinputstream(); psoc_out.println(name.gettext(); catch(exception e1)e
43、1.printstacktrace(); name.seteditable(false); new thread (this).start(); if(e.getsource()=jt|e.getsource()=jb) jta.append(name.gettext()+:+jt.gettext()+n); psoc_out.println(name.gettext()+:+jt.gettext(); jt.settext(); public void run() stringtext; while(true) try text=bsoc_in.readline(); jta.append(text+n); catch(exception e)e.printstacktrace(); (5)client.javapackage chat;import javax.swing.*;import java.a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 茶葉市場(chǎng)推廣與廣告合作合同樣本
- 民政招聘面試題及答案
- 小區(qū)大鐵門改造方案
- 逾期工程款催收服務(wù)合同
- 現(xiàn)房開荒保潔方案(3篇)
- 小廣場(chǎng)攤位規(guī)劃方案
- 塑膠項(xiàng)目面試題及答案
- 烹飪理論考試題及答案
- 閑置經(jīng)濟(jì)面試題及答案
- 瓣膜病的超聲診斷
- 河南交通投資集團(tuán)有限公司招聘筆試真題2024
- 鐵路集裝箱運(yùn)輸中存在的問題分析與對(duì)策探討
- 2023 植入式靜脈給藥裝置護(hù)理技術(shù)中華護(hù)理學(xué)會(huì)團(tuán)體標(biāo)準(zhǔn)解讀
- 2025四川遂寧發(fā)展投資集團(tuán)有限公司招聘8人筆試參考題庫附帶答案詳解
- 醫(yī)院后勤考試試題及答案
- 國土空間規(guī)劃試題及答案
- 2025-2030智慧醫(yī)療行業(yè)市場(chǎng)深度分析及競(jìng)爭(zhēng)格局與投資價(jià)值研究報(bào)告
- ktv拆除合同協(xié)議
- 高壓倒閘操作步驟
- 市場(chǎng)營銷管理手冊(cè) 英文版
- 設(shè)備故障報(bào)修流程
評(píng)論
0/150
提交評(píng)論