版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 本 科 課 程 設(shè) 計</p><p> 課程設(shè)計題目: 簡單的網(wǎng)絡(luò)聊天程序</p><p><b> 課程設(shè)計報告</b></p><p><b> 1.設(shè)計目的:</b></p><p><b> 序言</b></p><p
2、><b> 1.1 背景</b></p><p> 在當(dāng)今的信息時代,越來越多的聊天工具被應(yīng)用 ,Java語言是當(dāng)今流行的網(wǎng)絡(luò)編程語言,它具有面向?qū)ο?、與平臺無關(guān)、安全、多線程 等特點。使用Java語言不僅可以實現(xiàn)大型企業(yè)級的分布式應(yīng)用系統(tǒng),還能夠為小型的、嵌入 式設(shè)備進(jìn)行應(yīng)用程序的開發(fā)。面向?qū)ο蟮拈_發(fā)方法是當(dāng)今世界最流行的開發(fā)方法,它不僅具有更貼近自然的語義,而且有利于軟件的維護(hù)
3、和繼承。為了進(jìn)一步鞏固課堂上所學(xué)到的知識,深刻把握J(rèn)ava語言的重要概念及其面向?qū)ο蟮奶匦?,鍛煉我們熟練的?yīng)用面向?qū)ο蟮乃枷牒驮O(shè)計方法解決實際問題的能力,開設(shè)了Java程序設(shè)計課程設(shè)計。</p><p> 此次課程設(shè)計的題目為簡單的聊天室,通過做鞏固所學(xué)Java語言基本知識,增進(jìn)Java語言編輯基本功,掌握J(rèn)DK、JCreator等開發(fā)工具的運(yùn)用,拓寬常用類庫的應(yīng)用。使我們通過該教學(xué)環(huán)節(jié)與手段,把所學(xué)課程及相關(guān)
4、知識加以融會貫通,全面掌握J(rèn)ava語言的編程思想及面向?qū)ο蟪绦蛟O(shè)計的方法,為今后從事實際工作打下堅實的基礎(chǔ)。</p><p><b> 1.2 相關(guān)技術(shù)</b></p><p> CPU:Pentium 2.8GHz以上</p><p> 內(nèi)存:256MB以上</p><p> 硬盤空間:80G以上</p&
5、gt;<p> 操作系統(tǒng):Windows7</p><p> 運(yùn)行環(huán)境:eclips</p><p> 2. 程序設(shè)計與實現(xiàn)</p><p><b> 2.1需求分析</b></p><p> Java是一種簡單的,面向?qū)ο蟮?,分布式的,解釋的,鍵壯的,安全的,結(jié)構(gòu)中立的,可移植的,性能很優(yōu)異的
6、,多線程的,動態(tài)的語言。Java去掉了C++語言的許多功能,如:指針運(yùn)算、結(jié)構(gòu)、typedefs、#define,讓Java的語言功能很精煉,并增加了一些很有用的功能,如自動收集碎片。這將減少平常出錯的50%。而且,Java很小,整個解釋器只需215K的RAM。</p><p> 因此運(yùn)用JAVA程序編寫聊天室,實現(xiàn)簡單聊天功能。本次課程設(shè)計做的是Java簡單聊天室,它是圖形界面、線程、流與文件等技術(shù)的綜合應(yīng)用
7、,其界面主要采用了java.awt包,javax.swing包等。 程序?qū)崿F(xiàn)了聊天室的基本功能,其中有:</p><p> ?。?)啟動服務(wù)器:實現(xiàn)網(wǎng)絡(luò)的連接,為注冊進(jìn)入聊天室做準(zhǔn)備。</p><p> ?。?)啟動客戶端:實現(xiàn)網(wǎng)絡(luò)的鏈接,可以進(jìn)行正式的聊天</p><p> ?。?)發(fā)送信息:為用戶發(fā)送信息提供平臺。</p><p> ?。?/p>
8、4)離開界面:使用戶退出聊天室。</p><p> (5)關(guān)閉服務(wù)器:斷開與網(wǎng)絡(luò)的連接,徹底退出聊天室。</p><p> 2.2 系統(tǒng)整體設(shè)計</p><p><b> 圖1 程序基本框圖</b></p><p><b> 2.3 代碼實現(xiàn)</b></p><p>
9、<b> 3.系統(tǒng)詳細(xì)設(shè)計:</b></p><p><b> 客戶端:</b></p><p> package 課程設(shè)計;</p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p>
10、; import java.net.*;</p><p> import java.io.*;</p><p> import javax.swing.JOptionPane;</p><p> public class TClient</p><p><b> {</b></p><p&g
11、t; public static void main(String[] args)</p><p><b> {</b></p><p> new TCPClient().launch();</p><p><b> }</b></p><p><b> }</b>&
12、lt;/p><p> class TCPClient</p><p><b> {</b></p><p> private TextArea ta = null;</p><p> private TextField tf = null;</p><p> private Button b
13、n = null;</p><p> private DataInputStream dis = null;</p><p> private DataOutputStream dos = null;</p><p> private Socket s = null;</p><p> private Frame f = null;&
14、lt;/p><p> public void launch()</p><p><b> {</b></p><p> createUI();</p><p> connect(); </p><p> new TCPClientReader().start(); </p>
15、<p> new TCPClientWriter().start(); </p><p><b> }</b></p><p> public void createUI()</p><p><b> {</b></p><p> f = new Frame("客戶
16、端");</p><p> f.setLocation(300, 200);</p><p> ta = new TextArea();</p><p> tf = new TextField();</p><p> Panel p = new Panel(new BorderLayout());</p>&l
17、t;p> bn = new Button("發(fā)送");</p><p> p.add(tf, BorderLayout.CENTER);</p><p> p.add(bn, BorderLayout.EAST);</p><p> f.add(ta, BorderLayout.CENTER);</p><p&g
18、t; f.add(p, BorderLayout.SOUTH);</p><p> f.setSize(400, 400);</p><p> f.setVisible(true);</p><p> f.addWindowListener(</p><p> new WindowAdapter()</p><
19、p><b> {</b></p><p> public void windowClosing(WindowEvent e)</p><p><b> {</b></p><p> System.exit(-1);</p><p><b> }</b></
20、p><p><b> }</b></p><p><b> );</b></p><p><b> }</b></p><p> public void close()</p><p><b> {</b></p>
21、;<p><b> try</b></p><p><b> {</b></p><p> dis.close();</p><p> dos.close();</p><p> s.close();</p><p><b> }</
22、b></p><p> catch (Exception e)</p><p><b> {</b></p><p> //System.exit(-1);</p><p><b> }</b></p><p><b> }</b><
23、;/p><p> public void connect()</p><p><b> {</b></p><p><b> try</b></p><p><b> {</b></p><p> s = new Socket("127.
24、0.0.1", 8888); //此IP可以修改,如果要可以達(dá)到很遠(yuǎn)的距離聊天不但需要IP地址,</p><p> //還要有很高的 硬件配置</p><p> dis = new DataInputStream(s.getInputStream());</p><p> dos = new DataOutputStream(s.getOutput
25、Stream());</p><p><b> }</b></p><p> catch (Exception e)</p><p><b> {</b></p><p> //e.printStackTrace();</p><p> //System
26、.exit(-1);</p><p><b> }</b></p><p><b> }</b></p><p> class TCPClientReader extends Thread</p><p><b> {</b></p><p&g
27、t; public void run()</p><p><b> {</b></p><p> while (true)</p><p><b> {</b></p><p><b> try</b></p><p><b> {
28、</b></p><p> String str = dis.readUTF();</p><p> ta.append("美女說: " + str + "\n");</p><p> if (str.equals("再見"))</p><p><b>
29、 {</b></p><p><b> close();</b></p><p> System.exit(-1);</p><p><b> }</b></p><p><b> }</b></p><p> catch (Exc
30、eption e)</p><p><b> {</b></p><p> JOptionPane.showMessageDialog(f, "提示: 服務(wù)器端已經(jīng)斷開連接");</p><p> //e.printStackTrace();</p><p> //System.exit(-
31、1);</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }&l
32、t;/b></p><p> class TCPClientWriter extends Thread</p><p><b> {</b></p><p> public void run()</p><p><b> {</b></p><p> tf.a
33、ddActionListener(new TCPClientListener());</p><p> bn.addActionListener(new TCPClientListener());</p><p><b> }</b></p><p><b> }</b></p><p>
34、class TCPClientListener implements ActionListener</p><p><b> {</b></p><p><b> @Override</b></p><p> public void actionPerformed(ActionEvent e) //這里的e<
35、/p><p><b> {</b></p><p><b> try</b></p><p><b> {</b></p><p> String str = tf.getText();</p><p> tf.setText("&quo
36、t;);</p><p> ta.append("自己說: " + str + "\n");</p><p> dos.writeUTF(str);</p><p> if (str.equals("再見"))</p><p><b> {</b><
37、;/p><p><b> close();</b></p><p> System.exit(-1);</p><p><b> }</b></p><p><b> }</b></p><p> catch (Exception e2)
38、 //如果這里的形參也定義為e,將會和上面的代碼中的形參e命名重復(fù), 因此這里改為其他名字</p><p><b> {</b></p><p> e2.printStackTrace();</p><p> System.exit(-1);</p><p><b> }</b></
39、p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 服務(wù)器端:</b></p><p> package 課程設(shè)計;</p>
40、<p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> import java.net.*;</p><p> import java.io.*;</p><p> import javax.swing.*;</p><p&g
41、t; public class TServer</p><p><b> {</b></p><p> public static void main(String[] args)</p><p><b> {</b></p><p> new TCPServer().launch();&
42、lt;/p><p><b> }</b></p><p><b> }</b></p><p> class TCPServer</p><p><b> {</b></p><p> private TextArea ta = null;<
43、/p><p> private TextField tf = null;</p><p> private Button bn = null;</p><p> private DataInputStream dis = null;</p><p> private DataOutputStream dos = null;</p&g
44、t;<p> private ServerSocket ss = null;</p><p> private Socket s = null; </p><p> private Frame f = null;</p><p> public void launch()</p><p><b> {<
45、/b></p><p> createUI();</p><p> connect(); //如果客戶端程序沒有打開的話,則程序?qū)⒃谕磺?,即如果客戶端程序沒有打開的話, 代碼是不會執(zhí)行的</p><p> new TCPServerReader().start(); </p><p> new TCPServerWrit
46、er().start(); </p><p><b> }</b></p><p> public void createUI()</p><p><b> {</b></p><p> f = new Frame();</p><p> f.setTitle(&
47、quot;服務(wù)器端");</p><p> ta = new TextArea();</p><p> tf = new TextField();</p><p> Panel p = new Panel(new BorderLayout());</p><p> bn = new Button("發(fā)送"
48、);</p><p> p.add(tf, BorderLayout.CENTER);</p><p> p.add(bn, BorderLayout.EAST);</p><p> f.add(ta, BorderLayout.CENTER);</p><p> f.add(p, BorderLayout.SOUTH);</p
49、><p> f.setSize(400, 400);</p><p> f.setVisible(true);</p><p> f.addWindowListener(</p><p> new WindowAdapter()</p><p><b> {</b></p>
50、<p> public void windowClosing(WindowEvent e)</p><p><b> {</b></p><p> System.exit(-1);</p><p><b> }</b></p><p><b> }</b>&
51、lt;/p><p><b> );</b></p><p><b> }</b></p><p> public void close()</p><p><b> {</b></p><p><b> try</b><
52、;/p><p><b> {</b></p><p> dis.close();</p><p> dos.close();</p><p> s.close();</p><p> ss.close();</p><p><b> }</b>
53、</p><p> catch (Exception e)</p><p><b> {</b></p><p> System.exit(-1);</p><p><b> }</b></p><p><b> }</b></p>
54、<p> public void connect()</p><p><b> {</b></p><p><b> try</b></p><p><b> {</b></p><p> ss = new ServerSocket(8888);<
55、/p><p> s = ss.accept(); </p><p> dis = new DataInputStream(s.getInputStream());</p><p> dos = new DataOutputStream(s.getOutputStream());</p><p><b> }</b>
56、</p><p> catch (Exception e)</p><p><b> {</b></p><p> //e.printStackTrace();</p><p> System.exit(-1); </p><p><b> }</b></p
57、><p><b> }</b></p><p> class TCPServerReader extends Thread</p><p><b> {</b></p><p> public void run()</p><p><b> {</b&g
58、t;</p><p> while (true)</p><p><b> {</b></p><p><b> try </b></p><p><b> {</b></p><p> String str = dis.readUTF();
59、 //如果客戶端斷開連接的話,dis.readUTF()會拋出java.io.EOFException異常;</p><p> //如果只捕獲異常而不處理異常的話,則編譯器會認(rèn)為異常已得到處理,因此程序會繼續(xù)向下執(zhí)行,而不是立即終止程序, </p><p> //其最終結(jié)果是程序陷入死循環(huán),不停的執(zhí)行代碼</p><p> ta.append(&q
60、uot;帥哥說: " + str + "\n");</p><p> if (str.equals("再見"))</p><p><b> {</b></p><p><b> close();</b></p><p> System.exi
61、t(-1);</p><p><b> }</b></p><p><b> }</b></p><p> catch (Exception e) </p><p><b> {</b></p><p> JOptionPane.showMe
62、ssageDialog(f, "提示: 客戶端已經(jīng)斷開連接");</p><p> //e.printStackTrace();</p><p> //System.exit(-1);</p><p><b> return ;</b></p><p><b> } &l
63、t;/b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> class TCPServerWriter extends Thread</p><p><
64、;b> {</b></p><p> public void run()</p><p><b> {</b></p><p> tf.addActionListener(new TCPServerListener());</p><p> bn.addActionListener(new T
65、CPServerListener());</p><p><b> }</b></p><p><b> }</b></p><p> class TCPServerListener implements ActionListener</p><p><b> {</
66、b></p><p><b> @Override</b></p><p> public void actionPerformed(ActionEvent e) </p><p><b> {</b></p><p><b> try</b></p>
67、;<p><b> {</b></p><p> String str = tf.getText();</p><p> tf.setText("");</p><p> ta.append("自己說: " + str + "\n");</p>&l
68、t;p> dos.writeUTF(str);</p><p> if (str.equals("再見"))</p><p><b> {</b></p><p><b> close();</b></p><p> System.exit(-1);</p&
69、gt;<p><b> }</b></p><p><b> }</b></p><p> catch (Exception e2) </p><p><b> {</b></p><p> //e2.printStackTrace();&l
70、t;/p><p> System.exit(-1);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>
71、<p><b> 測試結(jié)果與分析</b></p><p> 將兩個源程序文件分別打開,但是要記住老師說過的,必須先打開服務(wù)器端TServer,才能打開客戶端TClient,或運(yùn)行“javac *.java”命令,編譯全部的源文件,然后運(yùn)行連接服務(wù)器的主類,即運(yùn)行Server類。連接完畢后在運(yùn)行注冊的主函數(shù)類。</p><p> 首先,運(yùn)行TServe
72、r,運(yùn)行結(jié)果如下:</p><p> 結(jié)果分析:這個事后已經(jīng)建立了服務(wù)器端的聊天系統(tǒng),下面只需要在建立起客戶端的系統(tǒng)就能夠?qū)崿F(xiàn)其聊天任務(wù)了。</p><p> 其次,運(yùn)行客戶端,運(yùn)行結(jié)果如下:</p><p> 然后就可以進(jìn)行我們的聊天功能了,具體的過程為這樣:</p><p> 然后可以互相對說,并且還能夠一個人說多句話,另一個人可
73、以任意的根據(jù)情況來回復(fù),這個是這課程設(shè)計的關(guān)鍵所在。如下:</p><p> 最后是關(guān)閉整個系統(tǒng):可以任意的進(jìn)行退出。操作情況如下:</p><p><b> 退出,感謝使用!</b></p><p> 將5個Java源文件:Server.java、Objecting.java、LogIn.java、ClientUser.java、Cl
74、ient.java。分別編譯這5個Java源文件,或運(yùn)行“javac *.java”命令,編譯全部的源文件,然后運(yùn)行連接服務(wù)器的主類,即運(yùn)行Server類。連接完畢后在運(yùn)行注冊的主函數(shù)</p><p> 類,即運(yùn)行LogIn類。</p><p> 首先運(yùn)行啟動服務(wù)器的文件Server.java,運(yùn)行結(jié)果如下:</p><p><b> 圖2服務(wù)器啟
75、動成功</b></p><p> 結(jié)果分析:在進(jìn)入聊天室之前必須先啟動服務(wù)器,實現(xiàn)服務(wù)器端的連接為用戶的登錄打開“窗口”。</p><p> 其次運(yùn)行用戶注冊登錄文件LogIn.java,運(yùn)行結(jié)果如下:</p><p><b> 圖3用戶登陸界面</b></p><p> 結(jié)果分析:添加用戶信息,輸入
76、用戶姓名,為用戶進(jìn)入聊天室提供關(guān)口。并且利用以下語</p><p> 句實現(xiàn)如圖4的界面 JLabel title=new JLabel("免注冊版");</p><p> JLabel name=new JLabel("輸入姓名");</p><p> JButton send=new JButton("進(jìn)
77、入");</p><p> 添加注冊信息后點擊“進(jìn)入”按鈕,結(jié)果如圖5</p><p><b> 圖4顯示用戶已登錄</b></p><p> 結(jié)果分析:當(dāng)服務(wù)器啟動用戶完成信息注冊時,在服務(wù)期端的界面中會顯示當(dāng)前在線的人員,并且提示客戶已連接到服務(wù)器,可以進(jìn)行聊天行為。</p><p><b>
78、; 圖5 顯示聊天內(nèi)容</b></p><p> 結(jié)果分析:多個用戶進(jìn)入聊天室之后,用戶可以在發(fā)送信息的文本框里填寫自己的內(nèi)容,點擊“發(fā)送信息”按鈕,信息會出現(xiàn)在上方的區(qū)域內(nèi),在界面的右方還可以顯示在線人員的姓名,另在線用戶可以知道有誰在聊天室內(nèi)。</p><p> 聊天結(jié)束點擊“離開”按鈕,結(jié)果如圖7所示:</p><p><b>
79、圖6離開聊天室</b></p><p> 點擊服務(wù)器中的“停止”按鈕,結(jié)果如圖8.圖9所示:</p><p> 圖7 點擊“停止”按鈕</p><p> 結(jié)果分析:用戶聊天結(jié)束點擊“離開”按鈕之后會在服務(wù)器端的界面上自動顯示該用戶已離開,提時、示服務(wù)器執(zhí)行相關(guān)行為。</p><p> 綜上所述:通過運(yùn)行這5個文件基本實現(xiàn)多
80、用戶在線聊天的功能,如啟動服務(wù)器:實現(xiàn)網(wǎng)絡(luò)的連接,為注冊進(jìn)入聊天室做準(zhǔn)備;注冊登陸界面:填寫基本信息如姓名等,可以供多人進(jìn)入實現(xiàn)多人聊天功能;發(fā)送信息:為用戶發(fā)送信息提供平臺。</p><p> 離開界面:使用戶退出聊天室;關(guān)閉服務(wù)器:斷開與網(wǎng)絡(luò)的連接,徹底退出聊天室。但還存在一定的不完善,在以后的編程中還有待于加強(qiáng)。</p><p><b> 總結(jié)心得體會</b>
81、;</p><p> 我花費(fèi)了近一個多月的時間,查閱了許多相關(guān)的資料,終于把這個Java聊天系統(tǒng),程序基本實現(xiàn)了該課程設(shè)計的基本要求。在設(shè)計的過程中了解到自己的知識還是比較有限,更肯定了自己在以后學(xué)習(xí)編程的道路上堅定不移的但由于只學(xué)習(xí)了一個學(xué)期的JAVA語言,自己水平有限,使得程序還有不是很完善。 回顧起此次java,至今我仍感慨頗多,的確,從選題到定稿,從理論到實踐,在整整一星期的日子里,可以說得是
82、苦多于甜,但是可以學(xué)到很多很多的的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正掌握這門技術(shù),也提高了自己的獨(dú)立思考的能力。在設(shè)計的過程中遇到問題,可以說得上是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對
83、以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,通過這次課程設(shè)計之后,一定把以前所學(xué)過的知識重新溫故。</p><p> 通過此次課程設(shè)計,將我本學(xué)期所學(xué)的JAVA知識得到鞏固和應(yīng)用,在設(shè)計的過程中我遇到了很到問題,不過在老師和同學(xué)們的幫助和自己的思考下還是很好的完成了。這此課程設(shè)計還讓我懂得了寫程序不能閉門造車,要努力拓寬知識面,開闊視野,拓展思維。它還讓我學(xué)會了在網(wǎng)上查閱那些無限的資料。讓我不僅學(xué)會了書本上
84、的知識,還讓自己能夠面對困難并且克服它。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]張思民,梁維娜.Java程序設(shè)計實踐教程[M].北京:清華大學(xué)出版社;2006.8:1-21</p><p> [2] 葉核亞.JAVA2程序設(shè)計實用教程[M](第2版).北京:電子工業(yè)出版社;2008.4.</p>
85、<p><b> 5.致謝:</b></p><p> 感謝**老師在一個學(xué)期對我們的教導(dǎo),但是由于我的編程底子要比別人差,所以只能做出這樣不是很理想的課程設(shè)計,也要請老師您能夠原諒我,我不是故意的,而是我真的已經(jīng)盡力了,不過我在未來的日子里會慢慢進(jìn)步上來的,我已經(jīng)買了很多的書籍給我充電,相信我在以后一定成為一名讓你感到驕傲的學(xué)生。謝謝您!也請你要記住我噢~我會努力的,加油!
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計-聊天程序
- java課程設(shè)計聊天小程序
- 課程設(shè)計一個簡單的網(wǎng)絡(luò)聊天程序
- java課程設(shè)計報告--聊天小程序
- java課程設(shè)計之簡單聊天室
- 網(wǎng)絡(luò)編程課程設(shè)計-簡單的聊天室程序設(shè)計
- 網(wǎng)絡(luò)編程課程設(shè)計-簡單的聊天室程序設(shè)計
- java課程設(shè)計報告---利用java實現(xiàn)簡單聊天室
- java網(wǎng)絡(luò)聊天室課程設(shè)計
- java課程設(shè)計報告--利用java設(shè)計簡單聊天對話框
- 局域網(wǎng)聊天程序java課程設(shè)計
- 操作系統(tǒng)課程設(shè)計--簡單的聊天程序
- 操作系統(tǒng)課程設(shè)計--簡單的聊天程序
- 網(wǎng)絡(luò)編程課程設(shè)計-java聊天室
- mfc聊天軟件課程設(shè)計---網(wǎng)絡(luò)聊天程序設(shè)計
- mfc聊天軟件課程設(shè)計---網(wǎng)絡(luò)聊天程序設(shè)計
- 基于java的簡易網(wǎng)絡(luò)聊天程序-計算機(jī)網(wǎng)絡(luò)課程設(shè)計
- 網(wǎng)絡(luò)課程設(shè)計---簡單聊天系統(tǒng)的設(shè)計與實現(xiàn)
- java課程設(shè)計--簡單記事本程序的設(shè)計
- java課程設(shè)計--局域網(wǎng)聊天程序的設(shè)計與實現(xiàn)
評論
0/150
提交評論