




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
PAGEPAGE23利用JAVA實現(xiàn)簡單聊天室1.設(shè)計思路Java是一種簡單的,面向?qū)ο蟮?,分布式的,解釋的,鍵壯的,安全的,結(jié)構(gòu)中立的,可移植的,性能很優(yōu)異的,多線程的,動態(tài)的語言。而且,Java很小,整個解釋器只需215K的RAM。因此運(yùn)用JAVA程序編寫聊天室,實現(xiàn)簡單聊天功能。程序?qū)崿F(xiàn)了聊天室的基本功能,其中有:(1)啟動服務(wù)器:實現(xiàn)網(wǎng)絡(luò)的連接,為注冊進(jìn)入聊天室做準(zhǔn)備。(2)注冊登陸界面:填寫基本信息如姓名等,可以供多人進(jìn)入實現(xiàn)多人聊天功能。(3)發(fā)送信息:為用戶發(fā)送信息提供平臺。(4)離開界面:使用戶退出聊天室。(5)關(guān)閉服務(wù)器:斷開與網(wǎng)絡(luò)的連接,徹底退出聊天室。2.設(shè)計方法在設(shè)計簡單聊天室時,需要編寫5個Java源文件:Server.java、Objecting.java、LogIn.java、ClientUser.java、Client.java。3程序功能圖及程序相關(guān)說明(1)主功能框圖啟動服務(wù)器注冊界面啟動服務(wù)器注冊界面發(fā)送信息(用戶A)發(fā)送信息(用戶B)發(fā)送信息(用戶C)關(guān)閉服務(wù)器序號文件名主要功能1ServerHost被服務(wù)器調(diào)用2Client顯示聊天室3ClientUser被客戶端調(diào)用4LogIn注冊登陸5Objecting連接服務(wù)器6Server啟動服務(wù)器4.程序代碼是說明程序中引入的包:packageChat;import.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.util.*;importjava.io.*;(1)服務(wù)器端代碼中用戶自定義類:類名:Server作用:服務(wù)器啟動繼承的接口名:ActionListenerpublicclassServerimplementsActionListener{定義的對象:count//記錄點機(jī)關(guān)閉按鈕次數(shù)2次關(guān)閉soconly//只有SOCKET,用于群發(fā)sockets//所有客戶的SOCKETsocket_thread//Socket所在的線乘,用于退出;frame//定義主窗體panel//定義面板start,stop//啟動和停止按鈕主要成員方法:publicvoidcenter//定義小程序查看器的位置publicvoidactionPerformed//定義處理異常機(jī)制定義子類:serverRun,Details繼承的父類名:ThreadclassserverRunextendsThread//啟線乘用于接收連入的SocketclassDetailsextendsThread//具體處理消息的線乘,只管發(fā)送消息創(chuàng)建一個ServerSocket對象,用于接受指定端口客戶端的信息
ServerSocketserver=newServerSocket("1234");接受請求時候,通過accept()方法,得到一個socket對象。
Socketsocket=server.accept();通過socket創(chuàng)建流(輸入,輸出)。
BufferedReaderbr=newBufferedReader(newInputStreamReader(socket.getInputStream()))DataInputStreamdis=newDataInputStream(socket.getInputStream());PrintWriterout=newPrintWriter(socket.getOutputStream());通過流,來和客戶交互。
(2)用戶注冊代碼中相關(guān)類:類名:LogIn作用:用戶注冊登錄繼承的接口名:ActionListenerpublicclassLogInimplementsActionListener定義的對象:Title//定義標(biāo)題Name//提示輸入姓名,添加注冊信息Send//提示點擊“進(jìn)入”,進(jìn)入聊天室構(gòu)造方法:publicLogIn()(3)客戶端:=1\*GB3①創(chuàng)建一個socket對象,用于連接服務(wù)器。=2\*GB3②用socket創(chuàng)建流。=3\*GB3③通過流和服務(wù)器進(jìn)行交互。=4\*GB3④交互完畢,將流和socket關(guān)閉。(4)聊天室:類名:Client作用:實現(xiàn)發(fā)送即時信息。繼承的接口名:ActionListenerpublicclassClientimplementsActionListener構(gòu)造方法:publicClient(Stringname2)異常處理:publicvoidactionPerformed(ActionEvente)publicvoidconnect()publicvoidactionPerformed(ActionEvente)定義的子類:ClientSocket繼承的父類:ThreadclassClientSocketextendsThread()5.設(shè)計結(jié)果與分析5個Java源文件:Server.java、Objecting.java、LogIn.java、ClientUser.java、Client.java。分別編譯這5個Java源文件,或運(yùn)行“javac*.java”命令,編譯全部的源文件,然后運(yùn)行連接服務(wù)器的主類,即運(yùn)行Server類。連接完畢后在運(yùn)行注冊的主函數(shù)類,即運(yùn)行LogIn類。 首先運(yùn)行啟動服務(wù)器的文件Server.java,運(yùn)行結(jié)果如下:圖1服務(wù)器啟動成功結(jié)果分析:在進(jìn)入聊天室之前必須先啟動服務(wù)器,實現(xiàn)服務(wù)器端的連接為用戶的登錄打開“窗口”。其次運(yùn)行用戶注冊登錄文件LogIn.java,運(yùn)行結(jié)果如下:圖2用戶登陸界面結(jié)果分析:添加用戶信息,輸入用戶姓名,為用戶進(jìn)入聊天室提供關(guān)口。并且利用以下語句實現(xiàn)如圖3的界面JLabeltitle=newJLabel("免注冊版");JLabelname=newJLabel("輸入姓名");JButtonsend=newJButton("進(jìn)入");添加注冊信息后點擊“進(jìn)入”按鈕,結(jié)果如圖3圖3顯示用戶已登錄結(jié)果分析:當(dāng)服務(wù)器啟動用戶完成信息注冊時,在服務(wù)期端的界面中會顯示當(dāng)前在線的人員,并且提示客戶已連接到服務(wù)器,可以進(jìn)行聊天行為。圖4顯示聊天內(nèi)容結(jié)果分析:多個用戶進(jìn)入聊天室之后,用戶可以在發(fā)送信息的文本框里填寫自己的內(nèi)容,點擊“發(fā)送信息”按鈕,信息會出現(xiàn)在上方的區(qū)域內(nèi),在界面的右方還可以顯示在線人員的姓名,另在線用戶可以知道有誰在聊天室內(nèi)。聊天結(jié)束點擊“離開”按鈕,結(jié)果如圖5所示:圖5離開聊天室點擊服務(wù)器中的“停止”按鈕,結(jié)果如圖6.圖7.所示:圖6點擊“停止”按鈕圖7終止與服務(wù)器端連接結(jié)果分析:用戶聊天結(jié)束點擊“離開”按鈕之后會在服務(wù)器端的界面上自動顯示該用戶已離開,提時、示服務(wù)器執(zhí)行相關(guān)行為。離開界面:使用戶退出聊天室;關(guān)閉服務(wù)器:斷開與網(wǎng)絡(luò)的連接,徹底退出聊天室。6.語句實現(xiàn)(1)Server.javapackageChat;import.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.util.*;importjava.io.*;publicclassServerimplementsActionListener{intcount=0;Vectorsoconly=newVector();HashMapsockets=newHashMap();HashMapsocket_thread=newHashMap();ServerSocketserversocket;JFrameframe;JTextAreaarea=newJTextArea();JPanelpanel=newJPanel();JButtonstart=newJButton("啟動");JButtonstop=newJButton("停止");publicServer(){panel.add(start);panel.add(stop);frame.add(panel,BorderLayout.NORTH);frame.add(area,BorderLayout.CENTER);frame.pack();center();frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);frame.setVisible(true);start.addActionListener(this);stop.addActionListener(this);System.out.println("new");}publicvoidcenter(){Toolkittoolkit=Toolkit.getDefaultToolkit();Dimensione=toolkit.getScreenSize();intx=e.width/2-(int)(frame.getSize().getWidth()/2);inty=e.height/2-(int)(frame.getSize().getHeight()/2);frame.setLocation(x,y);}publicvoidactionPerformed(ActionEvente){JButtonbtn=(JButton)e.getSource();if(btn==start){serverRunserverrun=newserverRun();System.out.println("gogo");serverrun.start();}if(btn==stop){try{Iteratori=soconly.iterator();while(i.hasNext()){Sockets=(Socket)i.next();ObjectOutputStreamout=newObjectOutputStream(s.getOutputStream());Objectingbj=newObjecting();out.writeObject("系統(tǒng)消息服務(wù)器馬上關(guān)閉?。。。。。≌堮R上關(guān)閉客戶端");}count++;if(count==2){System.exit(0);}JOptionPane.showMessageDialog(frame,"已通知客戶端,請再次點擊關(guān)閉按鈕關(guān)閉");}catch(Exceptionex){ex.printStackTrace();}}}classserverRunextendsThread{publicvoidrun(){try{System.out.println("開始SERVERRUN");serversocket=newServerSocket(55555);area.append("服務(wù)器啟動\n");start.setEnabled(false);while(true){Socketsocket=serversocket.accept();System.out.println("連接成功");BufferedReaderbr=newBufferedReader(newInputStreamReader(socket.getInputStream()));Stringname=br.readLine();area.append("服務(wù)器接收用戶"+name+"的連接\n");soconly.add(socket);Iteratori=soconly.iterator();while(i.hasNext()){Sockets=(Socket)i.next();//獲得其他SOCKET的通信口ObjectOutputStreamout=newObjectOutputStream(s.getOutputStream());out.writeObject("系統(tǒng)消息"+name+"用戶進(jìn)入"+"");}Vectorv=getList();Iteratorj=soconly.iterator();while(j.hasNext()){Sockets=(Socket)j.next();ObjectOutputStreamout=newObjectOutputStream(s.getOutputStream());out.writeObject(v);System.out.println("服務(wù)器發(fā)送用戶列表進(jìn)入");}Detailsd=newDetails(socket);socket_thread.put(name,d);d.start();}}catch(Exceptione){e.printStackTrace();}}}classDetailsextendsThread{booleanalive=true;ObjectInputStreamin;ObjectOutputStreamout;Socketsocket;Details(Socketsocket){this.socket=socket;publicvoidrun(){while(alive){try{in=newObjectInputStream(socket.getInputStream());Objectingobjecting=(Objecting)in.readObject();Stringname=objecting.getKey();Stringcontent=objecting.getValue();if(name.equalsIgnoreCase("all")){Iteratori=soconly.iterator();while(i.hasNext()){Sockets=(Socket)i.next();out=newObjectOutputStream(s.getOutputStream());out.writeObject(content);System.out.println("Send");}}if(name.equalsIgnoreCase("exit")){Detailsthread=(Details)socket_thread.get(content);thread.alive=false;area.append(content+"離開\n");socket.close();soconly.remove(socket);sockets.remove(content);Iteratori=soconly.iterator();while(i.hasNext()){Sockets=(Socket)i.next();out=newObjectOutputStream(s.getOutputStream());out.writeObject("系統(tǒng)消息"+content+"用戶離開"+"");}Vectorv=getList();Iteratorj=soconly.iterator();while(j.hasNext()){Sockets=(Socket)j.next();ObjectOutputStreamout=newObjectOutputStream(s.getOutputStream());out.writeObject(v);System.out.println("服務(wù)器發(fā)送用戶列表離開");}}if(!name.equalsIgnoreCase("all")&!name.equalsIgnoreCase("exit")){area.append("處理私聊信息");Sockets=(Socket)sockets.get(name);out=newObjectOutputStream(s.getOutputStream());out.writeObject(content);}catch(Exceptione){e.printStackTrace();}}}}publicVectorgetList(){Vectorv=newVector();Setset=sockets.keySet();Iteratori=set.iterator();while(i.hasNext()){v.add(i.next());}returnv;}publicstaticvoidmain(Stringargs[]){newServer();}}(2)Objecting.javapackageChat;importjava.io.Serializable;publicclassObjectingimplementsSerializable{Stringkey;Stringvalue;publicObjecting(){}publicObjecting(Stringkey,Stringvalue){this.key=key;this.value=value;}publicvoidsetKey(Stringkey){this.key=key;}publicvoidsetValue(Stringvalue){this.value=value;}publicStringgetKey(){returnkey;}publicStringgetValue(){returnvalue;}}(3)LogIn.javapackageChat;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassLogInimplementsActionListener{JFrameframe;JLabeltitle=newJLabel("免注冊版");JPanelbanner=newJPanel();JTextFieldtext=newJTextField(10);JPanelbody=newJPanel();JPanelbuttom=newJPanel();JLabelname=newJLabel("輸入姓名");JButtonsend=newJButton("進(jìn)入");publicLogIn(){frame=newJFrame("注冊");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,BorderLayout.SOUTH);frame.pack();center();frame.setVisible(true);send.addActionListener(this);}publicvoidcenter(){Toolkittoolkit=Toolkit.getDefaultToolkit();Dimensione=toolkit.getScreenSize();intx=e.width/2-(int)(frame.getSize().getWidth()/2);inty=e.height/2-(int)(frame.getSize().getHeight()/2);frame.setLocation(x,y);}publicvoidactionPerformed(ActionEvente){if(text.getText().equals("")){JOptionPane.showMessageDialog(frame,"姓名不能為空");return;}else{newClient(text.getText());frame.dispose();}}publicstaticvoidmain(Stringargs[]){newLogIn();}}(4)ClientUser.javapackageChat;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;import.*;importjava.io.*;publicclassClientUserextendsWindowAdapterimplementsActionListener,Runnable{publicJFramejf;publicJTextFieldjt;publicJTextFieldname;publicJButtonconnect;publicJScrollPanejsp;publicJTextAreajta;publicJButtonjb;publicJLabell;Socketsoc;InputStreamsoc_in;OutputStreamsoc_out;BufferedReaderBsoc_in;PrintWriterPsoc_out;publicClientUser(){jf=newJFrame("ClientChatRoom");jta=newJTextArea(10,30);jta.setEditable(false);jsp=newJScrollPane(jta,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);jt=newJTextField(30);name=newJTextField(5);l=newJLabel("Pleaseinputyourname");connect=newJButton("Connect");connect.addActionListener(this);jt.addActionListener(this);jb=newJButton("SendTheMessage");jb.addActionListener(this);JPaneljp=newJPanel();JPaneljp2=newJPanel();jp.setLayout(newFlowLayout());jp.add(jt);jp.add(jb);jp2.add(l);jp2.add(name);jp2.add(connect);Containerc=jf.getContentPane();c.setLayout(newGridBagLayout());GridBagConstraintsgbc=newGridBagConstraints();gbc.gridx=0;gbc.gridy=0;c.add(jp2,gbc);gbc.gridx=0;gbc.gridy=1;c.add(jsp,gbc);gbc.gridy=2;c.add(jp,gbc);jf.pack();jf.setVisible(true);}publicstaticvoidmain(String[]args){ClientUsercuser=newClientUser();}publicvoidwindowClosing(WindowEvente){System.exit(0);}publicvoidactionPerformed(ActionEvente){if(e.getSource()==connect){if(name.getText().equals("")){newJOptionPane().showMessageDialog(null,"PleaseinPutyournameFirst!");}else{try{soc=newSocket("localhost",55555);Psoc_out=newPrintWriter(soc.getOutputStream(),true);Bsoc_in=newBufferedReader(newInputStreamReader(soc.getInputStream()));Psoc_out.println(name.getText());}catch(Exceptione1){e1.printStackTrace();}name.setEditable(false);newThread(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("");}}publicvoidrun(){String text;while(true){try{text=Bsoc_in.readLine();jta.append(text+"\n");}catch(Exceptione){e.printStackTrace();}}}(5)Client.javapackageChat;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;import.*;importjava.io.*;importjava.util.Vector;publicclassClientimplementsActionListener{ClientSocketcs;Stringname;Socketsocket;JFrameframe;JTextAreaarea=newJTextArea(30,30);JTextFieldtext=newJTextField(30);JButtonsend=newJButton("發(fā)送消息");JButtonexit=newJButton("離開");JPanelbanner=newJPanel();JPanelpanel=newJPanel();Listlist=newList(35);JPanelright=newJPanel();JLabelwelcome=newJLabel();publicClient(Stringname2){=name2;welcome.setText(name+"歡迎來到聊天室");area.setEditable(false);frame=newJFrame("聊天室");frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);frame.setResizable(false);banner.add(welcome);frame.add(banner,BorderLayout.NORTH);panel.add(text);panel.add(send);panel.add(exit);frame.add(panel,BorderLayout.SOUTH);frame.add(area,BorderLayout.CENTER);right.add(newJScrollPane(list));frame.add(right,BorderLayout.EAST);frame.pack();center();frame.setVisible(true);connect();send.addActionListener(this);exit.addActionListener(this);list.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){Stringto=list.getSelectedItem();Stringcontent=JOptionPane.showInputDialog(frame,"輸入向"+name+"發(fā)送的私聊信息","私聊",JOptionPane.INFORMATION_MESSAGE);if(content==null){return;}else{Objectingo=newObjecting(to,"私聊信息--"+name+":"+content);try{ObjectOutputStreamout=newObjectOutputStream(socket.getOutputStream());out.writeObject(o);JOptionPane.showMessageDialog(frame,to+"收到消息");}catch(Exceptione2){e2.printStackTrace();}}}});text.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){if(text.getText().equals("")){JOptionPane.showMessageDialog(frame,"消息為空");return;}else{Objectingo=newObjecting("all",name+":"+text.getText())try{ObjectOutputStreamout=newObjectOutputStream(socket.getOutputStream());out.writeObject(o);text.setText("");}catch(Exceptione2){e2.printStackTrace();}}}});}publicvoidconnect(){try{socket=newSocket("localhost",55555);cs=newClientSocket();cs.start();}catch(Exceptione){e.printStackTrace();}}publicvoidcenter(){Toolkittoolkit=Toolkit.getDefaultToolkit();Dimensione=toolkit.getScreenSize();intx=e.width/2-(int)(frame.getSize().getWidth()/2);inty=e.height/2-(int)(frame.getSize().getHeight()/2);frame.setLocation(x,y);}classClientSocketextendsThread{ObjectInputStreamin;ObjectOutputStreamout;PrintWriterpw;publicvoidrun(){try{pw=newPrintWriter(socket.getOutputStream(),true);pw.println(name);}catch(Exceptione){e.printStackTrace();}while(true){try{in=newObjectInputStream(socket.getInputStream());Objecto=in.readObject();if(oinstanceofString){area.append(o.toString()+"\n");}if(oinstanceofVector){System.out.println("列表操作");Vectorv=(Vector)o;list.removeAll();Object[]obj=v.toArray();for(inti=0;i<obj.length;i++){System.out.println((String)obj[i]);list.add((String)obj[i]);}}}catch(Exceptione){e.printStackTrace();}}}}publicvoidactionPerformed(ActionEvente){JButtonbtn=(JButton)e.getSource();if(btn==send){if(text.getText().equals("")){JOptionPane.showMessageDialog(frame,"消息為空");return;}else{Objectingo=newObjecting("all",name+":"+text.getText());try{ObjectOutputStreamout=newObjectOutputStream(socket.getOutputStream());out.writeObject(o);text.setText("");}catch(Exceptione2){e2.printStackTrace();}}}if(btn==exit){Objectingo=newObjecting("exit",name);try{ObjectOutputStreamout=newObjectOutputStream(socket.getOutputStream());out.writeObject(o);cs.stop();socket.close();}catch(Exceptionx){x.printStackTrace();}System.exit(0);}}}(5)ServerHost.javapackageChat;importjava.awt.*;importjava.awt.event.*;importjava.io.*;import.*;importjavax.swing.*;importjava.util.*;publicclassServerHostextendsWindowAdapterimplementsActionListener,Runnable{publicJFramejf;publicJTextFieldjt;publicJScrollPanejsp;publicstaticJTextAreajta;publicJButtonjb;HashMaphm=newHashMap();JLabelinof;JTextFieldname;JCheckBoxcheck;OutputStreamsoc_out;VectorThread_vector=newVector();publicServerHost(){jf=newJFrame("ServerChatRoom");jta=newJTextArea(10,30);jta.setEditable(false);jsp=newJScrollPane(jta,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);jt=newJTextField(30);jt.addActionListener(this);jb=newJButton("SendTheMessage");jb.addActionListener(this);check=newJCheckBox("Sendtoall");check.setSelected(true);inof=newJLabel("writethenameyouwanttosend");name=newJTextField(5);name.enable(false);JPaneljp=newJPanel();jp.setLayout(newFlowLayout());jp.add(inof);jp.add(name);jp.add(jt);jp.add(jb);jp.add(check);Containerc=jf.getContentPane();c.setLayout(newGridBagLayout());GridBagConstraintsgbc=newGridBagConstraints();gbc.gridx=0;gbc.gridy=0;c.add(jsp,gbc);gbc.gridy=1;c.add(jp,gbc);jf.pack();jf.setVisible(true);}publicvoidwindowClosing(WindowEvente){System.exit(0);}publicstaticvoidmain(String[]args){ServerHostsh=newServerHost();newThread(sh).start();}publicvoidrun(){ServerSocketssc=null;try{ssc=newServerSocket(55555);}catch(Exceptione){System.out.print("1");}while(true){try{Socketsoc=ssc.accept();BufferedReaderBsoc_in=newBufferedReader(newInputStreamReader(soc.getInputStream()));Strings=Bsoc_in.readLine();hm.put(soc,s);ServerThreadst=newServerThread(soc);Thread_vector.addElement(soc);newThread(st).start();}catch(Exceptione){System.out.print("2");}}}publicvoidactionPerformed(ActionEvente){booleanfind=false;Stringtemp="";try{if(check.isSelected()){for(inti=0;i<Thread_vector.size();i++){Sockets=(Socket)(Thread_vector.elementAt(i));PrintWriterPsoc_out=newPrintWriter(s.getOutputStream(),true);temp="Server:"+jt.getText()+"\n";Psoc_out.println("Server:"+jt.getText());Psoc_out.flush();}jta.append(temp);jt.setText("");}else{System.out.print("aaaaaaaa");Setshm=hm.keySet();Iteratorit=shm.iterator();while(it.hasNext()){Map.Entryme=(Map.Entry)(it.next());StringSstr=(String)(me.getValue());if(Sstr.equals(name.getText())){SocketSmsoc=(Socket)(me.getKey());PrintWriterPsoc_out=newPrintWriter(Smsoc.getOutputStream(),true);Psoc_out.println(name.getText()+jt.getText());find=true;}}if(find==false){newJOptionPane().showMessageDialog(null,"CannotfindtheClientuser");}}}catch(Exceptione3){e3.printStackTrace();}}}classServerThreadimplementsRunnable{Socketsocket;InputStreamsoc_in;BufferedReaderBsoc_in;ServerThread(Socketsocket){this.socket=socket;}publicvoidrun(){try{soc_in=socket.getInputStream();Bsoc_in=newBufferedReader(newInputStreamReader(soc_in));Strings=Bsoc_in.readLine();while(true){if(s!=null)ServerHost.jta.append(s+"\n");s=Bsoc_in.readLine();}}catch(Exceptione){System.out.print("3");}}}摘要大型活動服務(wù)工作是當(dāng)前普遍采取的做法。根據(jù)大型活動的項目化特征,可以運(yùn)用項目管理的方法和技術(shù)來對其進(jìn)行有效管理,最大限度地發(fā)揮志愿者這一特殊人力資源的作用,從而保證活動的成功舉辦。通過對大型活動的調(diào)查和研究,探尋大型活動籌辦中項目組織實施的思路,并以項目管理和人力資源管理的理論方法為基礎(chǔ)和工具,構(gòu)建一套適合大型活動項目的項目管理模式。關(guān)鍵詞:項目管理;人力資源;大型活動;管理模式AbstractItisgenerallyacceptedthattheinvolvementofvolunteersareessentialtolarge—scaleactivities,Duetotheprojectizationofalarge—sealeactivety,volunteerprojectcanbeeffectivelymanagedwiththemethodsandtechniquesofprojectmanagement,maximinzingthespecialhumanresourcesofvolunteers,thusensuringtheactivity.Thisdissertationaimstoexploretheorganiztationandimpementationmethodofvolunteerprojectinlaarge—sealeactivitiesbydoinginvestigationandresearchintothevolunteerserviceoflarge—scaleactiveties.Moreover,basedonthetheoreticalmethodsandtoolsofprojectmanagementandhumanresourcemanagement,amanagementsystemwillbetailoredforvolunteerprojectinlarge—scaleactivetiestoensurethescientificmanagementofvolunteer'srecruiting,training,running,controlling,aswellasitsincentiveandguaranteesystem.Keywords:projectmanagement,humanresource,large—scaleactivities,managementsystem目錄1.1研究背景…………41.2研究意義…………41.3研究思路…………51.4研究方法…………51.4.1文獻(xiàn)資料法1.4.2實證分析法1.4.3實踐調(diào)查法2.1項目管理 …………62.2項目管理的一般進(jìn)程 ………………63.1大連港工程項目管理新模式 ………73.2大連港集團(tuán)項目代建制項目建設(shè)管理流程設(shè)計……73.3某區(qū)污染源普查項目實施流程概述 3.3.1項目實施流程 3.3.2項目工作內(nèi)容 3.4某區(qū)污染源普查項目特點分析 4.1項目實施準(zhǔn)備階段管理流程設(shè)計……………………84.2項目實施階段管理流程設(shè)計………84.3項目驗收階段管理流程設(shè)計………95.1建設(shè)項目管理信息系統(tǒng)方案設(shè)計 ………………115.1.1系統(tǒng)的總體建設(shè)目標(biāo) 5.1.2系統(tǒng)功能的實現(xiàn)方式 5.1.3系統(tǒng)應(yīng)用模式6.1結(jié)論 ………………126.2展望 ………………12致謝………………14大型活動項目管理模式第一章引言1.1研究背景隨著全球政治、經(jīng)濟(jì)一體化時代的到來和我國社會經(jīng)濟(jì)的快速發(fā)展,越來越多的國際性大型活動在我國舉辦,如2008年的北京奧運(yùn)會、2010年的上海世博會、廣州亞運(yùn)會等。組織好這些大型活動,無論是對國家、政府、企業(yè)、單位還是個人,都有著重要而非凡的意義。因此,加強(qiáng)對大型活動的策劃、組織、實施和管理的研究也就理所當(dāng)然地成為政府、企業(yè)等組織都必須面對的一項重要工作。大型活動的組織實施是一項復(fù)雜的系統(tǒng)工程,為了保證活動的成功舉辦,組織者往往需要投入大量的人力、財力、物力等各種資源,運(yùn)用科學(xué)的管理方法和手段,并不斷強(qiáng)化投入資源的使用效率。隨著現(xiàn)代大型活動項目的規(guī)模日益擴(kuò)大,特別是以奧運(yùn)會、世博會等為代表的綜合性項目的開展,其組織管理工作難度不斷加大,而如何滿足大型活動對人力資源的大量需求,成為對組織者的最大考驗。而志愿者作為一個不計報酬、無償服務(wù)、甘愿奉獻(xiàn)的特殊人力資源,就凸顯出重要作用。大型活動項目具有與一般項目不同的特殊性,這也決定了項目的管理具有其復(fù)雜性和特殊性。在項目的管理過程中,管理者隨時面臨著各種各樣的問題和考驗,比如,如何確保為大型活動招募到足夠的志愿者、如何保障志愿者的素
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國際貿(mào)易買賣合同模板
- 采購合同協(xié)議樣本
- 機(jī)械租賃安全規(guī)范合同版
- 供熱服務(wù)保障合同
- 工廠購銷合同范本
- 城市戶外廣告投放工程合同
- 塔吊設(shè)備供應(yīng)合同
- 采購與供應(yīng)合同協(xié)議書范本
- 長期倉庫租賃合同模板
- 寵物貓咪領(lǐng)養(yǎng)及養(yǎng)護(hù)合同2025
- 少兒美術(shù)幼兒園課件- 4-6歲 《沙漠鴕鳥》
- ChatGPT人工智能與通用大模型演講稿
- 撤場通知書( 模板)
- richcui美國sspc富鋅底漆解讀
- IATF169492016內(nèi)部審核報告范例
- 人教版高中地理必修一全冊測試題(16份含答案)
- 成果導(dǎo)向(OBE)教育理念課件
- 交通運(yùn)輸概論全套PPT完整教學(xué)課件
- 西北工業(yè)大學(xué)英文簡介
- 《動畫場景設(shè)計》第一章 動畫場景設(shè)計概述
- 2023年湖北宜昌伍家新城投資控股集團(tuán)有限公司招聘筆試題庫含答案解析
評論
0/150
提交評論