利用模式匹配算法,实现课件中的案例 4.1: 病毒感染检测。
问题描述如下:
研究者将人的 DNA 和病毒 DNA 均表示成由一些字母组成的字符串序列。
然后检测某种病毒 DNA 序列是否在患者的 DNA 序列中出现过,如果出现过,则此人感染
了该病毒,否则没有感染。
例如,假设病毒的 DNA 序列为 baa,患者 1 的 DNA 序列为 aaabbba,则感染,患者 2 的
DNA 序列为 babbba,则未感染。(注意,人的 DNA 序列是线性的,而病毒的 DNA 序列是环状
的)。
要求:相关信息从文件"病毒感染检测输入数据.txt"读入,将检测结果写入到文件"病
毒感染检测输出结果.txt"中。运行结果如下所示:
提高内容:
利用 KMP 算法进行匹配
C++编写的具有病毒基本功能的程序设计 实现的功能
(1)在主程序中要求将程序拷贝到系统盘\windows\目录下并更名为taskmgr.exe,同时复制第二份到系统盘\windows\system32目录下并更名为explorer.exe。用以混淆用户对病毒的第一判断。
(2)程序建立两个windows进程,每个进程每一个时钟周期检查另外一个进程是否正在运行。如果存在弹出对话框“I’m still in our computer!”,如果不存在启动另一个进程并弹出对话框“I’m still in our computer!”。
(3)将拷贝好的两个病毒程序添加到注册表启动项中,
(HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run)。每个时钟程序在运行的时候都要向注册表中添加此信息