优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

虚拟实验平台的网络化改进方向—教师管理模块

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:

2.3 项目要求
2.3.1 工作任务及要求
(1) 本毕业设计的主要任务:
综合运用以前所学的专业知识,设计开发一个多功能虚拟实验平台软件教师管理模块。实现虚拟实验平台具有网络基本功能,打破各种局域网不能互访的问题,客户机和主机,客户机和客户机之间的即时通讯、数据的传输。本模块设计要求实现部分功能——响应客户端的连接请求、分配最佳相邻节点给客户端进行P2P通信、客户端能随时存取数据等;能实现教师对学生列表的添加与管理,添加时能进行身份验证;能实现相关个人的设置(比如名称及口令的更改等)。
(2) 本毕业设计的相关要求:
① 本系统的开发要求采用C/S结构,选用所熟悉的开发工具及开发环境Visual C++ 6.0进行本系统的设计与开发。
② 本毕业设计要求提供能实现文件传输等功能的软件,要求软件具有操作简便、界面友好等特性;同时,还要求与另四位同学所设计与实现的“教师远程协助”“远程指导演示”“动态升级”“VLP2P通信逻辑”集成在一起,形成一个真正实用的、功能完善的虚拟实验台软件。 【买计算机毕业论文就到www.think58.com】
③ 提交本次毕业设计的毕业论文。在毕业论文中应详细说明所设计与实现的系统的设计流程;写作中应严格按照“成都信息工程学院本科毕业论文(设计)内容及格式的规范化要求”进行写作。 本文来自think58 [资料来源:http://think58.com]
2.3.2 B/S与 C/S
目前的软件系统体系结构一般分为两种形式,一种为大家所熟识的C/S 结构,另一种为B/S结构。C/S结构,即Client/Server(客户端/服务器)结构,通过将任务合理分配到Client 端和Server 端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。B/S结构,即Browse /Server(浏览器/服务器)结构,就是只安装维护一个服务器,而客户端采用浏览器运行软件,进行浏览、访问、操作数据。最初的管理信息系统基本上是采用C/S 模式开发的。传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高,效率低。但随着WWW的广泛应用,目前的管理信息系统已经逐渐开始从C/S模式向浏览器/服务器B/S模式转变。B/S 结构的软件所有的维护、升级工作都只在服务器上进行,而客户端能立刻获得最新版本的软件。
2.4 项目难点及解决方法
2.4.1 IP处理问题
由于涉及到各种局域网,因此需要处理各种私有IP的访问问题。 copyright think58 [来源:http://www.think58.com]
解决方法:采用NAT技术实现私有地址转换成公共有效的地址。
2.4.2 Client之间的通信问题
解决方法:利用服务器的打洞原理,假设有Server、Client A、Client B,如果Client A想向Client B发送信息,那么Client A发送命令给Server S,请求Server命令Client B向Client A方向打洞。然后Client A就可以通过Client B的外网地址与Client B通信了。
2.4.3 服务器分配邻居节点的问题
解决方法: 服务器在接受到Client A的请求信息后,根据最佳路由算法的思想找到Client A要求连接的相邻节点。把它们记录到服务器数据库中。Client A根据接受到服务器给它返回的相邻节点信息,与相近的客户端进行下载、远程协助、动态升级等一些功能。当服务端再接受到来自不同客户端请求信息时,先在数据库路由信息表里面查找是否有类似的请求记录。如果有,服务器将根据路由表以往的记录返还给客户端。如果没有,服务器端会根据最佳路由算法的思想找到需要的节点信息,保存到数据库并且返还给请求的客户端。这种机制可以保证系统网络通信具体有高效率性、可靠性。
3 项目模块的划分
3.1 服务器端/客户端数据传输过程简图

图2 服务器端/客户端数据传输过程简图
3.2 网络通信模块 [资料来源:http://think58.com]
网络通信模块主要是基于另外一个同学做的P2P网络通信模块,调用其底层函数实现网络功能。由于前期调试需要,使用了一个类似网络通信模块NetInterface。此模块采用UDP协议。NetInterface接口DLL说明:
(1) 通过EVENT_BEGIN_READ对应的事件来确定有数据到来。
(2) 读取数据线程被该事件激活,激活后马上将这个事件复位;读取完数据,再次查看事件,如有数据。
(3) 读取数据线程将读到的数据放到缓冲区中之后,激活数据分析线程,并立即读取下一个数据
(4) 数据分析线程将不合法的数据扔掉。遇到合法的数据,即通过消息通知应用层。
(5) 给应用层的接口:
① 设置
函数体:void SetNetInterfaceInfo(HWND hWnd,CString ip,UINT port,UINT message)
作 用:设置通迅模块
参 数:hWnd:主程序窗口
port:使用的端口,对于服务器端,为要使用的端口号,对于客户端,为0 统会自动分配一个端口给客户端)
message:当通迅模块接收到数据时,向主程序发送此消息返回值:此函数无返回值。
② 打开服务
函数体:BOOL StartServer()
作 用:打开通迅模块的通迅功能
参 数:此函数无参数
返回值:打开成功,返回TRUE,否则FALSE copyright think58

[来源:http://www.think58.com]

③ 关闭服务
函数体:BOOL StopServer()
作 用:关闭通迅模块的通迅功能
参 数:此函数无参数
返回值:关闭成功,返回TRUE,否则FALSE
④ 读取数据
函数体:int ReadData(int &nOrderGroup, int &nOrder, char szData[], int &len, CString &ip, UINT &port )
作 用:通迅模块接收到的数据会放在接收缓冲区中,该函数首先检查接收缓冲是否为空,如空,则返回0;否则,每次读取缓冲区中的一个节点,读取完就将此节点移到缓冲区的尾部。
参 数:nOrderGroup:命令分组号
nOrder:命令号
szData[]:接收数据缓冲区
len:输入时为szData的长度,输出时为接收到数据的长度
ip:发送方的IP地址
port:发送方的端口号
返回值:读取到数据,返回TRUE,没有读取到数据(缓冲区已经为空),返回为FALSE
⑤ 发送数据
函数体:void SendData(int nOrderGroup,int nOrder,char szData[], int len, CString ip, UINT port)
作 用:将发送数据放到发送缓冲区中。然后判断DLL中发送过线程是否启动,如未启动,就启动它,否则直接返回。
参 数:
nOrderGroup:命令分组号
nOrder:命令号 think58 [资料来源:http://THINK58.com]
szData:发送的数据
nLen:发送数据的长度
ip:接收方的IP地址
port:接收方的端口号
返回值:无
3.3 数据接口模块
3.3.1 数据库的建立
数据库可分为7个表,它们分别是experiment(实验信息表)、rout(路由节点表)、score(学生实验成绩表)、students(学生信息表)、teacher(教师信息表)、user(用户表)、onlinuser(在线用户表)。下面介绍一下各个表的具体内容:
(1).experiment(实验信息表)包括exp_id(实验号)、exp_name(实验名)、 describe(实验描述)、FileNmae(实验电路图文件名)。
表1 实验信息表experiment
序号 字段中文名称 字段英文名称 数据类型 PK NULL 备注
1. 实验号 exp_id int(4) Yes NO 实验编号
2. 实验名 exp_name varchar(40) NO 实验名称
3. 实验描述 describe varchar(40) NO 实验信息的相关描述
4. 实验电路图文件名 FileNmae varchar(20) NO 实验电路图文本文件 [资料来源:http://www.THINK58.com]

(2).rout(路由节点表)包括user_id(用户号)、rout_id(路由号)、rout_ip(路由IP)、rout_itime(路由延时)。
表2 路由节点表 rout
序号 字段中文名称 字段英文名称 数据类型 PK NULL 备注
1 用户号 user_id int(4) Yes NO 用户编号
2 路由号 rout_id int(4) NO 路由编号
3 路由IP rout_ip vatchar(20) NO 用一个字符串来存放IPV4地址
4 路由延时 rout_time int(4) NO 经过次路由时需要的时间
(3).score(学生实验成绩表)包括exp_id(实验号) 、stu_id(学生号)、teache(教师号)、score(学生成绩)。
表3 学生实验成绩表score
序号 字段中文名称 字段英文名称 数据类型 PK NULL 备注
1 实验号 exp_id int(4) Yes NO 实验编号
2 学生号 stu_id int(4) NO 学生编号
3 教师号 teacher_id int(4) NO 教师编号
4 学生成绩 score int(4)) NO

think58.com

[版权所有:http://think58.com]

[来源:http://think58.com]

(4).students(学生信息表)包括stu_id(学生号)、stu_name(学生姓名)、sex(性别)、department(系别)、class(班级)。
copyright think58 [资料来源:http://www.THINK58.com]

表4 学生信息表student
序号 字段中文名称 字段英文名称 数据类型 PK NULL 备注
1 学生号 stu_id int(4) Yes NO 学生编号
2 学生姓名 stu_name varchar(50) NO 学生真实姓名
3 性别 sex varchar(50) NO
4 系别 department varchar(50) NO 包括学生专业
5 班级 class varchar(50) NO
(5).teacher(教师信息表)包括 teacher_id(教师号)、exp_id(实验号)、 teacher_name(教师姓名)。
表5 教师信息表 teacher
序号 字段中文名称 字段英文名称 数据类型 PK NULL 备注
1 教师号 teacher_id int(4) NO 教师的唯一标识
2 实验号 exp_id int(4) YES NO 实验编号
3 教师姓名姓名 teacher_name varchar(50) NO 教师真实姓名
(6).user(用户表)包括username(用户名)、pwd(密码)、user_type(用户类型)、user_id(用户号)
表6 用户信息表user
序号 字段中文名称 字段英文名称 数据类型 PK NULL 备注
1 用户名 USERNAME VARCHAR(50) NO 用户名为学生学号或教师名字拼音
2
密码 PWD VARCHAR(50)
3 用户类型 user_type Ctinyint(1) NO 学生/教师
4 用户号 user_id int(4) Yes NO 用户编号

copyright think58

[资料来源:http://www.THINK58.com]

[资料来源:http://THINK58.com]

(7).onlinuser(在线用户表)包括user_id(用户号)、username(用户名) 、user_type(用户类型)
表7 在线用户表onlinuser
序号 字段中文名称 字段英文名称 数据类型 PK NULL 备注
1 用户名 USERNAME VARCHAR(50) NO 用户名为学生学号或教师名字拼音
2 用户号 user_id int(4) Yes NO 用户编号
3 用户类型 user_type Ctinyint(1) NO 学生/教师

think58好,好think58

[资料来源:www.THINK58.com]

[资料来源:http://www.THINK58.com]

think58

[资料来源:http://www.THINK58.com]