一、系统分析
1.1 问题描述客户端
实现简易版的局域网聊天器
实现富文本内容聊天
智能聊天机器人
群发消息
传送文件等功能
服务器端
实现群发通知
管理聊天线程
1.2 系统功能分析客户端功能
登陆注册
发送表情消息
发送文本消息
截取图片
图片处理
震动效果
发送文件
群发消息
设置聊天文本样式
服务器端
广播通知
1.3 开发平台及工具介绍Eclipse Mars2
二、系统设计
2.1 系统总体结构设计
系统采用自己设计的网络消息传输协议,系统采用CS架构模式实现数据传送。
2.2 系统各个类及类之间关系设计
注:
界面一般是继承了JFrame或JWindow
JList、JTable所用的model和渲染器renderer都是自己重写的
其余的一些比较琐碎的关系理起来比较复杂
程序中的控件大多是自己自定义改写的
2.3 数据存储的设计(文件等)采用键值对的方式存储账号密码
截图默认保存在ScreenCut/+文件名.jpg
用到了多种流操作,以及网络传输最关键的套接字操作
2.4 界面设计自定义渲染和数据模型,实现JList、JTable的外交改变
最长用的是在渲染器中继承JTable实现Renderer接口
三、系统实现
四、系统测试
模块测试与系统测试:
4.4 登陆测试
4.5 注册测试
4.6 表情测试
4.7 震动测试
震动效果无法截图!
4.8 截图测试
4.9 滤镜效果测试
4.10 设置测试
4.11 机器人聊天测试
4.12 文件传输测试
4.13 服务器管理界面测试
五、总结
通过这次的课程设计,可以说是开阔了自己的眼界,可以总结为以下几个方面:
对JAVA体系的更深入的了解、对JAVA图像处理初步认识、对JAVA网络通信流的操作、流的套接更进一步深刻了解
对网络通信的理解,CS、BS架构模式的了解
对设计模式的初步认识与使用,线程管理这块单例模式的功能
对JAVA的MVC模式的更深刻了解,层与层的分工明确,效率高,易管理,让人惊叹
对线程的理解更深刻了,深谙UI主线程与处理耗时操作的子线程的逻辑处理关系
对网络协议的初步了解,关于协议的定义了解,以及各种传送协议的效率比较有了大体。印象,Socket通信UDP和TCP通信机制初步了解
对系统的架构设计有了初步认识,缓存机制,分布式系统等,虽然代码中还未实现,程序也并不是面向抽象编程和面向接口编程,代码低耦高聚效果一般,但仍然受益
知识方面,在课程设计的任务中主要负责jlist jtable覆盖重写、基础类的继承重写、接口实现、界面设计与美化等。玩了半个假期后很多学过的知识都记不清楚了,所以打码的过程中经常翻书,让我又重温了知识;一部分知识书上没有,还需要上网查询或者找同学帮忙解决。有很多瓶颈时候,但坚持过去,看到一起完成的作品会有很大的满足感;其他方面:经过这次课程设计任务,我又一次认识到了团队合作的力量和重要性。一起讨论问题:苦恼过,失落过,兴奋过,到最后的成就感,让我成长,也对自己有了很大的信心。
在这次课程设计,我们一起讨论要实现这个系统的哪些功能,把各自的想法说出来研究,我们还根据各自所学之长来分配工作,让我意识到在团队合作里每个人都能分享自己的想法、找到自己的位置发挥所长很重要,这样才能让我们更好地完成我们的工作。在完成我们的任务的过程中,我把每个功能逐步实现,比如在实现登录功能的时候,我会先把输入正确的账号和密码登录成功的功能实现,然后再实现判断输入的账号和密码是否一致,若不一致就返回重新输入账号密码这一功能,这让我在发现错误的时候更加容易找出并解决。在此过程虽然遇到许多困难,但是我都会去研究课本和课件里的例题或者上网去看教学视频,一步一步测试,自己实在无法解决了就去找同学帮助。
经过这次课程设计,我对Java有了更深的了解,但这还远远不够,为了未来的发展,我必须更加努力地去学习更广更深的知识。