课程设计RIP协议路由表调整算法
来源:互联网 发布:搜狐邮箱 imap 端口 编辑:程序博客网 时间:2024/05/23 00:04
#include <iostream>#include <fstream>#include <string>#include <sstream>#include <windows.h>using namespace std;class Route{public:string route;string net_r;string net_1;};class Routelists{public:string net;int distance;string next route;};class Network{public:Network();void show();void bgroutes();void change(int i);void change2(int i);void update(int i,int j);void UPDATE();bool neighbor(int i,int j);Routelists rts[20][12];Route rt[20];void save();private:int n,n1;int tiao[20];int s2[20];};Network::Network(){cin>>n;n1=n;for(int j=0;j<20;j++){tiao[j]=0;}for(int tt=0;tt<20;tt++){s2[tt]=0;}ifstream infile("data.txt",ios:in);if(!infile){cerr<<"open error!"<<endl;exit(1);}int i=0;while(n1--){infile>>rt[i].net_1>>rt[i].route>>rt[i].net_r;i++;}infile.close();}void Network::bgroutes(){ofstream outfile("R.txt");if(!outfile){cerr<<"open err.text error!"<<endl;exit(1);}for(int i=0;i<n;i++){rts[i][0].net=rt[i].net_1;rts[i][0].distance=1;rts[i][0].next_route="直接交付";outfile<<rts[i][0].net<<" "<<rts[i][0].distance<<" "<<rts[i][0].next_route<<endl;tiao[i]++;rts[i][1].net=rt[i].net_r;rts[i][1].distance=1;rts[i][1].next_route="直接交付";outfile<<rts[i][1].net<<" "<<rts[i][1].distance<<" "<<rts[i][1].next_route<<endl;tiao[i]++;}outfile.close();}void Network::show(){for(int i=0;i<n;i++){cout<<" "<<"第"<<i+1<"个路由器"<<endl;for(int j=0;j<tiao[i];j++){cout<<" "<<rts[i][j].net<<" "<<rts[i][j].distance<<" "<<rts[i][j].next_route<<endl;}cout<<endl;}cout<<endl;cout<<endl;cout<<endl;}void Network::change(int i){for(int j=0;j<tiao[i];j++){rts[19][i].distance=rts[i][j].distance;rts[19][i].next_route=rts[i][j].next_route;rts[i][j].distance=rts[i][j].distance+1;rts[i][j].next_route=rts[i].route;}}void Network:chang2(int i){for(int j=0;j<n;j++){rts[i][j].distance=rts[19][j].distance;rts[i][j].next_route=rts[19][j].next_route;}}void Network::update(int i,int j){int x,y;int s1;bool you=true;for(x=0;x<tiao[i];x++){for(y=0;y<tiao[j];y++){if((rts[i][x].net)!=(rts[j][y].net)){for(int t=0;t<tiao[i];t++){if((rts[i][t].net)==(rts[j][y].net))you=false;}if(you){rts[i][tiao[i]].net=rts[j][y].net;rts[i][tiao[i]].distance=rts[j][y].distance;rts[i][tiao[i]].next_route=rts[j][y].next_route;tioa[i]++;s2[i]++;}}you=true;}}for(x=0;x<tiao[i]-s2[i];x++){for(y=0;y<tiao[i]-s2[i];y++){if((rts[i][x].next_route)==(rts[j][y].next_route)){rts[i][x].net=rts[j][y].net;rts[i][x].distance=rts[j][y].distance;}}}you=true;for(x=0;x<tiao[i]-s2[i];x++){for(y=0;x<tiao[i]-s2[i];y++){if(rts[i][y].net==rts[j][x].net){if(rts[i][y].net<=rts[j][x].distance){you=false;s1=y;}if(you){rts[i][s1].next_route=rts[j][x].next_route;rts[i][s1].distanc=rts[j][x].distance;}you=true;}}}}void Network::UPDATE(){char stop;for(int t=0;t<n-1;t++){for(int j=0;j<n;j++){for(int i=0;i<n;i++){if(neighbor(i,j)){change(i);update(j,i);change2(i);stop=getchar();cout<<"================================================="<<endl;cout<<" 根据第"<<i+1<<"个路由表修改第"<<j+1<<"个路由表,"<<endl;cout<<"================================================="<<endl;for(int x=0;x<n;x++){cout<<" "<<"第"<<x+1<<"个路由表"<<endl;for(int y=0;y<tiao[x];y++){cout<<" "<<rts[x][y].net<<" "<<rts[x][y].distance<<" "<<rts[x][y].next_roue<<endl;}cout<<endl;}cout<<endl;cout<<endl;cout<<endl;}}}}}void Network::save(){ofstream outfile3("R1.txt");for(int i=0;i<tioa[i];i++){outfile1<<rts[0][i].net<<" "<<rts[0][i].distance<<" " <<rts[0][i].next_route<<endl;}outfile1.close();ofstream outfile("R2.txt");for(int i=0;i<tioa[i];i++){outfile2<<rts[1][i].net<<" "<<rts[1][i].distance<<" " <<rts[1][i].next_route<<endl;}outfile2.close();ofstream outfile3("R3.txt");for(int i=0;i<tioa[i];i++){outfile1<<rts[0][i].net<<" "<<rts[0][i].distance<<" " <<rts[0][i].next_route<<endl;}outfile3.close();}int main(){Network gfw;gfw.bgroutes();gfw.show();gfw.UPDATE();gfw.show();gfw.save();return 0;}
0 0
- 课程设计RIP协议路由表调整算法
- RIP路由表调整算法的实现
- 【RIP路由协议】由相邻路由发来的RIP信息更新当前路由的路由表
- 路由信息协议(RIP)
- 路由信息协议(RIP)
- RIP路由协议
- RIP路由协议
- RIP路由协议
- RIP路由协议
- RIP路由协议
- rip路由协议
- 华为rip路由协议
- RIP路由信息协议
- RIP动态路由协议
- Rip 动态路由协议
- RIP路由算法
- RIP路由更新算法
- 路由协议--OSPF与RIP(附带Bellman-Ford算法)
- cortex m0 lpc1114_GPIO引脚寄存器综述
- 分布式系统的事务处理
- 正则表达式 验证日期合法性(包括匹配闰年)
- Android4.4, extents PreferenceActivity, Runtime Exception 解决办法。
- 详细解析Java中抽象类和接口的区别
- 课程设计RIP协议路由表调整算法
- jsp显示优酷视频
- 购物网站建设购物车设计的6个关键点
- 关于切换程序输入法变成全角。
- 经典代码 南阳 oj 单调(递减)递增最长子序列
- jquery实现table列合并
- 手机屏幕卡住调试
- Android清除本地数据缓存代码
- Android通过构造函数传递数据