




已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java項(xiàng)目設(shè)計(jì) 聊天室設(shè)計(jì)設(shè)計(jì)人:XXX指導(dǎo)老師:XXX設(shè)計(jì)時(shí)間:2005-4-17到2005-4-24目錄第一部分 項(xiàng)目概況 1.項(xiàng)目說(shuō)明.42.項(xiàng)目背景.4第二部分 項(xiàng)目計(jì)劃1. 項(xiàng)目目標(biāo) 42. 項(xiàng)目范圍 43. 項(xiàng)目策略 44. 項(xiàng)目開(kāi)發(fā)周期 45. 每項(xiàng)任務(wù)所需技能 56. 所采用的工具和技術(shù)清單5第三部分 項(xiàng)目設(shè)計(jì)1 需求分析.52 軟件功能.53 概要設(shè)計(jì).64 詳細(xì)設(shè)計(jì).6第四部分 項(xiàng)目測(cè)試1. 測(cè)試階段2程序界面.73程序運(yùn)行的條件 4參考的資料第五部分 活動(dòng)總結(jié)第一部分 項(xiàng)目概況1.項(xiàng)目說(shuō)明項(xiàng)目名稱:JAVA聊天室系統(tǒng)。客 戶:一般大眾。2、項(xiàng)目背景NIIT的課程重在對(duì)實(shí)際動(dòng)手能力的培養(yǎng)。通過(guò)一段時(shí)間JAVA課程的學(xué)習(xí),需要對(duì)所學(xué)的知識(shí)作一個(gè)綜合的運(yùn)用。由于JAVA強(qiáng)大的網(wǎng)絡(luò)編程能力,需要寫(xiě)一個(gè)簡(jiǎn)單的聊天室程序的項(xiàng)目,主要能實(shí)現(xiàn)在網(wǎng)絡(luò)上的多線程間的通訊。項(xiàng)目的目的在于鞏固前段時(shí)間所學(xué)的知識(shí)以及鍛煉小組成員之間團(tuán)隊(duì)合作的能力。第二部分 項(xiàng)目計(jì)劃1. 項(xiàng)目目標(biāo)(1),允許新用戶注冊(cè),同時(shí)開(kāi)設(shè)帳戶。(2),登陸后在用戶列表框顯示所有的用戶姓名。(3),允許用戶進(jìn)行在線的公聊和私聊。(4),把客戶端的界面放在Applet上面,在聊天時(shí)可以對(duì)面版進(jìn)行一些簡(jiǎn)單設(shè)置。2. 項(xiàng)目范圍本軟件適用于一般大眾。3. 項(xiàng)目策略通過(guò)可視化編程的JAVA程序的方式進(jìn)行實(shí)現(xiàn)。 通過(guò)增量開(kāi)發(fā)的方法進(jìn)行此項(xiàng)目的設(shè)計(jì)與開(kāi)發(fā)。使用套節(jié)字進(jìn)行客戶與服務(wù)端的通訊。4項(xiàng)目開(kāi)發(fā)周期第一天 需求分析及初步設(shè)計(jì)階段(決定每個(gè)功能所需的類及數(shù)據(jù)類型) 第二天 根據(jù)相應(yīng)功能設(shè)計(jì)出各類所用到的方法及數(shù)據(jù)類型 第三天第五天 具體實(shí)現(xiàn)各個(gè)類中的各個(gè)方法 第六天 對(duì)各個(gè)界面和服務(wù)器進(jìn)行調(diào)整及測(cè)試完善工作 5. 每項(xiàng)任務(wù)所需技能服務(wù)端與客戶端的連接:網(wǎng)絡(luò)編程中的協(xié)議及數(shù)據(jù)流,異常處理,多線程。程序界面設(shè)計(jì):GUI圖形用戶組件,布局管理,事件監(jiān)聽(tīng)。代碼實(shí)現(xiàn):JAVA與數(shù)據(jù)庫(kù)編程。6. 所采用的工具開(kāi)發(fā)工具:Microsoft JAVALE(jdk1.4)+ JCreator LE開(kāi)發(fā)環(huán)境:windowsXP+個(gè)人電腦第三部分 項(xiàng)目設(shè)計(jì)1.需求分析隨著經(jīng)濟(jì)的日益發(fā)展,網(wǎng)絡(luò)的觀念深入人心。人們?cè)絹?lái)越需要通過(guò)網(wǎng)絡(luò)高效簡(jiǎn)捷的交流,聊天室就是其中的一個(gè)工具。2.軟件主要功能(1),允許新用戶注冊(cè),同時(shí)開(kāi)設(shè)帳戶。(2),登陸后在用戶列表框顯示所有的用戶姓名。(3),允許用戶進(jìn)行在線的公聊和私聊。(4),把客戶端的界面放在Applet上面,在聊天時(shí)可以對(duì)面版進(jìn)行一些簡(jiǎn)單設(shè)置。程序中要用到的類1、 客戶端 2、服務(wù)器端3 概要設(shè)計(jì)聊天室的程序至少需要建立兩個(gè)程序:一個(gè)服務(wù)器端,負(fù)責(zé)監(jiān)聽(tīng)客戶端發(fā)送過(guò)來(lái)的請(qǐng)求,一但監(jiān)聽(tīng)到客戶端的請(qǐng)求,先判斷它是登陸信息還是聊天信息,若是登陸信息,那么允許客戶端登陸,并把登陸的客戶名返回給客戶端顯示在用戶在線列表框內(nèi)。如果是聊天信息,則把它群發(fā)給每個(gè)客戶端。服務(wù)器端不對(duì)聊天的信息作公聊和私聊的判斷,由客戶端收到消息后判斷是否是發(fā)給自己的信息,以及是否顯示在聊天面板上面??蛻舳说某绦蛐枰\(yùn)用圖形化編程做出一個(gè)界面。我們小組所做的界面是在聊天室界面的左上方為一個(gè)在線用戶列表框,列表框的下面有用戶登陸的文本域和密碼輸入框。右邊是聊天面板,聊天面板的下面是輸入聊天信息的文本域,以及發(fā)送和清空按紐。當(dāng)輸入用戶名和密碼登陸后,在用戶列表框內(nèi)會(huì)顯示當(dāng)前在線的所有的用戶姓名并且在聊天面板上顯示某用戶進(jìn)入了聊天室。然后屏蔽掉登陸和密碼輸入框。在信息輸入框中輸入聊天信息后點(diǎn)擊發(fā)送,在所有客戶端的聊天面板上會(huì)看到你發(fā)送的聊天信息。在用戶列表框選擇某個(gè)用戶,勾選私聊復(fù)選框然后發(fā)送消息,這時(shí)只有被你選擇的客戶端能看到你發(fā)送的信息。4 詳細(xì)設(shè)計(jì)服務(wù)器端代碼:/聊天室服務(wù)器端程序import java.io.*;import .*;import java.util.*;public class Homework implements RunnableThread thread;static Vector vector;ServerSocket server;public Homework()tryserver=new ServerSocket(8000);System.out.println(服務(wù)器已啟動(dòng));catch(IOException e)vector=new Vector(100);thread=new Thread(this);thread.start();public void run()trywhile(true)Socket socket=server.accept();PThread pt=new PThread(this,socket);pt.setPriority(Thread.MAX_PRIORITY);pt.start();vector.addElement(pt);catch(IOException r)public static void main(String args)new Homework();synchronized public void broadcast(String name)PThread cg;String user;if(name.startsWith(login)for(int i=0;ivector.size();i+)cg=(PThread)vector.elementAt(i);trycg.dout.writeUTF(name+高興地走進(jìn)了聊天室.ok!);catch(IOException t) else if(name.startsWith(public) System.out.println(name.substring(6); for(int i=0;ivector.size();i+) cg=(PThread)vector.elementAt(i); try cg.dout.writeUTF(name); catch(IOException a) else if(name.startsWith(private) System.out.println(name.substring(7); for(int i=0;ivector.size();i+) cg=(PThread)vector.elementAt(i); try cg.dout.writeUTF(name); catch(IOException f) /class PThread extends Threadprotected Socket socket;protected Homework home;protected DataInputStream din;protected DataOutputStream dout;String message,message1;PThread cg;public PThread(Homework home,Socket socket)this.socket=socket;this.home=home;trydin=new DataInputStream(socket.getInputStream();dout=new DataOutputStream(socket.getOutputStream();catch(IOException w)public void run()trywhile(true)message1=din.readUTF();if(message1.startsWith(login)message=message1.substring(5,message1.indexOf( )+1);if(true)for(int i=0;ihome.vector.size();i+)cg=(PThread)home.vector.elementAt(i);dout.writeUTF(list+cg.message);home.broadcast(login+message);System.out.println(message+登陸了); if(message1.startsWith(public) message=message1.substring(6,message1.indexOf(); if(true) for(int i=0;ihome.vector.size();i+) cg=(PThread)home.vector.elementAt(i); /dout.writeUTF(public+message); home.broadcast(public+message); if(message1.startsWith(private) message=message1.substring(7,message1.indexOf(); if(true) for(int i=0;ihome.vector.size();i+) cg=(PThread)home.vector.elementAt(i); /dout.writeUTF(private+message); home.broadcast(private+message); catch(IOException e)客戶端代碼:/聊天室客戶端程序import java.awt.*;import java.applet.Applet;import java.applet.AudioClip;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.Date;import .*; public class Homework_client1 extends Applet implements RunnableList UesrNameList; /顯示用戶名的列表;TextArea Text_Area; /顯示用戶發(fā)言的文本域;JLabel UserName; /顯示用戶姓名;JLabel UName; /用戶姓名面板;JLabel PassWord; /顯示登陸口令;TextField PWord; /登陸口令文本框;TextField UN; /用戶姓名文本框;JTextField forField; /說(shuō)文本框;JTextField Sayfield; /發(fā)送文本框;JLabel Vslabel; /對(duì)面板;JLabel Saylabel; /說(shuō)面板;JLabel Frontlabel; /前景色面板;JLabel Backlabel; /背景色面板;JLabel Stylelabel; /字體面板;JLabel Wordlabel; /字號(hào)面板;JButton Enterbutton; /進(jìn)入按紐; JButton Quitbutton; /退出按紐;JButton Sendbutton; /發(fā)送按紐;JButton Canecelbutton; /刷新按紐; Checkbox Quient; /私聊復(fù)選框;Choice C_style; /字體選擇框;Choice C_word; /字號(hào)選擇框;Choice C_front; /前景色選擇框;Choice C_back; /背景色選擇框;Choice C_music; /音樂(lè)選擇框;AudioClip Sound; /音樂(lè)播放器;JMenuItem Play; /play;JMenuItem Loop; /loop;JMenuItem Stop; /stop; JMenu Start; /播放器菜單;JMenuBar SoundBar; /加載播放菜單; Socket socket; /客戶端;Thread Cthread=new Thread(this);DataInputStream din; /數(shù)據(jù)輸入流;DataOutputStream dout; /數(shù)據(jù)輸出流;/*面板的編寫(xiě)*/public void init()/*定義左邊的組件(用戶名、用戶列表、登陸按紐等)*/*將左邊組件進(jìn)行網(wǎng)格包布局,并添加到面板*/Thread Cthread; /創(chuàng)建一個(gè)和客戶端進(jìn)行通信的線程;UesrNameList=new List(19);UesrNameList.setBackground(Color.WHITE);UesrNameList.setForeground(new Color(255,0,255);UesrNameList.setFont(new Font(cg,Font.BOLD,14);UserName=new JLabel(用 戶 姓 名);UserName.setFont(new Font(cg,Font.ITALIC,14);UName=new JLabel(姓 名);UN=new TextField(11);UN.setFont(new Font(cg,Font.BOLD,13);PassWord=new JLabel(密 碼);PWord=new TextField(11);PWord.setEchoChar(*);Enterbutton=new JButton(進(jìn)入);Enterbutton.setBackground(new Color(136,193,255);Enterbutton.setToolTipText(點(diǎn)此連接服務(wù)器);Quitbutton=new JButton(退出);Quitbutton.setToolTipText(點(diǎn)此離開(kāi)聊天室);Quitbutton.setEnabled(false);Quitbutton.setBackground(new Color(136,193,255);C_music=new Choice(); /初始化音樂(lè)控件;C_music.add(遇見(jiàn).mid);C_music.add(十年.mid);SoundBar=new JMenuBar();SoundBar.setBackground(new Color(136,193,255);Start=new JMenu(音樂(lè));Start.setBackground(new Color(136,193,255);Play=new JMenuItem(播放);Loop=new JMenuItem(循環(huán));Stop=new JMenuItem(停止);Start.add(Play);Start.add(Loop);Start.add(Stop);SoundBar.add(Start);Sound=getAudioClip(getCodeBase(),遇見(jiàn).mid);JPanel panel_0=new JPanel();panel_0.setBackground(new Color(136,193,255);GridBagLayout gb_0=new GridBagLayout();GridBagConstraints gc_0=new GridBagConstraints();gc_0.fill=GridBagConstraints.NONE;gc_0.weightx=0.0;gc_0.weighty=0.0;gb_0.setConstraints(C_music,gc_0);gb_0.setConstraints(SoundBar,gc_0);panel_0.setLayout(gb_0);panel_0.add(C_music);panel_0.add(SoundBar);JPanel panel_1=new JPanel();panel_1.setBackground(new Color(136,193,255);panel_1.add(UName);panel_1.add(UN);JPanel panel_2=new JPanel();panel_2.setBackground(new Color(136,193,255);panel_2.add(PassWord);panel_2.add(PWord);JPanel panel_3=new JPanel();panel_3.setBackground(new Color(136,193,255);panel_3.add(Enterbutton);panel_3.add(Quitbutton);JPanel NO1panel=new JPanel();NO1panel.setBackground(new Color(136,193,255);GridBagLayout gb_1=new GridBagLayout();GridBagConstraints gc_1=new GridBagConstraints();gc_1.anchor=GridBagConstraints.NORTHWEST;gc_1.gridx=0;gc_1.gridy=0;gb_1.setConstraints(panel_0,gc_1);gc_1.anchor=GridBagConstraints.NORTHWEST;gc_1.gridx=0;gc_1.gridy=1;gb_1.setConstraints(UserName,gc_1);gc_1.anchor=GridBagConstraints.NORTHWEST;gc_1.gridx=0;gc_1.gridy=2;gb_1.setConstraints(UesrNameList,gc_1);gc_1.anchor=GridBagConstraints.NORTHWEST;gc_1.gridx=0;gc_1.gridy=3;gb_1.setConstraints(panel_1,gc_1);gc_1.anchor=GridBagConstraints.NORTHWEST;gc_1.gridx=0;gc_1.gridy=4;gb_1.setConstraints(panel_2,gc_1);gc_1.anchor=GridBagConstraints.NORTHWEST;gc_1.gridx=0;gc_1.gridy=5;gb_1.setConstraints(panel_3,gc_1);NO1panel.setLayout(gb_1);NO1panel.add(panel_0);NO1panel.add(UserName);NO1panel.add(UesrNameList);NO1panel.add(panel_1);NO1panel.add(panel_2);NO1panel.add(panel_3);/*定義右下方中間的組件*/Quient=new Checkbox(私聊,false);Quient.setBackground(new Color(136,193,255);Quient.setSize(1,1);Vslabel=new JLabel(對(duì));Vslabel.setSize(1,1);forField=new JTextField(7);forField.setEditable(false);Saylabel=new JLabel(說(shuō));Saylabel.setSize(1,1);Sayfield=new JTextField(28);Sayfield.setFont(new Font(cg,Font.ROMAN_BASELINE,14);Sayfield.setEditable(false);Sendbutton=new JButton(發(fā)送);Sendbutton.setEnabled(false);Sendbutton.setBackground(new Color(136,193,255);/*定義右下方下層組件*/Stylelabel=new JLabel(字體);Stylelabel.setSize(1,1);Wordlabel=new JLabel(表情);Wordlabel.setSize(1,1);Frontlabel=new JLabel(前景色);Frontlabel.setSize(1,1);Backlabel=new JLabel(背景色);Backlabel.setSize(1,1);Canecelbutton=new JButton(刷新);Canecelbutton.setBackground(new Color(136,193,255);C_style=new Choice(); /字體選擇框C_style.addItem(BLOD);C_style.addItem(ITALIC);C_style.addItem(PLAIN);C_word=new Choice(); /表情選擇框C_word.setSize(2,1);C_word.addItem(無(wú));C_word.addItem(微笑);C_word.addItem(憤怒);C_word.addItem(激動(dòng));C_front=new Choice(); /前景色選擇框C_front.addItem(RED);C_front.addItem(ORANGE);C_front.addItem(BLUE);C_front.addItem(BLACK);C_back=new Choice(); /背景色選擇框C_back.addItem(RED);C_back.addItem(ORANGE);C_back.addItem(BLUE);C_back.addItem(BLACK);/*將右下方組件進(jìn)行網(wǎng)格包布局,并添加到面板*/JPanel panel_4=new JPanel(); panel_4.setBackground(new Color(136,193,255);GridBagLayout gb_2=new GridBagLayout();GridBagConstraints gc_2=new GridBagConstraints();gc_2.fill=GridBagConstraints.BOTH;gc_2.weightx=1.0;gc_2.weighty=1.0;gb_2.setConstraints(Quient,gc_2);gb_2.setConstraints(Vslabel,gc_2);gc_2.fill=GridBagConstraints.REMAINDER;gc_2.weightx=1.0;gc_2.weighty=1.0;gb_2.setConstraints(forField,gc_2);gb_2.setConstraints(Saylabel,gc_2);gb_2.setConstraints(Sayfield,gc_2);gc_2.fill=GridBagConstraints.RELATIVE;gc_2.weightx=1.0;gc_2.weighty=1.0;gb_2.setConstraints(Sendbutton,gc_2);panel_4.setLayout(gb_2);panel_4.add(Quient);panel_4.add(Vslabel);panel_4.add(forField);panel_4.add(Saylabel);panel_4.add(Sayfield);panel_4.add(Sendbutton);Text_Area=new TextArea(10,10);Text_Area.setEditable(false);Text_Area.setFont(new Font(cg,Font.PLAIN,16);Text_Area.setText(tttt* 歡迎來(lái)到聊天室 *);Text_Area.setForeground(new Color(136,193,255);JScrollPane scroll=new JScrollPane(Text_Area);/將AREA添加到滾動(dòng)面板/*將最右下方組件進(jìn)行網(wǎng)格包布局,并添加到面板*/JPanel panel_5=new JPanel(); panel_5.setBackground(new Color(136,193,255);GridBagLayout gb_3=new GridBagLayout();GridBagConstraints gc_3=new GridBagConstraints();gc_3.fill=GridBagConstraints.LINE_START;gc_3.weightx=1.0;gc_3.weighty=1.0;gb_3.setConstraints(Stylelabel,gc_3);gc_3.fill=GridBagConstraints.RELATIVE;gc_3.weightx=1.0;gc_3.weighty=1.0;gb_3.setConstraints(C_style,gc_3);gb_3.setConstraints(Wordlabel,gc_3);gb_3.setConstraints(C_word,gc_3);gb_3.setConstraints(Frontlabel,gc_3);gb_3.setConstraints(C_front,gc_3);gb_3.setConstraints(Backlabel,gc_3);gb_3.setConstraints(C_back,gc_3);gc_3.fill=GridBagConstraints.REMAINDER;gb_3.setConstraints(Canecelbutton,gc_3);panel_5.setLayout(gb_3);panel_5.add(Stylelabel);panel_5.add(C_style);panel_5.add(Wordlabel);panel_5.add(C_word);panel_5.add(Frontlabel);panel_5.add(C_front);panel_5.add(Backlabel);panel_5.add(C_back);panel_5.add(Canecelbutton);JPanel panel_6=new JPanel();panel_6.setLayout(new GridLayout(2,1);panel_6.add(panel_4);panel_6.add(panel_5);/*右邊組件實(shí)現(xiàn)滾動(dòng)*/JSplitPane sp=new JSplitPane(JSplitPane.VERTICAL_SPLIT,scroll,panel_6);sp.setDividerLocation(400);sp.setDividerSize(10);/*左右組件進(jìn)行連接并實(shí)現(xiàn)滾動(dòng)*/JSplitPane sp1=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,NO1panel,sp);sp1.setEnabled(false);sp1.setDividerLocation(158);sp1.setPreferredSize(this.getSize();sp1.setDividerSize(10);/*加載至Applet*/JPanel panel_7=new JPanel();GridBagLayout gb_4=new GridBagLayout();GridBagConstraints gc_4=new GridBagConstraints();gc_4.fill=GridBagConstraints.BOTH;gc_4.weightx=1.0;gc_4.weighty=1.0;gb_4.setConstraints(sp1,gc_4);panel_7.setLayout(gb_4);panel_7.add(sp1);panel_7.setSize(this.getMaximumSize();panel_7.setBorder(BorderFactory.createTitledBorder(ITEM2 CharRoom);this.setLayout(new BorderLayout();add(panel_7,BorderLayout.CENTER);/*注冊(cè)事件*/Enterbutton.addActionListener(new Enter();Sendbutton.addActionListener(new Send();Canecelbutton.addActionListener(new Cancel();Quitbutton.addActionListener(new Quit();UesrNameList.addMouseListener(new UNL();C_style.addItemListener(new C_s();C_front.addItemListener(new C_f();C_back.addItemListener(new C_b();C_music.addItemListener(new C_m();Play.addActionListener(new PL();Loop.addActionListener(new LO();Stop.addActionListener(new ST(); /*用戶登陸檢測(cè)、按紐激活以及系統(tǒng)登陸*/ class Enter implements ActionListenerpublic void actionPerformed(ActionEvent e) if(e.getSource().equals(Enterbutton)&(!(UN.getText().equalsIgnoreCase() &(!(PWord.getText().equalsIgnoreCase() Quitbutton.setEnabled(true); Sendbutton.setEnabled(true); Sayfield.setEditable(true); Enterbutton.setEnabled(false); PWord.setEnabled(false); UN.setEnabled(false); try /*和服務(wù)器建立連接*/ socket=new Socket(,8000); Text_Area.append(nn網(wǎng)絡(luò)連接成功! + n); din=new DataInputStream(socket.getInputStream(); dout=new DataOutputStream(socket.getOutputStream(); String message=login+UN.getText()+ ; UesrNameList.add(所有人); dout.writeUTF(message); /向服務(wù)器寫(xiě)入用戶名; Cthread.start(); catch(IOException q) Text_Area.append(n連接錯(cuò)誤); catch(Exception qq) Text_Area.append(n無(wú)法連接); else JOptionPane.showConfirmDialog(null,new String(用戶名或密碼不能為空),錯(cuò)誤,JOptionPane.ERROR_MESSAGE); /*事件處理*/ class Send implements ActionListenerpublic void actionPerformed(ActionEvent ee) if(ee.getSource().equals(Sendbutton)&(!(Sayfield.getText().equalsIgnoreCase() if(Quient.getState()=true) if(forField.getText().equalsIgnoreCase(所有人) Text_Area.append(請(qǐng)選擇一個(gè)具體用戶n); else try dout.writeUTF(private+UN.getText()+悄悄的+對(duì).+forField.getText()+C_word.getSelectedItem()+的說(shuō)+:+Sayfield.getText()+); catch(IOException ss) Sayfield.setText(); else if(Quient.getState()=false) if(!(forField.getText().equalsIgnoreCase() try dout.writeUTF(public+UN.getText()+對(duì)+forField.getText()+C_word.getSelectedItem()+的說(shuō)+:+Sayfield.getText()+); catch(IOException dd) Sayfield.setTex
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 讀書(shū)讓我成長(zhǎng)一本好書(shū)的讀后感(14篇)
- 我家的小動(dòng)物伙伴寫(xiě)物作文(10篇)
- 商業(yè)合作推廣與營(yíng)銷(xiāo)合作協(xié)議
- 2025年鍋爐檢驗(yàn)員資格考試試卷:鍋爐檢驗(yàn)員考試備考資料大全
- 農(nóng)村種植結(jié)構(gòu)調(diào)整與技術(shù)支持協(xié)議
- 2025年特種設(shè)備安全管理人員安全生產(chǎn)法規(guī)與實(shí)操試題匯編
- 2025年高壓電工考試題庫(kù):高壓操作安全規(guī)范綜合應(yīng)用試題
- 2025年電子商務(wù)師(初級(jí))考試試卷:電子商務(wù)法律法規(guī)在電商運(yùn)營(yíng)中的應(yīng)用案例分析
- 酒店住宿客戶信息保護(hù)協(xié)議
- 現(xiàn)代物流管理系統(tǒng)優(yōu)化研究題
- DB61∕T 1308-2019 建筑消防設(shè)施維護(hù)保養(yǎng)規(guī)范
- 國(guó)開(kāi)《民法學(xué)(1)》形考任務(wù)1-4答案
- ISTA-6-AMAZON-亞馬遜測(cè)試標(biāo)準(zhǔn)(快遞包裹運(yùn)輸)
- 第五章健康保障制度
- 2022年撫順市三支一扶考試真題
- 教學(xué)樓管理規(guī)定
- 二類輪機(jī)員適任實(shí)際操作考試試題庫(kù)
- 種植基地管理手冊(cè)
- 工業(yè)機(jī)器人操作與運(yùn)維考試中級(jí)理論知識(shí)模擬試題
- 烏審旗礦產(chǎn)資源總體規(guī)劃(2021-2025年)
- 帶貨主播直播腳本21篇
評(píng)論
0/150
提交評(píng)論