zoukankan      html  css  js  c++  java
  • 简单的实现QQ通信功能(二)

    第二部分:功能需求以及大体思路

    一:功能需求:

    1. 角色:登录用户。

    2. 登录:

    (1)检查用户名和密码是否正确,正确登录成功,否则提醒用户名或密码错误。

    (2)登录时可以选择登录状态,送入数据库。

    (3)记录登录时间,送入数据库。

    3. 登录成功之后显示所有的好友信息:

    (1)分类列出所有好友的信息(带头像)。

    (2)如果有未读的信息,则给提示。

    (3)来新消息提醒。

    4. 主界面功能:

    (1)显示登录者自己的信息。

    (2)可以修改自己的状态。

    (3)最小化之后在右下角显示小图标,双击小图标主窗体恢复正常显示。

    5. 双击某个好友,能够交互聊天:

    (1)能够发送信息。

    (2)能够了及时显示当前好友发来的信息。

    (3)其它朋友发来的新消息,则给予提示。

    (4)聊天窗口左上角显示朋友的信息(含头像)。

    6. 关闭主界面(退出)时改变自己的状态。

    7. 需要的界面:
    (1)登录界面
    (2)QQ主界面
    (3)聊天窗口

    二:大体思路

    1. 在应用程序的主入口点造一个登录界面:Login delu = new Login();

        然后将登录界面作为一个主窗口下的对话框打开delu.ShowDialog();

        如果关闭主界面则所有的副窗体都将关闭,所以登录界面作为一个副对话框打开。

    2. 在登录界面里要求输入用户名和密码,用户点击登录的时候用这两个数据去查询数据库,根据返回的table.Rows.Count来判断是否匹配,如果匹配登录成功,更改状态。

    3. 登录成功之后将登录者的UserName赋给Uid,将DialogResult设置为OK。在应用程序的主入口点判断一下,如果OK运行主界面,将登录者的Uid传到主界面。

                if(delu.ShowDialog()== DialogResult.OK)
                {
                    Application.Run(new MainForm(delu.Uid));
                }

    4. 在主界面重载构造函数来接收传过来的登录者的名字,用其名字去查询朋友信息,显示在朋友列表里面,在将自己的信息显示在上面。

        这里在加载朋友信息的时候用到了一个自定义控件来显示朋友信息。用时钟来查询是否有朋友发来的未读消息,将其提醒,朋友上线提醒。

    5. 双击朋友头像的时候弹出聊天窗体,在聊天窗体重载构造函数将朋友的信息和自己的信息传到聊天窗体。

    6. 在聊天窗口用时钟来查询对面发来的信息,显示出来,将自己发送的信息显示并且送到数据库,如果消息显示在聊天界面则将消息状态改为已读。

        打开聊天窗口,再来此朋友的信息则不进行声音和头像抖动提醒,只会在聊天里面显示,关闭则恢复。

    7. 关闭主界面,将登陆者的状态再次改为离线。

  • 相关阅读:
    24张图,九大数据结构安排得明明白白
    mysql中的mvcc解读
    常见电商项目的数据库表设计(MySQL版)
    两万字深度介绍分布式系统原理,一文入魂
    使用消息中间件时,如何保证消息仅仅被消费一次?
    GCC/G++选项 -Wl,-Bstatic和-Wl,-Bdynamic
    sql 练习
    设计模式-单例模式
    设计模式-抽象工厂模式
    设计模式-工厂方法模式
  • 原文地址:https://www.cnblogs.com/Alvin-ftd/p/4077463.html
Copyright © 2011-2022 走看看