(軟工實踐)第一次個人編程作業


1.github地址

[github地址](https://github.com/b666666666666666b)

2.psp表格

![](https://img2018.cnblogs.com/blog/1330851/201909/1330851-20190917162303164-1419802546.png)

3.解題思路描述

即剛開始拿到題目后,我就想着用正則匹配數字、‘省’、‘市’等關鍵字,然后把他們丟到json里面,然后我就去復習了一下正則表達式的用法,還有怎么搞一個json文件出來。學完之后就開始用敲代碼。敲完之后發現有可能出現省,市等關鍵詞缺失的情況。然后我就去把省市信息的文件直接放在代碼里,讓程序去匹配名字。

4.設計實現過程

有一個類,類里面有九個函數,分別是:get_type,get_num,get_name,get_two_levels,get_xian,get_xiang,last_two_level,last_level,get_dic
流程圖如下

5.計算模塊接口部分的性能改進

說實話我沒怎么去關注性能的改進,我覺得這次作業的主要矛盾是正確率,快不快已經不重要了,而且我也不具備性能改進的能力,能把正確率上去我就很滿足了。性能分析圖如下,我循環了十萬次。



消耗最大的就是匹配省級和市級的函數get_two_levels

6.計算模塊部分單元測試展示

單元測試使用python的unittest模塊,具體代碼如下

import unittest
from a import p_info
class TestDict(unittest.TestCase):
    def test_num(self):
        p = p_info()
        p.num = 123
        self.assertEqual(p.num, 123)
    def test_name(self):
        p = p_info()
        p.name = '123'
        self.assertEqual(p.name, '123')
    def test_run_all(self):
	file1 = open('test5.txt', 'r')
        file2 = open('output5.txt', 'r')
        for i, j in file1.readlines(), file2.readlines():
            p = p_info()
            p.run_all()
            self.assertEqual(file2,p.res )
if __name__ == "__main__":
    unittest.main()

7.計算模塊部分異常處理說明

參考別人的博客寫幾個異常處理

(1)只有電話,沒有地址
try:
twowords=string2[0:2]
except AttributeError:
print('沒有輸入地址')
輸入1!雍廠賞,15578766416.時就不會發生錯誤

8.學習心得

這個作業有點難,害得我中秋都不能開開心心打游戲,勉強把作業做完了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM