資源描述:
《模擬網(wǎng)橋功能實(shí)驗(yàn)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、一、實(shí)驗(yàn)?zāi)康膶?xiě)一個(gè)程序來(lái)模擬網(wǎng)橋功能。二、實(shí)驗(yàn)環(huán)境PC機(jī)Windows7操作系統(tǒng)三、實(shí)驗(yàn)內(nèi)容模擬實(shí)現(xiàn)網(wǎng)橋的轉(zhuǎn)發(fā)功能,以從文件中讀取幀模擬網(wǎng)橋從網(wǎng)絡(luò)中收到一幀,即從兩個(gè)文件中讀入一系列幀,從第一個(gè)文件中讀入一幀然后從第二個(gè)文件中再讀入一幀,如此下去。對(duì)每一幀,顯示網(wǎng)橋是否會(huì)轉(zhuǎn)發(fā)。3.1程序演示建立兩個(gè)名為net1和net2的txt文檔,輸入以下值,每?jī)蓚€(gè)字母作為一個(gè)幀,每個(gè)幀中首字母表示源地址,末字母表示目的地址.程序運(yùn)行效果如下:3.2項(xiàng)目設(shè)計(jì)報(bào)告程序設(shè)計(jì)思路及實(shí)現(xiàn)交替讀取兩個(gè)文件內(nèi)的數(shù)據(jù),然后查找轉(zhuǎn)發(fā)表。如果找不到則提示并將源地址和接口信息加入轉(zhuǎn)發(fā)表中,如果找到
2、則提示轉(zhuǎn)發(fā)到哪個(gè)接口,如果數(shù)據(jù)中源地址和目的地址都來(lái)自同一接口則提示不轉(zhuǎn)發(fā)。程序流程圖開(kāi)始打開(kāi)net1.txt和net2.txt順序交替讀取兩個(gè)文件內(nèi)容查找轉(zhuǎn)發(fā)表判斷返回值情況否文件讀取結(jié)束查找失敗,無(wú)法轉(zhuǎn)發(fā)源和目的數(shù)據(jù)在同一接口,不轉(zhuǎn)發(fā)轉(zhuǎn)發(fā)至相應(yīng)接口是程序結(jié)束開(kāi)發(fā)中遇到的問(wèn)題及解決辦法開(kāi)發(fā)中碰到了轉(zhuǎn)發(fā)表和數(shù)據(jù)幀的數(shù)據(jù)結(jié)構(gòu)設(shè)置問(wèn)題、查找轉(zhuǎn)發(fā)表問(wèn)題以及源和目的地址在同個(gè)接口不需要轉(zhuǎn)發(fā)問(wèn)題。解決方法:轉(zhuǎn)發(fā)表和數(shù)據(jù)幀使用結(jié)構(gòu)體,在查找轉(zhuǎn)發(fā)表函數(shù)中設(shè)置兩個(gè)臨時(shí)變量,分別存放源地址和目的地址對(duì)應(yīng)的接口,最后將兩個(gè)臨時(shí)變量比對(duì)。程序中待解決的問(wèn)題及改進(jìn)的方向(1)等解決的問(wèn)題
3、:只能模擬兩個(gè)接口的網(wǎng)橋,界面不友好沒(méi)有用到面向?qū)ο?,程序沒(méi)有封裝性和可復(fù)用性對(duì)于轉(zhuǎn)發(fā)表的查找沒(méi)有高效算法。(2)改進(jìn):使用面向?qū)ο蠹夹g(shù)和相關(guān)設(shè)計(jì)模式,使用圖形用戶界面,使用二分查找、哈希查找等高效算法。四、實(shí)驗(yàn)總結(jié)通過(guò)本次實(shí)驗(yàn)加深理解了網(wǎng)橋的工作原理以及轉(zhuǎn)發(fā)表的自學(xué)習(xí)方法,提高了用編程方法分析解決問(wèn)題的能力。附:程序源代碼#include#includeusingnamespacestd;#defineINTERCOUNT2//接口數(shù)量#defineTABLEMAXCOUNT255//轉(zhuǎn)發(fā)表最大數(shù)量inttablecount
4、=0;//全局變量,轉(zhuǎn)發(fā)表數(shù)量inti;structtrantable//轉(zhuǎn)發(fā)表結(jié)構(gòu)體{charinter;//接口chardest;//目的地址}table[TABLEMAXCOUNT]={0,0,0,0};structdataframe//數(shù)據(jù)幀結(jié)構(gòu)體{charsource;//源地址chardest;//目的地址};voidupdateTable(structdataframedata,intinter)//更新轉(zhuǎn)發(fā)表{table[tablecount].dest=data.source;table[tablecount].inter=inter;table
5、count++;//轉(zhuǎn)發(fā)表數(shù)量+1}intsearchTable(structdataframedata)//查找轉(zhuǎn)發(fā)表{inttemp1=0,temp2=0;for(i=0;i6、/交替讀取文件//查找網(wǎng)橋轉(zhuǎn)發(fā)表//查找成功則輸出接口目的,失敗則學(xué)習(xí)intmain(){intflag;//標(biāo)志變量,0表示查找失敗,1和2分別表示接口1和2structdataframedata;//數(shù)據(jù)幀,有源地址和目的地址,分別用一個(gè)字母表示fstreamnet1fin("net1.txt"),net2fin("net2.txt");while(!net1fin.eof()&&!net2fin.eof()){net1fin>>data.source>>data.dest;//讀取一個(gè)幀flag=searchTable(data);//查找轉(zhuǎn)發(fā)表switch
7、(flag){case0:{cout<<"幀(源地址:"<
8、>data