当前位置:文档之家› VC++聊天室课程设计完整代码及程序

VC++聊天室课程设计完整代码及程序

VC++聊天室课程设计完整代码及程序
VC++聊天室课程设计完整代码及程序

网络聊天室课程设计

班级:

姓名:

学号:

时间:

目录

1.需求分析 (3)

2.相关知识 ......................................... - 4 -2.1W INSOCK介绍. (4)

2.2MFC类CA SYNCSOCKET和CS OCKET (4)

2.3利用CS OCKET进行有连接的通信 (5)

3.详细设计 .............................. 错误!未定义书签。

3.1客户端的实现 (5)

3.2服务端的实现 (9)

4.程序运行结果..................................... - 14 -4.1服务器端 (14)

4.2客户端 (14)

5.参考文献..................................................................................................................................错误!未定义书签。

1.需求分析

当前是数字信息时代,网络时代,任何一种编辑工具都不能忽视在网络上的应用,并且随着Internet 的普及和宽带技术的成熟,越来越多的用户进入网络世界中享用浏览新闻、查询信息、发送邮件、在线观看电影等服务,享受网络带来的便利和办公的高效,与此同时一个新型的Web应用程序为网民之间提供了一个实时通信的功能和场所,这就是聊天室。

在网络早期就开始盛行,不论是BBS,IRC 都有类似网上聊天室的机制。聊天室为网友提供了实时性对话的渠道,是网络上极为流行的一项服务。

聊天室适用于网上会议或闲聊的一些场合。聊天室为网友提供了较好的交友环境,网友之间相互以文字交谈,在形式上有点类似笔友的性质,却大大节省了书信往返的时间,这也是网上交友之所以如此热门的原因。

聊天室的设计目标

本课题是建立聊天通信模型,设计一个聊天室软件,包括服务器端和客户端,主要功能为:

服务器端功能:

1、初始化socket, 创建服务器端。

2、维护一个链表,保存所有用户的IP地址、端口信息。

3、接受用户传送来的聊天信息,然后向链表中的所用用户转发。

4、接受用户传送来的连接判断命令,并向用户发出响应命令。

客户端功能:

客户端界面上的两个文本框,一个用于显示接受的聊天信息,一个用来接受用户输入的聊天信息。当按下“发送”按钮时将信息发送给服务器。

通过本课题的毕业设计,可以比较深入的了解和掌握WINSOCK控件基本属性、方法和事件,理解网络聊天通信的概念,输控制协议(TCP)进行数据交流,初步掌握网络聊天通信程序的设计方法。并能巩固和扩展大学期间的学习内容,进行项目的设计开发训练,更好的适应社会的需求。

2.相关知识

2.1 Winsock介绍

Windows Sockets规范以U.C. Berkeley大学BSD UNIX中流行的Socket接口为范例定义了一套Micosoft Windows下网络编程接口。它不仅包含了人们所熟悉的Berkeley Socket风格的库函数;也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。

Windows Sockets规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。此外,在一个特定版本Windows的基础上,Windows Sockets 也定义了一个二进制接口(ABI),以此来保证应用Windows Sockets API的应用程序能够在任何网络软件供应商的符合Windows Sockets协议的实现上工作。因此这份规范定义了应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。

2.2 MFC类CAsyncsocket和CSocket

构造一个 CAsyncSocket 对象并使用该对象创建基础 SOCKET 句柄。

套接字的创建遵循两阶段构造的 MFC 模式。

例如:

CAsyncSocket sock;sock.Create( ); // Use the default parameters

对于服务器套接字,必须指定端口。对于客户端套接字,通常接受此参数的默认值,该值允许 Windows Sockets 选择端口。

套接字类型: SOCK_STREAM (默认值)或 SOCK_DGRAM 。

套接字“地址”,如“https://www.doczj.com/doc/f010575793.html,”或“128.56.22.8”。

该地址为网络上的网际协议 (IP) 地址。很可能要始终依赖此参数的默认值。

如果套接字是客户端,则使用 CAsyncSocket::Connect 将此套接字对象连接到服务器套接字。

销毁 CAsyncSocket 对象。

如果在堆栈上创建了套接字对象,当包含函数超出范围时将调用此对象的析构函数。如果使用 new 运算符在堆上创建了套接字对象,则必须负责使用 delete 运算符销毁此对象。

“阻塞”方案。

发送和接收计算机之间的字节顺序差异。

在Unicode 和多字节字符集(MBCS) 字符串之间转换。

2.3 利用CSocket进行有连接的通信

CAsyncSocket类逐个封装了WinSock API,为高级网络程序员提供了更加有力而灵活的方法。这个类基于程序员了解网络通讯的假设,目的是为了在MFC中使用WinSock,程序员有责任处理诸如阻塞、字节顺序和在Unicode与MBCS 间转换字符的任务。为了提供更方便的接口以自动处理这些任务,MFC给出了CSocket类,这个类是由CAsyncSocket类继承下来的,它提供了比CAsyncSocket更高层的WinSock API接口。Csocket类和CsocketFile类可以与Carchive类一起合作来管理发送和接收的数据,这使管理数据收发更加便利。CSocket对象提供阻塞模式,这对于Carchive的同步操作是至关重要的。阻塞函数(如Receive()、Send()、ReceiveFrom()、SendTo() 和Accept())直到操作完成后才返回控制权。

3.1客户端的实现

(1)首先启动Visual C++ 6.0,利用MFC AppWizard[EXE]建立一个新的MFC工程,工程名为tcpclient,在MFC AppWizard Step1的时候选择Dialog based 即基于对话框,在Step4时勾选Windows Sockets选项(如图3.11),其他默认值下一步。

图3.11 MFC的设置

(2)客户端主要分为三个窗口,第一个是连接窗口,需要输入连接到服务器的相关设置信息;第二个是聊天信息显示窗口,该窗口显示登录服务器以来发送和接收到的消息;第三个是消息编辑发送窗口,需要输入你要发送的信息内容并发送。

(单击连接服务器按钮时的处理网络连接的函数。代码设置如下:

void CTcpclientDlg::Onconnet()

{

// TODO: Add your control notification handler code here

if(clconect) clconect.Close();

CString ipstr,portstr;

int port;

GetDlgItemText(IDC_EDIT1,ipstr);

GetDlgItemText(IDC_EDIT2,portstr);

GetDlgItemText(IDC_EDIT5,clientname);

portstr.TrimLeft();

portstr.TrimRight();

port=atoi(portstr);

if(port>0&&port<9999){

clconect.Create();

// cslisten.Bind(port);

if(clconect.Connect(ipstr,port))

{

clconect.setp(this);

CWnd *cw=GetDlgItem(IDC_EDIT1);

cw->EnableWindow(false);

cw=GetDlgItem(IDC_EDIT2);

cw->EnableWindow(false);

cw=GetDlgItem(IDC_connet);

cw->EnableWindow(false);

cw=GetDlgItem(IDC_EDIT5);

cw->EnableWindow(false);

SetDlgItemText(IDC_EDIT3,"已设名字"+clientname+"\r\n连接服务器成功");

CString enterinfo=clientname+"进入聊天室";

int len=enterinfo.GetLength();

clconect.Send(enterinfo,len);

}

else{

clconect.Close();

MessageBox("连接失败,请检查IP与端口是否与服务器一致!或者服务器没打开","连接错误",MB_ICONERROR);

}

}

else{

MessageBox("端口或IP输入有误,请重新输入");

}

}

设计步骤:

①创建字符串ipstr(保存IP),portstr(保存端口),clientname(用户名),整型port(端口号)。

②利用GetDlgItemText将各个编辑框中的信息赋给相应的变量。

③监视端口号和IP格式并设置相应错误提示(如下图)。

图3.13 连接错误提示

图3.14 端口或IP错误提示

④创建套接字clconect,设置成功创建后相关控件为只读。

⑤设置建立连接后相应提示。

(5)接下来就是对话框中的发送(回车)按钮的函数,代码设置如下:

void CTcpclientDlg::Onsend()

{

CString str;

GetDlgItemText(IDC_EDIT4,str);

str=clientname+":"+str;

int len=str.GetLength();

if(clconect.Send(str,len)>1)SetDlgItemText(IDC_EDIT4,"");

}

定义字符串str用于保存输入的消息,调整格式后使用CSocket的操作函数send 将消息发送到服务器。

(6)要显示客户端接收到来自服务器其他用户的信息,代码设置如下:

void CTcpclientDlg::onrev()

{

CString str,str1;

char ss[256];

for(int j=0;j<256;j++) ss[j]='\0';

clconect.Receive(ss,256);

if(ss!="")

str.Format("%s",ss);

GetDlgItemText(IDC_EDIT3,str1);

str=str1+"\r\n"+str;

SetDlgItemText(IDC_EDIT3,str);

CEdit *ce=((CEdit*)GetDlgItem(IDC_EDIT3));

ce->LineScroll(ce->GetLineCount()-1);;

}

设计步骤:

①创建字符串str、str1,字符数组ss。

②接受来自服务器套接字的信息数据保存到ss中,调整格式后将其打印到消息区。(7)当与服务器断开连接时弹出警告,如下图:

图3.15 失去连接提示

代码设置如下:

void CTcpclientDlg::oncl()

{

MessageBox("失去连接或者找不到服务器");

CWnd *cw=GetDlgItem(IDC_EDIT1);

cw->EnableWindow(true);

cw=GetDlgItem(IDC_EDIT2);

cw->EnableWindow(true);

cw=GetDlgItem(IDC_connet);

cw->EnableWindow(true);

cw=GetDlgItem(IDC_EDIT5);

cw->EnableWindow(true);

}

当失去与服务器的连接后,重新将连接服务器设置编辑框启用等待下次连接。

(8)在退出程序时的提示,如下图:

图3.16 退出确认

代码设置如下:

void CTcpclientDlg::OnClose()

{

int confirm=MessageBox("确定退出吗","请确定",MB_YESNO|MB_ICONQUESTION);

if(confirm==IDYES){

CString enterinfo=clientname+"退出了聊天室";

int len=enterinfo.GetLength();

clconect.Send(enterinfo,len);

CDialog::OnClose();

}

}

设计步骤:

①当退出程序时,弹出确认对话框。

②当选择“是”时,将用户退出信息发送至服务器并关闭对话框。

至此客户端的核心部分介绍完毕。

3.2服务端的实现

(1)和客户端一样,仍然建立一个基于对话框的工程,工程名为tcpserver,同样,注意一定不要忘记在Step4时勾选Windows Sockets选项。其他默认下一步。

(2)客户端主要分为三个窗口,第一个是服务器信息设置窗口,需要输入服务器的相关设置信息;第二个是聊天信息显示窗口,该窗口显示启动服务器以来发送和接收到的消息;第三个是消息编辑发送窗口,需要输入你要发送的信息内容并发送。

新建一个对话框,并添加各种控件(见控件表3.2)如下图:

单击启动服务器按钮时的处理网络连接的函数。代码设置如下:

void CTcpseverDlg::Onlisten()

{

// Beep(2000,100);

CString ipstr,portstr;

int port;

GetDlgItemText(IDC_EDIT3,ipstr);

severname=ipstr;

GetDlgItemText(IDC_EDIT4,portstr);

portstr.TrimLeft();

portstr.TrimRight();

port=atoi(portstr);

if(port>0&&port<9999){

if(cslisten.Create(port)){

// cslisten.Bind(port);

cslisten.Listen();

cslisten.setp(this,csnum);

cslisten.Listen();

CWnd *cw=GetDlgItem(IDC_EDIT3);

cw->EnableWindow(false);

cw=GetDlgItem(IDC_EDIT4);

cw->EnableWindow(false);

cw=GetDlgItem(IDC_listen);

cw->EnableWindow(false);

cw=GetDlgItem(IDC_EDIT1);

cw->SetWindowText("服务器名:"+severname+"\r\n等待用户连接,监听端口:"+portstr+"...");

}

else{

MessageBox("设置监听端口失败,端口可能被其它程序占用");

cslisten.Close();

}

}

else{

MessageBox("端口输入有误,请重新输入");

}

}

设计步骤:

①创建字符串ipstr(保存IP),portstr(保存端口),整型port(端口号)。

②利用GetDlgItemText将各个编辑框中的信息赋给相应的变量。

③监视端口号和IP格式并设置相应错误提示

④设置建立连接后相应提示。

(5)接下来就是对话框中的发送(回车)按钮的函数,代码设置如下:

void CTcpseverDlg::Onsend()

{

CString str,history;

GetDlgItemText(IDC_EDIT1,history);

GetDlgItemText(IDC_EDIT2,str);

str=severname+":"+str;

int len=str.GetLength();

int sended;

for(int i=1;i<=csnum;i++) if(csrev[i])

if( sended=csrev[i].Send(str,len)) {

SetDlgItemText(IDC_EDIT2,"");SetDlgItemText(IDC_EDIT1,history+"\r\n"+str );

CEdit *ce=((CEdit*)GetDlgItem(IDC_EDIT1));

ce->LineScroll(ce->GetLineCount()-1);;}

}

定义字符串str用于保存输入的消息,调整格式后使用CSocket的操作函数send 将消息发送到各个客户端。

(6)要显示服务器接收到来自客户端其他用户的信息,代码设置如下:

void CTcpseverDlg::onrev(int mynum)

{

CString str,str1;int i;

char ss[100];

for(int j=0;j<100;j++) ss[j]='\0';

csrev[mynum].Receive(ss,100);

str.Format("%s",ss);

for(i=1;i<=csnum;i++)if(csrev[i])

if(csrev[i]) csrev[i].Send(str,100);

GetDlgItemText(IDC_EDIT1,str1);

str=str1+"\r\n"+str;

SetDlgItemText(IDC_EDIT1,str);

CEdit *ce=((CEdit*)GetDlgItem(IDC_EDIT1));

ce->LineScroll(ce->GetLineCount()-1);;

}

设计步骤:

①创建字符串str、str1,字符数组ss。

②接受来自服务器套接字的信息数据保存到ss中,调整格式后将其打印到消息区。

(7)当有新用户进入时,显示“XXX进入”。

代码如下:

void CTcpseverDlg::onac()

{

CString str1,str;

GetDlgItemText(IDC_EDIT1,str1);

CString str2="\r\n进入";

str=str1+str2;

SetDlgItemText(IDC_EDIT1,str);

cslisten.Accept(csrev[++csnum]);

csrev[csnum].setp(this,csnum);

}

(8)在退出程序时的提示,如下图:

图3.24 退出确认

代码设置如下:

void CTcpseverDlg::OnClose()

{

CString str="服务器即将退出";

int confirm=MessageBox("确定退出服务器?所有用户都将断开","请确定",MB_YESNO|MB_ICONQUESTION);

if(confirm==IDYES){

int len=str.GetLength();

for(int i=1;i<=csnum;i++) if(csrev[i]) csrev[i].Send(str,len);

str=severname+"退出,与服务器连接已断开";

len=str.GetLength();

for( i=1;i<=csnum;i++) if(csrev[i]) csrev[i].Send(str,len);

CDialog::OnClose();

}

}

设计步骤:

①当退出程序时,弹出确认对话框。

②当选择“是”时,将服务器关闭信息发送至各个客户端并关闭对话框。

.程序运行结果

4.1 服务器端

图 4.4.2 客户端

图 4.2

VC课程设计及商品销售管理知识系统(DOC 39页)

VC课程设计及商品销售管理知识系统(DOC 39页)

第一章需求分析 1.1 商品销售管理功能概述 21世纪是个信息发展的时代,随着电脑普及时代的来临以及互联网的迅速发展,越来越多的进程从单一的人工管理上升到电脑智能管理,企业的发展更不例外,商品的经营管理,经营模式已经慢慢的从手工管理过渡到了计算机管理。对于发展中的绝大多数企业来说,随着规模的不断扩大,商品种类的不断丰富与完善,需要管理的各种商品信息也会大幅度增加,无论是商品管理,订货管理,销售管理,都变得相对复杂。这里开发出了一个“商品销售管理系统”,对企业的发展至关重要,无疑为商品销售的可持续发展,日益壮大提供了保障和解决方案,也节省了大量时间,从而提高了商品销售的运转效率,更有利于企业的管理和维持。商品销售管理系统可以实现企业商品管理的网络化,信息化,现代化,可以有效的提高企业商品的管理效率,节约了管理开支。 通过调查,要求系统需要具有以下功能: (1) 由于该系统的使用对象多,要求有较好的权

限管理。 (2) 方便的数据查询,支持多条件查询。 (3) 基础信息管理与查询,其中包括商品信息、客户信息和员工信息。 (4) 通过计算机,能够直接“透视”商品销售情况。 (5) 完善的商品查询信息、商品销售信息进行管理。 (6) 当外界环境(停电、网络病毒)干扰本系统后, 系统可以自动保护原始数据的安全,对数据进行备份与还原。 (7) 数据计算自动完成,尽量减少人工干预。 (8) 系统退出。 商品销售管理系统分为基础信息管理子系统、日常业务管理子系统、查询报表管理子系统、系统信息管理子系统、维护管理子系统。如图1.1所示 1.1商品销售管理系统 1.2 基础信息管理模块 基础信息管理模块主要用于对商品信息,员工信息和客户信息的管理。操作员通过合法的认

聊天室代码(C#)

实现用C#做一个聊天室客户端的代码: using System; using System.Collections.Generic; using https://www.doczj.com/doc/f010575793.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using https://www.doczj.com/doc/f010575793.html,; using https://www.doczj.com/doc/f010575793.html,.Sockets; using System.Windows.Forms; namespace EasyChat { public partial class login_frm : Form { ///

/// IP地址 /// private IPAddress _ipAddr; #region登录窗体构造函数 /// ///构造函数,自动生成 /// public login_frm() { InitializeComponent(); } #endregion #region登录窗体的私有方法 /// ///验证登录信息 /// ///验证结果 private bool ValidateInfo() {

if (user_tb.Text.Trim() == string.Empty) { MessageBox.Show("请填写用户名!", "提示", MessageBoxButtons.OK, https://www.doczj.com/doc/f010575793.html,rmation); return false; } if (!IPAddress.TryParse(svrip_tb.Text, out _ipAddr)) { MessageBox.Show("IP地址不合法!", "提示", MessageBoxButtons.OK, https://www.doczj.com/doc/f010575793.html,rmation); return false; } int _port; if (!int.TryParse(svrport_tb.Text, out _port)) { MessageBox.Show("端口号不合法!", "提示", MessageBoxButtons.OK, https://www.doczj.com/doc/f010575793.html,rmation); return false; } else { if (_port < 1024 || _port > 65535) { MessageBox.Show("端口号不合法!", "提示", MessageBoxButtons.OK, https://www.doczj.com/doc/f010575793.html,rmation); return false; } } return true; } ///

///取消,关闭窗体 /// ///

VC程序设计 课程设计报告书

VC程序设计课程设计 报告书 设计题目:简单绘图软件 院系:信息工程学院 班级:软件1101 组别:第二十二组 学号: 1110024130 姓名: 方锦 起止日期:2012年12月10日~2012年12月20日指导教师:张顺利

目录 绪论 -------------------------------------------------------------------------------- 3一概要设计 -------------------------------------------------------------------- 5 1.主要功能---------------------------------------------------------------------- 5 2.设计的概要设计功能模型框架图---------------------------------------- 5 二设计的详细设计------------------------------------------------------------- 5 1工具栏的编辑---------------------------------------------------------------- 6 2状态栏的编辑 --------------------------------------------------------------- 6 四编码和测试---------------------------------------------------------------- 9五设计总结 ------------------------------------------------------------------ 10 1.过程分析-------------------------------------------------------------------- 10 2.经验教训及分析 -----------------------------------------------------------11 3程序维护 --------------------------------------------------------------------11 六参考文献-------------------------------------------------------------------- 12

聊天室系统设计报告

青岛科技大学操作系统课程设计 学生班级计算机132班 学生学号1308010204 学生姓名王永远 2016 5 18 ______年 ___月 ___日

目录 设计题目:聊天室系统 (3) 一、设计目的及要求 (3) 1.1设计目的 (3) 1.2设计要求: (3) 二、技术背景 (3) 2.1网络编程 (3) 2.2网络通信 (3) 2.3 Socket (3) 2.4 TCP传输 (4) 2.5 Java的多线程机制 (4) 三、需求分析 (4) 3.1客户端 (4) 3.1.1登录 (4) 3.1.2多人聊天 (4) 3.1.3单人聊天 (5) 3.2服务器端 (5) 四、总体设计 (5) 4.1设计思想流程图 (5) 4.2设计思想分析 (6) 五、详细设计 (6) 5.1客户端设计 (7) 5.1.1登录界面 (7) 5.1.2聊天室界面 (7) 5.1.3单人聊天界面 (7) 5.2服务器端设计 (8) 六、系统测试 (8) 6.1登录测试 (8) 6.1.1用户名为英文字母 (8) 6.1.2用户名为中文 (9) 6.1.3用户名为标点符号 (9) 6.1.4多个用户有重名 (10) 6.1.5服务器地址不合法 (11) 6.1.6端口号不合法 (12) 6.1.7服务器未开启 (12) 6.2群发消息测试 (13) 6.3私聊测试 (15) 6.4用户列表显示测试 (16) 七、心得体会 (16) 八、参考资料 (16) 九、程序清单 (16)

设计题目:聊天室系统 一、设计目的及要求 1.1设计目的 通过该聊天室系统,掌握网络编程的概念及基于网络的C/S模式软件系统开发,掌握基于TCP 协议的Socket编程,掌握Java的多线程机制。 1.2设计要求: 实现多个用户之间类似于QQ的聊天程序,有聊天界面,多用户之间既可以实现群聊,也可以单独聊天。 二、技术背景 2.1网络编程 就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。 2.2网络通信 (1)IP地址:网络中设备的标识,不易记忆,可用主机名 要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接受数据的计算机和识别发送的计算机,在TCP/IP协议中,这个标识号就是IP地址。 (2)端口号:用于标识进程的逻辑地址 物理端口网卡口 逻辑端口我们指的就是逻辑端口 A:每个网络程序都会至少有一个逻辑端口 B:用于标识进程的逻辑地址,不同进程的标识 C:有效端口:0~65535,其中0~1024系统使用或保留端口。 (3)传输协议:通信的规则,常见的有UDP,TCP UDP:将数据源和目的封装成数据包中,不需要建立连接;每个数据报的大小在限制在64k;因无连接,是不可靠协议;不需要建立连接,速度快。 TCP:建立连接,形成传输数据的通道;在连接中进行大数据量传输;通过三次握手完成连接,是可靠协议;必须建立连接,效率会稍低。 2.3 Socket (1)Socket套接字 网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。 (2)Socket原理机制 A:通信的两端都有Socket。 B:网络通信其实就是Socket间的通信。 C:数据在两个Socket间通过IO传输。

JAVA聊天室课程设计报告(含源代码压缩文件)

南京晓庄学院 《JAVA程序设计》 课程设计报告 Java聊天室的设计与实现题 目 姓名:戴佳伟 学号:14552019 班级:14软件工程3班 指导教 王峥 师: 完成时间2016.10.7 成绩: 信息工程学院 2016年6月

目录 1引言.............................. . (3) 1.1 java 聊天室开发背景.................................... (3) 1.1java 聊天室开发的目的和意义........ (3) 1.2完成的主要工作.................... (4) 2 需求分析和总体设计................ (5) 2.1 需求分析与设计思路................ (5) 2.1.1 关键技术说明 .................................... . (5) 2.1.2 需求分析..................... ....................... 6 2.1.3 java 聊天室设计方案与思路 (6) 2.1.4 java 聊天室目录结构说明....... (7) 2.2 java 聊天室功能结构 .................................... (8) 3 详细设计.......................... (10) 3.1 java 聊天室模块实现 .................................... (10) 3.1.1 XX 模块实现.................. ..................... 10 4 java 聊天室运行结果.................................... (13) 5课程设计总结...................... .. (15)

河北工业大学vc课程设计 7成绩管理系统

河北工业大学计算机软件技术基础(VC) 课程设计任务书 一、题目:设计一个成绩管理系统 二、目的与要求 1.目的: 通过成绩管理系统的设计,培养学生综合利用C++语言进行程序设计的能力,加强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、归纳总结的能力,提高学生程序调试技巧、代码规范化等素质,提高学生分析问题、解决问题及实际运用能力。 2. 基本要求: (1)要求用C++语言编程,在Visual C++环境下调试完成; (2)要求划分功能模块,各个功能分别使用函数来完成; (3)源代码程序要求必要的注释。 三、设计方法和基本原理 1.课题功能描述 设计一个成绩管理系统,要求实现的功能包括:成绩录入、显示、修改、排序等功能。 2.问题详细描述 设计一个成绩管理系统,要求可以录入成绩(学生信息包括学号、姓名、成绩)并能显示学生成绩;当输入有误或其他情况需要修改成绩时可以进行修改(插入或删除);同时还可以按学生学号排序。 要求编写多个函数分别实现上述功能,而后在main函数中进行调用。 3.问题的解决方案: 根据问题的描述,可以按照程序要求的功能采用结构化的设计思想。 成绩管理系统可利用菜单(界面制作switch语句)使用户选择各个功能模块,例如: 1.输入成绩 2.显示成绩 3.插入 4.删除 5.按学号排序 6. 退出 而后可根据不同的选项进入到不同的功能模块进行执行。结束程序,请选择y之外的任何字母或数字,如果想让程序循环执行,则选择y。 四、主要技术问题的描述 根据三的分析,主要问题在于: (1)学生信息用结构体的构造

struct student { char num[10]; /*学号*/ char name[20]; /*姓名*/ int score; /*成绩*/ } stu[80]; (2)如果学号定义成了字符数组的形式,因此在进行排序(冒泡法)的时候,要用到strcmp,strcpy 等函数,注意它们的使用。 五、课程设计的考核方式及评分方法 1.考核方式 (1)学生要提交书面课程设计报告(A4纸打印);并将设计报告的电子文档、.cpp源文件和.h头文件放到一个文件夹里(如果是基于MFC的编程,另外还包括源程序的压缩包)上传到所对 应班级的学生名称相应文件夹中。 (2)课程设计结束时,在机房当场验收。教师提供测试数据,由学生运行所设计的系统,检查运行结果是否正确,并回答教师提出的有关问题。 2.评分方法 根据出勤率、课程设计期间纪律、课程设计运行结果、课程设计报告及答辩情况综合评分。 六、书写设计报告的要求(详细内容见“设计报告模板”) 七、说明:课程设计的有关文档,“设计报告模板”和“课程设计要求”请在下载任务书处下载。

java课程设计报告(java聊天室)

Java聊天室课程设计 一、需求分析 1.1开发背景 在信息化社会的今天,网络飞速发展,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似MSN、QQ,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个类似QQ的网络聊天工具的想法,且通过制作该程序还能更好的学习网络软件编程知识。 网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也得到响应的服务。 1.2设计要求 本课程设计的目标是利用套接字socket()设计一个聊天程序,该程序基于C/S模式,客户机器向服务器发聊天请求,服务器应答并能显示客户机发过来的信息。 1.3设计目的 通过设计一个网络聊天程序,对套接字、数据报通讯、URL、与URLConnectiom的相关知识有详细的了解和充分的认识。能将相关的只是运用到相关的实践中去。 1.4功能实现 聊天室共分为客户端和服务端两部分,服务器程序主要负责侦听客户端发来的消息,客户端需要登录到相应的服务器才可以实现正常的聊天功能。 服务器的主要功能有 1)在特定端口上进行侦听,等待客户连接 2)用户可以配置服务器的真挺端口

vc++课程设计

1登陆模块设计 1.1本系统使用登陆模块来验证用户的合法性。登陆模块主要用于判断登陆用户的权限,根据用户的权限弹出不同的对话框供用户对系统进行操作。(1)登陆界面如图所示,其主要用到的控件如表所示 (2)单击【密码问题按钮】系统会根据用户输入的用户名显示相关密码问题。 (3)单击【查询】按钮系统根据用户输入的用户名和密码问题给出正确的密码。 (4)单击【取消】按钮退出对话框。 1.2单击登陆界面(图4.3)的【关于】按钮,系统弹出关于对话框

后台管理对话框运行时进行初始化,分别添加试题信息管理对话框、学生成绩查血对话框和数据存储管理对话框三个对话框到CTabCtrl控件中,并响应项改变消息

/ 登录模块- 判断登陆用户的合法性 bool CLoginDlg::LoginValidM() { UpdateData(); if(m_strUserName.IsEmpty()) { this->SetWindowTextW(_T("提示- 请输入用户名")); return false; } if(m_strUserPasswd.IsEmpty()) { this->SetWindowTextW(_T("提示- 请输入密码")); return false; } m_comboUserPower.GetLBText(m_comboUserPower.GetCurSel(),m_strUserPo wer); if(m_strUserPower.IsEmpty()) { this->SetWindowTextW(_T("提示- 请选择用户权限")); return false; } ADOConn adoConn; adoConn.Connect(); CStringW sql; _RecordsetPtr pRs; if ( m_https://www.doczj.com/doc/f010575793.html,pare(_T("学生"))==0 ) { sql.Format(_T("select* from %s where 学号 ='%s'"),m_strTable,m_strUserName); pRs=adoConn.GetRecordSet(sql); if(pRs->adoEOF) { this->SetWindowTextW(_T("提示- 用户名不存在")); adoConn.Disconnect(); return false; } else { sql.Format(_T("select* from %s where 学号='%s' and 密码 ='%s'"),m_strTable,m_strUserName,m_strUserPasswd); pRs=adoConn.GetRecordSet(sql); if(pRs->adoEOF) { this->SetWindowTextW(_T("提示- 密码输入错误"));

网络课程设计实验报告--QQ聊天实现

计算机网络课程设计报告 设计选题网络聊天室 姓名马继鸣 学号 0909090630 完成时间 2012-1-12 一、需求分析

聊天工具大多数由客户端程序和服务器程序外加服务器端,本程序采用客户机/服务器架构模式。通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能。用多线程可完成多点对多点的聊天。 主要有两个应用程序,分别为服务器程序和客户端程序。服务器应用程序主要用于消息转发,以及向所有用户发送系统消息等;客户端应用程序主要用于客户聊天记录的显示和信息输入。采用Client/Server(C/S)体系结构,即客户机/服务器体系结构。聊天服务器专门用于监控用户状态和转发消息,客户端负责接收消息的用户序列和消息文本发送到服务器。该聊天系统实现群聊,用户登陆,退出聊天系统等功能。 二. 设计 1.设计思想: 课程设计中利用JAVA实现基于C/S模式的聊天程序。聊天室共分为服 务器端和客户端两部分,服务器端程序主要负责侦听客户发来的消息,客 户端登录到服务器端才可以实现正常的聊天功能。

2.功能设计 (1)服务器端的主要功能如下。 在特定端口上进行侦听,等待客户端连接。用户可以配置服务端的侦听端口,默认端口为10000. 当停止服务时,断开所有用户连接。 (2)客户端的主要功能如下。 连接到已经开启聊天服务的服务端。 当服务器端开启的话,用户可以随时登录与注销。

用户可以向所有人发送消息。 3.详细设计 聊天室服务器端设计 聊天室服务器中主要的功能文件的功能如下: MyButLis.java 主要用于添加事件侦听和动作处理,具体是服务器按钮中的“终止”“发送”的处理。 public class MyButLis implements ActionListener private MyServe server; private JTextField filed1; public void actionPerformed(ActionEvent e) MyChatSet.java 服务器的线程队列,运行的方法,新增一个用户,则增加一个线程,并可以返回应答消息,给其余用户发送上下线信息,发送聊天信息(群聊私聊虽然已写,但是不知为何没有实现),发送用户列表。关键在于除了线程之外,还定义了传输数据时的协议内容,如何分辨不同的信息,如聊天信息,登陆信息,上下线信息,并把信息完整准确的传递。 public static ArrayList servers=new ArrayList();//线程队列 public static void addThread(MyserThread th) //增加一个服务器线程对象 public static void sendReMess(String type,String state,String s,MyserThread myth)//返回应答信息 public static void SendOSMess(String type,String user)//其他用户上下线信息 public static void SendChatMess(String type,String sender,String reciver,String Mess)//聊天信息 public static void SendList//用户列表 MyCheckTool.java 保存用户的登陆信息,在其中建立一个码表,并且可以判断登陆信息是否合法。 //建立码表,用以保存用户信息 private static Map maps=new HashMap(); public static boolean CheckUser(MyUserInfo user)// 验证用户名

聊天室设计报告

网 络 聊 天 系 统 设 计 报 告 组长:靳子豪 组员:凯强、许玉军、王明明 完成时间:2015年11月3日

一、可行性研究报告 可行性研究报告(ISO标准) 编者说明: 在立项时,应该对项目进行综合分析,探讨项目的经济、社会、技术可行性,从而为决策提供基础。该模板为ISO标准文档模板,其不仅适用于软件项目,对于其它的系统项目也适用。 1.引言 1.1 编写目的 该聊天室项目可行性研究报告是对项目课题的全面考虑,是项目分析员对下一步工作进行的前提,是软件开发人员正确成功开发项目的前提与基础。写可行性研究报告可以使软件开发团体尽可能早的估计研究课题的可行性,较早的认识到系统方案的缺陷,可以少花时间和精力,也可减少成本资金,避免专业性的问题。 1.2 背景 a. 待开发系统的名称:信息交流系统 b 用户:大众 c. 它基于web小浏览器的程序系统的设计与开发, 服务平台:appserv-win 开发语言:PHP 数据库:MY SQL 1.3 定义 技术可行性:分析功能,性能以及限制条件,能否是一个技术上可实现的系统 经济可行性:估计开发费用已及最终从开发成功的系统所获得的收入或利益,衡量比较支出的费用和收到的利益 1.4 参考资料 《软件工程导论》(第6版)清华大学海藩牟永敏编著 可行性研究的前提 2.1 要求 a、聊天室功能 用户的聊天功能,包括数据输入、修改、删除,并要达到界面美观又好、使用方便 b、软件的性能 开发该软件应具有的基本要求与功能是实现用户信息数据包括与用户有关的数据 的管理与操作处理,基于MY SQL的数据库的数据管理使该软件有更优异的性能,软件的基本数据流动为用户数据的输入,用户信息及数据的输出。 c、输出 用户基本信息和聊天容 d、输入 用户根据自身需要,发起聊天 e、安全方面的要求 设置管理员 2.2 目标 该软件的设计目标必须尽量达到人力与设备费用的节省,软件的整个设计过程必须通过生产能力的提高、人员工作效率的提高等等使软件开发成本最小化。 2.3 条件、假定和限制 a、本聊天室建议使用寿命为5-10年 b、法律方面的限制:(1)、严禁危害国家信息安全(2)、严禁损害国家荣誉和利益(3)、严禁传播不良信息(5)、严禁抄袭 2.4 进行可行性研究的方法 成本效益分析、对估算问题的看法、软件的作用围、软件的成本估算、速度安排

网络编程_基于TCP的简易聊天室_实验报告

网络编程 课程设计说明书 题目名称:基于TCP/IP的网络文字聊天程序设计专业:网络工程

班级: 1201班 学号: 1220140105 姓名:蒋星 指导老师:利平 完成日期: 2014年12月13日

目录 一、实验基本信息概要3 1. 题目要求 3 2. 题目容3 3. 开发环境 3 二、流程图4 三、系统简介5 1.界面5 2. 软件功能 5 3. 系统设计 9 4. 优点与缺点9 四、系统详细设计11 1. ChatServer类11 2. ChatClient 类13 3. SocketException类15 5. 命令协议 15 6. 消息格式 16 五、系统测试16 1. 服务器使用错误16 2. 客户端使用错误17 3. 启动服务器17 4. 启动客户端17 5. 关闭客户端17 6. 启动服务器错误提示18 7. 公开聊天 18 8. 私聊 18 9. 错误的私聊19 10. 更名20 11. 帮助20 12. 非法指令20 13. 非法的指令参数20 14. 连接服务器失败21 六、心得体会21 七、完整代码21 Charserverd.cpp 服务器main函数文件 21 ChatServer.h 服务器类头文件 22 ChatServer.cpp 服务器类 23 ClientInfo.h 客户信息类 33 Charclientd.cpp 客户端main函数 34 ChatClient.h 客户端头文件34 ChatClient.cpp 客户端类 35 InitSock.cpp 初始化WINSOCK类41

SockException.h 异常类41八、[参考文献] 42

Vc课程设计报告

作者: 裴超晨 班级:07信息 学号:200710520113 指导老师:彭永康 时间:2009.12.28—2010.01.08 景德镇陶瓷学院

前言 随着21世纪面向对象程序设计技术的蓬勃发展,在全球软件业掀起了面向对象程序设计的浪潮,在众多的面向对象程序设计语言中,Visual C++6.0将程序设计方法和可视的软件开发环境完美的结合在一起,其崭新的开发数据库和适应Internet应用程序的新特点引起了开发人员的广泛关注,尤其受广大软件设计人员的亲睐,逐渐成为软件设计、Windows应用程序开发的首选语言。 Visual C++6.0是汇集MS公司技术精华的主流产品,使用Visual C++6.0可以开发强大的32应用程序,能为用户提供全方位的服务,具有广阔的商业前景。 本次课程设计是为配合课堂教学,提高学生动手能力和创新能力而安排的一次实践性教学环节,学生通过本课程设计,进一步掌握《Windows程序设计》课程中有关理论知识,将所学理论知识应用于实践,按软件工程方法,完成简单的Windows程序设计。 本次课程设计主要有:设计一个具备基本计算能力的计算器、设计一个浏览器SEExplorer、设计一个小闹钟还选做了一个在VC6.0下自制多媒体播放器可以通过这几个例子更加深刻地了解Visual C++6.0.

第一篇多媒体播放器 1.内容 设计一个多媒体播放器 2.要求 具有一般的播放功能,能播放*.mp3,*.wma,*.mdi,*.wav,*.avi,*.dat等文件,还有Repeat功能 编写有关本程序的使用手册 3.程序设计框架和步骤 1.打开VC6.0,在Projects下选择MFC AppWizard(exe),并取名MediaPlayer,然后建立基于对话框(Dialog Based)的运用程序。 2.打开Resource View,选择其中的对话框,打开其中的主对话框,去掉对话框上的“确定”按钮,保留“取消”,将Caption改为“Exit”。然后再在上面加上九个按钮,ID和Caption分别为 IDC_OPEN,Open; IDC_PLAY,Play; IDC_PAUSE,Pause; IDC_STOP,Stop; IDC_CLOSE,Close; IDC_LOWER,<<=; IDC_UPPER,=>>; IDC_FULLSCREEN,Full; IDC_REPEAT,Repeat; 再加入两个静态文本控件,分别为 IDC_STATIC,Volume;IDC_STATIC2,Status:Normal。 3.再打开Projects->Add to Project->Components and Controls->Registered ActiveX Controls对话框,选择其中的ActiveMovieControl Object, Insert,OK之后,你会发现你的控件面板上多了一项ActiveMovieControl Object,将它选中,直接放在你的对话框上就行了。按Ctrl+W打开ClassWizard为它添加变量CActiveMovie3 m_ActiveMovie。各控件的布局如图:

Java聊天室系统程序设计实验报告

Java聊天室系统程序设计 实验报告 题目:****** 院(系):****** 年级专业:****** 学生姓名:****** 指导老师:****** 开始时间:****** 完成时间:******

第一部分:课程设计总述 课程设计目的: 1.学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java 程序开发的全过程。 2.进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、 Java多线程编程、Applet程序的设计、文件和网络输入输出流编程、Java 数据库编程等。 3.通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。 课程设计总体要求: 1.问题的描述与程序将要实现的具体功能。 2.程序功能实现的具体设计思路或框架,并检查流程设计。 3.代码实现。 4.程序测试(如程序代码、功能测试、可靠性测试和效率测试等)。 5.设计小结(包括) 课程设计题目: 目标 本软件是一个实用聊天程序。项目要实现以下目标: 1)允许用户注册; 2)允许注册用户登录聊天室; 3)登录用户之间进行聊天文件传输; 4)用户可以更改背景音乐; 用户信息的保存 本软件只是一个聊天室程序,所以用户只要打开程序就可以登录。本软件使用文本文件或者数据库来保存用户数据。 需求分析 对功能的规定

1.系统的用例图(对注册用户) 2.用户注册过程

3.用户登录过程 对性能的规定 由于本软件只是一个聊天室程序,程序只是提供用户之间的聊天和文件传输,故对网络传输数据要求不是很高,只要正常的传输速度就可以了。 需要管理的数据 用户的信息如下:用户名,密码,头像,电子邮件,地址。 4 开发环境 本软件采用Java语言编写,Java语言是一种跨平台的编程语言,所以本软件对操作系统没有特别的要求。而网络传输方面采用TCP/IP网络传输协议或者是RMI。

JAVA课程设计聊天室系统

Java课程设计指导书(学生版初稿) 第二章聊天室系统 目标 2.1 背景介绍 2.1.1 业务背景 2.1.2 技术背景 2.2 需求分析 2.2.1功能需求分析 2.2.2 业务对象分析 2.2.3 验收测试要求 2.3 系统设计 2.3.1 总体设计 2.3.2 详细设计 2.4 系统实现 2.5 小结 2.6 展望

第二章聊天室系统 学习目标: 1、理解基于网络的C/S模式的软件系统结构,掌握网络编程的基本概念。 2、了解Java 的多线程机制,掌握Java多线程技术的应用。 3、熟练掌握基于TCP协议的Socket编程。 4、了解Socket编程的协议约定,掌握简单应用协议的开发。 5、进一步巩固发展团队协作能力。 学习寄语:想必大家都用过QQ,其主要功能就是聊天,是不是很想知道它是如何实现的?本项目就是帮你实现一个简单的聊天系统,当然跟商业项目没法比,但从中你却可以了解这些系统是如何实现的,学到开发类似系统的基础知识和基本技能(基本并不意味不实用)。本章的内容有一定难度(多线程、基于TCP的应用协议编程),所以系统的开发采用了“增量迭代”的开发方式,由简易到繁难,希望你能顺利前行。我们的信念依然是:“不抛弃,不放弃”。你的改变和收获依然是老师真诚的期待,期待你更踏实、更自信。Come on!

2.1 背景介绍 2.1.1 业务背景 随着网络社会的不断发展,具有相同兴趣的网民需要互相远程交流,既要能省钱又要能即时交互,电话太贵、email又嫌慢,所以开发一个类似QQ 的及时通讯系统就变得非常有意义了。“Happy Chat”聊天系统应运而生,它较之QQ 的唯一好处是自主开发,用的放心,更适合在局域网内使用。它提供的功能远不如QQ丰富,但应具有如下功能:(1)与聊天室成员一起聊天;(2)可以与聊天室成员私聊;(3)用户注册、登录;(4)服务器监控聊天内容;(5)服务器发送通知;(6)服务器踢人;(7)保存服务器日志。(8)保存用户聊天信息。 2.1.2 技术背景 本系统要求使用java技术开发,使用文件保存数据,集成开发环境使用eclipse。开发者应有java程序设计语言、SWING基本GUI组件、多线程、文件使用、socket编程、使用eclipse的基本知识和技能。系统采用两层C/S体系结构,C端负责通过GUI与客户交互,实现注册、登陆、收发信息、退出等功能;S端是聊天系统的应用服务器,主要有处理用户注册、登录、用户收发信息、用户退出等功能。C端和S端是通过网络交互的,其基本原理如图1所示: 图1 C/S通讯基本原理图

网络编程 基于TCP的简易聊天室 实验报告

网络编程课程设计 -基于TCP的简易聊天室 一、实验基本信息概要 1.题目要求 熟悉异步网络编程的基本方法,掌握异步网络编程和网络协议设计的方法。要求采用select 模型、WSAAsyncSelect模型、WSAEventSelect模型、重叠模型或完成端口等模型完成编程任务。 2.上机要求 要求采用select模型、WSAAsyncSelect模型、WSAEventSelect模型、重叠模型或完成端口等模型完成下面的任务。 3.题目内容 内容概要:实现一个聊天室,支持多人聊天。也可以增加私聊等功能。 4.开发环境 操作系统:Windows 7 开发语言:C++ 集成开发环境:Microsoft Visual Studio 2010

二、系统简介 1.界面 本软件使用DOS控制台界面,界面风格较为朴素,没用使用复杂的颜色。但是对聊天时界面进行了一定的控制和修正使得界面较为美观,易读。 服务器: 客户端: 2.软件功能 本软件实现了聊天室基本的功能,包括公开聊天,私聊,获取在线用户,更改昵称,获得帮助等。

1)公开聊天 在光标处直接输入消息后按回车即为发送公开聊天,如下图所示。 2)私聊 使用命令【/m 对方UID 消息】即可发送私聊,私聊只有对方可以看到,如下图所示:客户端1,密聊UID为132的用户。 发送后 客户端2,UID为132的用户收到私聊消息。

3)获取在线用户列表 使用命令【/list】即可获得在线用户列表,用户列表会议系统消息的方式返回,如下图所示。命令 发送后 4)更改昵称 使用命令【/name 你的新昵称】即可立即更改昵称,成功修改后服务器会以系统消息的方式返回成功修改的提示。 命令

高斯列主元消去法解线性方程组VC课程设计报告

课程设计报告 一.课程设计目的:采用高斯列主元消去法解线性方程组。用C 语言或C ++设计一个程 序来通过高斯列主元消去法解线性方程组AX=b 的解。 二.课程设计的内容 1. 课程设计的题目及简介 题目:高斯列主元消去法解线性方程组。 简介:对线性方程组AX =b 等价于 方法说明(以4阶为例): (1)第1步消元——在增广矩阵(A ,b )第一列中找到绝对值最大的元素,将其所在行与第一行交换,再对(A ,b )做初等行变换使原方程组的第一列元素除了第一行的全变为0; (2)第2步消元——在增广矩阵(A ,b )中的第二列中(从第二行开始)找到绝对值最大的元素,将其所在行与第二行交换,再对(A ,b )做初等行变换使原方程组转化为: ????????????=?????????????????????????******00**00***0****4321x x x x 注:*代表非零的数。 (3)第3步消元——在增广矩阵(A ,b )中的第三列中(从第三行开始)找到绝对值最大的元素,将其所在行与第二行交换,再对(A ,b )做初等行变换使原方程组转化为: (4)按x4 → x3→ x2→ x1 的顺序回代求解出方程组的解。 此方法即高斯列主元消去法,若在变换的过程中没有选出绝对值最大的数放在最前面进行消元而求出未知数的方法就叫高斯消去法。高斯消去法有一很明显的缺点,即在消元的过程中可能出现小主元,这种小主元可能导致解的不稳定,为了避免小主元的出现正是高斯列主元消去法的主要目的。而通过每次消元之前的调换方程的次序也正是计算机实现高斯列主元消去法的关键。 2. 设计说明 我用的是C ++面向对象程序设计进行这个程序的设计的。定义一个求方程解的类,只需用户将所需求解的方程的各个系数输入即可求出此方程的解。很方便,而且程序很简洁。 先设定了一个类,也就是说是面向对象的。此类的作用就是解用户输入的方程组,并输出结果。此类里面定义了两个函数, void initialize()和void glz::solve()。第一个函数的作用是初始化类中的变量,以便计算机知道方程中未知数的个数,便于运算和输出。而后一个函数的作用这是解方程组,并输出结果。此函数的解方程组功能的思路由上面课程设计的简介设计而出。主函数中增加了循环,此循环可以解多个方程组。 3. 流程图

Java聊天室课程设计报告

UML课程设计 题目网络聊天程序开发设计与实现 学号:201515614376 姓名:卫国辉 指导教师: 完成时间:2017年 12月

目录 1.摘要 (2) 2.绪论 0 2.开发环境 0 3.需求分析 (1) 3.1程序简介 (1) 3.2程序功能 (1) 4.系统设计 (2) 4.1概要设计 (2) 4.2详细设计 (2) 5.测试 (7) 6.结论 (9) 参考文献 (10)

摘要 本次训练主要是考查了对JA V A程序设计的综合运用,设计一个Socket 通信的聊天程序,用户可以通过程序进行聊天通信,但不支持用户自定义表情及图片的发送。 本程序设计也用到了一些相关的标准Java的类,给程序设计带来了许多的方便,但用那些要切记加相应的类的包,还有一些构造方法和个别接口方法。 本程序可以实现用户之间的一些简单的交互,虽然功能较少,但是我想通过这次程序设计来熟悉并且学习更多关于JA V A编程的东西,来便于以后可以使用。 关键词:java聊天

1.绪论 对于一个选择网络编程的人来说,必须要有足够的细心和耐心,因为编程一般来说是很枯燥的乏味的,而且程序会越来越复杂,它所用到的符号、标记很多,所以不能出点小错误的。还有,我们不能只是看程序,要学会把自己学的自己拿去实践,自己去编一些程序,培养自己的动手能力,掌握一些编程技巧,熟练运用自己学到的理论知识,这样在以后才能开发出属于自己的东西。 如今,随着科学技术的发展,计算机已成为了我们生活中必不可少的设备了,而掌握计算机知识和运用,又成了我们每一个人的目标了。现在IT行业的飞速发展,无不应正了以前、现在、将来计算机行业都是科学发展的主导行业。而这些基本上都建立在程序上的,所以程序员对计算机行业来说,可想而知有多么的重要了,他们所付出的每一滴汗水都将推动这个行业的发展。 现在我就用JA V A语言编写一个简单的程序——Java聊天程序。将所学的基本知识用到其中去,这里包括了构造方法,创建图形界面,引用类等等。这不仅能锻炼我的实践能力,同时也进一步复习和巩固了我所学的理论知识。对以前没有学好的还有督促和促进作用。而且,根据需要,还可以了解一些课外的知识。增加自己的知识面。 2.开发环境 在开发此聊天程序时,该项目所使用的软件开发环境如下: 操作系统:Windows 7 开发工具:eclipse3.2及其VE插件

相关主题
文本预览
相关文档 最新文档