预览加载中,请您耐心等待几秒...
在线预览结束,喜欢就下载吧,查找使用更方便
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
单文件面向过程C++编程有观点认为,非跨平台病毒在HYPERLINK"http://www.942dn.com/czxt/"\t"_blank"操作系统混合部署的环境中,其扩散速度比较低。这里要编写一个程序来模拟计算机病毒的扩散过程,直观地验证这个观点。这里将使用C++语言。为简单起见,仍然使用面向过程的编程方法,程序文件也只有一个。学习本例时,应着重理解用KDevelop编程的基本步骤。问题陈述HYPERLINK"http://www.shzhenai.com/Activity/201103/MeiBaiZhen/"美白针HYPERLINK"http://www.shzhenai.com/Activity/201103/MeiBaiZhen/"美白针价格HYPERLINK"http://www.shzhenai.com/Activity/201103/MeiBaiZhen/"http://www.shzhenai.com/Activity/201103/MeiBaiZhen/假设有一个封闭的环境,其中有计算机N台。这N台计算机都可以选择安装A或B种操作系统。有一种非跨平台病毒病毒,能感染运行安装A操作系统的计算机。当染毒计算机与未染毒计算机交换时,此病毒将以概率pA扩散。同理,设有另一种非跨平台病毒病毒,能感染运行安装B操作系统的计算机,扩散概率为pB。把操作系统单一部署2条件下的病毒扩散情况与两种操作系统按比例r:1混合部署时的{2即所有计算机都安装同一种操作系统}扩散情况进行比较。初始条件:设N=70,pA=pB=p=0.3,rO{0,1,2,3},r=0对应单一部署,其他对应混合部署;单一部署时,有两台计算机已经感染了病毒;混合部署时,每种操作系统的计算机各有一台计算机已经感染了病毒。输出:用数值和图形来表示感染病毒的计算机总数和增量的变换情况。终止条件:当所有计算机都感染病毒时,停止模拟。设计HYPERLINK"http://www.shzhenai.com/Activity/201103/MeiBaiZhen/"美白针HYPERLINK"http://www.shzhenai.com/Activity/201103/MeiBaiZhen/"美白针价格HYPERLINK"http://www.shzhenai.com/Activity/201103/MeiBaiZhen/"http://www.shzhenai.com/Activity/201103/MeiBaiZhen/首先,定义一个TComputer类型的数组,每个元素代表一台计算机。TComputer是用户自定义类型,其中记录计算机上的操作系统类型、以及是否感染了病毒等信息。应根据初始条件,对这个数组进行初始化。其次,定义一个模拟计算机交互的函数ComputerContact(),用以模拟任意两台计算机的交互。当这两台计算机的操作系统一样,并且其中一台已经感染了病毒时,另一台计算机将以概率p感染病毒。为了方便,可以产生一个0到9范围内的随机数,当此随机数小于p*10时,就认为病毒扩散了。第三,可以产生两个小于N的互不相等的随机数,来确定一次交互中的两台计算机。编写程序文件通过菜单操作【Project】→【NewProject】启动新建工程向导程序,选择工程类型,并指定工程名称及其保存位置,接下来一路点击Next即可完成工程的创建工作。向导程序会自动生成一个含有主函数的文件。以此文件是一个模板,在它的基础上修改并添加代码,即可编写需要的程序。本例的源程序见linuxv-viruspread-0.0.1.tar.gz中的/src/viruspread.cpp。编译HYPERLINK"http://www.shzhenai.com/Activity/201103/MeiBaiZhen/"美白针HYPERLINK"http://www.shzhenai.com/Activity/201103/MeiBaiZhen/"美白针价格HYPERLINK"http://www.shzhenai.com/Activity/201103/MeiBaiZhen/"http://www.shzhenai.com/Activity/201103/MeiBaiZhen/程序写好后,应该把文件保存起来,然后按照前面提到的步骤,生成源码结构、配置、编译,即依次执行如下菜单操作:【Build】→【Runautomake&conf】【Build】→【Runconfigure】【Build】→【CompileFile】每一个操作若能正常完成,在Messages窗口中会出现Success的提示。如果没有Success的提示,则表明相应的操