响应式网页设计、开放源代码、永久使用、不限域名、不限使用次数

2024年仿qq小程序设计思路(实用4篇)

仿qq小程序设计思路 第1篇

张的总结:

  通过这次聊天程序课程设计,又有了许多收获。最初,本来打算做大四学长的“我校淘”网站,但,后来通过与大四学长的交流、沟通,他说三周的时间太短了,因为我们之前没有接触过Java Web方面的知识,所以时间不够,因此,先学习这方面的的知识。

   聊天软件,是我之前一直想完成的一个小软件,但没有机会去做,这次有机会做,我决定把它做好,做的像QQ一样。刚开始,对于网络通信、数据库连接及操作这部分,我们之前没练习过,因此,对于整体的设计都很难把握,我们参考了部分书籍,大概了解了其原理,之后就是确定需求,虽然我们对QQ都很熟悉,也都基本了解其大概需求,但在实际设计时,很多需求方面东西都是看不见的,必须自己查资料、思考、练习才能发掘。然后就是总体设计及人员分工,这一步也很关键,如何协调每个人,如何发挥每个人的优势,这需要很多工作。

  在整体设计完成后,我们考虑先开发出简单的聊天软件,然后逐步细化,因此,在详细设计时,我们简化了一些东西,先开发出一个基本原型,用以验证技术并进一步明确需求。然后,对部分技术进行改进和细化,最后,再次基础上不断的迭代进行,由于我们的水平有限,我们最初的设计并不一定是好的设计,只有不断的试验和改进,才能开发出好的软件,当然,前期的整体架构设计非常重要,这将很大程度上决定软件的质量和适应需求变更的能力。总之,在试验与改进中,我们学到了很多东西,不光是技术,还有合作。

仿qq小程序设计思路 第2篇

A.系统概述

我们要做的就是类似QQ这样的面向企业内部的聊天软件,基本功能和QQ类似。首先,系统分为两大部分,第一部分是客户端,是用户使用的部分,第二部分就是服务器,所有的客户端都是通过服务器来进行用户身份验证及聊天转接的。客户端提供主要的界面及服务请求,如:登录界面、注册界面、找回密码界面、主窗体界面、聊天界面、信息查看界面等。客户端主要提供服务请求界面,核心的业务逻辑处理主要由服务器提供,并向客户端发送请求的结果。同时,服务器要能提供服务的开启、关闭功能及查看在线人数及客户端登录日志。

人员组成及分工

张XX(组长):负责整体的架构设计、后台数据库及通信部分。

房 X(组员):聊天界面、注册界面、登录界面、找回密码、及其业务逻辑。

高 X(组员):主窗体界面、信息查看及其业务逻辑。

B.要求

1).小组成员必须按时完成各自的任务。

2).设计上与技术上有问题的先自行解决(看书、上网查),如不能解决的集体讨论解决。有其它的问题及时提出来!

3).必须写文档(写把各自模块的整体设计用UML图或Viso画的图(尽量不要只是简单的语言叙述)表达出来),学会用面向对象的思想来来设计,采用模块化的思想分解模块。(设计原则与设计模式能用的用)

4).每个类必须有类说明,每个函数也必须有函数说明,函数的具体设计也必须有必要的注释。

5).如果不能遵守规定或要求的可以提前退出,不强留。

(注:即使不会写代码,也没关系,只要一能用UML图或其他的图等表达出自己的设计思想及具体的实现设计也行)

C.开发环境

运行环境:Myeclipse集成开发环境,jdk 版本。

使用语言:Java语言。

使用数据库:Oracle数据库。

需求背景

即时通信软件为我们提供了诸多的方便,使我们逐步享受信息时代的便捷。大家最熟悉的即时通信软件就是QQ了,因为它几乎已经融入了我们每个人的日常生活。没有了QQ,没有了手机,我们或许真的“活不了了”。由此可见,生活在信息时代的人们对即时通信、聊天软件有巨大的需求,这样的软件也将为我们节省大量的时间和金钱,或许还能成为我们发家致富的工具,比如:产品的推介、售后服务及技术交流等。

    然而,既然已经有了QQ如此强大的即时通信软件,我们再去做这样的软件还有什么竞争力吗?QQ已经深入人心,要想再去做可能没有任何竞争力。此时,我们可以换一个角度,调整用户对象。如今,企业内部信息在这个信息时代就是金钱,尤其是一些大企业的内部信息,如果这些信息泄露,可能会造成巨大的经济损失,甚至将导致企业破产。但是,为了便捷企业员工之间的交流,做这样的一个企业内部即时通信、聊天软件还是很有市场的。我们的目标就是做的像QQ,但面向企业内部使用。

      企业内部为了方便员工之间便捷的交流,需要开发一款适合企业内部员工进行即时通信的软件,这样的软件既满足了企业内部员工之间便捷的交流,同时,也防止企业内部信息的外流,开发这样一块面向企业内部的即时通信软件,对于企业来说获益良多。

       在开发这款软件时,为了使习惯了使用QQ的用户,更加方便的使用本软件,我们将很大程度上,模仿QQ的用户界面设计,以适应用户的使用习惯,方便用户使用。

功能需求

1)客户端:提供登录、主窗体及聊天等界面及对应的业务逻辑,向服务器发送相应的服务请求,并接受相应的处理结果。客户端是轻量级的软件,只负责链接远程服务器,并发出相应的服务请求,并不进行核心业务逻辑的处理。具体的处理交给服务器,而客户端只接收服务器处理的结果并显示给用户。

2)服务器:监控登录信息及在线用户信息,接收客户端的服务请求,并做相应的处理,然后将处理结果发送给客户端。服务器负责处理核心的业务逻辑,并负责连接数据库,保存和读取数据。因此,服务器端设计的好坏也直接影响即时通信软件的质量。

用例描述

1)客户端:

                                                                                       图 1-1 客户端用例图

2)服务器:

                                                                           图 1-2 服务器端用例图

仿qq小程序设计思路 第3篇

图 5-1 登录界面

图 5-2 登录界面

图 5-3 注册界面

图 5-4 找回密码界面

图 5-5 主界面        

 图 5-6 信息查看界面

图 5-7 聊天界面

图 5-8 消息记录界面

图 5-9 服务器登录界面

图 5 – 10 服务器管理界面

仿qq小程序设计思路 第4篇

系统架构设计

1)采用MVC架构模式

客户端:

A.   包view(视图、界面层):只负责界面的显示。

B.   包business(业务逻辑层):核心业务的处理。

C.   包data  (数据访问层):读写数据、接收发送数据。

服务器:

A. 包view(视图、界面层):只负责界面的显示。

B. 包business(业务逻辑层):核心业务的处理。

C. 包data  (数据访问层):读写数据、接收发送数据。

2)           文件组织

A.     客户端:

图2-1 客户端文件组织结构

B.     服务器:

图2-2 服务器文件组织结构

3)             采用基于网路的三层C/S模式

图2-3 基于C/S的模式图

功能模块设计

1)客户端:

图2-4 客户端功能模块图

2)服务器:

图3-5 服务器功能模块图

数据库设计

1)概念结构设计

   图 2-6 数据库实体E-R图

2)逻辑结构设计

用户表(QQ号、密码、签名、头像编号、昵称、性别、生日、星座、血型、学历、电话、邮箱、所在地)

分组表(组号、组名、创建时间、QQ号)

好友表(好友QQ号、QQ号、所属分组号、添加时间、是否上线)

聊天记录表(记录编号、发送者QQ号、接受者QQ号、发送时间、信息编号)

聊天内容(信息编号、内容、字体类型、字体大小、字体颜色)

登录信息表(登录编号、登录IP、端口号、登录时间、是否在线、QQ号)

QQ群(群编号、群名称、创建时间)

用户与群关系(关系编号、QQ号、群编号)

3)表结构设计

表 2-1 用户与群关系(User_Group)

字段名称

说明

字段类型

字段长度

是否为空

约束

ugno

关系编号

Number

QQ号

number

gno

群编号

number

表 2-2 用户信息表(UserInfo)

字段名称

说明

字段类型

字段长度

是否为空

约束

QQ号

number

pwd

Nvarchar2

sign

Nvarchar2

photoID

头像编号

Number

nickname

Nvarchar2

sex

Char

男或女

birthday

Date

constellation

Nvarchar2

bloodType

Char

A、B、O、AB

diploma

Nvarchar2

telephone

Nvarchar2

email

电子邮件

Nvarchar2

address

所在地

Nvarchar2

 表 2-3分组信息表(Subgroup)

字段名称

说明

字段类型

字段长度

是否为空

约束

sno

Number

sname

Nvarchar2

sdate

创建日期

Date

默认当前日期

QQ号

number

 表 2-4好友信息表(Friends)

字段名称

说明

字段类型

字段长度

是否为空

约束

Fno

Number

fqq

好友QQ

number

fsno

所属分组号

Number

fdate

添加日期

Date

Fstatus

是否在线

number

本人QQ

number

 表 2-5聊天记录表(ChatInfo)

字段名称

说明

字段类型

字段长度

是否为空

约束

cno

记录编号

number

csendqq

发送者QQ

number

creceiveqq

接受者QQ

number

cdate

发送日期

TimeStamp

tno

信息编号

Number

 表 2-6信息表(Text)

字段名称

说明

字段类型

字段长度

是否为空

约束

tno

信息编号

Number

tcontext

Nvarchar2

200

tfonttype

字体类型

Nvarchar2

tfontsize

字体大小

Number

tfontcolor

字体颜色

Nvarchar2

 表 2-7登录信息表(Login)

字段名称

说明

字段类型

字段长度

是否为空

约束

lno

登录编号

Number

lip

登录IP

Nvarchar2

lport

端口号

Number

ldate

登录日期

Date

lstatus

是否在线

Number

1 or 0

lqq

QQ号

number

 表 2-8 QQ群信息(GroupTable)

字段名称

说明

字段类型

字段长度

是否为空

约束

gno

群编号

Number

gname

群名称

Nvarchar2

gdate

创建日期

date

通信协议设计

计算机之间传送数据由两种,即TCP通信和UDP通信。TCP是可靠的面向连接的通信协议,二UDP是不可靠的面向无连接的通信协议。

1)基于TCP的通信

在进行登录用户验证、添加好友、删除好友等操作时,采用基于TCP的通信协议。

2)基于UDP的通信

基于UDP通信的基本模式:

(1)将数据打包,称为数据包(好比将信件装入信封一样),然后将数据包发往目的地。

      (2)接受别人发来的数据包(好比接收信封一样),然后查看数据包中的内容。

       在进行用户聊天时,采用基于UDP的通信协议。

缓存数据设计

1) 用户信息Bean

 为了保存用户及好友的个人信息,此处设计用户信息缓存数据,当用户登录时,将用户个人及好友的基本信息保存,以备用户查询,就不用再次连接数据库获取了。

 UserInfoBean类:保存用户QQ号、昵称、签名、血型、地址等信息。

2) 消息信息Bean

 用户在进行聊天时,需要传递必要的信息,此处的消息Bean数据结构就是存储收发用户的QQ号、IP地址、消息内容、字体大小、字体颜色、字体类型等信息。

  Message类:保存收发用户的QQ号、IP地址等信息

系统流程图

图 2-7 系统流程图

设计模式使用

1)中介者模式:

所有的用户都通过服务器进行通信,服务器其中介的作用。

2)观察者模式:

  当有用户登录时,会通知其他在线好友,其他好友及时修改此用户的在线状态。

通信协议的实现

基于TCP的通信

在进行登录用户验证、添加好友、删除好友等操作时,采用基于TCP的通信协议。

A.客户端TCP通信设计

  设计ClientToServer类,该类实现了Runnable接口,是一个线程。

主要方法:

[1] boolean sendLoginInfoToServer(User u) :登录请求。

[2] void getProgerties():获取配置文件中的服务器IP地址信息。

[3] void logout(): 下线,通知服务器该用户下线。

[4]inttoRegister(UserInfoBean user):新用户注册,返回QQ号。

[5] void noticeUpdate():通知刷新好友信息。

B. 服务器TCP通信设计

1)设计ServerThread线程类:处理用户连接服务器请求,并为其启动单独的服务(Server)线程。

主要方法:

[1] void run(): 重写线程类Thread的方法,不断的等待客户端的连接请求。

[2] void pauseThread():暂停服务。

[3] void reStartThread():恢复服务。

2)设计Server线程类:处理每个上线用户个各种服务请求。

主要方法:

[1] void run():不断的等待用户的请求信息,并判断请求类型。

[2] void login():处理用户登录。

[3] void registerNewUser():处理注册新用户

[4] void queryUser():处理查询用户。

[5] void addFriend():添加好友。

[6] void deleteFriend():删除好友。

[7] void updateOwnInfo():更新自己的信息。

[8] void logout():下线。

[9] void queryFriend():查询好友信息。

基于UDP的通信

在进行用户聊天时,采用基于UDP的通信协议。

A.客户端UDP通信设计

  设计ClientToServerThread线程类:负责UDP通信。

主要方法:

[1]void run():循环等待监听发来的数据。

[2]void getPropertieInfo():获取通信的服务器的IP地址及本机通信端口。

[3]void sendData(byte buffer[]):发送数据。

[4]void Object ByteToObject(byte[] bytes):将Byte数据转为Object类型。

[5]void ObjectToByte(Object obj):将Object型数据转为Byte型。

[6]void closeSocket():关闭收发数据报套接字。

B. 服务器UDP通信设计

设计ClientToServerThread线程类:负责UDP通信,主要是转发用户发送的信息,并保存用户的聊天记录。

主要方法:

[1]void run():循环等待监听发来的数据。

[2]void getPropertieInfo():获取通信的服务器的IP地址及本机通信端口。

[3]void sendData(byte buffer[]):发送数据。

[4] void Object ByteToObject(byte[] bytes):将Byte数据转为Object类型。

[5]void ObjectToByte(Object obj):将Object型数据转为Byte型。

[6]void closeSocket():关闭收发数据报套接字。

数据访问层的实现

打开数据库连接类(ConnectionFactory)

[1]void getPropertiesInfo():从配置文件中获取数据库连接信息。

[2]Connection getConnection():打开数据库连接。

关闭数据库连接类(DbClose)

[1]void getPropertiesInfo():从配置文件中获取数据库连接信息。

[2]void close(Connection conn):关闭数据库连接。

[3]void close(PreparedStatement pre):关闭数据库语句

[4]void close(ResultSet rs):关闭结果集

[5]voidclose(Connection conn, PreparedStatement pre, ResultSet rs)

数据操作类(Dml)

[1]void insert(UserInfoBean user):增加新用户,插入信息。

[2]void update(UserInfoBean user):更新用户信息。

[3]void delete(int qq):删除信息。

界面层的实现

登录界面

JLoginFrm登陆窗体主要用于用户登陆,注册和找回密码。

内部类:

BackgroundPanel 继承于JPanel主要用于设置窗体背景图片

主要函数:

(ActionEvent e)主要对窗体的按键监听

()构造函数,控件的初始化。

注册界面

JRegisterFrm继承与JFrame主要用于用户基本信息的注册。

主要函数:

1. Void setDay()根据不同的年份和月份设置天数

getBir()以1-1月-2014形式得到用户的生日

()得到用户的所有信息

聊天界面

ChatPanel主要用于用户间的聊天通信

主要函数:

猜你喜欢