一、優(yōu)缺點分析
1、缺點:?
① 數(shù)學(xué)問題的生成中只考慮了消除乘除法加括號的無效情況(例如3*(4+5)或(6*5)/2這樣的計算),但沒有去掉加減法加括號的無效情況(例如(4+(7+8))或(3-(2-1)));
?
?
?
② 項目代碼中變量的命名沒有嚴(yán)格安裝規(guī)范來,有些命名有點相似且無特定含義,給閱讀代碼的過程中造成了不小的困難,不方便理解,看起來會有些混亂。
2、 優(yōu)點
① 代碼是用python寫的,能夠熟練運用各種循環(huán)判斷語句和列表,并且其中用到了許多便利簡潔的函數(shù),比如getcwd()獲取文件地址、lstrip()截掉左邊字符串、re.match()通過正則表達式進行匹配等等;
② 一對括號的插入,是在已知固定操作數(shù)個數(shù)的情況下,在包含所有括號對可能位置的列表中,random挑選能夠插入的位置,因此得出來的數(shù)學(xué)題具有一定隨機性,這個算法思路很獨特;
?
?
?
?
③ 代碼中對于中文字符的處理非常簡便,值得參考,主要是要記得保存基本信息txt為utf-8的格式,調(diào)用open函數(shù)時也encoding=“utf-8”方式打開,然后就可以直接進行處理了;
?
?
?
④ 初高中的數(shù)學(xué)題要求插入根號平方和三角函數(shù),因為random.random()范圍是[0,1),所以將其與小于1的數(shù)(比如0.3、0.5)做比較,以此來達到隨機的目的;
?
二、具體功能實現(xiàn)
1、InputInformation():錄入附表中基本信息,用read函數(shù)讀取txt文件,并根據(jù)換行符分割成列表:
?
?
2、LandAccount():登入個人賬戶,首先通過find判斷輸入格式是否正確,接著在列表中循環(huán),看是否匹配到正確的賬戶名和密碼:
?
?
3、GenerateQuestions():隨機生成小初高的數(shù)學(xué)題,用了random函數(shù)實現(xiàn)隨機化,并且還要去除掉括號的無效情況;
4、OutputFiles():生成文件夾和數(shù)學(xué)題txt,用datetime得到當(dāng)前時間并格式化轉(zhuǎn)為字符串,之后生成相應(yīng)文件:
?
?
?
5、OldFiles():用于查重,將過去同一賬戶同一學(xué)歷生成的題目保存到一個字符串中,并在生成每個數(shù)學(xué)題時通過find來比較是否有相同的題目:
?
?
?
三、?? 個人總結(jié)
我使用的是C++進行書寫,在寫完后才發(fā)現(xiàn)用這種語言寫的童鞋比較少,后來想想發(fā)現(xiàn)C++書寫的代碼量較大,書寫不易;在當(dāng)今計算機軟件開發(fā)的行業(yè)中多數(shù)使用python進行敏捷開發(fā);而且python語言獨立于平臺性質(zhì),同時開發(fā)周期短,程序員易于上手;同時底層封裝性強,代碼更加簡潔;
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
