第二次寒假作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/2022OOP |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/2022OOP/homework/12442 |
这个作业的目标 | 给出规则集及输入数据包,输出相应数据包最佳匹配的规则 |
作业正文 | 见下 |
其他参考文献 | 见正文链接 |
-
完成本次作业需要学习的内容:
- C++相关知识及使用(https://www.runoob.com/cplusplus/cpp-tutorial.htm)
- CIDR(https://baike.baidu.com/item/无类别域间路由/15758573?fromtitle=CIDR&fromid=3695195&fr=aladdin) 的IP地址(https://blog.csdn.net/han156/article/details/77817031) 及进制转换 (https://www.cnblogs.com/daviddd/p/13177846.html)
- 计算机网络的相关知识(https://www.runoob.com/w3cnote/summary-of-network.html) 基本概念(https://www.cnblogs.com/ZZ-zcl/p/15857364.html)
-
学习过程及思路:
-
理清基本概念
-
- I/O 库头文件
下列的头文件在 C++ 编程中很重要。
:该文件定义了 cin、cout、cerr 和 clog 对象,分别对应于标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流。
: 该文件通过所谓的参数化的流操纵器(比如 setw 和 setprecision),来声明对执行标准化 I/O 有用的服务。
: 该文件为用户控制的文件处理声明服务。我们将在文件和流的相关章节讨论它的细节。 - 标准输出流(cout)
预定义的对象 cout 是 iostream 类的一个实例。cout 对象"连接"到标准输出设备,通常是显示屏。cout 是与流插入运算符 << 结合使用的 - 标准输入流(cin)
预定义的对象 cin 是 iostream 类的一个实例。cin 对象附属到标准输入设备,通常是键盘。cin 是与流提取运算符 >> 结合使用的
- I/O 库头文件
-
C++对文件的读写
fstream提供了三个类,用来实现c++对文件的操作(文件的创建、读、写)
ifstream -- 从已有的文件读入
ofstream -- 向文件写内容
fstream - 打开文件供读写
文件打开模式:
ios::in 只读
ios::out 只写
ios::app 从文件末尾开始写,防止丢失文件中原来就有的内容
ios::binary 二进制模式
ios::nocreate 打开一个文件时,如果文件不存在,不创建文件
ios::noreplace 打开一个文件时,如果文件不存在,创建该文件
ios::trunc 打开一个文件,然后清空内容
ios::ate 打开一个文件时,将位置移动到文件尾
文件指针位置在c++中的用法:
ios::beg 文件头
ios::end 文件尾
ios::cur 当前位置
举个例子:
file.seekg(0,ios::beg); //让文件指针定位到文件开头
file.seekg(0,ios::end); //让文件指针定位到文件末尾
file.seekg(10,ios::cur); //让文件指针从当前位置向文件末方向移动10个字节
file.seekg(-10,ios::cur); //让文件指针从当前位置向文件开始方向移动10个字节
file.seekg(10,ios::beg); //让文件指针定位到离文件开头10个字节的位置
注意:移动的单位是字节,而不是行。
常用的错误判断方法:
good() 如果文件打开成功
bad() 打开文件时发生错误
eof() 到达文件尾
参考资料:
https://www.cnblogs.com/zhengfa-af/p/8145443.html
https://blog.csdn.net/qq_34097715/article/details/79970860 -
IP地址转化(未掌握)
-
比对匹配
-
-
最后想说
这次的作业对我来说难度挺大,看完作业要求后,一头雾水,根本不知道在说什么,要做什么,从哪开始,学习了解相关的基本知识后(盲区,理解的表面,未能联系和运用),写了一小部分的代码,未能完成完整代码,参考了一些同学的后,也有了一些思路,之后决定先用C语言试试(C掌握的也并不太好),之后再尝试C++,代码之后补上。本次作业未能完成的重要原因是:未能将作业分解,没有一步步入手,罗列出自己不会的地方并逐步解决(学习方式及自学能力有待提升);没有分配好学习时间。遇到的困难是:对新知识的理解,C++的使用等。收获有:对于大问题,不理解的地方,莫急莫慌,一步一步来,要善于交流与提问。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?