第二次寒假作業總結二

2022-09-19 15:18:11 字數 1942 閱讀 6950

/*ip轉化*/

for (int i = 7; i >= 0; i--)

for (int i = 15; i >= 8; i--)

for (int i = 23; i >= 16; i--)

for (int i = 31; i >= 24; i--)

//**轉化

for (int i = 0; i < num5[len]; i++)

for (int i = 0; i <= 31; i++)

for (int i = num5[len]; i < 32; i++)

//重新賦值

int ss = 0, sss = 128;

for (int i = ss; i <= ss + 7; i++)

ss += 8;

sss = 128;

for (int i = ss; i <= ss + 7; i++)

ss += 8;

sss = 128;

for (int i = ss; i <= ss + 7; i++)

ss += 8;

sss = 128;

for (int i = ss; i <= ss + 7; i++)

ip1[len] = 16777216 * num1[len] + 65536 * num2[len] + 256 * num3[len] + num4[len];

在此我是用的是先將127.0.0.1的**先轉化成二進位制,根據/x的x值對其處理之後再進行與運算,最後賦值計算即可

優點:無,但是符合定義

缺點:**量大

switch (ds1[len])
對協議號進行處理,由於無法(大概也是我不會),只能讓每一位進行乙個字元到整型的處理,然後再轉化

最後就是資料比較的問題,由於**實在太長,就不放了,最主要的就是ip位址的匹配,/32就是等於即可,/31就是等於兩個資料即可,其他的就是在乙個範圍內進行乙個判斷,所以第二種計算ip網寬的方法除了能減少計算量,判斷過程也能少寫一點(又是快一百行)

#include #include using namespace std;

int main()

len = 0;

ifstream fil("output.txt");

while ( ! fil.eof() )

int flag = 0;

len --;

for (int i = 0; i < len; i++)

} cout << flag ;

return 0;

}

然後就是這個check的**可以把結果和ans進行對比,**應該很簡單的,就不多介紹了,不過看著錯誤數從上千到173,然後到11,最後到0的成就還是不錯的

時間大概3秒乙個資料報,比較長了

首先了解基本概念,然後檔案的輸入和輸出,ip計算方法等等,寫**(第一版),協議號問題(第二版),傳輸協議問題(第三版),/31的bug(第四版也是最終版本)

1.模組化問題

我是沒有將所有的東西模組化的,事實上就只有乙個檔案,我感覺沒什麼必要,小工程的情況下,而且是單人,整個的**編寫過程我都沒有感覺演算法**出問題,除了輸入資料的處理很難受之外

2.**量問題

如果使用scanf,printf的話會減少很多的**。ip計算使用第二種方法的話也會再少很多。

3.main.c的問題

問就是我改不動了,建議直接開啟我檔案直接改。【滑稽】

我的github:

第二次寒假作業

終於把第二次寒假作業先交上來了,實在是太羞愧了。也不知道當初自己覺得兩周就能做完的信心是 來的 痛苦託腮 入門的python,入門的html,跟入門的flask 無滿滿的困難吧。剛開始的題意理解就用了很長的時間,花了兩三天去查名詞的意思,相關知識等,才對一些詞有了初步的認識,起碼不會連它是什麼都不知...

第二次寒假作業

這次作業屬於哪個課程 2020物件導向程式設計 福州大學 數學與電腦科學學院 這次作業的要求在 物件導向程式設計寒假作業2 作業目的 1.建立github倉庫,並上傳檔案 2.學習windows批處理 3.使用windows批處理編譯 相關鏈結 使用.gitignore 新建倉庫 首先在github...

第二次寒假作業

根據相應規則對資料報進行操作,現給出規則集及輸入資料報,輸出相應資料報最佳匹配的規則。迴圈從資料報中每讀入乙個組資料,就開始在規則集中搜尋,搜到就輸出,搜下乙個 搜尋採用迴圈讀入規則集,進行匹配 獨立每乙個模組 因規則集與資料報的資料表達不同,所以要進行轉化 main.cpp 主 put.cpp 輸...