高级编程设计报告网络会议系统文档格式.docx
- 文档编号:21743330
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:18
- 大小:492.38KB
高级编程设计报告网络会议系统文档格式.docx
《高级编程设计报告网络会议系统文档格式.docx》由会员分享,可在线阅读,更多相关《高级编程设计报告网络会议系统文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
课程设计验收成绩:
课程设计报告成绩:
课程设计总成绩:
指导教师签章
2010年7月日
目录
目录I
1概述1
1.1软件系统概述1
1.2功能介绍1
1.3运行环境1
2模块需求分析2
2.1功能需求2
2.2操作方法2
2.2.1开启服务器3
2.2.2客户端进行网络会议5
3总体设计9
3.1结构设计9
3.2数据结构设计9
四详细设计12
4.1网络会议系统12
五程序的调试与运行结果说明13
六课程设计总结与体会14
七结束语15
八程序清单16
8.1自己模块的程序清单16
参考文献18
1概述
1.1软件系统概述
由于大学课余时间的增多,学习之外的一些活动也变得尤其重要,大学不再是为了学习而学习,更需要在各个方面发展自己,丰富自己的不可忽视的场所,为了解决同学合理利用和分配时间,增强同学间相互熟悉,相互了解的机会,对所学的知识加以巩固、扩展,我们以小组的形式共同应用所学的知识制作网路会议系统。
为了配合以后的编程规划和分工合作,特此编写此需求说明,同时也可以作为本系统的详细说明书,方便同学以及他人的使用。
1.2功能介绍
系统分为两个端口:
服务器端、客户端。
服务器端负责监听在线参加会议的人员信息及发送相应的服务;
客户端分为7个模块:
1.用户登录模块;
2.创建会议主题模块;
3.网络会议系统模块;
4.视频会议模块;
5.语音视频模块;
6.文件传送模块;
7.会议记录查询。
1.3运行环境
运行环境为VisualStudio.NET2005。
2模块需求分析
2.1功能需求
网路会议系统——网络会议系统:
对于在线用户提供了良好的网上会议的平台。
在线用户可以应用视频、语音等资源进行会议,将会议记录保存在本机目录里以便以后进行查看。
2.1.1服务器端监听
服务器提供在线用户进行网上会议的平台,对于局域网中的用户可以通过连接服务器的地址和相应的端口,便可以进行与其他用户的交互。
服务器端负责监听加入会议的人员信息以及记录聊天内容。
2.1.2客户端网络会议
每个用户就是一个客户端,客户端客户端连接服务器进入会议系统。
会议系统包括以下内容:
1.用户登录
用户根据用户姓名、要连接的服务器IP地址和端口号进行登录。
2.创建会议
用户创建一个网络会议的主题的相关内容。
3.网络会议系统
用户通过文本形式进行会议。
可以选择开启视频会议进行网络视频或开启语音会议进行语音,提供文件传送,网络会议内容的存储和查看。
2.2操作方法
服务器端开启监听服务;
客户端用户登录输入姓名,服务器端IP地址和端口号选择创建会议还是进入会议。
选择创建会议可以规定会议主题,填写会议主题、会议类型和会议内容进入网络会议系统进行会议,选择进入会议便是一个无主题的会议直接进入会议。
2.2.1开启服务器
进入服务器端运行在主窗体中点击获取本机IP,在左边的显示框里显示主机IP进行选择。
点击开启服务按钮打开服务器监听。
显示主机IP地址:
图2-1-1
打开监听服务:
图2-1-2
会议人员信息显示:
会议人员离开显示:
图2-1-4
2.2.2客户端进行网络会议
1、用户登录输入用户名,服务器IP地址和端口号选择创建会议或以进入会议。
图2-2-1
2、选择创建会议,输入会议主题、类型和内容,点击创建加入会议。
图2-2-2
3、进入网络会议,用户列表显示参加会议的人员。
会议主要以文本形式进行。
点击发送信息,信息会发送到显示框内。
可以通过工具栏中的按钮功能选择开启视频会议、语音会议、发送文件,更改字体和颜色,会议记录的保存和查看等。
网络会议界面:
图2-2-3
发送信息显示:
图2-2-4
会议记录查询:
图2-2-5
会议记录显示:
图2-2-6
3总体设计
3.1结构设计
网络视频会议——包括客户端进行网络会议、服务器端监听。
各个子模块的功能描述如下:
(1)服务器端监听
服务器端主要提供数据库连接,用户信息及聊天记录存储,多人在线等服务。
(2)客户端进行网络会议
该模块用于进行网络会议的的通信。
.
整体软件结构图:
客户端:
图3
3.2数据结构设计
服务器端用到5个类:
ChatServer.cs,Client.cs,AddUserArgs.cs,RemoveUserArgs.cs,UIErrorArgs.cs,MeetingInfor.cs,其中ChatSever.cs和Client.cs用于实现监听和与用户之间的交互。
其他的类存储与用户交互过程中获取的信息。
ChatSever中用到的事件与委托来实现对不同方法的封装,对用户发送的消息进行解析在向每个用户发送相应信息:
委托:
publicdelegatevoidUIErrorHandle(objectsender,UIErrorArgsea);
publicdelegatevoidAddUserHandle(objectsender,AddUserArgsea);
publicdelegatevoidRemoveUserHandle(objectsender,RemoveUserArgsea);
publicdelegatevoidClientConnectedHandle(objectsender,EventArgsea);
publicdelegatevoidClientDisConnectedHandle(objectsender,EventArgsea);
事件:
publiceventUIErrorHandleOnUIError;
publiceventAddUserHandleOnAddUser;
publiceventRemoveUserHandleOnRemoveUser;
publiceventClientConnectedHandleOnClientConnected;
publiceventClientDisConnectedHandleOnClientDisConnected;
服务器监听开启:
ChatServer.cs
publicvoidStart()
{try
{SocketServiceFlag=true;
IPAddressIP=IPAddress.Parse(_IPAdress);
listener=newTcpListener(IP,Port);
listener.Start();
thread1=newThread(StartSocketListen);
thread1.IsBackground=true;
thread1.Start();
EventArgsarg=newEventArgs();
if(this.OnClientConnected!
=null)
{OnClientConnected(this,arg);
}
catch(Exceptionex)
{thrownewApplicationException(ex.ToString());
}
客户端中有7个类和4个窗体:
类包括AddTextArgs.cs,ChatClass.cs,LoginClass.cs,MeetingInfor.cs,QuitChatArgs.cs,UpdateUserArgs.cs,UserAddArgs.cs。
窗体包括BuildMeeting.cs,FrmLogin.cs,MeetingForm.cs,MeetingRecord.cs。
类中ChatClass.cs中用到的委托和时间的原理和服务器端相同,通过服务器端发送的信息解析之后显示不同信息。
窗体FrmLogin.cs中调用类Chatclass.cs中的连接服务器:
LoginClass.cs
publicvoidLogin()
{try{
tcpClient=newTcpClient();
tcpClient.Connect(IPAddress.Parse(Host),Int32.Parse(Port));
Stream=tcpClient.GetStream();
ip=MeetingInfor.Getip();
stringcmd="
CONN|"
+UserName+"
|"
+ip+"
;
Byte[]outbytes=System.Text.Encoding.Default.GetBytes(cmd.ToCharArray());
Stream.Write(outbytes,0,outbytes.Length);
byte[]buff=newbyte[1024];
stringmsg;
intlen;
};
存储会议记录的代码段:
privatevoidtoolStripButton1_Click_1(objectsender,EventArgse)
{DateTimetime=DateTime.Now;
stringnowtime=time.ToLongDateString();
stringname=nowtime;
stringstr=@"
c:
\WebMeeting\ChatClient\ChatClient\bin\Debug\record\"
+name+"
.txt"
if(rtbMsg.Text=="
"
)MessageBox.Show("
没有会议记录!
);
else
{FileStreamfs=newFileStream(str,FileMode.Create,FileAccess.Write);
BinaryWriterbw=newBinaryWriter(fs);
bw.Write(rtbMsg.Text);
MessageBox.Show("
保存记录成功"
bw.Close();
fs.Close();
查看会议的代码段:
privatevoidbtnNewsLook_Click(objectsender,EventArgse)
{if(tbtime.Text=="
(年)/(月)/(日)"
)
请输入正确时间!
{stringname=tbtime.Text.Trim();
try
{StreamReadersr=newStreamReader(str);
rb_1.Text=sr.ReadToEnd();
{rb_1.Text=ex.Message;
}}
四详细设计
4.1网络会议系统
在整个学生信息管理系统中我做的是网络会议系统的建立模块
本模块共有两个界面,第一个界面需要填写用户名称、需要连接的IP地址和端口号,第二个界面需要填写会议的主题、性质以及内容,之后就可以建立一个会议系统。
第一个界面
图4-1-1
第二个界面
图4-1-2
五程序的调试与运行结果说明
在程序的调试过程中遇到了很多的问题,在一开始的时候是与服务器的链接问题,出现经常连接不上的现象是,还有对数据库操作时出现的问题,还有参加会议人员无法显示的问题等。
会议人员无法显示的问题
图5-1-1
六课程设计总结与体会
经过这次课程设计,通过对程序的编制,调试和运行,使我更好的掌握了网络聊天以及数据库连接问题的解决方法,熟悉了各种调用的方法,在调试和运行过程中使我更加的了解和熟悉程序运行的环境,提高了我对程序调试分析的能力和对错误的纠正能力。
这次高级编程技术的程序设计,对于我来说是一个挑战。
我对高级编程技术的学习在程序的设计中也有所体现。
课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。
在整个课程设计中,我们充分应用和调用各个程序模块,从而实现了此次程序设计的应有功能。
而在这个过程中,让我们感觉收获最大的就是我们都能利用这次课程设计将我们在课本上的知识融会贯通,并充分的调动了我们的积极性,使我们自主的去学习。
七结束语
这次高级编程技术课程设计让我们感触很深,使我们每个人都了解到学习不应该只局限于我们的课本,因为课本上告诉我们的只是很有限的一部分,所涉及的面也是狭窄的。
但是怎样在有限的范围内学习到更多的知识呢?
那就要我们自己懂得竞争,懂得自学,懂得充分利用身边的任何资源。
应该说,我们在这次的课程设计中学到了很多知识,这并不仅仅包括书本上的知识,更重要的是我们学会了如何去和别人交流,怎样用语言去实现自己的想法。
虽然在我的程序中有一部分是从课本中照搬过来,但我竭力将所获得的信息变成自己的资源。
在我动手上机操作的同时,我在了解和看懂的基础上有所改变和创新,但是在我的程序软件中还有部分的不足,需要加以更新。
同时,通过这次课程设计,我们都意识到了自己动手实践的弱势,特别是在编程方面,使我们知道了计算机的实践操作是很重要的,只有通过上机编程才能充分的了解自己的不足。
通过这次课程设计,我感觉到要真正做出一个程序并不很容易,但只要用心去做,总会有收获,特别是当我遇到一个问题,想办法去解决,最后终于找到方法时,心里的那份喜悦之情真是难以形容。
编写程序中遇到问题再所难免,应耐心探究其中的原因,仔细推敲,逐个排查,直到最终搞清为止。
这次课程设计让我有了很大的提高。
八程序清单
8.1自己模块的程序清单
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Net;
usingSystem.Net.Sockets;
usingSystem.Threading;
namespaceWebMeeting
{
publicpartialclassBuildMeeting:
Form
{
publicBuildMeeting()
InitializeComponent();
privatevoidbtnReturn_Click(objectsender,EventArgse)
this.Close();
LogInuserIn=newLogIn();
userIn.Show();
privatevoidbtnBuild_Click(objectsender,EventArgse)
if(tbMeetTheme.Text=="
请输入会议主题!
elseif(cbbMeetType.Text=="
请选择会议类型!
elseif(rtbMeetContent.Text=="
请输入会议详细信息!
stringtheme=tbMeetTheme.Text;
stringtype=cbbMeetType.Text;
DateTimetime=DateTime.Now;
stringnowtime=time.ToShortDateString();
stringcontent=rtbMeetContent.Text;
MeetingInfor.MeetingInfors(theme,type,nowtime,content);
DialogResultresult=MessageBox.Show("
创建成功!
是否进行会议?
"
提示"
MessageBoxButtons.YesNo,MessageBoxIcon.Information);
if(result==DialogResult.Yes)
MeetingFormmeeting=newMeetingForm(rtbMeetContent.Text,1);
this.Hide();
meeting.Show();
}
参考文献
1.教材
胡晓宏赵津燕主著,薛京丽李卓郑惠张玲玲王成喜副主编《C#高级编程技术》,北华大学,2008
罗福强白忠建杨剑编著,《VisualC#.Net程序设计教程》,人民邮电出版社,2009
2.主要参考书
1)胡晓宏徐林著《高级编程技术实验指导书》;
2)各类《C#语言上机实验指导》;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 编程 设计 报告 网络会议 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)