计算机课程设计任务书.docx
- 文档编号:5944899
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:10
- 大小:215.90KB
计算机课程设计任务书.docx
《计算机课程设计任务书.docx》由会员分享,可在线阅读,更多相关《计算机课程设计任务书.docx(10页珍藏版)》请在冰豆网上搜索。
计算机课程设计任务书
滁州学院
课程设计任务书
课程名称:
计算机网络
设计题目:
MTS聊天系统
系别:
计算机科学与技术系
专业:
计算机科学与技术
组别:
学生姓名:
江怡顺学号:
2008210765
起止日期:
2010年5月22日~2010年6月26日
指导教师:
赵生慧
教研室主任:
课程设计题目
MTS聊天系统
姓名
江怡顺
学号
2008210765
班级
08计科班
系别
计算机系
专业
计算机科学与技术专业
组别
组长
江怡顺
组员
江怡顺,庞伟,马琳琳,解飞龙,李兴江
指导教师
赵生慧
课程设计目的
为了实现网络即时通信
课程设计环境
专业实验室S501
课程设计任务和要求
Window操作系统,JDK6
课程设计工作进度计划
序号
起止日期
工作内容
1
2010-5-22—2010-5-27
明确各组内成员的工作与任务
2
2010-5-28—2010-6-5
查阅相关资料
3
2010-6-6—2010-6-10
系统分析和概要设计
4
2010-6-11—2009-6-16
进行详细设计,编写代码
5
2009-6-20—2010-6-26
系统打包并测试
2010-6-20—2010-6-26
完成课程设计报告,并上交
教研室审核意见:
教研室主任签字:
年月日
教学院(系)审核意见:
主任签字:
年月日
课程设计的主要内容
1.需求分析
1.1开发背景:
在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似QQ、网络聊天一类的聊天系统的发展日新月异,因此产生了制作一个类似QQ的网络聊天工具的;而且通过制作该程序还能更好的学习网络软件编程知识。
1.2涉及的编程知识
基于TCP的Socket通信编程、GUI程序设计、事件处理、多线程技术、输入输出处理、异常处理等。
1.3编程语言及环境
在编程中我们使用的java语言,是目前比较流行的编程语言。
在当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好的选择。
Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。
开发环境我们使用的是JCreator,JDK6。
2.系统分析
为实现网络聊天的功能,本次课程设计采用WindowsSocket编程,服务器与客户端采用了TCP/IP连接方式,是支持多客户端同时在线的聊天系统。
本聊天室程序设计基于C/S模式,聊天室共分为服务器端和客户端两部分,服务器端程序主要负责侦听与转发客户端发来的消息,客户端需登陆到服务器才可以实现正常的聊天功能。
3.概要设计
3.1主界面设计
利用自制窗口,主界面中包括:
一个能显示信息的文本框、一个能编辑消息的文本框、一个能清空显示消息的按钮、一个能发送消息的按钮、一个能更换背景图片的按钮和一个能调节透明度的JSlider。
3.2功能设计
服务器端具有消息转发的功能,就是其中一个客户端发出的消息,服务器会将此消息转发给每个客户端,另外客户端也有发送消息的功能,也就是一个简单的多人聊天系统,客户端和服务器都有调节界面透明度、清除显示的聊天记录和更换背景图片功能。
4.详细设计
4.1自制窗口(以服务器端代码说明)
新建一个SSever继承JFrame,然后利用setUndecorated(true);默认去除边框,新建一个JLayeredPane,加到新建的窗体中。
自定义标题栏的长度privatestaticfinalintBAR_HEIGHT=69;
新建一个TitlePanel类,部分代码为:
publicvoidpaintComponent(Graphicsg)
{
super.paintComponent(g);
Graphics2Dg2d=(Graphics2D)g;
Fonttitle_Font=g.getFont();
g.setFont(newFont(g.getFont().getName(),20,20));
g.setColor(Color.white);
g.drawImage(leftImage,0,0,leftImage.getWidth(this),getHeight(),this);
for(inti=0;i<=(getWidth()-leftImage.getWidth(this)-
rightImage.getWidth(this))/midImage.getWidth(this);i++)
{
g.drawImage(midImage,leftImage.getWidth(this)+midImage.getWidth(this)*i,0,midImage.getWidth(this),getHeight(),this);
}
g.drawImage(rightImage,getWidth()-rightImage.getWidth(this),0,rightImage.getWidth(this),getHeight(),this);
titleLabel.setBounds(10,10,50,50);
g.drawString(titleString,70,40);
if(skinColor!
=null)
{
Rectangleclip=g.getClipBounds();
ColornewColor=newColor(skinColor.getRed(),
skinColor.getGreen(),skinColor.getBlue(),120);
g.setColor(newColor);
g.fillRect(clip.x,clip.y,clip.width,clip.height);
}
}
}
此类的功能是建立一个图片标题栏,加在自制窗口的上端。
如图所示:
新建一个WindowButton类来生成自制窗口的按钮,部分代码:
publicvoidinitButton(ImageIconicon)
{
setIcon(icon);
setUI(newBasicButtonUI());
setBorderPainted(false);
setBorder(BorderFactory.createLineBorder(Color.white,1));
setCursor(newCursor(Cursor.HAND_CURSOR));
setOpaque(false);
}
4.2加入组件
新建一个ImagePanel来用来装载背景图片,部分代码:
publicvoidpaint(Graphicsg)
{
super.paint(g);
Graphics2Dg2d=(Graphics2D)g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);//反锯齿
g.drawImage(backGroundImage,0,0,getWidth(),
getHeight(),this);
Rectangleclip=g.getClipBounds();
g.setColor(newColor(255,255,255,140));
g.fillRect(clip.x,clip.y,clip.width,clip.height);
}
新建MyJToolBar类,加入选择更换背景的菜单栏,加入清除显示的聊天记录的按钮和调节透明度的JSlider。
新建一个JTextArea为显示聊天内容,并将其设置为全透明,代码为:
msgText.setOpaque(false);
msgText.setEditable(false);
msgText.setFont(newFont("Serif",Font.BOLD,15));
msgText.setCursor(newCursor(Cursor.DEFAULT_CURSOR));
msgText.setMargin(newInsets(15,15,15,15));
msgText.setLineWrap(true);
再新建一个JTextArea用来编辑发送的聊天内容,代码为:
writeText.setOpaque(false);
writeText.setFont(newFont("Serif",Font.BOLD,15));
writeText.setLineWrap(true);
增加一个JButton的发送消息按钮,代码为:
writeText.setOpaque(false);
writeText.setFont(newFont("Serif",Font.BOLD,15));
writeText.setLineWrap(true);
新建一个SystemDate类,用来聊天时显示,发送消息的时间。
4.3客户端的登录界面设计
部分变量:
privateJPanelLoginPanel=newJPanel();
privateJPanelBottomPanel=newJPanel();
privateJLabelimageLogo=newJLabel();
privateJLabelcountLab=newJLabel("账号:
");
privateJLabelpasswordLab=newJLabel("密码:
");
privateJLabelstationLab=newJLabel("状态:
");
privateJLabelserverIP=newJLabel("服务器IP:
");
privateJTextFieldcountText=newJTextField("");
privateJTextFieldpasswordText=newJTextField("");
privateJTextFieldseverIPText=newJTextField("127.0.0.1");
privateJComboBoxstatusComBox=newJComboBox();
privateJCheckBoxrmbPassword=newJCheckBox("记住密码");
privateJButtonsetUpButton=newJButton("设置");
privateJButtonloginButton=newJButton("登录");
然后初始化这些变量,在JFrame中定义好这些组件的位置,在输入账号和号
码时要经过publicbooleancheckTheTextField()方法验证,在初始化登录信息
中需要publicvoidinitInformation()方法从文本文档中读取数据。
4.4系统打包
新建MANIFEST.MF清单文件,内容为:
Manifest-Version:
1.0
Created-By:
1.6.0_02(SunMicrosystemsInc.)
Main-Class:
mts.SServer
在dos下输入:
jarcfmServer.jarMANIFEST.MFmtsimagedatabackgroundtheme
5.操作说明
先双击Sever.jar启动服务器,如图所示:
然后再双击Client.jar启动客户端,如图所示:
输入用户名和密码,在设置中输入服务器端IP地址,默认的是127.0.0.1,然后点击登录,如图所示:
也可以同时启动多个客户端进行聊天。
聊天窗口如图:
6.总结和体会
通过这次课程设计让我进一步的了解了简单聊天过程的一般流程及网络编程的一般原理,也使我们体会到了Java面向对象程序设计是一门应用广泛并且实用性极强的高级程序设计语言。
通过本次课程设计,我对面向对象的基本思想有了进一步的理解,对项目的各个阶段的任务也有了一定的了解。
设计开始阶段必须明确设计的目的与需求分析,总体设计要全面分析聊天室系统的架构。
通过这次设计,使我们认识到体系的架构是最重要的,只有准确的系统设计、很好的定义各个模块及模块之间的关系,才能在编码阶段更轻松的的实现。
通过这次课程设计,对我们的逻辑思维能力是一个很大的锻炼,它不仅加强了我们的系统思考问题的能力,而且还改变了我们以前不好的编程习惯,虽然花费了不少的时间,但是我学到了丰富的知识。
这次程序设计也是一个毅力的考验过程。
有时候往往只是一个小小的错误,却要花出几小时甚至是一两天的时间才可能发现它。
所以在这个过程不能过于急躁,要很有耐心将程序反复调试。
7.致谢
非常感谢赵老师在本周的聊天室程序制作实习过程中给予的帮助。
你给予的鼓励,增强了我们的自信心和对电脑产生更浓重的兴趣。
对我们的实习有很大的帮助。
在这次课程设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识,所以在这里非常感谢帮助我的同学。
总之,知识必须通过应用才能实现其价值!
有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。
在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。
在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。
而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。
虽然这个设计的功能做的还不是很完整,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 课程设计 任务书