码迷,mamicode.com
首页 > 微信 > 详细

QQ聊天小程序

时间:2020-07-06 12:42:11      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:十分   实践   扩展   基本功   nbsp   传递   其它   系统   原来   

 

 

 

Javak课程设计

题目:QQ聊天小程序

院 别:信息科学与工程学院

专 业:计算机科学与技术

班 级:2018级计科一班

学生姓名:文俊彩 董琼林 郑思聪

指导老师:吕向风

 


二〇二〇年七月

 

目    录

1 绪论... 1

1.1 项目概述... 1

1.2 项目意义... 1

2 开发工具和相关技术简介... 2

2.1 Eclipse简介(或者MyEclipse或者IEDA简介)... 2

2.4 JDBC技术简介... 5

3 系统需求分析... 6

3.1 系统可行性分析... 6

3.2 系统需求分析... 6

3.3 组内成员分工... 7

3.4 进度安排... 8

4 系统设计... 8

4.1 系统设计... 8

4.2 数据库设计... 10

5 系统实现... 12

6 系统测试... 18

7 结论和心得... 21

 

 

1 绪论

1.1 项目概述

简易QQ聊天小程序:用eclipse和GUI还有MySQL来做QQ小程序,该QQ小程序模拟QQ来设计,该程序分好界面,有注册界面,登录界面,好友界面,聊天界面。注册界面有用户名,性别,年龄,身份证号,密码,如果那一项没按要求填写则跳出一个弹窗进行提示。当注册成功时,会弹出一个界面显示账号还有注册成功提醒。然后跳转到登录界面,登录界面有账号,密码,验证码,最下方有两个按钮建登录和注册。如果没账号可以进行注册,用户的信息都保存在数据库中。用户登录时,如果密码或者账号还有验证码错误时,会有弹窗提示。登录成功时会跳转到好友界面,跳转到好友界面后点击好友会显示好友信息,然后点击聊天就可以 进行私聊,点击群按钮就可以进入到多人聊天界面。

1.2 项目意义

简易QQ聊天小程序,随着全球信息化不断发展,信息的融合已经成为社会发展的主流方向。简易QQ聊天小程序将不断与信息交流领域的系统相互集成和渗透,扩展其自己的功能和应用范围,满足未来话音,数据和视频的多媒体应用需要,使即时消息以更丰富的接入方法,更高的服务质量,更友好的面貌呈现在世人的面前。
   从功能角度来看,简易QQ聊天小程序向支持全媒体方向发展,随着多媒体技术在
网络应用中的发展,简易QQ聊天小程序承载的媒体,不再局限于原来的文字、语音和文件的信息交换,信息载体扩展到图形、图像和流媒体等多媒体业务上。目前ICQ和QQ预设了部分简单的表情图像,通过传输图像代码来传递表情图像,可以被视为即时消息开发商开发支持图形、图像为载体的即时消息软件的开端。
   从应用范围角度来看,简易QQ聊天小程序集中在Internet 个人用户之间的信息交流应用,随着网络技术应用的发展,简易QQ聊天小程序应用范围向园区化、集团化拓展,应用领域突破个人,而用于远程教学、远程医疗、远程演示、网络会议等领域。

 


2 开发工具和相关技术简介

本项目是简易QQ聊天小程序。开发环境:eclipse、MySQL、GUI;开发语言:Java语言;开发技术:JDBC等。本章将对开发工具和相关技术进行简单介绍。

2.1 Eclipse简介(或者MyEclipse或者IEDA简介)

Eclipse 是一个开放源代码的、基于 Java的可扩展开发平台,就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools, JDT).Eclipse 最初是由 IBM 公司开发的替代商业软件 Visual Age for Java的下一代IDE 开发环境,2001年11月页献给开源社区,现在它由非营利软件供应商联盟 Eclipse 基金(Eclipse Foundation)管理。 2003年,Eclipse 3.0 选择 OSGi 服务平台规范为运行时架构。 2007年6月,稳定版3.3发布。2008年6月发布代号为Ganymede的3.4版。2009年7月发布代号为GALILEO的3.5版。
Eclipse 是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java 语言
开发,但是目前亦有人通过插件使其作为其他计算机语言比如 C++和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持得 Eclipse 拥有其他功能相对固定的IDE 软件很难具有的灵活性。许多软件以 Eclipse 为框架开发自己的IDEEclipse 最初由 OTI和IBM 两家公司的IDE 产品开发组创建,起始于 1999年4月。IBM提供了最初的 Eclipse 代码基础,包括 Platform、JDT和PDE。目前由IBM牵头,围绕着 Eclipse项目已经发展成为了一个庞大的 Eclipse 联盟,有150多家软件公司参与到 Eclipse 项目中,其中包括 Borland、Rational Software、Red Hat及 Sybase 等。Eclipse 是一个开发源码项目,它其实是 Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括 Oracle 在内的许多大公司也纷纷加入了该项目,并宣称Eclipse 将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。
虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment. PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建
与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
   基于 Eclipse 的应用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它构成了 IBM Java 开发工具系列的基础,例如,WebSphere Studio Application Developer 添加对 JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。

 

2.2 Java语言介绍

Java是一种电脑编程语言,拥有跨平台、面向对象、泛型编程的特性。 任职于太阳电脑的詹姆斯·高斯林(James Gosling)等人于1990年代初开发Java语言的雏形,最初被命名为 Oak,目标设定在家用电器等小型系统的程式语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通讯。由于这些智能化家电的市场需求没有预期的高,太阳公司放弃了该项计划。随着1990年代互联网的发展,太阳公司看见 Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Java 编程语言的风格十分接近 C++语言。继承了 C++语言面向对象技术的核心,Java舍弃了 C++语言中容易引起错误的指針,改以引用取代,同时移除原 C++与原来运算符重载,也移除多重继承特性,改用接口取代,增加垃圾回收器功能。在 Java SE1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。太阳公司对Java语言的解释是:“Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言”Java不同于一般的编译语言和解释语言。它首先将源代码编译成字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。在早期JVM中,这在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的执行速度有了大幅提升。
      与传统型态不同太阳公司在推出Java时就将其作为开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。“Java语言靠群体的力量而非公司的力量”是太阳公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同,此外,微软公司后来推出了与之竞争的.NET 平台以及模仿Java的C#语言。后来太阳公司被甲骨文公司并购,Java也随之成为甲骨文公司的产品。

JAVA的优点:

(1)平台无关性

平台无关性是指Java能运行于不同的平台。Java引进虚拟机 原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与机器无关,Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能,提供于不同平台的接口的。

(2)安全性

Java的编程类似C++,学习过C++的读者将很快掌握Java的精髓。Java舍弃了
C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样
可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。

 

(3)面向对象

Java吸取了C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。Java提供了众多的一般对象的类,通过继承即可使用父类的方法。在Java中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。Java提供的Object类及其子类的继承关系如同一棵倒立的树形,根类为Object类,Object类功能强大,经常会使用到它及其它派生的子类。

(4)分布式

Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。

(5)健壮性

Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能,这些功能特征大大提高了开发Java应用程序的周期。并且Java还提供了Null指针检测、数组边界检测、异常出口、Byte code校验等功能。

2.3 MySQL简介

MySQ 是一种开放源代码的关系型数据库管理系统,MySQL数据库系统使
用最常用的数据库管理语言一结构化查询语言(SQL)进行数据库管理。
MySQL. 由于 MySQL 是开放源代码的,因此任何人都可以在General Public
License 的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。Mysql数据库的优势如今很多大型网站选择 MySQL 数据库来存储数据。MySQL 数据库的使用以及非常广泛,尤其是在 Web应用方面。由于 MySQL数据库发展势头迅猛, Sun公司于 2008年收购了 MySQL数据库。这笔交易的收购价格高达10亿美元。这足以说明 MySQL 数据库的价值。MySQL数据库有很多的优势,下面总结了其中几个
优势:
1. MySQL 是开放源代码的数据库
2. MySQL的跨平台性
3. 价格优势
4. 功能强大且使用方便

 

2.4 JDBC技术简介

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数 据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。

Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是 接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的 SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。

JDBCTM 是一种用于执行 SQL 语句的 JavaTM API,它由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的API,使他们能够用纯 Java API 来编写数据库应用程序。

 

 

3 系统需求分析

3.1 系统可行性分析

现有系统基于Windows 7下,采用C/S模型结构,数据库来存储数据,Socket即时通信,以实现聊天软件的基本功能。不过该系统图形化不简单,因为没有成熟的技术。而系统所缺乏的注销、下载客户端、找回密码等功能,需要B/S模块来实现。

3.1.1经济可行性

由于本系统的主要背景是课程设计,不注重直接的经济效益和其后的发展方向,只注重自身水平和能力的提高,对自身的经济要求也不高,只要有一台能运行Java软件的电脑即可,所以不用考虑到经济问题。

3.1.2法律可行性

该软件基于Windows下开发,使用Eclipse、MYSQL等开源工具,遵循软件开发公共准则,相信应该不会违反相应的法规。

3.1.3技术可行性

本系统的开发利用MYSQL作为本系统的数据库,它是一个支持多用户的新型数据库,适用于大中规模的数据量需求。学校校园网的建设也为新系统服务器/客户端的结构提供了硬件的支持。使用Java作为系统开发的开发环境,它提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。

3.1.4使用可行性

本系统为一个小型的局域网聊天系统,所耗费的资源非常的小,现在一般的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。

综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的。因此,本系统是可行的。

3.2 系统需求分析

简易QQ聊天小程序:用eclipse和GUI还有MySQL来做QQ小程序,该QQ小程序模拟QQ来设计,该程序分好界面,有注册界面,登录界面,好友界面,聊天界面。注册界面有用户名,性别,年龄,身份证号,密码,如果那一项没按要求填写则跳出一个弹窗进行提示。当注册成功时,会弹出一个界面显示账号还有注册成功提醒。然后跳转到登录界面,登录界面有账号,密码,验证码,最下方有两个按钮建登录和注册。如果没账号可以进行注册,用户的信息都保存在数据库中。用户登录时,如果密码或者账号还有验证码错误时,会有弹窗提示。登录成功时会跳转到好友界面,跳转到好友界面后点击好友会显示好友信息,然后点击聊天就可以 进行私聊,点击群按钮就可以进入到多人聊天界面。

技术图片

图3-1 QQ聊天小程序功能模块图

 

 

 

3.3 组内成员分工

表3-1 组内成员分工情况表

序号

姓名

组内角色

小组分工

01

文俊彩

组长

多人聊天  文档  

02

董琼林

组员

注册  登录  好友列表  个人信息界面  数据库

03

郑思聪

组员

私人聊天  文档

 

 

 

 

说明:组内角色:组长为项目经理;其他人分别为编码、测试、架构师等。

 

 

3.4 进度安排

进度安排如表3-2所示。

表3-2 进度安排表

阶段

持续时间

阶段描述

输出

构思阶段

4小时

需求分析

需求说明,功能模块图

设计阶段

1天

系统设计

设计说明-可以画流程图;数据库设计

是现阶段

3天

编写代码

项目工程源代码

1天

系统测试

进行黑盒测试(功能测试)-测试说明

运行阶段

1天

部署、运行

系统使用说明、运维报告-答辩

 

4 系统设计

4.1 系统设计

根据系统的实际功能需求分析,对系统功能部分进行了设计。

 

注册功能:用户想要进行聊天,首先要注册账号,需要正确输入个人信息以及验证码才能注册成功,然后产生一个账号与个人信息一起保存到数据库中。

 

登录功能:注册完成的用户输入账号,密码后点击登录,与数据库中信息进行密码和账号的比对,正确即可完成登录,进入好友列表界面。


  好友列表:登录后,进入好友列表界面。


  聊天功能:进入好友列表页面,点击好友按钮,弹出个人信息界面,点击发消息按钮进入私聊界面,点击群聊按钮进入多人聊天界面。
  (1)群聊:

多人聊天界面,点击发送可以把文本框中的东西发送给其他客户端,点击取消按钮可以清除文本框中的内容。
  (2)私聊:

   通过启动服务器端和客户端在客户端输入消息发送给客户端,客户端可以接收到消息并且可以显示每条发送信息的时间

技术图片

表4-1  注册功能流程图

技术图片

表4-2  登录功能流程图

技术图片

 

表4-3  聊天功能流程图

 

 

4.2 数据库设计

根据系统需求分析设计了1张表,为用户信息表。具体信息如表4-1所示。

用户表主要记录了用户基本信息,如表4-1所示。

表4-1  用户信息表

序号

字段名

数据类型

约束

是否为空

说明

1

strName

varchar(36)

 

用户名

2

sex

varchar(16)

 

性别

3

age

varchar(11)

 

年龄

4

idNum

varchar(16)

主键

身份证号

5

id

varchar(16)

主键

账号

6

password

varchar(20)

主键

密码

5 系统实现

5.1注册界面实现

有用户名,性别,年龄,身份证号,密码,验证码如果那一项没按要求填写则跳出一个弹窗进行提示。当注册成功时,会弹出一个界面显示账号还有注册成功提醒。

 技术图片

5.2登录界面实现

登录界面有账号,密码,验证码,最下方有两个按钮建登录和注册。如果没账号可以进行注册,用户的信息都保存在数据库中。用户登录时,如果密码或者账号还有验证码错误时,会有弹窗提示。

 技术图片

5.3好友界面实现

当进入好友界面后,点击好友会进入下一个界面,显示好友信息,以及进入聊天界面。技术图片

5.4好友信息界面实现

从数据库获取信息以及程序自主设置信息。

技术图片

技术图片

5.5聊天界面实现

私人聊天和多人聊天,发送文件和图片,以及取消发送,清空文本框。

 技术图片

技术图片

技术图片

6 系统测试

在注册模块中主要对用户名、性别、年龄、身份证号、密码、注册、取消的功能模块进行测试,测试结果如表6-1所示。

表6-1 注册模块测试表

编号

测试功能

输入描述

预期结果

运行结果

HP01

用户填写信息

1.用户填写用户名、选择性别、年龄、身份证号、密码

2.点击注册按钮

如果填写信息项为空或者输入格式等错误会给出弹窗进行提示

正常,与预期结果一致

HP02

用户注册

1.用户正确的填写注册信息

2.点击注册按钮

成功注册之后会给弹窗提示账号,并且把用户信息存入到数据库中

正常,与预期结果一致

HP03

取消按钮

1.点击取消按钮

退出界面

正常,与预期结果一致

注册模块测试主要是针对用户注册信息操作,从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果与预期结果一致。

在登录模块中主要对账号、密码、登录、注册的功能模块进行测试,测试结果如表6-2所示。

表6-2 登录模块测试表

编号

测试功能

输入描述

预期结果

运行结果

HP01

用户填写账号和密码

1用户填账号、密码

如果填写信息项为空或者错误会给出弹窗进行提示

正常,与预期结果一致

HP02

用户登录

1用户填账号、密码

2.点击登录按钮

成功登录之后会进入好友界面

正常,与预期结果一致

HP03

用户注册

1.点击注册按钮

成功跳转到注册界面

正常,与预期结果一致

登录模块测试主要是针对用户登录信息操作,从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果与预期结果一致。

在好友模块中主要对好友信息的功能模块进行测试,测试结果如表6-3所示。

表6-3 好友模块测试表

编号

测试功能

输入描述

预期结果

运行结果

HP01

显示好友信息

1点击好友

正确显示好友信息

正常,与预期结果一致

HP02

聊天

1点击聊天

进入私聊界面

正常,与预期结果一致

HP03

取消

1.点击取消

跳转上一界面

正常,与预期结果一致

好友模块测试主要是针对用户登录信息操作,从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果与预期结果一致。

在聊天模块中主要对好友信息的功能模块进行测试,测试结果如表6-4所示。

表6-4 聊天模块测试表

编号

测试功能

输入描述

预期结果

运行结果

HP01

私聊

1点击好友

2点击聊天

进入私聊界面

正常,与预期结果一致

HP03

群聊

1.点击群聊

进入群聊界面

正常,与预期结果一致

聊天模块测试主要是针对用户登录信息操作,从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果与预期结果一致。

 

下面这部分是总结

主要是对该课题设计并实现的所有功能模块进行测试,并给出测试表格和验证结果。结果表明本课题经过测试,所有功能都符合需求分析并且均能正常实现。

 

 

7 结论和心得

学生1文俊彩:

心得:通过本次实验,让我了解许多知识,包括 GUI,MySQL等,刚开始对界面布局不了解,经过多次尝试可以布局界面,了解GUI的一些知识。数据库虽然说没学过,但是翻阅资料懂得如何创建数据库表。多人聊天经过几天的编写,虽说有很多不足,但是很满意,中间又放弃的想法,最后又坚持下来,为自己打气。懂得如何使用多线程,不足的是没能实现图片和文件发送,很遗憾。这次实验,几乎是脱离课本教学的,很喜欢这次实训,让我收获很大,团队之间应该多沟通多交流,这样才能更好地完成任务。分工应该明确,相互合作,相互鼓励。

学生2董琼林:

心得:通过这次实验我进一步熟悉了程序开发的过程,做项目的时候也遇到不少困难,经过我们小组的讨论解决了一个又一个的问题,发现了自己的缺点就要改正,以后的学习生活中会加倍努力,更好的完成老师留下的任务。还让我明白了在拿到一个需求时,不是立刻就写代码,而是先分析需求,有什么样的功能,怎么去实现,思考思路,画流程图等等,弄好了这些,才能开始写代码,最后还要进行多次测试。
     我认为学知识不能凭自己的爱好和一时兴趣,要一步一个脚印,认认真真,踏踏实实,理论与实践相结合,在扎实掌握课本实例和内容之后,有一定的扩展阅读和课外学习,充分全面的了解JAVA的应用和扩展运用,多动手,提高自己的编程能力。

学生3郑思聪 :

心得:通过本次实验,加深了我对线程,套接字等方面的了解,也让我在之前的java 学习中找到了不足,以及遗忘的知识漏洞。这次实验让我巩固了曾经学习的java知识,也让我学习上的漏洞得以弥补,还加强了我在编程的活学活用的能力。而且通过本次实验还学会了一些课堂以外的java知识,以后还要继续多加练习,希望在今后、后的学习中加强对知识的巩固,不要遗漏任何一点知识。

 

 

 

 

QQ聊天小程序

标签:十分   实践   扩展   基本功   nbsp   传递   其它   系统   原来   

原文地址:https://www.cnblogs.com/zsc961644823/p/13254109.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!