《面向对象程序设计课程设计》

上传人:第*** 文档编号:56888005 上传时间:2018-10-16 格式:DOCX 页数:20 大小:138.20KB
返回 下载 相关 举报
《面向对象程序设计课程设计》_第1页
第1页 / 共20页
《面向对象程序设计课程设计》_第2页
第2页 / 共20页
《面向对象程序设计课程设计》_第3页
第3页 / 共20页
《面向对象程序设计课程设计》_第4页
第4页 / 共20页
《面向对象程序设计课程设计》_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《《面向对象程序设计课程设计》》由会员分享,可在线阅读,更多相关《《面向对象程序设计课程设计》(20页珍藏版)》请在金锄头文库上搜索。

1、1 1.1. 功能分析。功能分析。 (进行问题的描述及确定程序将要实现的具体功能, 用文字描述即可) 该课程设计为 C/S 模式的聊天室,分为两个部分,一个是客户端程序,一 个是服务端程序,需要先开启服务器,再开启客户端才能使用。 1.1.服务端程序需要完成的一些基本功能。 (1).启动服务器。 (2).停止服务器。 (3).退出服务器。 (4).接受客户端发送过来的消息,把消息显示在服务器的文本区上。 (5).可以向客户端程序发送消息。 (6).实现背景色的更换。 (7).帮助功能。 (8).实现在线用户的统计。 (9).还可以增加其他功能,比如统计在线客户的人数等。 1.2.客户端程序需要

2、完成的一些基本功能。 (1).启动客户端,登录服务器。 (2).退出客户端。 (3).向服务器发送消息。 (4).接受客户端发来的消息。 (5).更好背景色。 (6).帮助功能。 (7).还可以增加其他的功能,比如向某个客户端发送消息进行私聊等。 2 2.2.系统设计。系统设计。 (制定程序功能实现的具体设计思路及主要类说明,并 检查流程设计。类说明用表格描述即可) 2.1. 该聊天室功能实现的具体设计思路: 聊天室分为两个部分,服务器端和客户端部分。服务器端的功能设计是 先运行服务器,再启动服务器等待客户端的连接,当连接成功后通知客 户端可以进行聊天。在聊天的时候可以更换背景色,可以统计在线

3、人数。 还有停止服务器和退出服务器功能。当开启服务器的停止功能后,客户 端就不能进行交互。服务器端还可以增加其他的功能,比如统计客户在 线人数,实现客户端之间的私聊功能等。客户端的功能设计是先运行客 户端,然后登录连接服务器,当连接成功后便可以进行聊天功能。客户 端还可以增加其他的功能,比如,需要客户先进行注册,注册成功后再 登录连接服务器才能进行聊天功能等。 2.1.1. 聊天室服务器端模块主要有以下几部分组成 2.1.1.1.主框架类(MDS_ServerChat.java) 该文件包含名为 MDS_ServerChat 的 public 类,其主要功能是定义 服务器的界面。添加事件侦听,

4、事件处理。利用套接字 ServerSocket 和 socket 的对象进行消息的收发。 2.1.1.2.服务器用户上线侦听类. 该类实现了 Runnable 类,重写了 Runnable 类中的 run 方法,在 run 方法中实现对服务器用户的上线侦听。 3 2.1.1.3.服务器的启动和发送类。 该类实现了 ActionListener 类,重写了 ActionListener 类的 actionPerformed 方法。在 actionPerformed 方法中实现对服务 器的启动。实现对服务器消息的发送工作。 2.1.1.4.服务器的接收类。 该类实现了 Runnable 类,重写了

5、 Runnable 类中的 run 方法,在 run 方法中实现对服务器用户消息的接收工作。 4 2.1.2.聊天室客户端模块主要有以下几部分组成 2.1.2.1.主框架类(MDS_ClientChat.java) 该文件包含名为 MDS_ClientChat 的 public 类,其主要功能是 定义客户端的界面。添加事件侦听,事件处理。 2.1.2.2 向客户端发送消息类。 该类实现了 ActionListener 类,重写了 ActionListener 类的 actionPerformed 方法。在 actionPerformed 方法中实现对客户 端的启动和登录服务器及向服务器发送消息

6、的工作。如果增加了 多个客户端,还可以和其他客户端进行交互等。 5 2.1.2.3.客户端接收消息类。 该类实现了 Runnable 类,调用了 Runnable 类中的 run 方法来实 现对服务器发过来的消息进行接收工作。如果还增加了其他的客 户端,那么也可以和其他的客户端进行交互,实现私聊功能。 6 2.2.主要类说明。 类、接口功能 JFrame JFrame 类的实例就是一个底层容器,即通常所说的窗口。 在该程序中是 MDS_ClientChat 类的父类。 MDS_ClientChat 其主要功能是定义服务器的界面。添加事件侦听,事件处 理。 ActionListener Acti

7、onListener 接口中只有一个 actionPerformed() 方法。当发生 ActionEvent 事件时,监视器调用接口中 的 actionPerformed(ActionEvent e)方法对发生的事 件作出处理 Runnable 声明一个实现 Runnable 接口的类并实现 run()方法。在 调用 start()方法时,将创建一个新的控制线程,接着 它将调用 run()方法。run()方法中的代码定义执行线程 所需的功能 Socket 在套接字通信中客户端的程序使用 Socket 类建立与服务 器套接字连接 ServerSocket 服务器端程序使用 ServerSock

8、et 类建立接收客户套接字 的服务器套接字 7 2.3.检查流程设计。 等待客户端的连接 连接服务器 服务器已断开,请重新连接 运行服务器 退出服务器停止服务器启动服务器 连接 成功 启动客户端 登录服务器 进行聊天 聊天终止 退出客户端 8 3.3. 系统实现。系统实现。 (附上具体源代码) 3.1.MDS_ServerChat.java3.1.MDS_ServerChat.java package madingsheng; import java.awt.*; import javax.swing.*; import java.awt.event.*; import .*; import

9、java.io.*; public class MDS_ServerChat extends JFrame implements ActionListener,Runnable private int port=8888; private ServerSocket server; private Socket client; private BufferedReader cin; private PrintWriter cout; private Thread chatThread; private JPanel p1; private JButton startButton; private

10、 JButton stopButton; private JButton exitButton; private JScrollPane scrollPanel; private JTextArea message; private JPanel p2; private JTextField serverMessage; private JButton messageButton; private JPanel p3; private JComboBox combox1; private JComboBox combox2; private JMenuBar menubar; private

11、JMenu menu,menu1; private JMenuItem item1,item2,item3,item4,item5; public MDS_ServerChat() super(“网络聊天服务器“); 9 menubar=new JMenuBar(); menu=new JMenu(“更换背景色“); menu1=new JMenu(“帮助“); item1=new JMenuItem(“灰色“); item2=new JMenuItem(“蓝色“); item3=new JMenuItem(“白色“); item4=new JMenuItem(“时间“); item5=new

12、 JMenuItem(“其他“); menu.add(item1); menu.add(item2); menu.add(item3); menu1.add(item4); menu1.add(item5); menubar.add(menu); menubar.add(menu1); setJMenuBar(menubar); item1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) message.setBackground(Color.gray); ); item2.ad

13、dActionListener(new ActionListener() public void actionPerformed(ActionEvent e) message.setBackground(Color.blue); ); item3.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) message.setBackground(Color.white); ); p1=new JPanel(); startButton=new JButton(“启动“); stopBut

14、ton=new JButton(“停止“); 10 exitButton=new JButton(“退出“); startButton.addActionListener(this); stopButton.addActionListener(this); exitButton.addActionListener(this); p1.add(startButton); p1.add(stopButton); p1.add(exitButton); add(p1,BorderLayout.NORTH); message=new JTextArea(); scrollPanel=new JScro

15、llPane(message,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HO RIZONTAL_SCROLLBAR_AS_NEEDED); add(scrollPanel,BorderLayout.CENTER); p2=new JPanel(); serverMessage=new JTextField(15); messageButton=new JButton(“发送消息“); messageButton.addActionListener(this); p2.add(serverMessage); p2.add(messa

16、geButton); add(p2,BorderLayout.SOUTH); p3=new JPanel(); combox1=new JComboBox(); combox2=new JComboBox(); combox1.addItem(“-在线人数-“); combox1.addItem(“不祥“); combox1.addItem(“不祥“); combox1.addItem(“不详“); p3.add(combox1); add(p3,BorderLayout.EAST); p3.setBackground(Color.gray); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(800,100,500,400); setVisible(true); public void actionPerformed(ActionEvent e) if(e.getSource()=startButton) 11 p1.setBac

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号