基于Java的在线聊天APP的设计与实现(论文+源码)_kaic

摘  要
即时通讯技术在信息交流方面具有成本低、效率高的优点,在当下这个追求效率的社会环境下越发被重视。但随着时间的发展,原来追求高效的信息交流软件却变得越来越臃肿,越来越多的人们渴求着一款去臃肿的简洁高效的即时通讯软件。
本设计使用Windows操作系统,采用C/S模式,以Java为开发语言,eclipse为开发平台,后台使用MySQL数据库保存用户账号密码资料等信息,应用TCP/IP协议,使用Java Swing进行用户界面的开发,通过Socket技术建立网络通讯渠道,多线程完成多台计算机之间的信息传递。主要流程为用户注册登录账号后,用户间能够相互添加好友进行聊天。以此为基础对基于Java的在线聊天APP进行设计,主要实现了注册登录,添加好友,创建群聊、添加群聊、修改查看资料卡、信息发送、文件发送等功能。开发完成后,进行了系统的测试,测试结果表明界面美观、运行流畅、功能较齐全,具有一定的使用价值。
关键词:C/S模式;Java语言;即时通讯
ABSTRACT
Instant messaging technology has the advantages of low cost and high efficiency in information exchange.But with the development of time, the information exchange software that originally pursued efficiency has become increasingly bloated, and more and more people are craving a simple and efficient instant messaging software to reduce bloating.
This design uses the Windows operating system, C/S mode, Java as the development language, and eclipse as the development platform. The backend uses MySQL database to save user account and password information, applies TCP/IP protocol, and uses Java Swing for user interface development. Network communication channels are established through Socket technology, and information transmission between multiple computers is completed through multiple threads. The main process is that after users register and log in to their accounts, they can add friends to chat with each other. Based on this, a Java based online chat app was designed, mainly achieving functions such as registering and logging in, adding friends, creating group chats, adding group chats, modifying and viewing profile cards, sending information, and sending files. After the development was completed, the system was tested, and the test results showed that the interface was beautiful, running smoothly, and the functions were relatively complete, which had certain practical value.
Key words:C/S mod;Java;instant messaging

目  录
第1章 绪论
1.1 研究现状和背景
1.2 研究目标
1.3 论文组织架构
第2章 相关理论和技术
2.1 Java简介
2.2 MySQL
2.3 Socket介绍
第3章 系统分析
3.1  可行性分析
3.1.1  技术可行性
3.1.2  经济可行性
3.1.3  操作可行性
3.1.4  法律可行性
3.2  需求分析
3.2.1  功能需求分析
3.2.2  非功能需求分析
3.3  系统流程图
3.3.1  客户端流程图分析
3.3.2  服务器端流程图分析
第4章 系统设计
4.1  系统设计
4.2  数据库概念设计
4.3  数据库逻辑设计
第5章 系统实现
5.1  系统运行环境和运行工具
5.2  启动服务器
5.3  聊天监控
5.4  账号注册登录
5.5  添加好友群聊
5.6  创建群聊
5.7  好友列表和群聊列表
5.8  消息发送
5.9  文件传输
5.10  更改个人资料卡
5.11  查看资料卡
5.12  删除好友和群聊
第6章 系统测试
6.1  测试步骤
6.2  测试预期结果
6.3  测试用例
6.3.1  服务器启动测试
6.3.2  注册测试用例
6.3.3  登录测试用例
6.3.4  添加好友测试用例
6.3.5  添加群聊测试用例
6.3.6  发送文件测试用例
6.4  测试结论
结论
参考文献
致 谢


第1章 绪论
1.1 研究现状和背景
人们通常所说的聊天软件,是一种可以进行文字传输、文件传输的工具,其在因特网上被广泛使用。即时通讯软件通常可以分为两种类型,一种是基于服务器的,另一种是基于P2P的。
随着信息化的飞速发展,互联网已成为影响人类生存和发展的一大要素。互联网技术对于人类社会生产及生活的全面渗透使得网络聊天工具成为了于人而言一种不可或缺的工具。相较于传统聊天方式,应用网络聊天工具不仅见长于较低的成本,且在速度及方便性等方面同样有着突出性优势。[1]即时通讯工具能够显著提高效率和生产力,许多企业也认识到了即时通讯工具的优势,利用LAN来提供服务,在有效进行沟通的过程中快速地执行,借此提高了日常工作中的协同性和反映快捷程度。当前市面上也已经出现了QQ、微信等聊天工具,但是它们在便捷性之外,娱乐、广告、游戏等扩展功能越来越多,在吸引用户注意的同时,软件也愈发臃肿,网络上对于追求纯净聊天工具的呼声越来越高。因此,有必要开发一款专注于信息交流的即时通讯软件。
1.2 研究目标
论文叙述的是一款基于Java的在线聊天软件,主要用于用户和用户间的交流。首先用户要能够注册并登录软件,用户在登录软件之后可以通过账号查找好进行添加,用户与好友间能够发送、接收信息,并且信息将被保存于服务器中。用户能够设置自己的资料卡,完善个人信息,也可以查看好友资料卡了解好友的信息。除了与好友聊天外用户还能够创建或加入群聊与更多用户实现聊天。
1.3 论文组织架构 
本文的结构安排如下:
第1章:绪论,介绍本文的研究现状及背景、研究目标和本文的结构安排。
第2章:介绍程序的开发环境和相关技术工具。
第3章:系统分析,详细介绍了系统开发的可行性,从技术、经济操作、法律方面等介绍,也介绍了系统开发需求性从功能需求、非功能需求介绍。
第4章:系统设计,对该系统做相应设计,包括功能模块设计和数据库设计。
第5章:系统实现,对该系统的各个功能模块功能进行实现。
第6章:系统测试,对该系统主要功能模块进行测试,并展示了测试结果。
结论:对系统的设计和实现进行总结,并对今后的发展进行展望。

第2章 相关理论和技术
2.1 Java简介
Java在诞生之初只是一门面向对象的语言,但如今Java已经是世界上使用最广泛的编程语言之一。Java开始被用于开发从Web应用程序到移动应用程序再到批处理应用程序的所有内容。Java不仅具有广泛的适用性,其在安全方面的也有很好的表现,能有效的降低病毒对于程序的影响。Java语言是静态面向对象编程语言的代表,它将面向对象理论进行了完善的实施,让程序员可以用不同的思维方法来进行某些复杂的编程。
Java十分简洁,Java在语言学习上比C++更简单;Java语言能够跨平台,只需要编译一次,代码便可在任何平台运行,JVM屏蔽了底层操作系统的差异;Java源代码编写后需要进行一次编译将源代码编译为字节码,因此它的运行速度很快;Java程序运行于JVM中,因此它的安全性也较强;Java具有动态性,其类信息在JVM加载时会先进行初始化。
2.2 MySQL
MySQL是一种以C和C++为基础的、由各种编译程序实现的、具有很高可移植能力的数据库。它既能支持各种操作系统,又能为各种编程语言提供相应的应用接口。其从算法上对SQL语句进行了改进,使SQL语句的运行性能得到了极大的提升,同时也使SQL语句的运行速度得到了极大的提升。
MySQL小巧,查询速度快,并且是免费开源的,在本次开发中已经可以满足要求,因此在本次开发中选择了MySQL数据库进行数据的储存。
2.3 Socket介绍
Socket是一种被用来将通讯的两人联系在一起的技术,它能够在他们之间搭建一座通讯的桥梁,从而实现讯息的传输。然后在服务器端开启对应的端口号,等待客户机接入。
具体地说:在本系统的运作过程中,首先要开启服务器,才能开启服务器的连线,并侦听服务器的连线,随后等待其它使用者的连线。在收到其它使用者的连结讯息时,这个使用者就会得到对应的连结码连结到服务端,进而在服务器和客户端间建立通讯通道,可以使用写入Socket来进行彼此之间的通信。如果有新的客户机请求来进行链接,服务器端本身就需要得到一个新的端口号,来进行被占据的老的端口号的侦听工作。以方便对新的客户端请求做出响应,以此实现多客户的服务功能,让多个客户可以以服务器为中介,来进行简单、高效的通讯。
Socket程序的工作过程:
1、建立Socket连接:进行通信的一方需要连接另一方时,先对对方的IP地址和端口号进行确认,在确认完成后将会发送连接请求,等待对方回应确认是否接受自己的连接请求。
2、数据通信:数据通信指的是在已经建立的连接通道上进行信息传输的过程。
3、关闭:在信息传输完成之后,为了让其他客户端的连接更顺畅,需要拆除之前所建立的连接通道来释放被占用的内存。
Socket信息交互原理图如图2.1所示:
图2.1 Socket信息交互图

第3章 系统分析
3.1  可行性分析
程序的可行性分析在设计过程中是十分重要的,完善的分析能够节约许多在程序开发中的成本,为开发的道路扫清不必要的障碍。因此需要对系统分别进行技术可行性、经济可行性、操作可行性等方面进行全面的分析。
3.1.1  技术可行性
目前,网络技术还在快速地发展着,它已经与各种企业和个人密不可分。与此同时,网络技术的发展也越来越完善,各种以网络技术为基础的即时通讯平台也逐渐地成为了企业公司、部门单位用来提升工作效率的一种良好工具。另外,即时通讯软件的开发已经拥有了许多成功的实例,在技术方面开发它的并不高,且开发该软件所需要的开发软件获取较为简单,在开发过程中没有什么压力,因此成功开发是可行的。
(1)系统软件
开发系统:能够支持eclipse或IDEA运行的各类系统均可
开发软件:myeclipse或者eclipse
Web Server:JBoss、Weblogic或者tomcat
(2)开发语言
Java是一种简单易用并且具有很强的能力的技术,因为其具有跨平台的特性,所以在开发语言中占据着很大的优势,不仅包括了C++语言中Object Oriented的特性,还对 C中十分复杂的指针、多继承等特征进行了优化。与此同时,还添加了垃圾回收的机制,从而大大简化了程序员的开发过程,并能够及时的释放出存储空间,让开发者不再浪费时间和精力在优化空间释放上。
3.1.2  经济可行性
基于Java的在线聊天APP开发需要使用的工具能够直接在各个官网免费下载,不需要其他的经济支出;研发方面,本系统由本人自行开发,通过所学的知识以及互联网完成,并无其它经济支出。这样,在即时通讯软件的开发期间,所耗费的资源就不会很难供给与维护了。从软件价值角度来看,在软件设计成功后,它可以给使用者带来方便,同时它还可以给开发初学者带来一定的借鉴价值,因此,从上述两个角度来看,这一点是可以实现的。
3.1.3  操作可行性
本系统利用C/S结构、Java语言技术、Java Swing和Mysql数据库等技术,使本系统更加有效与稳定,使系统设计的更加简单、易操作。这次设计的网络聊天APP就是其中最基础的一款应用。本软件只要打开客户端即可进入,操作简单方便,便于使用者使用。
3.1.4  法律可行性
基于Java的在线聊天APP是由个人独立开发的项目,不存在版权等法律纠纷。另外就是本项目的立题没有不良引导,意在帮助人们更方便快捷的沟通,对社会有益的,不存在违法违规等情况。因此本项目在法律上是完全可行的。
3.2  需求分析
对软件未来要实现的功能的假设,也就是需求分析的过程,需要对用户的需求和目的进行确定,然后对目标展开分析,并给出解决方案。综合考量在这其中有什么是必须要完成的,有什么是不能完成的,什么内容要注重用户体验,什么内容要注重可用性。因此,在开发该软件前,对其进行需求分析就显得尤为重要。主要的难点有:供需交流的困难,动态变化的需求,以及后续的系统维护和维修。这对于一个软件的寿命来说是非常关键的,需求分析的成果常常可以控制一个项目的整体发展趋势,因此,在项目的开发中,有必要进行需求分析。
3.2.1  功能需求分析
应用程序的主要工作是实现用户和用户间的信息交流。用户首次使用只需通过填写相应的信息来完成账号的注册,接着就能使用账号和密码登录客户端使用程序。用户能够通过修改资料卡详细自己的个人信息,也能通过账号查找用户添加好友,用户间能够消息和传输文件,也能够建立群聊实现一对多的信息沟通。用户只需要安装该应用程序就能够在自己的电脑上使用并完成相应操作。数据库为应用程序实现信息储存和交换,以上就是在线聊天APP的大体功能。
3.2.2  非功能需求分析
(1)系统的安全性
信息的安全性一直是一个不容置疑的问题,因此为了保证信息的安全性,必须对信息进行多重加密。数据的一致性和完整性也是任何一个系统都要确保的,因此,在系统中生成的数据都要被定时地核实和检查。另外,也要做好数据的备份,以防出现系统突发故障或者当机而造成的数据损失。为了保证该系统能够安全、有效地、长久地运转,其需要建立起与之对应的网络防火墙,与此同时还需要做好对数据进行加密工作。一个好的系统还需要有能够支持其运行的环境,因此,必须也要考虑到硬件的问题。
(2)系统的响应时间
对一个软件而言,反应速度是评价软件性能的一项关键因素,因此,在保证软件功能的前提下,有必要进一步提升反应速度,从各方面来减少信息传递的间隔,使在用户进行登陆与实时聊天时,不可以因为等待而感到厌烦。
(3)系统的易维护和易用性
聊天系统是为用户提供的,而用户可能并不熟悉该系统中的各项设定,因此在遇到紧急情况时,他们的反应速度会比较慢。因此在这个时候,就需要要求开发人员为其提供一个具有良好的人机交互界面和各类提示信息。这样,使用者就可以更好地了解这个系统,并且可以更好地解决一些使用过程中的简单问题。
由于这个聊天系统是要进行长时间的运作,作为开发者,必须要对用户在平时工作过程中可能出现的一些滥用和误用进行处理,在面对这种情况的时候,开发者必须要让这个系统能够自动地做出相应的紧急措施应对,或是给予用户一定的提醒和引导。
(4)系统的先进性
Socket技术已经很完善了,Socket技术在用作网络通信的时候也是十分受欢迎的。此外,本系统采用的是跨平台的Java技术,因此它对多种操作系统具有很好的兼容性。
3.3  系统流程图
3.3.1  客户端流程图分析
客户端流程图如图3.1所示 


图3.1 客户端流程图
3.3.2  服务器端流程图分析
服务器流程图如图3.2所示。


图3.2 服务器流程图

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Android Studio是一种流行的集成开发环境(IDE),用于开发基于Android平台的应用程序。在这种环境下,我们可以设计实现一个在线答题App,并为其编写源码在线答题App设计实现源码主要包括以下几个方面的内容: 1. 用户界面设计:使用Android Studio的布局编辑器可以设计各种界面,例如主页面、题目页面和答题结果页面。可以选择适合的布局类型和控件,为用户提供良好的用户体验。 2. 数据库设计:为了存储题目和答题结果,我们需要设计一个数据库。使用Android Studio的SQLite数据库工具可以创建相应的表格,并为每道题目和每个用户的答题结果分配相应的字段。 3. 答题逻辑实现:为了实现答题功能,我们需要编写相应的代码。通过请求数据库获取题目内容和选项,并与用户互动,记录用户选择的答案。同时,还要实现正确答案的判断,并计算用户得分。 4. 答题结果展示:在用户答题完成后,需要将用户的答题结果展示给用户。我们可以使用适当的界面和控件来展示用户的得分、答对的题目数量等信息。 在Android Studio中,我们可以通过使用Java或Kotlin编写代码来实现上述功能。可以在项目的适当位置使用注释来解释代码的用途和实现思路,以方便后续修改和维护。 总而言之,使用Android Studio的在线答题App设计实现源码主要包括用户界面设计数据库设计、答题逻辑实现和答题结果展示等方面。通过合理的设计实现,可以创建一个功能完善的在线答题应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开心工作室_kaic

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值