20200924 5 四則運算試題生成,結對

2022-07-16 17:48:13 字數 3858 閱讀 6113

此作業的要求參見[

](1) 給出每個功能的重點、難點、程式設計收穫。

結對程式設計夥伴:袁豔春

開發環境 windows10 (全程使用季嘉同學筆記本開發)

開發工具是 pycharm

版本控制:git

coding:

功能1. 四則運算

為了快出成果,你快速造個控制台的版本,包括以後改版成更優秀介面的核心功能,並考慮到擴充套件。

你在老師面前作如下表演 (數字你用excel驗算過了,ui的賣萌部分你還沒有想好) 。

重難點:

如何隨機的生成式子,採取的方法用python裡面的random函式去處理;如何將計算結果產生的是小數如何轉化為分數,採用python裡面帶的fraction函式函式

關鍵**:

def _equations():    #功能一生成隨機式子

ops = ['+', '-', '*', '/']

n1 = r(1, 9) #產生隨機數

n2 = r(1, 9)

n3 = r(1, 9)

n4 = r(1, 9)

o1 = r(0, 2)

o2 = r(0, 3)

o3 = r(0, 3)

equa = str(n1) + ops[o1] + str(n2) + \

ops[o2] + str(n3) + \

ops[o3] + str(n4)

return (equa)

執行截圖:

功能2. 支援括號

老師看了你的表演,大大讚賞了你。然後她說,"你的題庫裡怎麼都是沒有括號的題呢,我記得你當初括號就掌握得不好啊。"你的臉紅了,對老師說,"給我2個小時時間,我給你乙個新版本,有括號的。"

兩小時後,在老師面前你在控制台下輸入f4,然後回車。

重點難點:

對於括號的處理,劃分括號的位置,採取的方式是借助python裡面的詞典進行處理問題。本來想試一下資料結構中的知識,棧,將中綴表示式轉化為字尾表示式,但水平不夠,沒有實現這個功能。

**:

def _formula():  # 生成隨機式子

ops = ['+', '-', '*', '/']

n1 = r(1, 9) # 產生隨機數

n2 = r(1, 9)

n3 = r(1, 9)

n4 = r(1, 9)

o1 = r(0, 2)

o2 = r(0, 3)

o3 = r(0, 3)

dic =

test = r(0, 9)

eqa = dic[test]

return (eqa)

執行截圖:

功能3. 限定題目數量,"精美"列印輸出,避免重複

"就這點兒題,像你當年做得那麼快,一會兒就完成啦!"老師說,"另外,我想列印出來,上課也不能帶台機器。又另外,你把答案也打出來唄,我把答案剪掉,題目給學生做。"

一看需求這麼多,你生怕她會說,"這都是很簡單的功能,你一定能完成吧"。你知道如果承諾今晚,明早交工的時候她一定想出了更多可怕的需求,你趕緊說,"老師我現在就做。"

你忘記怎麼呼叫印表機了,就把答案與題目橫向對齊,輸出在檔案的右邊。告訴老師txt檔案可以用word開啟,也能列印。她滿意而意味深長地笑了,表示同意。

你輸入命令執行的時候,腦袋比手指頭還疼。

重點難點:

掌握了rjust()函式,學會了python中對檔案的輸入輸出

**:

def input_count(n):

try:

n = int(n)

if n >= 0:

data = open("result.txt", 'w+')

for i in range(n):

eqa = _formula()

result_right = run_count(eqa)

eqa = eqa + "="

print(eqa.ljust(40), result_right,file=data)

data.close()

else:

print('題目的數量必須是 正整數')

except:

print('題目的數量必須是 正整數')

return(0)

執行截圖:功能4. 支援分數出題和運算

國慶節後,你終於又回到美麗優雅並且正常的東北師範大學淨月校區,在去食堂的路上偶遇你心目中的女神 (或男神,請自行替換)。她說,"哎呀,這跟我們《構建之法》課上的題目要求一樣啊,真是巧合。"

"不要客氣,**拿去!反正我也沒用。"你說,"如果有需求變更或擴充套件,儘管找我。"

你伏筆埋得不錯。女神馬上說,"對啊,有一點兒點兒不一樣,你午飯時間加加班幫我改出來吧。"

她的題目還要求支援分數運算,你不禁想到了功能1中你特意規避了一些題目不出。她想要的是下面的樣子:

重點:

對於分數的處理,用了fraction()函式,比較方便

**:

def run_count(eq):           #計算式子值函式

result = f(eval(eq)).limit_denominator(1000) #利用eval函式計算式子的值

result = str(result)

return(result)

執行截圖:

(2)給出結對程式設計的體會,

通過這次的結對程式設計作業,我明白了團隊協作的重要性,兩個人相互督促,互相**對方的拖延症,共同完成作業。我們兩個人合作非常愉快,使我的能力得到了進一步的提高。在過程中,我們遇到過很多的困難,通過查閱資料,互相討論商量學習,完成此次作業。

(3) 至少5項在編碼、爭論、複審等活動中花費時間較長,給你較大收穫的事件。

花費時間比較長的事件:

(1)功能一中,python中random的使用,查詢資料花費不少時間

(2)如何將產生的式子進行計算,通過諮詢其他同學了解了python中的eval()函式。

(3)對於括號的處理,又去學習了資料結構中的中綴表示式和字尾表示式,花費時間較長,但最終未能實現

(4)括號運算,掌握了python中的字典

(5)修改**中不規範的命名

要求2給出結對開發的截圖證據,要求截圖能夠證明你們是在結對程式設計。 (5分)

由於疫情原因,採取線上合作的模式,證明材料:

要求3使用coding.net做版本控制。checkin 前要求清理 臨時檔案、可執行程式,通常執行 build-clean可以達到效果。(25分)

coding:

python四則運算程式 四則運算(Python)

四則運算程式 一 資訊 二.題目要求 寫乙個能自動生成小學四則運算題目的程式,然後在此基礎上擴充套件 除了整數以外,還要支援真分數的四則運算,例如 1 6 1 8 7 24 程式要求能處理使用者的輸入,判斷對錯,累積分數 程式支援可以由使用者自行選擇加 減 乘 除運算 三 import random...

四則運算試題生成,結對

此作業要求參見 結對夥伴 王艷鶴 功能1.四則運算 為了快出成果,你快速造個控制台的版本,包括以後改版成更優秀介面的核心功能,並考慮到擴充套件。你在老師面前作如下表演 數字你用excel驗算過了,ui的賣萌部分你還沒有想好 功能2.支援括號 老師看了你的表演,大大讚賞了你。然後她說,你的題庫裡怎麼都...

java四則運算

public class arithmetic implements serializable 除法 param number1 除數 param number2 被除數 param decimal 保留幾位小數點 return public static double divide string ...