第二次寒假作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/2022OOP/
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/2022OOP/homework/12442
这个作业的目标 提供规则集和数据集,输出数据集中数据包所最佳匹配的规则位置

GitHub


付费0.5元解锁本链接

需要学习的内容

首先是作业中的一些概念

规则集、数据集等概念

规则集IP地址的表示法——点分十进制

其次是程序中需要用到的输入输出

文件流输入输出

C++文件流详解

规则集中十六进制数的输出

C++中输出/输入十六进制数

学习过程

1.20

看到题目的第一眼,我脸上写满了“懵逼”二字,这**什么啊,(脑子里全是璃月粗口)
看了几遍,终于抓住重点——匹配
于是,我就硬照着题目写了IP匹配函数,思路如下:
受到点分十进制的启发,我将规则集和数据集的IP地址都转换成二进制字符数组,尝试了几番终于成功了:

规则集IP地址转换函数,数据集与之类似:

1.21

将端口和协议匹配函数也补上了

第一次commit时,由于本人理解有误,因此还push到了GitHub上:

1.22、1.23

学长纠正了题目,匹配函数略作修改:


第二次commit记录:

1.24

开始学习文件输入输出,但是由于本人理解不深,尝试几次都失败了

第三次commit记录:

1.25、1.26

学习文件输入输出的同时又学习了十六进制的输出方式,输入输出终于成功了,但是出现了几个问题,迟迟未得到解决

第四次commit(忘截图了)

1.27、1.28:

纠正了前两天出现的问题——文件输入十位数据时,未加上dec(十进制标识符)

第五次commit记录:

1.29、1.30:

做了最后优化,将进制转换函数和IP地址匹配函数简化:



第六次commit记录:
由于本人commit之后直接push到GitHub远程仓库上的时候直接关掉Git,所以没有截图:P

测试结果

完 全 一 致

运行时间

posted @ 2022-01-30 22:35  $丫工  阅读(37)  评论(1编辑  收藏  举报