基于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。基于java的聊天室设计与实现毕业论文
相关推荐
ner { Box baseBox,boxv1,boxv2。 JLabel 标题。 JButton 确认 ,取消。 TextArea 条款。 TextField t1,t2,t3。 Register() { 标题 =new JLabel(英汉词典新用户注册 )。 确认 =new JButton(确认 )。 确认 .addActionListener(this)。 取消 =new
............................. 39 致 谢 ................................................................................................................................ 40 基于 Java的购物网站的设计与实现 1 第 1 章 绪 论
套接字类)提供的重要函数有 getIAddress( ), getPort( ), getInputStream( ), 和 close( )。 分别产生用于获得信宿机的地址、信宿机端口号、获得输入流、获得输出流、关闭套接字。 ServerSocket 类(服务器套接字类)的重要函数有:getIAddress( ), getLocalPort( ), accept( )和 close( )
提供给 Visual Basic开发人员的一种简单的数据访问方法,用于操纵 Access数据库。 RDO – 在使用 DAO 访问不同的关 系型数据库的时候, Jet 引擎不得不在 DAO 和ODBC之间进行命令的转化,导致了性能的下降,而 RDO( Remote Data Objects)的出现就顺理成章了。 OLEDB – 随着越来越多的数据以非关系型格式存储
功能描述: 学生: 选择课程: 给出可选课程和初选课程的列表,可以在可选课程列表中选择任一门所列课程,在初选课程中可以取消选择的课程。 查看成绩: 学生通过成绩按钮可以查询出自己已修学分等信息。 用户管理 修改登录密码。 管理员: 教师 信息管理 可以添加,删除 教师的基本 信息。 学生信息管理 可以添加,删除学生 的基本 信息。 教师: 授课 信息管理
学员教学评价系统”能使用户方便的对学员评价栏目管理、评价主题管理、评价信息表单、评价结果总汇、老师得分走势、老师得分排行等多方面信息进行管理和设计,它统括了教学评价体 系所涉及的必要功能,是一个比较完整的功能体系。 提高学员管理的效率.“教学评价系统”改变了传统教学评价体系的管理模式。 以往的学员管理模式中信息过于独立,很难实现信息的共享、复制、传递和汇总,难以保证信息的准确性和完整性。