基于java的聊天室设计与实现毕业论文内容摘要:

是未经过精心维护的非商业软件。 即使是作为操作系统的各种版本的 Windows 也时常会发生许多类型的错误和漏洞。 本聊天系统程序对于初涉此领域的毕业设计课题来说,尤其在开始初期,感觉逻辑复杂,难以控制,因此至今还有许多未能解决的缺陷。 目前本聊天系统还有待完善的功能列表如下: ( 1)因为设想中是在显示聊天信息的地方点击说话人的账号就可以直接与其私聊,但是也实现不了这个功能,所以私聊功能也暂时搁浅,只完成了群聊的功能。 ( 2) 聊天系统缺乏各种屏蔽发言、 发送表情 、踢人等功能; ( 3)因为电脑无法连接数据源,导致数据库不能被程序使用,所以注册功能最终也没有实现。 ( 4) 也没有详细考虑 到 服务器端对的 聊天室管理功能。 尽管毕业设计到现在已接近尾声,但是对于上述的缺陷,本人还会不断对聊天系统进一步的完善它,期望在今后的日子里凭借自身的技术把系统做成一套深受欢迎的聊天系统。 (二) 经验和感想 ( 1)通过这次毕业设计获得的宝贵经验 经验一:通过本次课题,我对 C/S 架构的设计流程有了一个更深刻的认识,清晰的感觉到了服务器端与客户端之间的交互过程, 经验二:这次的课题让我对以前掌握的不太好的 Socket 编程,输入输出流的使用和多线程的使用有了更好的了解。 经验三:这次的课题让我掌握了一些以前不知道的知 识,比如 hashmap 是不能直接遍历的,需要用到迭代器 Iterator 来实现。 经验四:通过这次的课题,我对以前搁置很久的数据库知识又进行了一遍新的回顾,虽然大多只是回顾了添删改查和几个约束的知识。 ( 2)完成毕业设计的感想 Java 聊天室作为毕业设计,是本人目前做过的最大的程序。 虽然大学期间在设计过一个简单的ASP 聊天室设计,并且经过反复的调试修改也达到了一定的精确性,但接手这个题目时仍感觉十分棘手 ,但最终还是坚持完成了这个任务。 平时自己也常到其它聊天室进行聊天,因此,自己也曾想过以后学会了电脑就一定亲 自设计一款聊天系统,如今,总算实现了自己的梦想。 在学习期间,本人还通过网上的各种 JAVA 源码进行学习与研究,我原以为这样的设计水平将无法完成毕业设计,但当掌握了大部分应用技巧时,剩下的聊天系统思路的设计就显得不是最大的障碍了。 我在三个月内写完这个程序,经过了很多次的调试,终于完成了现在的程序。 原先认为不可能的事,我发现,如果有不畏困难的信心和肯钻研的勇气,就一定会完成,甚至达到意想不到的效果。 11 参考文献 [1] 王养廷 . JAVA. SE 应用程序设计 [M] . 机械工业出版社, 2020. 1~3 [2] 张 利国 . JAVA 软件开发大师 [M].科学 出版社, ~4 [3] 李刚.疯狂 JAVA[M].人民邮电出版社, ~6 [4] 孙卫琴. JAVA 面向对象编程 [M].电子工业出版社, ~6 [5] Katthy Sierra.深入浅出 JAVA 程序设计 [M].机械工业出版社, ~6 [6] Bruce Eckel. Think in java 4[M]. 机械工业 出版社, ~8 [7] 沃尔斯 . Spring in action[M].人民邮电 出版社, ~7 [8] 杨继平 . SQL Server2020 自学教程 [M].清华大学出版社 , ~35 [9] 陈曼红 . 数据库系统原理与自学应用技术 [M].机械工业出版社 , ~33 [10] 王强 . SQL Server 数据库原理及应用 [M]. 清华大学 出版社, ~33 12 致 谢 紧张而忙碌的毕业设计就要结束了,在完成了系统的功能设计后,我感到由衷的喜悦和自豪。 在我做毕业设计期间,许多老师,同学和朋友给我我无私的关怀和帮助,尤其是我的导师 尤新华 老师。 在此,我要向他们表示衷心的感谢。 首先 ,我要感谢学校的老师在毕业设计期间给了我悉心的关怀与帮助,并且给了我许多关键的,建设性的指导。 这次的毕业设计让我受益匪浅。 可以这样说,用计算机来解决繁重而低效的手工管理工作,计算机发展史上的必然。 在理论课的学习中,我掌握了基础课和专业课的理论知识,也曾经做过一些小的 程序设计,但真正动手设计一个 这种聊天类的 软件,还是第一次。 在这次的毕业设计中,我曾遇到了许多困难,而在克服这些困难的过程中,我的各方面的能力又有了很大的提高,使我的理论知识更好的与实践相结合,增强了专业技能的可实践性。 从调研,需求分析到查找资料 ,结构设计,详细设计以及调试程序。 我终于设计出了一个比较完整的,周密的,可使用的聊天系统。 通过这次的毕业设计,我真正了解了软件工程设计的整个过程,既巩固了以前的理论知识,也为我以后的工作奠定了良好的基础。 当然,由于时间的短促,我所完成的系统并不是尽善尽美的,还有待进一步的修改和完善。 最后,请允许我再一次向毕业期间无私帮助过我的老师,同学和朋友表示最衷心的感谢。 13 附录 ( 1)登录界面源代码: package。 import .*。 import。 import。 import .*。 import .*。 import .*。 public class ClientLogin extends JFrame implements ActionListener { //定义上面的组件 JLabel jbl1。 JPanel jpl1。 JLabel jbl2,jbl3。 JTextField jtf。 JPasswordField jpf。 //定义下面的组件 JPanel jpl2。 JButton jb1,jb2。 public static void main(String[] args) { // TODO Autogenerated method stub ClientLogin cl=new ClientLogin()。 } public ClientLogin() { jpl1=new JPanel()。 jpl2=new JPanel()。 jbl1=new JLabel(聊天室登陆器 ,)。 jbl2=new JLabel(账号 ,)。 jbl3=new JLabel(密码 ,)。 jtf=new JTextField()。 jpf=new JPasswordField()。 jb1=new JButton(登录 )。 (this)。 jb2=new JButton(注册 )。 (this)。 14 GridBagLayout gbl=new GridBagLayout()。 GridBagConstraints gc1=new GridBagConstraints()。 //创建约束对象 (gbl)。 =。 //设置 fill约束,当控件的大小小于单元格时,填充单元格 =0。 =1。 =new Insets(10,10,10,10)。 =。 //下一个组件将是这行的最后一个组件 (jbl1, gc1)。 //第一行填完,共一个组件 GridBagConstraints gc2=new GridBagConstraints()。 =。 =1。 =1。 (jbl2, gc2)。 =3。 =1。 =new Insets(0,0,0,10)。 =。 (jtf, gc2)。 GridBagConstraints gc3=new GridBagConstraints()。 =。 =1。 =1。 (jbl3, gc3)。 =3。 =1。 =new Insets(0,0,10,10)。 =。 (jpf, gc3)。 (jbl1)。 (jbl2)。 (jtf)。 (jbl3)。 (jpf)。 (jb1)。 (jb2)。 (jpl1,Center)。 (jpl2,South)。 (300,200)。 15 ()。 (true)。 } @Override public void actionPerformed(ActionEvent e) { // TODO Autogenerated method stub if(()==jb1) { ClientUser clientUser=new ClientUser()。 User u=new User()。 (().trim())。 (new String(()))。 if((u)) { Chat chat=new Chat(())。 //把聊天界面加入到管理类 ((),chat)。 ()。 } else { (this,用户名密码错误 )。 } } else if(()==jb2) { new Register()。 ()。 } } } ( 2)注册界面的源代码: package。 import .*。 import .*。 import .*。 import .*。 public class Register extends JFrame implements ActionListener { JPanel jpl1,jpl2。 JLabel jbl1,jbl2,jbl3,jbl4。 JTextField jtf。 16 JPasswordField jpf1,jpf2。 JButton jb1,jb2。 public static void main(String[] args) { // TODO Autogenerated method stub Register rgt=new Register()。 } public Register() { jpl1=new JPanel()。 jpl2=new JPanel()。 jbl1=new JLabel(注册聊天账号 ,)。 jbl2=new JLabel(输入账号 ,)。 jbl3=new JLabel(输入密码 ,)。 jbl4=new JLabel(确认密码 ,)。 jtf=new JTextField()。 jpf1=new JPasswordField()。 jpf2=new JPasswordField()。 jb1=new JButton(确定 )。 (this)。 jb2=new JButton(取消 )。 (this)。 GridBagLayout gbl=new GridBagLayout()。 GridBagConstraints gc1=new GridBagConstraints()。 //创建约束对象 (gbl)。 =。 //设置 fill约 束,当控件的大小小于单元格时,填充单元格 =0。 =1。 =new。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。