这学期学习Java高级,最后有个Java课程设计,要求我们做个即时通讯系统。首先,说说这个即时通讯系统吧,说白了就是盗版QQ,但是盗版又要有模有样嘛,腾讯素来以“盗版”著称,别的公司有什么新功能,产品有什么新功能,帝国总能做个像模像样的出来,最终得到的收益也不菲。这不仅取决于帝国的庞大用户,还取决于别人的技术确实牛,模仿得确实到位。
好了,吐槽就到此为止吧,说说咱们自己的。
本项目采用MVC模式进行开发,Model层表示模型层,对线程的管理、Socket的管理、界面的管理、数据库的操作等模型都放在Model层;View层表示表示层,所有的界面均放在这层进行统一的管理。Controller表示控制层,对线程的管理、Socket的管理、界面的管理、数据库的操作都放在Controller层。这样实现界面和操作,界面和模型分离,层次分明,结构清晰,易于管理、控制、编码和调试。
从最开始的需求分析、到数据库设计,再到界面设计、项目讨论、编码实现、项目测试,最后到项目总结,这一路走来,真正感觉到做一个项目的流程,体会更深的是做项目不是那么容易的。我们小组一共有六个人,但到最后真正编码的人却少之又少。不过很欣慰的是我从其中感受到了团队合作的力量。常言做软件单枪匹马是行不通的,是做不好的,这一点我从这个项目中体会很深刻。在此对我们项目的所有成员致敬,感谢大家的配合!我们已经做得很好了。We are a team!We are perfect!We are the champion!
接下来说说我们这个项目实现了哪些功能。
1)单聊(发送文本消息)
2)用户注册
3)发送表情
4)文件传输(在线文件传输)
5)添加好友
6)查找好友
7)改变字体颜色
8)创建群、群聊
9)换肤
10)加好友(验证 有提示音)
11)浏览器
12)查看帮助文档(项目API)
13)发送抖动窗口
14)系统托盘
看到这些功能千万不要惊讶,相信你也可以的!
然后贴下运行效果截图,首先声明界面做得很丑,我们关注功能去了,所以一个是服务器做得很差,另一个是用户体验性做得不好。本来需求分析里写了要实现语音聊天和视频聊天的,但是由于JMF不能找到摄像头驱动,所以这个功能就没做了。其实要做的话,还有很多东西要去考虑的。这里就暂且放下,等有时间下一个版本再做吧。
注册界面:
登录界面:
好友界面:
创建群界面:
好友列表——群界面
换皮肤:
接收添加好友的请求:
接收文件传输:
聊天和改变字体颜色、发送表情:
群聊界面1(好友1):
群聊界面2(好友2):
同意并添加好友:
系统托盘(小人那个):
邀请好友群验证:
浏览器:
下面贴下我们这个项目的流程图和数据库设计。
数据库图表(SQLServer 2008)
数据库模型(PowerDesigner)
下面贴下项目流程图。
最后从几方面总结我们这个项目吧。
首先说说自己的毛病、需要改善的地方和收获吧:
1.遇事不太冷静,心太急。这是自己很大的毛病吧。妈妈经常教育我,遇事要沉着冷静,心急吃不了热豆腐,虽然这些话经常在耳边响起,但是自己却没真正的体会和实践。所以,这点需要自己在成长的过程中特别注意。
2.遇到问题,没有充分的思考。当程序报错,没有仔细的去考虑,而是急切地寻找解决办法。这点是不行的。没有思考,只求解决问题,当下一次遇到相同的问题时,很显然你有会去急于寻找解决办法。这样长期下来的结果是,谷歌、百度成了你解决问题的工具,真正核心的东西你是没掌握的。
3.从这个项目中,学到了一些调试程序的技巧。真正体会到程序调试的重要性和必要性。可以说,只会写代码不会调试代码的程序员不是合格的程序员。
4.学到了一些管理技巧,和同学之间的交流变得好多了,当遇到问题时自己能比较清楚的表达。其中团队合作是很重要的。班上有同学以为他做出来了就很了不起,跟我说话都夹杂着轻蔑、瞧不起的语气。我想说的是,我用一句话总结自己,我唯一知道的就是自己的无知。
5.从这个项目中学习到了数据库编程、网络编程、Java Swing GUI编程、JMF框架的使用(当然只是初步了解)。
6.项目的较标准化,使用了Powerdesigner 15.1设计数据库,Microsoft Visio 2010设计流程图、界面。Microsoft Word 2010编写文档。数据库采用Microsoft SQLServer 2008 R2。开发环境采用JDK 1.6 + MyEclipse 6.5 + Notpad ++ 6.1。并定时监视项目进度。
7.当代码调通、解决一个有一个的Bug时,心里既开心,又激动。终于体会到前段时间有个同学说到:”码通,大喜“的心情了。这种成就感也驱动我们继续开发。
8.和小X的合作非常愉快!大家一起加油!
然后从整个项目的角度讨论下吧:
1.我们小组是一个很团结的,这一点从平时安排的工作就可以体会出来。话是这样说,但是有些队友做事不够积极。这一点还是要指出来的。希望以后多多改正。
2.整个项目还是有创新的地方,虽然很多功能都是耳熟能详的,但是在做的时候还是花了很大的力气。虽然界面丑了点,但是核心的东西还是做出来了。
3.整个项目比较符合项目管理的流程,平时注意文档的书写,数据库设计做得比较规范,代码编写很规范化,注释很到位。
4.项目没有使用版本控制工具,如SVN,这使得平时的整合需要花很大的功夫,所以以后做项目一定要把版本控制工具用上。
5.程序用户体验性做得不够好,很多地方还有Bug,很多操作觉得有点莫名其妙。这是以后需要改进的。
6.服务器做得太简陋,而且关闭服务器的动作还没有处理得很好。
然后说说其他小组的成果吧。其他小组有比我们做得好的,当然我们也比有些小组做得更胜一筹。有个小组做得即时通讯系统类似于Windows 8 QQ,界面做得很炫,服务器写得很到位,细节处理得很好,这是需要我们学习的。有些小组做得有些功能和真实版QQ很类似。细节处理得也还好。
再说说演示的时候吧。从整体来说我们的演示效果还是不错的,把做得功能(除了注册)都演示出来了。但是群聊的时候只有两个人,原因是CMCC的Wifi太不稳定,还有就是1433这个错误(貌似这个错误我写了博文,那篇博文是完美解决的,但是这次也不管用,还有待研究中),使得其他用户连接不上。这一点是有点遗憾的。还有一点是值得表扬的,自己的口头表达能力得到了很大的提高,上台表述很清楚,有条不紊。不错,继续努力!
最后感谢小X对这个项目的倾心付出!很多核心的代码都是他完成的。几天没休息好了吧。还是多注意身体哈!
好了,这次的项目算是告一段落了,这次的总结到此为止。真心感谢大家的配合!大家加油!向更远的前方迈进。
谨以此文献给2010级4班Java高级课程设计第一小组的所有成员!
下载源码请点击这里。