開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的**所在的檔名稱和行號。
1.記錄最多8條錯誤記錄,對相同的錯誤記錄(即檔名稱和行號完全匹配)只記錄一條,錯誤計數增加;(檔案所在的目錄不同,檔名和行號相同也要合併)
2.超過16個字元的檔名稱,只記錄檔案的最後有效16個字元;(如果檔名不同,而只是檔名的後16個字元和行號相同,也不要合併)
3.輸入的檔案可能帶路徑,記錄檔名稱不能帶路徑
輸入描述:
一行或多行字串。每行包括帶路徑檔名稱,行號,以空格隔開。
輸出描述:
將所有的記錄統計並將結果輸出,格式:檔名**行數數目,乙個空格隔開,如: fpgadrive.c 1325 1
結果根據數目從多到少排序,數目相同的情況下,按照輸入第一次出現順序排序。
如果超過8條記錄,則只輸出前8條記錄.
如果檔名的長度超過16個字元,則只輸出後16個字元
輸入:
e:\1\aa3.txt 3 e:\3\aa1.txt 2 e:\2\aa2.txt 3 e:\3\aa1.txt 1 e:\1\aa1.txt 3 e:\3\aa1.txt 2 e:\1\aa3.txt 3 e:\2\aa3.txt 2 e:\1\aa1.txt 2 e:\3\aa3.txt 2
e:\1\aa2.txt 2 e:\1\aa3.txt 1 e:\1\aa3.txt 1 e:\2\aa3.txt 2 e:\1\aa2.txt 1 e:\3\aa1.txt 2 e:\1\aa1.txt 3 e:\2\aa1.txt 1 e:\3\aa3.txt 2 e:\1\aa1.txt 1
e:\2\aa2.txt 2 e:\3\aa3.txt 2 e:\1\aa2.txt 1 e:\1\aa3.txt 2 e:\1\aa3.txt 3 e:\1\aa2.txt 3 e:\3\aa1.txt 3 e:\2\aa2.txt 2 e:\1\aa1.txt 1 e:\2\aa3.txt 1
e:\3\aa1.txt 1 e:\2\aa1.txt 3 e:\3\aa3.txt 2 e:\1\aa3.txt 3 e:\2\aa3.txt 3 e:\1\aa2.txt 3 e:\2\aa2.txt 1 e:\1\aa3.txt 1 e:\1\aa3.txt 1 e:\3\aa3.txt 3
e:\3\aa3.txt 2 e:\1\aa2.txt 3 e:\1\aa2.txt 3 e:\1\aa2.txt 3 e:\1\aa1.txt 1 e:\2\aa3.txt 1 e:\3\aa3.txt 1 e:\2\aa3.txt 2 e:\3\aa1.txt 3 e:\2\aa2.txt 2
e:\2\aa2.txt 2 e:\2\aa3.txt 1 e:\1\aa3.txt 3 e:\3\aa1.txt 2 e:\3\aa2.txt 2 e:\1\aa2.txt 1 e:\2\aa2.txt 1 e:\2\aa1.txt 2 e:\2\aa2.txt 1 e:\1\aa2.txt 1
e:\2\aa3.txt 1 e:\2\aa2.txt 1 e:\2\aa1.txt 2 e:\3\aa2.txt 3 e:\3\aa1.txt 3 e:\2\aa2.txt 3 e:\2\aa3.txt 1 e:\3\aa3.txt 2 e:\2\aa3.txt 1 e:\1\aa1.txt 2
e:\3\aa3.txt 1 e:\3\aa1.txt 1 e:\2\aa2.txt 3 e:\3\aa3.txt 2 e:\2\aa1.txt 3 e:\1\aa3.txt 3 e:\3\aa2.txt 1 e:\2\aa1.txt 3 e:\1\aa3.txt 3 e:\2\aa2.txt 2
e:\1\aa1.txt 2 e:\3\aa1.txt 1 e:\1\aa3.txt 1 e:\3\aa1.txt 2 e:\1\aa1.txt 2 e:\1\aa1.txt 3 e:\3\aa1.txt 1 e:\3\aa1.txt 1 e:\2\aa3.txt 3 e:\2\aa2.txt 1
e:\2\aa1.txt 2 e:\2\aa2.txt 1 e:\3\aa2.txt 3 e:\1\aa2.txt 1 e:\3\aa2.txt 2 e:\2\aa1.txt 1 e:\2\aa3.txt 3 e:\1\aa1.txt 2 e:\1\aa1.txt 1 e:\1\aa1.txt 2
輸出:
aa1.txt 2 14 aa3.txt 1 13 aa1.txt 1 12 aa2.txt 1 12 aa3.txt 3 11 aa3.txt 2 11 aa2.txt 3 10 aa1.txt 3 9
#include
#include
#pragma warning(disable:4996);
using
namespace std;
struct file_hw
;void
swap
(file_hw *a, file_hw *b)
intmain()
num =
100;
while
(num--
)else
len =
strlen
(name_buffer);if
(len >16)
for(i =
0; i <
16; i++
) input.name[i]
= name_buffer[len -
16+ i]
;else
for(i =
0; i < len; i++
) input.name[i]
= name_buffer[i]
; input.name[i]
='\0'
;for
(i =
0; i <
30; i++)if
(strcmp
(max_ten[i]
.name, input.name)==0
&& max_ten[i]
.line == input.line)
while
(max_ten[flag]
.error_num == max_ten[flag -1]
.error_num && flag >
0&& max_ten[flag]
.time > max_ten[flag -1]
.time)
break;}
}}j =0;
while
(max_ten[j]
.error_num !=
0&& j <8)
return0;
}
步驟分析:
資料預處理
判斷輸入型別:首次輸入3 or 已有錯誤4
初始化資料結構
增大錯誤次數,並且調整次序
簡單錯誤記錄
使用了部落格的 設計思路。這裡主要記錄一下在處理這一題時自己理解錯的地方 1 需要從輸入的日誌資訊中提取檔名和行號。如果這樣想這個問題,那麼需要分割字串分別獲取檔名和行號。其實可以利用格式化輸入分別獲取檔名字串和行號整數值。2 輸入一條日誌,顯示一次更新的日誌資訊。理解為時迴圈輸入日誌資訊,然後將日...
簡單錯誤記錄
開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的 所在的檔名稱和行號。處理 1.記錄最多8條錯誤記錄,對相同的錯誤記錄 即檔名稱和行號完全匹配 只記錄一條,錯誤計數增加 檔案所在的目錄不同,檔名和行號相同也要合併 2.超過16個字元的檔名稱,只記錄檔案的最後有效16個字元 如果檔名不同,而只是檔名的後...
C C 程式設計題之簡單錯誤記錄
開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的 所在的檔名稱和行號。處理 1 記錄最多8條錯誤記錄,迴圈記錄,最後只用輸出最後出現的八條錯誤記錄。對相同的錯誤記錄只記錄一條,但是錯誤計數增加。最後乙個斜槓後面的帶字尾名的部分 保留最後16位 和行號完全匹配的記錄才做算是 相同 的錯誤記錄。2 超過1...