簡單四則運算實現 第二次作業

2022-08-14 04:57:08 字數 2842 閱讀 1556

這次的**碼雲位址為:

psp2.1

personal software processstages

預估耗時(分鐘)

實際耗時(分鐘)

planning

計畫480

500estimate

估計這個任務需要多少時間

480360

development

開發240

200analiysis

需求分析(包括學習新技術)

3030

design spec

生成設計文件

1020

design review

設計複審105

coding standard

**規範(為目前的開發制定合適的規範)205

design

具體設計205

coding

具體編碼

60150

code review

**複審

20100

test

測試(自我測試,修改**,提交修改)

3020

reporting報告0

0test repor

測試報告00

size measurement

計算工作量00

postmortem & process improvement plan

事後總結,並提出過程改進計畫

6020

合計500

585parser = argparse.argumentparser(description = 'process some string')

parser.add_argument("a",type=str)

args = parser.parse_args()

suanshi=args.a

接受輸入的是字串型別,所以在接下來要實現運算時就需要將字串轉換為數字啦。

接受數字解決完之後就需要解決加減的簡單問題了,所以需要先定義函式,定義好函式之後就要實現演算法了,先通過split分割函式把saunshi的列表切出乙個乙個數字,再通過遍歷將字串轉換為數字,之後就可以用中間變數sums存放每次遍歷相加的結果,最後返回sums這個數值,加法函式就完成了。

defadditive(suanshi):

sums = 0

lis = suanshi.split("+")

for num in lis:

nums = int(num)

sums =sums+nums 

return sums

減法與加法有些差別,我使用加法結構寫減法時發現我輸入4-3時就會輸出-7的結果,輸入5-3就會得出-8的結果,我便在sums =sums-nums後加了一句print sums 結果sums的結果返回的是sums的負數,我找了一會**發現原來是加法時sums我一開始賦值為0,第一次迴圈時計算0-sums 結果就是-sums了,我又重新思考了一下減法,我使減法的的中間變數初始值為0再加上列表中第一位在迴圈列表元素就好了,這個便是我的減法** 

defsubtraction(suanshi):

jian = 0

lis = suanshi.split("-")

jian = jian+int(lis[0])

del lis[0]

for num in lis:

nums = int(num)

jian = jian-nums

return jian

乘法的suan演算法與加法一致,除法與減法的演算法一致,不過乘法的中間變數初始化為1,因為1乘以任何數都是任何數。

##乘法

defmultiplicative(suanshi):

cheng = 1

lis = suanshi.split("*")

for num in lis:

nums = int(num)

cheng = cheng*nums

return cheng

簡單四則運算流程圖:

程式單元測試:

因為我編寫的簡單四則運算沒有實現異常處理所以我的測試**就只是驗證了在正常輸入的情況下,輸入的值所所可以得到的結果,其中unittest是python自帶的測試**,可以在測試檔案中匯入這個包,其中assertequal()函式是測試你程式出現的結果與你給定預期的結果是否一致的,如果一致返回true並計算程式所消耗的時間,若出現錯誤就會返回false 。

from calculator import *

import unittest

class textcalculator(unittest.testcase):

def test_additive(self):

ta = additive(3+4+3)

self.assertequal(ta,10)

def test_subtraction(self):

ta = subtraction(3-4-3)

self.assertequal(ta,-3)

def test_multiplicative(self):

ta = multiplicative(3*4*3)

self.assertequal(ta,36)

def test_division(self):

ta = division(12*4*3)

self.assertequal(ta,1.0)

if __name__ =="__main__":##這裡是呼叫這個函式。

unittest.main()

20194634 第二次作業四則運算

1 自動生成10道100以內的2個運算元的四則運算算式 要求運算結果也在100以內 2 題目數量可定製 3 相關引數可控制 是否包含乘法和除法 運算元數值範圍可控 如運算元 在100以內 還是1000以內 運算元是否含負數 4 生成的運算題儲存到外部檔案text.txt中 基本功能 自動生成四則運算...

第二次結對程式設計 四則運算自動生成程式

我們在剛開始上課的時候介紹過乙個小學四則運算自動生成程式的例子,請實現它,要求 駕駛員 王旭 領航員 張昊辰 駕駛員負責寫 瀏覽檔案,還有基礎實現方法。領航員則著眼更長遠的考慮並且檢查錯誤。進行 測試和檢查錯誤。主選單的實現 void subject manu 四則運式的生成 void subjec...

簡單四則運算

form1 如下 using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using syst...