远程控制系统 毕业设计.docx
- 文档编号:9162383
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:37
- 大小:1.44MB
远程控制系统 毕业设计.docx
《远程控制系统 毕业设计.docx》由会员分享,可在线阅读,更多相关《远程控制系统 毕业设计.docx(37页珍藏版)》请在冰点文库上搜索。
远程控制系统毕业设计
湖南人文科技学院计算机系
课程设计说明书
课程名称
:
软件工程导论
课程代码
:
题目
:
远程控制系统
年级/专业/班
:
08计科1班
学生姓名
:
程巍熊军刘权张玉瑛禹卫平
学号
:
0840811608408117084081180840811908408120
指导老师
:
颜富强
开题时间
:
2010年6月5日
完成时间
:
2010年6月29日
2010年6月30日
课程设计任务书及成绩评定
课程名称
:
软件工程导论
完成者
:
程巍熊军刘权张玉瑛禹卫平
1、设计的目的与要求
1)加强学生的实践能力;
2)理解小型系统开发的基本步骤;
3)本系统的功能包括:
客户管理模块、客户销售模块、服务反馈模块,并具有基本的添加、修改、删除和查询功能。
2、设计进度及完成情况
日期
内容
6.5-6.10
项目开发计划书
6.11-6.14
系统可行性说明书
6.15-6.18
系统需求说明书
6.19-6.23
系统详细设计
6.24-6.27
系统测试和Bug跟踪列表
6.28-6.29
总结、整理、递交文稿
3、成绩评定
设计成绩:
(教师填写)
指导老师:
(签字)
二0一0年月
第一章项目开发计划书
1.1引言
1.1.1编写目的
此项目开发计划书的编写主要是为了给开发《远程控制系统》做主要的规划和整合,在开发过程中起到引导作用,以及给使用者提供简要的说明。
1.1.2背景
20世纪90年代以来,计算机技术发展一日千里,特别是网络技术发展所取得的成就,推动了Internet日益把全世界的计算机系统信息化、集成化、系统化。
随着信息世界诞生的计算机远程控制技术,又在推动其发展中充当了异常重要的角色,并广泛应用于军事、工业、商业、办公等社会各领域。
1.1.3定义
文档中采用的专门术语的定义及缩略词简要如下:
Web技术——是建立在超文本(Hypertext)技术基础之上的
CampaignManagementSystem(CMS)--活动管理系统
Activex技术——建立在COM/DCOM(组件/分布式组件对象模型)基础之上的技术
Sockets——套接字技术
1.2项目概述
1.2.1工作内容
《远程控制系统》针对的用户是中小型企事业单位;
该系统主要功能:
通过几种计算机远程控制常用关键技术,并通过实验来编程实现计算机(客户机)对计算机(服务器)远程控制的基本功能,如获取目标计算机的屏幕图像、窗口、及进程列表,提取远端键盘事件,打开、关闭、添加、删除目标计算机的文件或文件目录,控制目标计算机鼠标移动,上传下载文件,关闭、重起系统等,使操作远程计算机如操作本地计算机一样。
1.2.2主要参加人员
组长:
具有较强的组织能力
设计:
掌握vc,c++语言
掌握vc,c++语言
开发:
有较强的程序编写能力
有较强的程序编写能力
1.2.3产品
1系统开发计划书
2系统需求说明书
3系统设计说明书
4测试计划和Bug跟踪列表
5用户手册
6一个能正确运行的可执行程序
源程序清单(有注释)
1.2.4服务
培训安装、维护和运行支持从使用该系统开始,维护期限为一年。
1.2.5验收标准
各个功能均能正常使用
1.2.6本计划的批准者和批准日期
批准者:
颜富强
批准日期:
2010年6月13日
1.3实施计划
1.3.1工作任务的分门与人员分工
组长:
任务:
(1)系统总的开发计划书
(2)每周至少组织小组讨论一次,记录讨论内容,列出本周开发计划
(3)项目开发进度的管理
(4)团队的组织和协调
设计:
任务:
(1)参与小组讨论
(2)进行系统的需求分析和系统设计
(3)完成系统需求说明书和系统设计说明书
(4)编写测试计划,参与系统测试,记录Bug跟踪列表
(5)协助文档人员完成用户相关文档
开发:
任务:
(1)参与小组讨论
(2)根据设计完成编码,并注释
(3)进行单元测试
1.3.2进度
系统规划阶段:
项标志性事件开始到完成
开发阶段:
目开发计划书的完成6.5-6.10
可行性分析阶段:
系统可行性说明书完成6.11-6.14
需求分析阶段:
系统需求说明书完成6.15-6.18
系统设计实现:
系统详细设计完成6.19-6.23
测试阶段:
系统测试和Bug跟踪列表6.24-6.27
移交阶段:
总结、整理、递交文稿6.28-6.29
1.4支持条件
1.4.1计算机系统支持
操作系统需要windows2000以上版本;
第二章可行性分析
2.1可行性研究前提
要求:
在不同地区通过计算机网络、异地拨号或双方接入Internet等手段连接目标计算机,并通过本地计算机对远程计算机进行管理或维护。
目标:
远程控制技术应用于网络的远程办公、远程技术支持、远程教学、远程维护和管理提高工作效率。
条件、假定、限制:
本软件自开发到运行结束至少可运行5年,开发成本不超过15000人民币,开发软件到投入使用不超过6个月。
2.2经济上可行性
开发成本:
15000元人民币。
效益:
暂时无法具体衡量。
效益/投资比:
效益>投资。
投资回收期:
大约5个月。
2.3技术可行性
软件需求:
操作系统WINDOWS2000AdvanceServer以上。
硬件需求:
一台服务器控制端与多台客户机以及其它的需求设备。
本系统采用VisualC++6.0实现,依靠其强大的面向对象系统,与SQLServer2000数据库管理系统相结合,能在6个月内开发出系统。
2.4法律上可行性
本项目开发严格遵守本国法律条例。
2.5开发工具概述
2.5.1VC概述
VisualC++是一个功能强大的可视化软件开发工具。
自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。
VisualC++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)。
VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。
这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。
VisualC++它大概可以分成三个主要的部分:
1.DeveloperStudio
这是一个集成开发环境,我们日常工作的99%都是在它上面完成的,再加上它的标题赫然写着“MicrosoftVisualC++”,所以很多人理所当然的认为,那就是VisualC++了。
其实不然,虽然DeveloperStudio提供了一个很好的编辑器和很多Wizard,但实际上它没有任何编译和链接程序的功能,真正完成这些工作的幕后英雄后面会介绍。
我们也知道,DeveloperStudio并不是专门用于VC的,它也同样用于VC,VJ,VID等VisualStudio家族的其他同胞兄弟。
所以不要把DeveloperStudio当成VisualC++,它充其量只是VisualC++的一个壳子而已。
这一点请切记!
2.MFC
从理论上来讲,MFC也不是专用于VisualC++,BorlandC++,C++Builder和SymantecC++同样可以处理MFC。
同时,用VisualC++编写代码也并不意味着一定要用MFC,只要愿意,用VisualC++来编写SDK程序,或者使用STL,ATL,一样没有限制。
不过,VisualC++本来就是为MFC打造的,VisualC++中的许多特征和语言扩展也是为MFC而设计的,所以用VisualC++而不用MFC就等于抛弃了VisualC++中很大的一部分功能。
但是,VisualC++也不等于MFC。
3.PlatformSDK
这才是VisualC++和整个VisualStudio的精华和灵魂,虽然我们很少能直接接触到它。
大致说来,PlatformSDK是以MicrosoftC/C++编译器为核心(不是VisualC++,看清楚了),配合MASM,辅以其他一些工具和文档资料。
上面说到DeveloperStudio没有编译程序的功能,那么这项工作是由谁来完成的呢?
是CL,是NMAKE,和其他许许多多命令行程序,这些我们看不到的程序才是构成VisualStudio的基石。
2.5.2ACCESS2000数据库简介
过去的一些数据库软件,在操作上、数据库建立、维护等等,都相当复杂且不易使用,但是在具备了窗口的GUI(图形用户界面)特性的ACCESS数据库推出之后,数据库的建立不再是困难的事情,我们可以在PC上简单而快速的建立出一套符合自己的数据库。
不但如此,在ACCESS2000推出以后,我们发现数据库的建立更加的快速,但是功能却更加强大,用户不用再去记忆那一大堆的文件名称,或是为数据库的文件管理大费周章,通过ACCESS的人性化管理接口把数据库的管理整理,便于维护;此外,在报表的制作上也是相当容易的,完全的视觉开发向导设计,让人使用起来很舒服。
但是美中不足的是ACCESS对于主从式结构的安全性管理不足,由于ACCESS可以快速的通过ODBC连接到数据库服务器上(DatabaseServer),并浏览所有表格或是相关对象转成HTML,基本上,ACCESS对建立一个数据库所具备的每一个对象,其中包括了表、查询、窗体、报表、宏、模块。
其功能分别叙述如下:
Ø表对象
打开已经存在的表格,对已存在的表格字段数据进行修改、新建表格。
Ø查询对象
可以用直接拖放的方式,建立表格之间的关联与对应关系,自动产生SQL语法查询出我们想要的数据。
Ø窗体设计对象
可以设计用户接口,用来输入并处理数据。
Ø报表对象
利用视图向导的开发方式,简单、快速的建立出需求报表或标签。
Ø宏对象
提供许多的宏功能,您可以把这样的宏连接到窗体设计中的任一个对象,以达成一些复杂的功能。
Ø模块对象
撰写VC的程序模块,处理较复杂的问题与需求,该功能是采用事件驱动的模式,类似VC的处理方式。
第三章需求分析
3.1市场需求分析
远程控制的主要应用如下:
1、远程办公
这种远程的办公方式不仅大大缓解了城市交通状况,减少了环境污染,还免去了人们上下班路上奔波的辛劳,更可以提高企业员工的工作效率和工作兴趣。
2、远程技术支持
通常,远距离的技术支持必须依赖技术人员和用户之间的电话交流来进行,这种交流既耗时又容易出错。
许多用户对电脑知道得很少,然而当遇到问题时,他们必须向无法看到电脑屏幕的技术人员描述问题的症状。
有了远程控制技术,技术人员就可以远程控制用户的电脑,就像直接操作本地电脑一样,只需要用户的简单帮助就可以得到该机器存在的问题的第一手材料,很快就可以找到问题的所在,并加以解决。
3、远程教学
教师和学生之间可以利用这种远程控制技术实现教学问题的交流,学生可以不用见到老师,就得到老师手把手的辅导和讲授。
学生还可以直接在电脑中进行习题的演算和求解,在此过程中,教师能够轻松看到学生的解题思路和步骤,并加以实时的指导。
4、远程维护和管理
网络管理员或者普通用户可以通过远程控制技术为远端的电脑安装和配置软件、下载并安装软件修补程序、配置应用程序和进行系统软件设置。
3.2系统需求分析
主控端在记录操作者操作后再使用自己实现的方法BOOLsenduserInput(INPUTinput,UINTnumber)把操作信息传输到被控端。
被控端在接收到主控端传来的输入信息后,直接调用WinAPI函数SendInput送给系统处理。
2远程控制系统的总体设计远程控制系统是—个基于客户/服务器(C/S)工作模式的软件系统,系统包括客户端程序和服务器端程序。
为了完成系统指定功能,客户端及服务器需完成的功能主要有以下各点。
(1)客户端(主控端)程序功能①连接并登录到被控系统;②接收被控端屏幕图像;③向被控端发送鼠标和键盘命令;④简单的即时通信功能。
(2)服务器端(被控端)程序功能①接收主控端的连接,并实现身份认证功能(包括用户帐号的管理维护);②为主控端截获屏幕图像,并传回主控端;④接收主控端发出的命令,并负责解释执行;④简单的即时通信功能。
整个系统采用三层设计结构,需要数据库的支持,这是因为在被控端接收用户的登录需要到数据库读取相应用户信息进行身份认证。
3.3数据字典
通过系统需求分析,对远程控制系统编制数据字典如下:
各主要数据流的定义如表1至表3所示。
数据流
系统名:
远程控制系统
条目名:
Sockets
来源:
服务端/客户端
去处:
客户端/服务端
数据流结构:
Sockets:
{IP地址、端口}
简要说明:
每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务
表1
数据流
系统名:
远程控制系统
条目名:
LZW压缩
来源:
服务端
去处:
客户端
数据流结构:
LZW压缩:
{原始图像数据、编译表、图案索引}
简要说明:
提取原始图像数据中的不同图案,基于这些图案创建一个编译表,然后用编译表中的图案索引来替代原始光栅数据中的相应图案,减少原始数据大小。
表2
注释:
这里的编译表不是事先创建好的,而是根据原始图像数据动态创建的,解码时还要从已编码的数据中还原出原来的编译表(GIF文件中是不携带编译表信息的)。
数据流
系统名:
远程控制系统
条目名:
Internet协议
来源:
服务端/客户端
去处:
客户端/服务端
数据流结构:
Internet协议:
{HTTP、FTP、FILE、TELNET、WAIS}
简要说明:
IP协议是用于将多个包交换网络连接起来的,它在源地址和目的地址之前传送一种称之为数据报的东西,它还提供对数据大小的重新组装功能,以适应不同网络对包大小的要求。
表3
3.4数据流图
根据需求分析,可以画出系统流程图如下:
处理
物或信息流
变化数据的处理
判断
图1流程图符号说明
图2服务端软件流程图
图3客户端软件流程图
第四章总体设计
4.1需求概述
市面上现有的远程控制因为其单一的功能,已经不能很好的满足用户的需求,因此,将这些模式进行整合,建立一套相对完整,维护方便的远程控制系统已经变得势在必行。
4.2远程控制系统功能设计
完成基本的用户需求分析以及确定系统的体系架构层次后,本系统开始针对用户的需求划分功能模块并进行功能设计。
由于整个系统由多人开发,其中涉及了很多通用的技术,如果大家都独立完成,无疑做了很多重复性质的工作,所以功能模块设计的主要目的就是列出项目中的技术点,对项目的技术力量的投入作出一个正确的分析。
也就是提供一些公用性的模块。
同时通过功能模块的分析,可以对未来的技术瓶颈的风险性有一定的帮助。
1、系统的功能模块划分:
(1)网络控制部分:
Socket控制,数据加密解密和传输,远程通讯
(2)系统部分:
系统验证,设备检测,进程(线程)控制
(3)图形部分:
图形的压缩解压缩处理,以及如何将桌面转换为适当图形
(4)界面部分:
Windows界面控制
(5)操作控制部分:
键盘控制,鼠标的控制
(6)安装部分:
Windows下采用的是.exe的安装
2、功能模块之间的关系
图4功能模块关系示意图
(1)Server系统通过图形的屏幕截取将服务端界面制作成图形
(2)图形在图形模块的解密等操作下变成数据块
(3)这些数据块按照一定的协议规范后,通过网络控制传输到Cleint系统,
(4)Client系统最终将结果显示在客户端界面上。
(5)Cleint系统的一些操作会按照一定的协议规范后,通过网络控制传输到Server系统
(6)Server系统最终将结果显示在客户端界面上。
这个功能模块图能够完全反映的就是Cnosole模块和RDP模块的操作,而对于cLI,s0L,VD操作就不需要图形模块了,通过网络传输的是系统信息的协议数据。
第五章数据库设计
5.1数据库概念设计
根据对数据流图和数据字典的分析,可以将这个数据库抽象为一个E-R图,如图4所示:
图6远程控制系统系统E-R图
实体集
联系
图7E-R图数据说明
根据上述E-R模型,将其转化为关系模型:
1,服务器(服务名称、服务端口号、服务类型、服务来源、服务状态)
2,客户端(客户名称、客户IP、客户类型、客户来源、客户状态)
5.2数据库详细设计
数
数据库文件名:
yckz.mdb
(1)服务器一览表结构
字段名
数据类型
可否为空
说明
服务名称
文本(50)
否
服务名称
服务端口号
文本(30)
否
端口号
服务类型
文本(20)
是
服务类型
服务来源
文本(20)
是
服务来源
服务状态
文本(30)
否
服务状态
主键为:
服务名称
(2)客户端一览表结构
字段名
数据类型
可否为空
说明
客户名称
文本(50)
否
客户名称
客户IP
文本(30)
否
IP地址
客户类型
文本(20)
是
客户类型
客户来源
文本(20)
是
客户来源
客户状态
文本(30)
否
客户状态
客户端一览表结构
5.3数据结构与程序关系
程序各个模块都要与数据库系统联系。
物理数据结构主要用于各模块之间函数的信息传递。
接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。
第六章详细设计
6.1客户端软件设计
客户端提供给用户友好的操作界面,便于用户进行相关远程管理操作。
本客户端主要设计了4个方面的功能:
1、远程屏幕控制2、远程文件管理3、远程鼠标控制4、远程其它操作(网页浏览、文件下载),为用户提供简单的计算机远程管理。
具体设计如下:
界面1
图8客户端程序图标
功能说明:
双击鼠标打开客户端程序
界面2
图9客户端程序主界面
功能说明:
根据界面菜单文字提示进行操作
界面3
图10连接服务端设置界面
功能说明:
(1)选择文件菜单在下拉窗口中选择“连接”
(2)在弹出窗口中可以进行服务端连接端口设置(默认10000)
(3)服务端IP地址设置,IP地址为需要连接控制的服务端IP地址
(4)验证信息默认“︿_︿菊子︿_︿”
(5)确认填写无误单击“连接”,连接状态如图11
图11连接状态显示
界面4
图12功能面板界面
图13远程屏幕控制
图14远程文件管理
图15远程鼠标控制
图16远程其它控制
功能说明:
根据功能面板提示可以进行
(1)服务端远程屏幕控制
(2)服务端远程文件管理
(3)服务端远程鼠标控制
(4)服务端远程其它操作
6.2服务端软件设计
服务端软件主要是接收、处理来自客户端的请求,没有单独设计界面,而是创建一个Server.exe进程在后台运行。
具体设计如下:
界面1
图17服务端程序图标
功能说明:
双击鼠标打开服务端程序
界面2
图18服务端程序启动提示
图19服务端程序图标
6.3界面的详细设计
根据对用户的需求分析,
(1)服务端模块设计,根据需求分析,服务端可以划分为四个模块:
文件管理模块、屏幕处理模块、实时通信模块、Socket通信模块。
(2)客户端模块设计,根据需求分析,客户端可以划分为四个模块:
远程控制模块、文件管理模块、实时通信模块、Socket通信模块
服务端
文件管理模块
屏幕处理模块
实时通信模块
Socket通信模块
图20远程控制系统软件结构示意图
服务端4大模块说明如下:
①文件管理模块,允许客户端对被控制端的计算机的文件进行创建和删除操作。
②屏幕处理模块,采集服务端图像并对图像进行处理、压缩。
③实时通信模块,实现接收客户端消息,建立连接通道,并实时处理返回客户端服务请求。
④Socket通信,Socket提供了统一的网络通信编程接口,定义了一种可靠的面向连接的服务,实现了无差错无重复的顺序数据传输。
客户端4大模块说明如下:
①远程控制模块,可以直接对被控制端的屏幕进行实时操作,控制对方鼠标和键盘。
②文件管理模块,获取被控制端的计算机的文档信息并获取权限可以进行创建和删除操作。
③实时通信模块,发送客户端消息,建立连接通道,并实时接收处理服务端返回消息。
④Socket通信,功能与服务端一致。
第七章调试及运行
7.1编程
系统采用的是面向对象的编程技术,类是这个技术的核心,其中使用的关键类如下:
PeerSocket类//负责通信的连接
//创建Socket通信
PeerCreateSocket(SOCKET3pNewSocket,intiSock2Type)
//绑定端口
PeerBindSocket(SOCKETBindSocket,char3szHos2tAddr,intiHostPort)
//监听端口
PeerListenSocket(SOCKETListenSocket)
//发送数据
PeerSendData(SOCKETsocket,char3data,DWORDlen,DWORD3retlen,WSAEVENThSendEvent,DWORDtime)
//接收数据
PeerRecvData(SOCKETsocket,char3data,DWORDlen,DWORD3retlen,WSAEVENThRecvEvent,DWORDtime)
PeerFileOperator类//负责文件操作
//写入文件信息结构
strcpy(attrib.filename,WFD.cFileName);
strcpy(attrib.attrib,WFD.dwFileAttributes&FILEATTRIBUTEDIRECTORY?
“文件夹”:
shfi.sz2TypeName);
//得到驱动器号
maskdriver=GetLogicalDrives()
//得到文件的相关信息
SHGetFileInfo(WFD.cFileName,FILEATTRIBUTENORMAL,&shfi,sizeof(shfi),SHGFIICON|SHGFIUSEFILEATTRIBUTES|SHGFITYPENAME);
//创建文件夹
CreateDirectory(fi.filename,NULL)
//删除文件名
DeleteFile(fi.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 远程控制系统 毕业设计 远程 控制系统