论文部分内容阅读
摘 要:为了阻止学生在上计算机实验课时做与学习无关的事情,本文设计出计算机实验教学监控系统,它可以自动对学生上机行为进行监控,提高学生的学习效率。经过试验对比,在应用该监控系统后,学生的上机行为得到了有效的限制,机房产生的流量大幅减少,学生对计算机操作的能力有显著的提高。
关键词:实验教学 行为监控 机房流量 监控系统
中图分类号:G71 文献标识码:A 文章编号:1674-098X(2013)04(b)-0177-03
随着计算机及互联网的快速发展和普及,为了适应社会需求,几乎所有的高校都将计算机基础课作为全校各专业学生必修的公共课。由于计算机是一门实践性很强的学科,所以计算机实验教学部分就成为计算机基础教学中的重点,其教学效果直接影响着学生对计算机的应用。在实验教学过程中,部分学生往往不按照要求进行练习,经常做与实验无关的事情,如看视频、聊QQ、打游戏等,既影响了学生对计算机知识的掌握、分散教师上课的精力,又给校园网络带来很大的负担。针对这种状况,该文设计出计算机实验教学监控系统,它可以自动对学生上机行为进行监控,提高学生的学习效率。
1 需求分析
学生的需求:在上机实验过程中,部分学生的自我控制力差,他们有学习的意愿,但控制不住自己去做与学习无关的事,甚至有的学生在无法上网的情况下玩纸牌等单机版游戏。这就需要一个监控系统对学生在上机过程中用到的进程进行监控,发现游戏、视频播放等进程就自动将其强制关闭[1]。
老师的需求:教师在上课过程中,对学生进行上机指导的同时,还要花费很大的精力监督学生的上机行为,这影响了教学效果。目前已有的监控系统大都通过教师机监控学生的上机情况,教师查看后采取相应处理,虽然能起到一定的作用,但是仍不能保证教师将全部精力放到对学生的实验指导上。这就需要一个监控系统在上课过程中不需要教师的参与,就能够自动地对学生的上机行为进行监控,只需要该系统在课前进行简单地设置。
网络管理的需求:在学生实验操作过程中,不可避免地用到网络,如果不对学生的上网行为进行控制,学生就会做与学习无关的事情,如看视频、打游戏等,而这些应用都是非常消耗网络带宽资源的。据统计,我校的机房在同时使用的情况下,机房占用的带宽达到学校总带宽的70%,严重影响了学校教职工正常的网络办公。针对这种情况,如果仅限制流量,又会导致机房网速过慢,达不到教学的效果,这就需要对占用带宽大的进程进行监控。
2 设计实现
2.1 功能分析
针对以上需求,监控系统应具有以下功能:
①监控进程设置 教师对需要监控的进程进行设置,包括进程名、运行的时间段等。并通过增加和删除实现对多个进程的管理。
②进程监控 对教师设置的进程进行监控,一旦发现有设置的进程运行,立即将其关闭。
③自我保护 保证进程监控系统能够正常地运行,不被学生关闭。
2.2 设计实现
考虑到便于教师的管理,我们采用c/s模式的系统结构,如图1所示。
由图1可知,整个系统分为教师机端程序和学生机端程序两部分,这两部分程序都是建立在网络通信技术基础上。教师机端程序主要实现对要监控的进程进行设置,并向学生机端程序发送相关进程的信息。学生机端程序主要是接收教师机端程序发送的相关进程信息,运行自身的监控功能,同时保证自身程序不被学生关闭。
2.2.1 教师机端部分
教师机端部分主要负责对学生机运行的进程进行设置,如图2所示。
设置完成后,利用winsock网络通信技术将进程信息发送给学生机端程序[2-3]。
Winsock编程主要有以下步骤:
(1)初始化winsock 主要是利用WSAStartup函数对winsock资源进行初始化。
(2)建立套接字并绑定。
(3)建立socket连接。
(4)通过套接字进行网络通信。
(5)关闭套接字 调用WSACleanun函数释放Winsock资源。
2.2.2 学生机端部分
在学生机端部分,程序随电脑主机的启动而启动,主要是通过注册表编程来实现。系统启动后不断地监听教师机端程序发来的进程信息,如果收到信息,立即将信息写入到数据表中。
进程监控
系统运行后监控进程立即工作,它不断地检测非法进程的运行状况,一旦发现非法进程,就立即关闭。学生机端部分功能如图3所示。
执行过程如下:
(1)定时获取计算机系统中进程的快照[4-6],同时获取系统快照中的第一个进程信息。
(2)判断获取的信息中的进程名是否等于要监控的进程名,如果等于,转步骤(3);否则,转步骤(4)。
(3)关闭进程。
(4)获得系统快照中的下一个进程的信息,转步骤(2)。
主要源代码如下:
bStatus=Process32First(hSnapShot,&prosInfo);
while (bStatus)
{
if(prosInfo.szExeFile==thunder.exe)
{
dwProcessID=prosInfo.th32ProcessID;
hProcess=
::OpenProcess(PROCESS_TERMINATE,FALSE,dwProcessID);
::TerminateProcess(hProcess, 0);
CloseHandle(hProcess); MessageBox(L”该进程已被禁止运行,将立刻被关闭!");
}
bStatus = Process32Next(hSnapShot, &prosInfo);
}
进程保护
学生端程序自我保护主要有两个功能,一是保护监控进程不被关闭,是通过看守进程来实现。二是保护看守进程不被关闭,此功能类似于木马,具有很强的生存能力,除非开发者留后门,否则用户无法将其关闭。
看守进程具体实现代码如下:
szCommandLine[]=TEXT("D:\\Process\\debug\\Process.exe");
do{
if(!CreateProcess( NULL,szCommandLine,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi)){
MessageBox(L"进程创建失败!");
}
WaitForSingleObject( pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}while(TRUE);
3 测试
3.1 功能测试
以监控迅雷应用程序(thunder.exe)和qq应用程序(qq.exe)为例,首先,在教师机端设置需要监控的程序,如图4所示:
设置完成后,学生机端收到进程信息,开始监控禁止运行的程序,如果发现有禁止运行的程序,将立即关闭。如图5所示。
3.2 效果测试
为了验证本系统在计算机实验教学中起到的效果,我们以2012级康复1班为例,将该班分两组,每组25人,分组1使用该监控系统,分组2不使用监控系统。这两组均采用相同的教学方法和教学过程,两组的实验考核成绩对比如表1所示。
Word、excel、ppt是计算机实验教学中的重点,因此,我们以这三个实验为例进行对比,从上表中可知,采用本监控系统的分组1的通过率明显高于没有采用监控系统的分组2,分组1所在的机房产生的流量明显低于分组2产生的流量,该系统达到了预期的目的。
4 结语
为了提高计算机实验教学的教学效率,本文研究并实现了计算机实验教学监控系统,主要从以下几个方面进行研究:(1)分析了现有的监控系统,针对我校计算机教学的实际情况,提出了本监控系统的主要功能及系统结构;(2)认真研究了实现本系统所需要的技术,包括c++、定时器、钩子、网络编程等。(3)实现了本系统的主要功能,并通过测试。并将该系统应用到实际教学中,从应用效果看,该系统在实验教学过程中不需要教师的参与即可有效地对学生的上机行为进行监控,大大提高了学生的学习效率,具有较强的实用性和较高的推广价值。
参考文献
[1] 王明福,齐治文.多媒体网络教学监控系统的设计与实现[J].计算机工程,2010,36(7):291-293.
[2] 顾尚杰.计算机通信网基础[M].北京:电子工业出版社,2001:135-138.
[3] 甘波,兰柏.语音室监控系统关键技术研究[J].信息与电脑,2012,6(2):38-39.
[4] 张安琳,黄道颖,李潢琦.Windows程序的基本框架和消息机制[J].电脑开发与应用,2001,14(8):27-30.
[5] Jeffrey Richter,Christophe Nasarre.Windows via C/C++[M]. Washington:Microsoft Press ,2007:56-70.
[6] 杨晓鹏.Visual C++7.0使用编程技术[M].北京:中国水利水电出版社,2002:38-40.
关键词:实验教学 行为监控 机房流量 监控系统
中图分类号:G71 文献标识码:A 文章编号:1674-098X(2013)04(b)-0177-03
随着计算机及互联网的快速发展和普及,为了适应社会需求,几乎所有的高校都将计算机基础课作为全校各专业学生必修的公共课。由于计算机是一门实践性很强的学科,所以计算机实验教学部分就成为计算机基础教学中的重点,其教学效果直接影响着学生对计算机的应用。在实验教学过程中,部分学生往往不按照要求进行练习,经常做与实验无关的事情,如看视频、聊QQ、打游戏等,既影响了学生对计算机知识的掌握、分散教师上课的精力,又给校园网络带来很大的负担。针对这种状况,该文设计出计算机实验教学监控系统,它可以自动对学生上机行为进行监控,提高学生的学习效率。
1 需求分析
学生的需求:在上机实验过程中,部分学生的自我控制力差,他们有学习的意愿,但控制不住自己去做与学习无关的事,甚至有的学生在无法上网的情况下玩纸牌等单机版游戏。这就需要一个监控系统对学生在上机过程中用到的进程进行监控,发现游戏、视频播放等进程就自动将其强制关闭[1]。
老师的需求:教师在上课过程中,对学生进行上机指导的同时,还要花费很大的精力监督学生的上机行为,这影响了教学效果。目前已有的监控系统大都通过教师机监控学生的上机情况,教师查看后采取相应处理,虽然能起到一定的作用,但是仍不能保证教师将全部精力放到对学生的实验指导上。这就需要一个监控系统在上课过程中不需要教师的参与,就能够自动地对学生的上机行为进行监控,只需要该系统在课前进行简单地设置。
网络管理的需求:在学生实验操作过程中,不可避免地用到网络,如果不对学生的上网行为进行控制,学生就会做与学习无关的事情,如看视频、打游戏等,而这些应用都是非常消耗网络带宽资源的。据统计,我校的机房在同时使用的情况下,机房占用的带宽达到学校总带宽的70%,严重影响了学校教职工正常的网络办公。针对这种情况,如果仅限制流量,又会导致机房网速过慢,达不到教学的效果,这就需要对占用带宽大的进程进行监控。
2 设计实现
2.1 功能分析
针对以上需求,监控系统应具有以下功能:
①监控进程设置 教师对需要监控的进程进行设置,包括进程名、运行的时间段等。并通过增加和删除实现对多个进程的管理。
②进程监控 对教师设置的进程进行监控,一旦发现有设置的进程运行,立即将其关闭。
③自我保护 保证进程监控系统能够正常地运行,不被学生关闭。
2.2 设计实现
考虑到便于教师的管理,我们采用c/s模式的系统结构,如图1所示。
由图1可知,整个系统分为教师机端程序和学生机端程序两部分,这两部分程序都是建立在网络通信技术基础上。教师机端程序主要实现对要监控的进程进行设置,并向学生机端程序发送相关进程的信息。学生机端程序主要是接收教师机端程序发送的相关进程信息,运行自身的监控功能,同时保证自身程序不被学生关闭。
2.2.1 教师机端部分
教师机端部分主要负责对学生机运行的进程进行设置,如图2所示。
设置完成后,利用winsock网络通信技术将进程信息发送给学生机端程序[2-3]。
Winsock编程主要有以下步骤:
(1)初始化winsock 主要是利用WSAStartup函数对winsock资源进行初始化。
(2)建立套接字并绑定。
(3)建立socket连接。
(4)通过套接字进行网络通信。
(5)关闭套接字 调用WSACleanun函数释放Winsock资源。
2.2.2 学生机端部分
在学生机端部分,程序随电脑主机的启动而启动,主要是通过注册表编程来实现。系统启动后不断地监听教师机端程序发来的进程信息,如果收到信息,立即将信息写入到数据表中。
进程监控
系统运行后监控进程立即工作,它不断地检测非法进程的运行状况,一旦发现非法进程,就立即关闭。学生机端部分功能如图3所示。
执行过程如下:
(1)定时获取计算机系统中进程的快照[4-6],同时获取系统快照中的第一个进程信息。
(2)判断获取的信息中的进程名是否等于要监控的进程名,如果等于,转步骤(3);否则,转步骤(4)。
(3)关闭进程。
(4)获得系统快照中的下一个进程的信息,转步骤(2)。
主要源代码如下:
bStatus=Process32First(hSnapShot,&prosInfo);
while (bStatus)
{
if(prosInfo.szExeFile==thunder.exe)
{
dwProcessID=prosInfo.th32ProcessID;
hProcess=
::OpenProcess(PROCESS_TERMINATE,FALSE,dwProcessID);
::TerminateProcess(hProcess, 0);
CloseHandle(hProcess); MessageBox(L”该进程已被禁止运行,将立刻被关闭!");
}
bStatus = Process32Next(hSnapShot, &prosInfo);
}
进程保护
学生端程序自我保护主要有两个功能,一是保护监控进程不被关闭,是通过看守进程来实现。二是保护看守进程不被关闭,此功能类似于木马,具有很强的生存能力,除非开发者留后门,否则用户无法将其关闭。
看守进程具体实现代码如下:
szCommandLine[]=TEXT("D:\\Process\\debug\\Process.exe");
do{
if(!CreateProcess( NULL,szCommandLine,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi)){
MessageBox(L"进程创建失败!");
}
WaitForSingleObject( pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}while(TRUE);
3 测试
3.1 功能测试
以监控迅雷应用程序(thunder.exe)和qq应用程序(qq.exe)为例,首先,在教师机端设置需要监控的程序,如图4所示:
设置完成后,学生机端收到进程信息,开始监控禁止运行的程序,如果发现有禁止运行的程序,将立即关闭。如图5所示。
3.2 效果测试
为了验证本系统在计算机实验教学中起到的效果,我们以2012级康复1班为例,将该班分两组,每组25人,分组1使用该监控系统,分组2不使用监控系统。这两组均采用相同的教学方法和教学过程,两组的实验考核成绩对比如表1所示。
Word、excel、ppt是计算机实验教学中的重点,因此,我们以这三个实验为例进行对比,从上表中可知,采用本监控系统的分组1的通过率明显高于没有采用监控系统的分组2,分组1所在的机房产生的流量明显低于分组2产生的流量,该系统达到了预期的目的。
4 结语
为了提高计算机实验教学的教学效率,本文研究并实现了计算机实验教学监控系统,主要从以下几个方面进行研究:(1)分析了现有的监控系统,针对我校计算机教学的实际情况,提出了本监控系统的主要功能及系统结构;(2)认真研究了实现本系统所需要的技术,包括c++、定时器、钩子、网络编程等。(3)实现了本系统的主要功能,并通过测试。并将该系统应用到实际教学中,从应用效果看,该系统在实验教学过程中不需要教师的参与即可有效地对学生的上机行为进行监控,大大提高了学生的学习效率,具有较强的实用性和较高的推广价值。
参考文献
[1] 王明福,齐治文.多媒体网络教学监控系统的设计与实现[J].计算机工程,2010,36(7):291-293.
[2] 顾尚杰.计算机通信网基础[M].北京:电子工业出版社,2001:135-138.
[3] 甘波,兰柏.语音室监控系统关键技术研究[J].信息与电脑,2012,6(2):38-39.
[4] 张安琳,黄道颖,李潢琦.Windows程序的基本框架和消息机制[J].电脑开发与应用,2001,14(8):27-30.
[5] Jeffrey Richter,Christophe Nasarre.Windows via C/C++[M]. Washington:Microsoft Press ,2007:56-70.
[6] 杨晓鹏.Visual C++7.0使用编程技术[M].北京:中国水利水电出版社,2002:38-40.