标签:编译程序 编号 文件路径 完成 desc 制作 探索 cli 之一
目 录
1 绪论 1
1.1 项目概述 1
1.2 项目意义 1
2 开发工具和相关技术简介 2
2.1 Eclipse简介 2
2.2 Java语言介绍 2
2.3 MySQL简介 3
2.4 JDBC技术简介 3
3 系统需求分析 4
3.1 系统可行性分析 4
3.2 系统需求分析 4
3.3 组内成员分工 5
3.4 项目进度安排 5
4 系统设计 6
4.1 系统设计 6
4.2 数据库设计 8
5 系统实现 9
5.1 仿QQ聊天程序登录界面实现 9
5.2 仿QQ聊天程序好友列表界面实现 10
5.3 仿QQ聊天程序群聊界面实现 11
5.4 仿QQ聊天程序私聊界面实现 11
5.5 仿QQ聊天程序打开图片界面实现 12
6 系统测试 13
7 结论和心得 14
1.1 项目概述
项目内容:使用图形用户界面实现一个聊天室中多人聊天,可以两个人私聊,可以发送图片,可以查看好友列表。实现类似QQ用户注册登录聊天等功能。
要求:运用java程序编写聊天室,实现简单的聊天功能。它是图形界面,线程,流与文件系统等技术的综合应用。其界面主要采用了java.awt 包,java.swing 包以及java.util 包等。程序实现了聊天室的基本功能,其中有:
1、启动服务器。
2、进入客户端界面。
3、登录聊天室。
4、发送信息。
5、关闭服务器。
1.2 项目意义
意义:在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似QQ网络聊天时一类的聊天系统的发展日新月异,因此制了作一个有简单聊天功能的网络聊天程序;而且通过制作该程序还能更好的学习网络软件编程知识。
本项目是仿QQ聊天程序。开发环境:Eclipse、MySQL;开发语言:Java语言;开发技术:多线程、socket、UDP等。本章将对开发工具和相关技术进行简单介绍。
Eclipse是一个基于Java的、开放源码的、可扩展的应用开发平台,它为编程人员提供了一流的Java集成开发环境(Integrated Development Environment,IDE)。它可以极大地提升我们的开发效率。可以自动编译,检查错误。
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
java的特点:
(1)简单性(语言小、容易熟悉)
(2)面向对象
(3)分布性(只要编写一次,就可到处运行)
(4)编译和解释性(编译程序生成字节码,提供体系结构中的目标文件格式)
(5)稳健性(消除了某些编程错误,使得用它写可靠软件相当容易)
(7)可移植性(不依赖于实现,对新的硬件平台和操作系统是可移植的)
(8)高性能(“及时”编译程序,实现了全编译)
(9)多线索性(提供支持多线索的执行,能处理不同任务)
(10)动态性(适应于变化的环境)
Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。
MySQL一般特制完整的MySQLRDBMS,是一个开源的关系型数据库管理系统,是单进程多线程架构的数据库,随着MySQL功能的不断完善,性能不断提高,又有开源免费的优势,越来越多的企业选择使用MySQL。
MySQL采用的是客户/服务器体系结构,因此实际使用时,有两个程序,内部大致分为三层,支持插入式的存储引擎,可以根据实际情况选择最合适的存储引擎。
JDBC全称为java database connectivity,是sun公司指定的java数据库连接技术的简称。是一种用于SQL语句的Java API,由一组类和接口组成,通过调用这些类和接口所提供的方法,可以使用标准的SQL语言来存取数据库中的数据。JDBC为数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库。
仿QQ聊天程序:技术可行性、操作可行性----项目可行。
调研对象:老师、同组同学、4 5 6 10组
项目内容:使用图形用户界面实现一个聊天室中多人聊天,可以两个人私聊,可以发送图片,可以查看好友列表。实现类似QQ用户注册登录聊天等功能。
要求:运用java程序编写聊天程序,实现简单的聊天功能。它是图形界面,线程,流与文件系统等技术的综合应用。其界面主要采用了java.awt 包,java.swing 包以及java.util 包等。程序实现了聊天室的基本功能。
图3-1 仿QQ聊天程序简易流程图
表3-1 组内成员分工情况表
序号 |
姓名 |
组内角色 |
小组分工 |
备注 |
1 |
张睿滢 |
项目经理 |
群聊、好友列表、数据库 |
|
2 |
邬新娇 |
编码、测试 |
私聊、发送图片、线程连接 |
|
3 |
陈茜 |
编码、架构师 |
登录、注册 |
|
进度安排如表3-2所示。
表3-2 进度安排表
阶段 |
持续时间 |
阶段描述 |
输出 |
构思阶段 |
120min |
需求分析 |
需求说明,功能模块图 |
设计阶段 |
一天 |
系统设计 |
设计说明-可以画流程图;数据库设计 |
是现阶段 |
三天 |
编写代码 |
项目工程源代码 |
一天 |
系统测试 |
进行黑盒测试(功能测试)-测试说明 |
|
运行阶段 |
两天 |
部署、运行 |
系统使用说明、运维报告-答辩 |
注册功能:用户想要聊天,首先要注册,需要输入账号密码,点击注册在数据库中查询该用户名是否已注册,如未注册,将该用户用户名密码存入数据库,之后可直接进入聊天。
登录功能:已经注册过的用户输入账号密码后点击登录,在数据库中查询该证号密码是否正确,正确即可成功登录,进入聊天。
图4-1 仿QQ聊天程序登录注册程序流程图
好友列表:登录后,进入好友列表页面,设计两个页面(查看好友列表--页面显示好友列表/群聊--点击切换页面,群聊按钮变至上方,并弹出群聊窗口)
群聊:登录后,点击好友列表中的群聊按钮,进入群聊页面,利用多线程,可发送消息至所有在线的成员。(利用GUI设置好群聊页面,给发送按钮匹配事件,如果点击发送,将谁说了什么显示在多行文本输入框上)
图4-2 仿QQ聊天程序群聊私聊程序流程图
私聊:登录后,选择在线的想聊好友,双击打开私聊界面,(用JFrame构建界面,以及文本框按钮等,先创建这些变量,然后将其赋值,最后将其添加至面板)界面内可发送图片或者发送信息(先创建发送者sender和接受者getter,然后将发送的内容用insert.插入到文本框并通过Description过滤器描述文本),我方发送后,对方立即可接受。
发送图片:在私聊界面点击文件后(用JFrame构建界面,以及文本框按钮等,先创建这些变量,然后将其赋值,最后将其添加至面板),选择所想添加的图片的路径(先用final int PREVIRW_SIZE=100来确定预览图片的大小然后通过JFileChoose来过滤掉没有.的文件,只可发送.jpg .jpeg .gif .png等规定格式的文件,然后设置文件路径。设置图宽高,最后调用路径并通过FileFileter来实现文件过滤即可),点击确定后即可发送
根据系统需求分析设计了1张表,为用户注册信息表。具体信息如表4-1所示。
表4-1 用户注册信息表 qquser
QQuserId |
QQPassword |
1 |
1 |
3 |
123 |
6 |
6 |
4 |
4 |
用户通过输入账号密码进行登录。登录界面如图5-1所示。
图5-1 仿QQ聊天程序登录界面
登陆成功,进入好友列表页面,显示在线好友,可双击私聊好友,可进入群聊页面。好友列表界面如图5-2所示。
图5-2 仿QQ聊天程序好友列表界面
5.3 仿QQ聊天程序群聊界面实现
点击好友列表中的群聊按钮,进入群聊页面,可发送消息至所有在线的成员。群聊界面如图5-3所示。
图5-3 仿QQ聊天程序群聊界面
5.4 仿QQ聊天程序私聊界面实现
双击好友进入私聊页面,可发送消息至指定好友,其他好友不会收到此消息,可发送图片。私聊界面如图5-4所示。
图5-4 仿QQ聊天程序私聊界面
5.5 仿QQ聊天程序打开图片界面实现
点击私聊中的文件按钮,进入打开图片页面,可选择图片文件发送至好友。打开图片界面如图5-5所示。
图5-5 仿QQ聊天程序打开图片界面
在仿QQ聊天程序中主要对注册、登录、好友列表、群聊、私聊、发送图片的功能模块进行测试,测试结果如表6-1所示。
表6-1 仿QQ聊天程序模块测试表
编号 |
测试功能 |
输入描述 |
预期结果 |
运行结果 |
01 |
注册功能 |
1.连接数据库 2.输入正确用户名密码 3.成功进入 4.数据库中显示注册信息 |
可正常注册,并记录到数据库 |
正常,与预期结果一致 |
02 |
登录功能 |
1.登录聊天程序 2.用户名密码正确 3.成功进入 |
可正常登录 |
正常,与预期结果一致 |
03 |
好友列表功能 |
1.两个页面成功展示 2.查看好友列表 |
可查看在线好友 |
正常,与预期结果一致 |
04 |
群聊功能 |
1.发送消息 2.所有人收到 |
可发送信息至所有人 |
正常,与预期结果一致 |
05 |
私聊功能 |
1.发送消息 2.指定人收到 |
可发送信息至指定人 |
正常,与预期结果一致 |
06 |
发送图片功能 |
1.成功选择图片 2.成功发送图片 3.指定人收到图片 |
可发送并接受图片 |
正常,与预期结果一致 |
仿QQ聊天程序模块测试主要是针对用户的操作,从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果与预期结果一致。
学生1姓名:张睿滢
心得:在进行了为期两周的java实训中,我们小组的项目是仿QQ聊天程序。实现了简单的登录注册功能,群聊私聊功能,发送图片,好友列表等功能。自学了以前没学过的GUI、数据库、UDP多线程等知识,虽然时间很短,但每一天都使我收获满满,受益匪浅,也对之前十几周学习到的java基础知识有了更深的巩固,在实践能力上也得到了提高,感觉在java学习中又更上了一层楼。这次的项目我负责的是简单群聊、好友列表、数据库等功能,遇到了很多困难,查询了很多资料。当然,小组项目单单靠一个人的力量是不够的,经过这次的小组合作,我了解了团队的重要性,三个臭皮匠顶个诸葛亮。只要我们有团队精神,善于与小组成员沟通,能控制好自己的时间,把握好一切时间学习,从基本做起,不会的多查多问,就一定会成功的。加油。
学生2姓名:邬新娇
心得:这个仿QQ聊天程序对我来说是一个极大的挑战,自我自身目前的状况来看很难完成,但是在老师和组长的的引导下有了大概的思路,同时随着四次会议的召开,与伙伴们的探讨愈加深入,一步一步的增加了自己的信心,在组长和同伴的帮助下理解了很多原本不太了解的知识点,之前一直迷茫的数据库也能熟练掌握并导入eclipse了,对线程有了更加深入的学习与实践,有些东西初看可能是晦涩难懂难以实现的,但三个臭禆将赛过诸葛亮,对问题不断探索剖析与研究定能取得进展。这次实验非常感谢老师给我们的机会,让我们的能力更上一层楼并给了我们历练的机会,也非常感谢组长和伙伴的帮助,不管什么时候代码上遇到的问题他们总是及时出现并给出自己的解决方案。同时也谢谢努力不放弃的自己。受益匪浅!!
学生3姓名:陈茜
心得:我们小组实现了用Java程序设计了简单的注册登录、聊天和传送图片功能,虽然登录对密码错误次数没有限制,但若用户忘记密码则不可找回,有待完善的功能还有接收和发送文件。通过这次的课程设计,我们在Java方面的知识提高了不少,还学会了开发设计需要团队精神,让我明白了小组合作的重要性。我们互帮互助,共渡难关,最终成功完成目标。
标签:编译程序 编号 文件路径 完成 desc 制作 探索 cli 之一
原文地址:https://www.cnblogs.com/kui-0802/p/13228065.html