1、java课程设计报告49112285(此文档为word格式,下载后您可任意编辑修改!)大 连 科 技 学 院Java课程设计报告题 目 “即时通”网络通信系统的设计与开发 学生姓名 田文超 专业班级 软件工程(莱)12-2 指导教师 刘瑞杰 职 称 讲师 所在单位 信息科学系软件工程教研室 教学部主任 王立娟 完成日期 2014年12月26日课程设计报告单学号姓名田文超专业班级软件工程(莱)12-2考 核 项 目评分备注1平时工作态度及遵守纪律情况(10分)2掌握基本理论、关键知识、基本技能的程度和阅读参考资料的水平(10分)3独立工作能力、综合运用所学知识分析和解决问题能力及实际工作能力提高
2、的程度(20分)4完成课程设计说明书及软件的情况与水平(小组分工情况、规范性、整洁清楚、叙述完整性、思路清晰程度、工作量及实际运行情况和创新性)(60分)总评成绩综 合 评 定:(优、良、中、及格、不及格) 指导教师签字:2014年12月26日Java课程设计任务书一、课程设计任务及要求:任务:针对小型信息管理系统或若干综合性设计题目,选择一种软件开发模型,完成从需求分析、系统设计、系统实现,软件测试的全过程。要求:(1)根据软件系统开发的一般原则,完成相应系统的功能设计,完成主要功能模块的程序实现并进行测试训练,给出代码运行结果和相应的设计文档。可以分组进行,但所有学生必须经历整个系统的开发
3、全过程,以便加深对系统开发全过程的认识。(2)提交课程设计报告。(3)指标: 要求完成课程设计报告3000字以上(约二十页);完成所设计的题目,设计题目的语句行数的和在200行语句以上。二、工作量2周(10个工作日)时间三、计划安排第1个工作日第2个工作日:查找相关资料、书籍,阅读示例文档;设计程序结构、模块图、完成类的设计。第3个工作日第7个工作日:完成程序的编码,并且自己调试、测试。穿插进行项目文档的撰写。第8个工作日第9个工作日:撰写和整理项目文档。第10个工作日:由教师检查软件测试效果、项目文档,给出学生本课程成绩。指导教师签字:2014年12月15日目录题目: 11.需求分析 12.
4、概要设计 12.1系统总的设计思路 12.2体系结构 12.3功能模块图 13.详细设计 34.编码 34.1在登陆界面设置用户名和密码不能为空并给出提示 34.2如果用户登陆成功如何直接进入聊天界面. 34.3如何设置性别,是用户注册后性别显示在数据库表中 45.调试分析 56.测试结果及运行效果 57.系统开发所用到的技术 88.课程设计总结 8参考文献 9附录 全部代码 10题目:“即时通”网络通信系统的设计与开发1.需求分析即时通,是一个类似于QQ的网络通讯软件,系统包含了登陆界面,注册界面和聊天界面。用户通过登陆进入聊天界面和好友进行聊天,用户如果没登陆的用户名和密码可以通过注册后再
5、登录进入聊天界面和好友聊天。2.概要设计使用JAVA开发一个类似QQ的网络通讯系统,该系统能够进行用户管理,聊天通讯及系统管理。 该聊天室系统包括客户端和服务器端。本系统使用JAVA SWING技术进行前台界面的设计和开发, 使用Socket 与 ServerSocket网络编程进行客户端与服务器端的连接与通信,使用Java输入输出流进行客户端与服务器端之间的数据传输,使用JDBC技术与后台数据库进行连接和访问。该系统将能够实现用户登录功能,并能对用户信息进行增加,删除,修改和查询。登录的用户将可以进行群发,私聊及文件发送和接收。系统总体架构如下:图2-1 即时通总体框架图2.1系统总的设计思
6、路首先设计系统管理,其次设计用户管理,再次设计通讯,最后设计数据库操作。2.2体系结构具体为客户端的设计,服务端的设计和公共端的设计。2.3功能模图2-2各功能模块流程图编号功能名操作组件程序1系统管理登录界面LoginGui.java登录处理LoginManager.java 2用户管理创建用户界面UserAddGui.java维护用户界面UserEditGui.java用户管理处理UserManager.java 3通讯聊天主界面MainChatGui.java聊天界面ChatGui.java文件发送界面FileSendGui.java文件接收界面FileReceiverGui.java通
7、讯处理ChatManager.java4数据库操作数据操作封装JDBCUtil.java表2-1 个模块主要任务3.详细设计1 “即时通”系统包括三个工程,工程一包括四个程序,分别为:登陆(Login.java),注册(Register.java),聊天(Chat.java),客户工作者(ClientWorker.java);工程二包括四个程序,分别为:DB帮助者(DBHelper.java),信息(Message.java),信息服务(MessageService.java),用户(User.java);工程三包括两个程序,分别为:服务器(QQServer.java),服务器(ServerW
8、orker.java)。2 运行服务器 QQServer.java程序,在运行客户端的登陆,客户可以在登陆界面输入自己的用户名和密码点击“登陆”,如果用户名和密码都正确,点击“登陆”按钮会弹出提示框“登陆成功”,点击“确定”按钮将会进入到聊天界面;如果用户名或密码错误点击“登陆”按钮会弹出提示框“登陆失败”,如果用户名或密码为空点击“登陆”按钮会弹出提示框“用户名或密码不能为空”,如果点击“取消”按钮,你的用户名和密码将会被清空,点击“注册”,会直接进入注册界面。3 运行服务器QQServer.java程序,在运行客户端的注册,客户可以在注册界面输入自己的用户名,密码,确认密码,昵称,性别,爱
9、好,城市,职称。如果用户名和密码错误会弹出注册失败,如果用户名写了,密码没写会弹出提示框“密码不能为空”,如果密码写了,密码没写会弹出提示框“用户名不能为空”,如果用户名和密码注册过,会弹出提示框该“用户已存在,请更换用户名”。如果用户名,密码,确认密码都正确会弹出提示框“注册成功”。昵称,性别,爱好,城市,职称可以不写。4 运行服务器QQServer.java程序,在运行客户端的登陆,登陆成功后,客户进入到聊天界面。可以连续登陆无数个用户,他们可以同时和其他的人聊天,输入要发送的内容再选中对象即可,如果在输入内容没有选择发送的对象将会弹出提示框“请选择好友”,如果没有输入内容就发送给好友将会
10、弹出提示框“输入内容不能为空”。4.编码4.1在登陆界面设置用户名和密码不能为空并给出提示?解决方案:用if语句写一段代码: String name = nameItem1.getText(); if(name= null |.equals(name) JOptionPane.showMessageDialog(this,用户名不能为空,请重新输入。,异常提示,JOptionPane.ERROR_MESSAGE); return; char pwd=pwdItem1.getPassword(); String pwd1 = new String(pwd); if(pwd.length=0) J
11、OptionPane.showMessageDialog(this,密码不能为空,请重新输入。,异常提示,JOptionPane.ERROR_MESSAGE); return; 4.2如果用户登录成功如何直接进入聊天界面?解决方案:在点击“确定”按钮事件,加上聊天界面的代码,代码如下: String r=(String)result11.getBody(); if(r=null)登陆成功 JOptionPane.showMessageDialog(this,登陆成功,弹出提示, JOptionPane.INFORMATION_MESSAGE); java.awt.EventQueue.invo
12、keLater(new Runnable() public void run() new Chat(u,s).setVisible(true); ); this.dispose(); 4.3如何设置性别,使用户注册后性别显示在数据库表中?解决方案:在登录代码final User u = new User(name,pwd1l);中填入null,在注册代码 添加: String Sex=null; if(Item1.isSelected() Sex=Item1.getText(); else if (Item2.isSelected() Sex=Item2.getText(); else if
13、(Item3.isSelected() Sex=Item3.getText(); else if(Item4.isSelected() Sex=Item4.getText(); 在DBHelper.java代码 pstm=con.prepareStatement(insert into modo (userName,userPwd,userSex) + values(?,?,?);modo中添加userSex,values中加入? 在代码 pstm.setString(1, u.getUserName(); pstm.setString(2,u.getUserPwd(); 中加入pstm.se
14、tString(4,u.getUserSex();在User.java中加入 private String userSex; public User(String userName, String userPwd ,String userSex) this.userSex = userSex; public String getUserSex() return userSex; public void setUserSex(String userSex) this.userSex = userSex; 在数据库表设计表中加userSex即可。测试:用Access数据库制作表格,配置数据源,运行QQserver,在运行登陆,注册,聊天。问题1:如果该用户已经登陆成功没有下怎么能使该用户不能再次登陆。解决方案:用if语句判断该用户是否已登录,若已登录则再次登陆时显示登陆失败。代码如下: if(usersOnLine.containsKey(u) return 用户已经登陆; 检测用户名是否存在 if(!DBHelper.getInstance().isUser
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1