1、Java聊天室系统程序设计实验报告材料Java聊天室系统程序设计实验报告院 (系):信息与通信工程系 专 业:计算机应用技术 班 级: 学 号: 姓 名: 指导老师:2013/6/8 第一部分:系统设计总述1.设计目的:1.在开发技术和过程中,能够充分学习和使用JAVA的技术,进一步培养学生面向对象程序设计的思想,加深对面向对象程序设计特性的理解。2.学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全过程。3.进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、文件和网络输入输出流编程、Java数据库编程等。4.通过亲自动手写程序,一方面拓展知识面
2、,一方面锻炼调试能力。2.设计总体要求:1.问题的描述与程序将要实现的具体功能。2.程序功能实现的具体设计思路或框架,并检查流程设计。3.代码实现。4.程序测试。5.设计小结(包括)3.实现目的: 本软件是一个实用聊天程序。项目要实现以下目标:1)建立服务器端和客户端并进行连接;2)利用线程设计结构合理,运行效率较高的聊天室;3)实现写消息,发消息,回复,查看聊天记录等功能;第二部分:系统需求分析1.系统任务描述本系统是基于java开发的聊天室。如有用户聊天,服务器会显示出聊天信息。服务器端和客户端可以互相发送和接收信息,还可以查看聊天记录。如果服务器还没有启动,则客户端是不可以利用聊天室收发
3、信息的。如果在运行过程中,服务器断开则系统会有提示。2.系统功能分析系统的功能需求聊天室程序通常需要完成以下一些基本功能:A登录聊天室;B启动服务器;C关闭服务器;D用户之间的聊天;E退出聊天室。3.系统可行性分析 从技术方面来看,java语言的优点主要表现在:简单、面向对象、多线程、安全性等方面。(1)简单性 Java实现了自动的功能收集,简化了内存管理的工作,这使程序设计更简便,同时减少了出错的可能。(2)面向对象 Java提供了简单的类机制和动态的架构模型。对象中封装了它的状态变量和方法。很好地实现了模块化和信息隐藏;而类则提供了一类对象的原型,通过继承和重载机制,子类可以使用或重新定义
4、父类或超类所提供的方法,从而既实现了代码的复用,又提供了一种动态的解决方案。Java同样支持继承特性,java的类可以从其他类中继承行为,但java只支持类的单重继承,即每个类只能从一个类中继承。Java支持界面,界面允许程序员定义方法但不立即实现,一个类可以实现多个界面,利用界面可以得到多重继承的许多优点而又没有多重继承的问题。(3)多线程多线程使应用程序可以同时进行不同的操作,处理不同的事件。在多线程机制中,不同的线程处理不同的任务,他们之间互不干涉,不会由于一处等待影响其他部分,这样容易实现网络上的实时交互操作。多线程保证了较高的执行效率。(4)安全性 用于网络、分布环境下的java必须
5、要防止病毒的入侵,java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止了程序员使用欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。第三部分:系统设计系统设计是本系统开发的重要阶段,它直接影响目标系统的质量,是整个开发工作的核心。系统设计阶段主要任务是:在系统分析提出的逻辑模型的基础上,科学合理地进行物理模型设计。1.系统总体结构设计 2.系统主体的处理流程3.系统流程逻辑第四部分:代码分析本系统的IP为本机的网络虚拟IP(127.0.0.1),在任何电脑上都能用,端口号设置为9000。注意:客户端只有在服务端开启的情况下才能正常聊天。1.服务器端部分
6、代码public TestServer_zmx() /主构造方法及布局ServerSocket ss=new ServerSocket(9000);/服务器建立端口号9000Socket s1 = ss.accept();/服务器监听是否有连接class MyAction implements ActionListener /处理发送按钮的类class MyThreadWriter extends Thread /处理输出流类class MyThreadRead extends Thread /处理输入流读入类class qingping implements ActionListener /
7、处理清屏类class xiaoxijilu extends JFrame implements ActionListener /处理消息记录类2.客户端部分代码public TestClient_zmx() /主构造方法及布局Socket s1 = new Socket(localhost,9000);/建立与服务器的连接,为本地主机,9000号端口class MyAction1 implements ActionListener /处理发送按钮的类class MyThreadWriter1 extends Thread /处理输出流类class MyThreadRead1 extends T
8、hread /处理输入流读入类class qingping1 implements ActionListener /处理清屏类class xiaoxijilu1 extends JFrame implements ActionListener /处理消息记录类第五部分:系统的具体实现 界面是系统之间最直接的交互界面,界面的友好性体现了软件设计的质量,并在很大的程度上决定了软件是否成功。界面设计(1)服务器端的启动界面(2)客户端界面(3)服务器端和客户端聊天的界面(4)设置界面图 A设置字体 B设置字体大小 C设置字体颜色 D显示聊天记录第六部分:小结这次设计经过不懈的努力,程序基本满足聊天的
9、需要。完成后的程序实现了写消息,发消息,回复,查看聊天记录等功能。程序设计期间,通过询问老师、同学和网上搜索相关解答等多种方式学习到很多课堂上没有的知识,增强了解决实际问题的能力。在此之前,对于java编程技术没有很深入的认识,对其工作方式和原理缺乏透彻的认识。在这段时间里,我认真的学习了java语言开发,对编程思想有了进一步的体会,养成了一些良好的编程习惯。程序虽然完成了,但是距离完美还存在一定的差距,用java开发大型项目还有很多我需要去努力学习的知识。希望自己能不断学习和实践,争取以后做得更好。第七部分:参考文献【1】 袁然、郑自国、邹丰义编著。JAVA案例开发集锦。 电子工业出版社【2】 刘志成编著。JAVA程序设计案例教程。 清华大学出版社【3】 张基温编著。JAVA程序开发教程。 清华大学出版社【4】 袁晓华编著。JAVA面向对象程序设计教程。 机械工业出版社