JAVA课程设计.docx
《JAVA课程设计.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计.docx(43页珍藏版)》请在冰豆网上搜索。
![JAVA课程设计.docx](https://file1.bdocx.com/fileroot1/2023-4/20/4cf1c220-c710-452e-8589-3d5492cf3984/4cf1c220-c710-452e-8589-3d5492cf39841.gif)
JAVA课程设计
课程设计报告书
课程名称:
JAVA课程设计
题目:
“即时通”网络通信系统的设计与开发
系名:
信息工程系
专业班级:
计算机科学与技术
姓名:
学号:
指导教师:
2012年6月4日
课程设计任务书
学生姓名:
专业班级:
指导教师:
工作单位:
信息工程系
设计题目:
“即时通”网络通信系统的设计与开发
初始条件:
《即时通》,是一个类似于QQ的网络通讯软件。
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
使用JAVA开发一个类似QQ的网络通讯系统,该系统能够进行用户管理,聊天通讯及系统管理。
该聊天室系统包括客户端和服务器端。
本系统使用JAVASWING技术进行前台界面的设计和开发,使用Socket与ServerSocket网络编程进行客户端与服务器端的连接与通信,使用Java输入输出流进行客户端与服务器端之间的数据传输,使用JDBC技术与后台数据库进行连接和访问。
该系统将能够实现用户登录功能,并能对用户信息进行增加,删除,修改和查询。
登录的用户将可以进行群发,私聊及文件发送和接收。
系统总体架构如下:
主要任务:
编号
功能名
操作
组件程序
1
系统管理
登录界面
LoginGui.java
登录处理
LoginManager.java
2
用户管理
创建用户界面
UserAddGui.java
维护用户界面
UserEditGui.java
用户管理处理
UserManager.java
3
通讯
聊天主界面
MainChatGui.java
聊天界面
ChatGui.java
文件发送界面
FileSendGui.java
文件接收界面
FileReceiverGui.java
通讯处理
ChatManager.java
4
数据库操作
数据操作封装
JDBCUtil.java
设计报告撰写格式要求:
一、课程设计说明书(或报告书)正文内容
【设计题目】例如:
“即时通”网络通信系统的设计与开发
【开发环境】硬件环境:
微机系列,内存在1G以上,软件环境:
MicrosoftWindowsXP
【开发工具】NetBeansIDE
【完成时间】2012.6.4-----2012.6.15
【需求分析】分析阐述要实现的系统应具有什么样的功能。
【系统总体设计方案】
在明确了所要解决的问题后,很自然地就要提出自己解决问题的思路和方案。
让读者了解方案的总体设计和关键技术。
要阐述自己的设计方案,说明为什么要选择或设计这样的方案。
具体包括:
系统总的设计思路,体系结构,总体架构,功能模块图;
各功能模块所要达到的设计目标的简单介绍;
设计的数据字典(数据库、表的结构);
使用的设计软硬件环境和开发技术和平台等。
【系统详细设计】
在这部分中,要将整个开发工作的内容进行详细的介绍。
一般按照功能模块分成几部分来介绍。
每部分应包括文字叙述、界面图片、关键实现技术(操作或代码)等几个方面综合说明问题。
【系统调试和测试】
调试:
介绍设计过程中遇到的问题和解决方法。
测试:
介绍如何测试系统,测试中发现的问题和解决方案。
【结束语】
这部分篇幅不大,对整个设计中做的工作、获得的成果、心得体会等做一个简单小结。
【参考文献】罗列在设计过程中查阅的文献名称
注意:
参考文献罗列的格式为
资料编号•作者姓名•文献或期刊名称•出版社名称,文献的出版时间或期刊的期号
例如:
文献[1]吕凤翥,马皓.Java语言程序设计(第2版)[M].北京:
清华大学出版社,2010
期刊[2]石振国.用JSP实现对Web数据库的访问[J].计算机应用,2010(05):
5-8.
二、课程设计说明书(或报告书)正文的书写格式简介
一、正文标题层次正文题序层次是文章结构的框架,一般采用社会通用的论文书写形式。
即章条序码统一用阿拉伯数字表示,题序层次可以分为若干级,各级号码之间加小圆点,末尾一级的后面不加小圆点,层次分级一般不超过四级为宜,示例如下:
第一级(章)
1
2
3
……
第二级(条)
1.1
1.2…
2.1
2.2…
3.1
3.2…
……
第三级(条)
1.1.1
1.1.2…
1.2.1
1.2.2…
2.1.1
2.1.2…
2.2.1
2.2.2…
3.1.1
3.1.2…
3.2.1
3.2.2…
……
二、表格每个表格应有自己的表序与表题,表序与表题间空一格。
例如:
表1.1XXXX,且表题与表序应写在表格的上方正中处。
三、插图插图图面要整齐、美观,插图应与正文呼应,不能脱节。
每幅插图应有图序与图题,图序编号要连续,图序与图题间空一格且要放在插图下方居中处。
四、公式公式应另起一行写在稿纸的中央。
时间安排:
天数
任务
课程内容
1
项目原型开发
Eclipse/NetBeans使用
Swing技术
1
数据库建模
Oracle/MySql
1
系统管理
JDBC,IO,Socket,Thread,JavaOO
2
用户管理
3
通讯
2
系统打包验收
install4j使用
指导教师签字:
202012年6月1日
系主任签字:
2012年6月1日
目录
1目标··············································6
2开发环境与技术简介
2.1硬件开发环境·······································
················6
2.2软件开发环境·····································
················6
2.3开发工具介绍·····································
················6
2.4数据库系统
2.4.1Access数据库简介·····································
················6
2.4.2JDBC-ODBCAccess访问机制··························
················6
3系统需求分析
3.1客户端·····································
················7
3.2服务器端·····································
················7
4系统总体设计
4.1系统功能简介·····································
················8
4.2系统功能模块规划·····································
················8
4.3系统数据库设计·····································
················9
4.4数据库的连接技术·····································
················9
5系统详细设计
5.1数据库连接·····································
················9
5.2系统模块设计·····································
················10
5.3系统核心代码·····································
················12
6系统测试与运行
6.1系统环境·····································
··················12
6.2测试方法简介·····································12
6.3系统测试及解决办法·······························13
7总结··············································13
参考文献············································13
附录系统核心代码··································13
1目标
“即时通”网络通信系统的设计与开发
2开发环境与技术简介
2.1硬件开发环境
微机系列,内存在1G以上
2.2软件开发环境
MicrosoftWindowsXP
2.3开发工具介绍
NetbeansIDE6.9.1
NetBeans由Sun公司(2009年被甲骨文收购)在2000年创立,它是开放源运动以及开发人员和客户社区的家园,旨在构建世界级的JavaIDE。
NetBeans当前可以在Solaris、Windows、Linux和MacintoshOSX平台上进行开发,并在SPL(Sun公用许可)范围内使用。
NetBeansIDE是一个屡获殊荣的集成开发环境,可以方便的在Windows,Mac,Linux和Solaris中运行。
NetBeans包括开源的开发环境和应用平台,NetBeansIDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序,NetBeansIDE目前支持PHP、Ruby、JavaScript、Ajax、Groovy、Grails和C/C++等开发语言。
NetBeans项目由一个活跃的开发社区提供支持,NetBean开发环境提供了丰富的产品文档和培训资源以及大量的第三方插件。
2.4数据库系统
2.4.1Access数据库简介
MicrosoftOfficeAccess是由微软发布的关联式数据库管理系统。
它结合了MicrosoftJetDatabaseEngine和图形用户界面两项特点,是MicrosoftOffice的系统程式之一。
Access能够存取Access/Jet、MicrosoftSQLServer、Oracle,或者任何ODBC兼容数据库内的资料。
熟练的软件设计师和资料分析师利用它来开发应用软件,而一些不熟练的程序员和非程序员的"进阶用户"则能使用它来开发简单的应用软件。
虽然它支持部份面向对象(OO)技术,但是未能成为一种完整的面向对象开发工具。
2.4.2JDBC-ODBCAccess访问机制
JDBC是一种可用于执行SQL语句的JavaAP(ApplicationProgrammingInterface,应用程序设计接口)。
它由一些Java语言写的类、界面组成。
JDBC给数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。
通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。
也就是说,开发人员可以不必写一个程序访问Sybase,写另一个程序访问Oracle,再写一个程序访问Microsoft的SQLServer。
用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统(DBMS)。
不但如此,使用Java编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上编写不同的应用。
Java和JDBC的结合可以让开发人员在开发数据库应用时真正实现“WriteOnce,RunEverywhere!
”
Java具有健壮、安全、易用等特性,而且支持自动网上下载,本质上是一种很好的数据库应用的编程语言。
它所需要的是Java应用如何同各种各样的数据库连接,JDBC正是实现这种连接的关键。
由于微软的数据库不是用Java语言来编写的,但是我们需要用java语言连接微软的数据库,这样就要编写一个桥连接,使java语言编写的代码也可以操作数据库。
JDBC-ODBC这个桥连接就可以实现。
建立一个JDBC-ODBC桥连接,由于建立桥连接时可能会发生异常,因此,要捕获这个异常。
建立桥连接的标准如下:
try{ Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); }catch(ClassNotFoundExceptione){}
这里,Class是包java.lang中的一个类,该类通过调用静态方法forName加载sun.jdbc.odbc包中JdbcOdbcDriver类来建立JDBC-ODBC桥接器。
access是通过odbc管理工具注册的数据源。
3系统需求分析
3.1客户端
1.注册
(1)客户启动程序,显示出登陆界面
(2)客户选择其中的注册按钮,系统显示注册界面
(3)客户填写用户名、性别、密码、重输密码、出生日期、邮编,按提交按钮
(4)系统验证密码和重输密码是否相符、用户名(不能重复)
(5)系统发送上述信息及“注册请求”到服务端,等待服务端返回“注册成功”消息
(6)系统提示注册成功
(7)系统返回登陆界面
2.登录
(1)客户启动程序,显示出登陆界面
(2)客户填写用户名、密码,按登录按钮
(3)系统验证用户名、密码,不能为空
(4)系统发送用户名、密码及“登陆请求”到服务端,等待服务端返回“登录成功”消息
(5)若成功系统显示客户端主界面(聊天窗口界面)
3.聊天
(1)在客户端主界面,用户输入消息,选择对方用户名,按发送按钮
(2)系统验证消息长度、目的方用户名非空。
(3)在消息接收框逐条显示发送者姓名、发送的消息。
3.2服务器端
1.用户注册
(1)系统启动后,等待客户请求
(2)客户请求到,接受请求,分析确认是“注册请求”
(3)系统读取信息,分析并再次验证用户名、性别、密码、重输密码、出生日期、邮编。
(4)系统根据用户名,在已有客户记录中查询,确认没有重名
(5)系统将用户名、性别、密码、重输密码、出生日期、邮编信息保存
(6)系统向客户端发送“注册成功”消息
2.用户登录
(1)系统启动后,等待客户请求
(2)客户请求到,接受请求,分析确认是“登录请求”
(3)系统读取信息,验证用户名、密码是否存在
(4)系统验证是否已经登录
(5)系统验证用户是否已超过最大用户数
(6)系统将客户加入聊天室,通知其它客户“新用户加入”
(7)系统向客户端发送“登录成功”消息
若用户名错误,系统提示;“用户名不存在”,
若密码错误,系统提示;“密码错误”,
若用户已登录,系统提示"用户已登录,请重新填写用户名"
3.用户聊天
4.
(1)系统启动后,等待用户请求
(2)用户输入消息,确定发送目的用户名,按发送按钮
(3)系统读取信息,发给指定的用户,显示在聊天窗口中
4系统总体设计
4.1系统功能简介
使用JAVA开发一个类似QQ的网络通讯系统,该系统能够进行用户管理,聊天通讯及系统管理。
该聊天室系统包括客户端和服务器端。
本系统使用JAVASWING技术进行前台界面的设计和开发,使用Socket与ServerSocket网络编程进行客户端与服务器端的连接与通信,使用Java输入输出流进行客户端与服务器端之间的数据传输,使用JDBC技术与后台数据库进行连接和访问。
该系统将能够实现用户登录功能,并能对用户信息进行增加和删除。
登录的用户将可以进行群发,私聊。
4.2系统功能模块规划
系统的整体功能模块框架如图4.1所示:
图4.1系统整体模块框架
4.3系统数据库设计
1.注册用户信息表:
Users(Id,name,pwd,sex,birth,email)。
2.数据库字典
根据本系统实现的功能,QQ聊天系统主要的数据表信息如下所示:
字段名
类型
属性
说明
id
int
主键
自动编号
name
text
用户名
pwd
text
密码
sex
text
性别
birth
text
出生日期
email
text
邮箱
表4.1用户信息表
4.4数据库的连接技术
1注册驱动程序
2连接数据库
3执行相应请求到数据库,构造相应的sql语句
4到数据库执行sql语句
5关闭数据库连接
5系统详细设计
5.1数据库连接
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch(Exceptione){e.printStackTrace();}
Connectioncon=null;
PreparedStatementpstm=null;
try{获取数据库连接
con=DriverManager.getConnection(url,user,pwd);构造语句集StringinsertSql="insertintomy(username,pwd)values(?
?
)";
pstm=con.prepareStatement(insertSql);//构造语句集并且预先编译sql
pstm.setString(1,nameItem.getText());
pstm.setString(2,newString(pwdItem1.getPassword()))if(checkbox1.isSelected()){
pstm.setString(3,newString(checkbox1.getText()));
}if(checkbox2.isSelected()){pstm.setString(3,newString(checkbox2.getText()));
}
pstm.setString(4,txtItem.getText());
introw=pstm.executeUpdate();System.out.println(row);}
catch(Exceptione){e.printStackTrace();
}finally{
try{if(pstm!
=null){pstm.close();
}
if(con!
=null){
con.close();
}
}catch(Exceptione){
e.printStackTrace();}}
5.2系统模块设计
1用户登录
有账号和密码的可以直接登录,没有账号的先点击注册,其中取消按钮是清空两个文本字段的内容。
完毕后再登录如下图所示:
图5.1登陆界面
2用户注册
提供用户注册的功能,将注册的用户和密码写入数据库表中,其界面如下图所示:
图5.2注册界面
3用户聊天
图5.3聊天界面
5.3系统核心代码
系统核心代码包括一些系统中重要的核心功能模块的代码,比如,分数据库连接技术,数据库数据的写入、查询以及删除,数据库的基本操作,弹出对话框的设计等,详情见附录所示。
6系统测试与运行
6.1系统环境
在做系统的维护和测试时,首先必须要了解的是系统运行环境,该系统为NetBeans开发平台下,采用数据库连接技术等设计的个人通讯录系统,该系统压缩打包时已将JVM压缩其中,在pc机上解压即可可运行。
6.2测试方法简介
1.初始化数据
⑴客户端启动,进入注册界面,输入正确的注册数据,请求注册,查看服务端,看是否正确注册。
⑵重复⑴,在另一客户端注册用户,注意不要重名。
2.功能测试
⑴注册测试。
①测试重名注册。
进入注册界面输入重名用户名,其它正确,请求注册。
②测试空输入,进入注册界面,直接按注册按钮。
③测试密码的一致性,密码长度。
⑵登录测试。
①输入正确的用户名和密码,按登录按钮②空输入,直接按登录按钮。
③分别输入用户名不正确但密码正确,用户名正确但密码不正确,用户名和密码均不正确,应均不能正确登录。
④以同一用户名重复登录一次
测试①③时要查看服务端的显示
⑶发送接收测试。
①进入收发界面,群发一条消息,观察其它客户是否收到消息,察看服务器有无相应显示②私聊一条消息,察看指定用户是否收到消息
③无任何输入,直接按发送。
6.3系统测试及解决办法
在系统调试过程中,对系统各项功能进行测试,其中遇到了一些难题,但在老师和同学的帮助下,这些问题得以逐一解决。
比如:
1.无法与多个在线人员同时聊天,在同学的帮助下发现有些代码多余,注释掉就可以多人聊天了。
2.写了一些代码,比如说在聊天界面的时候,当其发送内容为空时,提示,但写了代码后并不提示,经再三检查,是其代码所在的位置不对,调整后就可以了。
7总结
忙碌了两个星期,终于顺利完成了这次工程。
记得在第一天老师说要开发一个类似于QQ的网络通讯软件时,感觉很惊奇也特别不可思议,觉得那样强大的一个工程,我们怎么可能完成。
结果经过两个星期的刻苦奋斗,最终完成了一个简单“即时通”,很是开心。
虽然其中遇到了很多困难,也弄得自己上火,甚至通宵去弄程序,编译、调试程序,但很感谢这次的课程设计,因为它使我更加深刻地体会到c语言程序编写过程的严谨与细致,还有就是无论做任何事都要有耐心。
当然集体的力量也会很大,这会使你在学习过程中倍感轻松,所以在此次课程设计过程中,通过老师和同学的帮助,自己的查阅资料等终于完成了这次设计。
总的来说,这次程序设计让我获益匪浅,对java也有了进一步的认识,同时也体会到除了专注于理论知识的学习,还要提高专业知识的实践能力,希望能在以后的学习中有更深入的认识。
参考文献
[1](美)内格里诺,(美)史密斯.JavaScript基础教程(第7版)[M].北京:
人民邮电出版社,2009.
[2]AIWilliams著,何雄译.Java网络协议内幕[M].中国水利水电出版社
[3]陈敏,Java聊天室系统.论文。
附录系统核心代码
项目:
QQClientProject
类:
ChartGui
packagecom.itjob.qq.wangjinging.gui;
importmon.Message;
importmon.MessageService;
importmon.User;
import.Socket;
importjava.util.List;
importjavax.swing.DefaultListModel;
importjavax.swing.JList;
importjavax.swing.JOptionPane;
publicclassChartGuiextendsjavax.swing.JFrame{
privateUseru;//