天天看點

軟體工程第一次作業

要求0:作業要求位址:https://edu.cnblogs.com/campus/nenu/2016CS/homework/2110

要求1:git倉庫位址:https://git.coding.net/wishsama/wf.git

要求2:

PSP階段 預計時間 實際時間
計劃 30 20
明确需求和其他相關因素,估計每段時間成本
開發 300 400
需求分析
生成設計文檔
設計複審(和同學稽核設計文檔)
代碼規範(為目前的開發制定合适的規範
具體設計
具體編碼
代碼複審
測試(自測、修改代碼、送出修改)
報告
事後總結

用split函數和正規表達式分割字元串計算詞頻,用正規表達式判斷詞是否合法

def processLine(line, wordCounts):
    words=[]
    words.extend(re.split('\W', line))
    for word in words:
        if isLegal(word):
            if word in wordCounts:
                wordCounts[word] += 1
            else:
                wordCounts[word] = 1
    return wordCounts


def isLegal(word):
    return re.match("^[a-zA-Z][a-zA-Z0-9]*$", word)      

參數為檔案夾名時先得到檔案夾中txt檔案名

def IsSubString(SubStrList, Str):

    flag = True
    for substr in SubStrList:
        if not (substr in Str):
            flag = False
    return flag


def GetFileList(FindPath, FlagStr=["txt"]):

    FileList = []
    FileNames = os.listdir(FindPath)
    if (len(FileNames) > 0):
        for fn in FileNames:
            if (len(FlagStr) > 0):
                # 傳回指定類型的檔案名
                if (IsSubString(FlagStr, fn)):
                    fullfilename = os.path.join(FindPath, fn)
                    FileList.append(fullfilename)
            else:
                # 預設直接傳回所有檔案名
                fullfilename = os.path.join(FindPath, fn)
                FileList.append(fullfilename)
    # 對檔案名排序
    if (len(FileList) > 0):
        FileList.sort()

    return FileList      

 argparse解析控制台參數

parser = argparse.ArgumentParser()
    parser.add_argument('-c', default="", help=help)
    parser.add_argument('-f', default="", help=help)
    parser.add_argument('-n', default="", help=help)
    args = parser.parse_args()      

功能1:

軟體工程第一次作業

功能2:

軟體工程第一次作業

功能3:

軟體工程第一次作業

 心路曆程:

  聽說python友善就用了,邊做邊學,學了些python的子產品。