欢迎来到天天文库
浏览记录
ID:58234924
大小:734.00 KB
页数:9页
时间:2020-05-19
《用C++模拟RIP协议的工作原理.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、山东大学威海分校信息工程学院软件工程系基于距离向量算法的路由协议的实现实验报告编号:姓名杜焓院系信息工程学院学号任课教师程杰指导教师程杰实验地点电子楼201实验时间11.10实验名称用C++模拟RIP协议的实现过程同组人预习报告(对实验主要内容的认识)得分RIP协议主要是通过对一个网络中的多个路由每个一定时间使用距离向量算法,从而实现每个路由中的路由表中的信息存储为该路由到每个网段的最短距离及其下一跳。实验内容(问题,思路,程序,结果)得分我的思路是先使用一个txt文档保存一个网络的基本信息,每行三个基本信息。分别为网段名,与连接次网段的两个路由器名。举例如下:存于txt文档中的相关信息
2、如下:id1R1R2id2R3R4id3R4R6id4R2R7id5R2R3id6R6R8id7R3R8id8R7R8id9R1R3可以把它保存为net_route.txt。把这个文件放和.cpp文件放在同一文件夹下,即可运行程序。程序中会出现相应的路由表信息。程序代码如下:#include#include#include#include#include#includeusingnamespacestd;#defineMAX100//最大路由数/*******************
3、**下面是存储类型的三个类*********************/classNet_sec;//路由类相当于头结点classRoute{public:stringroute;Net_sec*next;};//网段类,包含相邻弧的信息(不用route_f,用next),也可用于存储文件读入信息(用route_f,不用next)classNet_sec{public:stringnet_id;stringroute_f;stringroute_n;Net_sec*next;};//路由表内容类classContents{public:stringnet_id;intdiatance;st
4、ringnext_stop;};/*********************上面是存储类型的三个类*********************///路由表和网段类classRoute_net{public:voidopen_file(ifstream&infile);Route_net();booljudge(stringstr);voidInit_routes();voidshow();voidchange(inti);voidupdate(inti);voidUPDATE();boolneighbor(inti,intj);//j和i相邻吗private:listli
5、;//读取信息存储在这Routeroute[MAX];//存储图的信息,即各路由的邻接表listroutes[MAX];//存储各路由路由表listtemp;//用于存储处理后的临时路由表stringflection[MAX];//用于对应路由器与存储序列标号intsum;//用于统计路由个数};//打开文件函数voidRoute_net::open_file(ifstream&infile){stringfilename;cout<<"enterthenameofthefilewhichcontainsinformationofroutesand
6、networksection:";cin>>filename;infile.open((filename+".txt").c_str());if(!infile){cerr<<"fileopenerror!"<>t1.net_id>>t1.route_
7、f>>t1.route_n;li.push_back(t1);strm.clear();}//以上把文件内容存入了类属性li中list::iteratorit1=li.begin(),it2;inti=0;Net_sec*t2,*t3;for(;it1!=li.end();it1++){if(judge((*it1).route_f)){flection[i]=(*it1).route_f;route[i].rou
此文档下载收益归作者所有