java聊天室项目设计书

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1Java项目设计————聊天室设计设计人:XXX指导老师:XXX设计时间:2005-4-17到2005-4-242目录第一部分项目概况1.项目说明………………………………………………………………………..42.项目背景………………………………………………………………………..4第二部分项目计划1.项目目标………………………………………………………………42.项目范围………………………………………………………………43.项目策略………………………………………………………………44.项目开发周期…………………………………………………………45.每项任务所需技能……………………………………………………56.所采用的工具和技术清单……………………………………………5第三部分项目设计1需求分析……………………………………………………………………….52软件功能……………………………………………………………………….53概要设计……………………………………………………………………….64详细设计……………………………………………………………………….6第四部分项目测试1.测试阶段2.程序界面.…………………………………………………………………73.程序运行的条件4.参考的资料第五部分活动总结3第一部分项目概况1.项目说明项目名称:JAVA聊天室系统。客户:一般大众。2、项目背景NIIT的课程重在对实际动手能力的培养。通过一段时间JAVA课程的学习,需要对所学的知识作一个综合的运用。由于JAVA强大的网络编程能力,需要写一个简单的聊天室程序的项目,主要能实现在网络上的多线程间的通讯。项目的目的在于巩固前段时间所学的知识以及锻炼小组成员之间团队合作的能力。第二部分项目计划1.项目目标(1),允许新用户注册,同时开设帐户。(2),登陆后在用户列表框显示所有的用户姓名。(3),允许用户进行在线的公聊和私聊。(4),把客户端的界面放在Applet上面,在聊天时可以对面版进行一些简单设置。2.项目范围本软件适用于一般大众。3.项目策略通过可视化编程的JAVA程序的方式进行实现。通过增量开发的方法进行此项目的设计与开发。使用套节字进行客户与服务端的通讯。4.项目开发周期4第一天需求分析及初步设计阶段(决定每个功能所需的类及数据类型)第二天根据相应功能设计出各类所用到的方法及数据类型第三天~第五天具体实现各个类中的各个方法第六天对各个界面和服务器进行调整及测试完善工作5.每项任务所需技能服务端与客户端的连接:网络编程中的协议及数据流,异常处理,多线程。程序界面设计:GUI图形用户组件,布局管理,事件监听。代码实现:JAVA与数据库编程。6.所采用的工具开发工具:MicrosoftJAVALE(jdk1.4)+JCreatorLE开发环境:windowsXP+个人电脑第三部分项目设计1.需求分析随着经济的日益发展,网络的观念深入人心。人们越来越需要通过网络高效简捷的交流,聊天室就是其中的一个工具。2.软件主要功能(1),允许新用户注册,同时开设帐户。(2),登陆后在用户列表框显示所有的用户姓名。(3),允许用户进行在线的公聊和私聊。5(4),把客户端的界面放在Applet上面,在聊天时可以对面版进行一些简单设置。程序中要用到的类1、客户端2、服务器端3概要设计聊天室的程序至少需要建立两个程序:一个服务器端,负责监听客户端发送过来的请求,一但监听到客户端的请求,先判断它是登陆信息还是聊天信息,若是登陆信息,那么允许客户端登陆,并把登陆的客户名返回给客户端显示在用户在线列表框内。如果是聊天信息,则把它群发给每个客户端。服务器端不对聊天的信息作公聊和私聊的判断,由客户端收到消息后判断是否是发给自己的信息,以及是否显示在聊天面板上面。客户端的程序需要运用图形化编程做出一个界面。我们小组所做的界面是在聊天室界面的左上方为一个在线用户列表框,列表框的下面有用户登陆的文本域和密码输入框。右边是聊天面板,聊天面板的下面是输入聊天信息的文本域,以及发送和清空按纽。当输入用户名和密码登陆后,在用户列表框内会显示当前在线的所有的用户姓名并且在聊天面板上显示某用户进入了聊天室。然后屏蔽掉登陆和密码输入框。在信息输入框中输入聊天信息后点击发送,在所有客户端的聊天面板上会看到你发送的聊天信息。在用户列表框选择某个用户,勾选私聊复选框然后发送消息,这时只有被你选择的客户端能看到你发送的信息。4详细设计服务器端代码://聊天室服务器端程序importjava.io.*;importjava.net.*;importjava.util.*;publicclassHomeworkimplementsRunnable{Threadthread;staticVectorvector;ServerSocketserver;6publicHomework(){try{server=newServerSocket(8000);System.out.println(服务器已启动);}catch(IOExceptione){}vector=newVector(100);thread=newThread(this);thread.start();}publicvoidrun(){try{while(true){Socketsocket=server.accept();PThreadpt=newPThread(this,socket);pt.setPriority(Thread.MAX_PRIORITY);pt.start();vector.addElement(pt);}}catch(IOExceptionr){}}publicstaticvoidmain(Stringargs[]){newHomework();}synchronizedpublicvoidbroadcast(Stringname){PThreadcg;Stringuser;7if(name.startsWith(login)){for(inti=0;ivector.size();i++){cg=(PThread)vector.elementAt(i);try{cg.dout.writeUTF(name+高兴地走进了聊天室.ok!);}catch(IOExceptiont){}}}elseif(name.startsWith(public)){System.out.println(name.substring(6));for(inti=0;ivector.size();i++){cg=(PThread)vector.elementAt(i);try{cg.dout.writeUTF(name);}catch(IOExceptiona){}}}elseif(name.startsWith(private)){System.out.println(name.substring(7));for(inti=0;ivector.size();i++){cg=(PThread)vector.elementAt(i);try{cg.dout.writeUTF(name);8}catch(IOExceptionf){}}}}//}classPThreadextendsThread{protectedSocketsocket;protectedHomeworkhome;protectedDataInputStreamdin;protectedDataOutputStreamdout;Stringmessage,message1;PThreadcg;publicPThread(Homeworkhome,Socketsocket){this.socket=socket;this.home=home;try{din=newDataInputStream(socket.getInputStream());dout=newDataOutputStream(socket.getOutputStream());}catch(IOExceptionw){}}publicvoidrun(){try{while(true){message1=din.readUTF();if(message1.startsWith(login))9{message=message1.substring(5,message1.indexOf()+1);if(true){for(inti=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(inti=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(inti=0;ihome.vector.size();i++){cg=(PThread)home.vector.elementAt(i);//dout.writeUTF(private+message);}home.broadcast(private+message);}}}}catch(IOExceptione){10}}}客户端代码://聊天室客户端程序importjava.awt.*;importjava.applet.Applet;importjava.applet.AudioClip;importjava.awt.event.*;importjavax.swing.*;importjava.io.*;importjava.util.Date;importjava.net.*;publicclassHomework_client1extendsAppletimplementsRunnable{ListUesrNameList;//显示用户名的列表;TextAreaText_Area;//显示用户发言的文本域;JLabelUserName;//显示用户姓名;JLabelUName;//用户姓名面板;JLabelPassWord;//显示登陆口令;TextFieldPWord;//登陆口令文本框;TextFieldUN;//用户姓名文本框;JTextFieldforField;//说文本框;JTextFieldSayfield;//发送文本框;JLabelVslabel;//对面板;JLabelSaylabel;//说面板;JLabelFrontlabel;//前景色面板;JLabelBacklabel;//背景色面板;JLabelStylelabel;//字体面板;JLabelWordlabel;//字号面板;JButtonEnterbutton;//进入按纽;JButtonQuitbutton;//退出按纽;JButtonSendbutton;//发送按纽;JButtonCanecelbutton;//刷新按纽;CheckboxQuient;//私聊复选框;11ChoiceC_style;//字体选择框;ChoiceC_word;//字号选择框;ChoiceC_front;//前景色选择框;ChoiceC_back;//背

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功