本作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2148
git,https://git.coding.net/zhaomeizeng/wc.git
要求1 参考《构建之法》第4章两人合作,结对编程上述功能,要求每人发布随笔1篇 (代码是共同完成的,博客是分别完成的)。 (1) 给出每个功能的重点、难点、编程收获。(2)给出结对编程的体会,以及 (3) 至少5项在编码、争论、复审等活动中花费时间较长,给你较大收获的事件。 (10分)
(1)随机生成数和操作符,使用random;括号的生成需要判断各种情况;避免重复,查看资料要用后缀表达式,规范树等;实现分数运算要使用fraction
这些东西都挺难的,边学习边使用边修改
简单的生成算式

while(i <= 20): list=[] ls_2=[] list.append(createnum()) list.append(createOperator()) list.append(createnum()) list.append(createOperator()) list.append(createnum()) list.append(createOperator()) list.append(createnum()) ls_2 = string(list) list_str = ''.join(ls_2) print(list_str) answer = eval(list_str) answer_input = float(input('?')) if answer_input == answer: print("答对啦") t = t+1 elif answer != answer_input: print("答错了,答案是" + str(answer) +"哦") #list.clear() i=i+1 print("你答对了" + str(t) + "道,共20道")
加上括号的操作

def getk(list): str1 = [0,2,4] str2 = [3,5,7] start = random.choice(str1) if start == 4: list.append(')') list.insert(start, '(') if start == 0: end = random.choice(str2) if end == 7: list.append(')') else: list.insert(end,')') list.insert(start, '(') elif start == 2: end = random.choice(str2) if end == 7: list.append(')') else : list.insert(end, ')') list.insert(start, '(')
似乎仍有不足
根据输入,输出相应的题目

if sys.argv[1] == '-c': if int(sys.argv[2]) < 0: print("题目数量必须是正整数") elif sys.argv[2] != sys.argv[2]: print("题目数量必须是正整数") else: n = int(sys.argv[2])
输出文件

temp=sys.stdout # 记录当前输出指向,默认是consle with open("outputlog.txt","a+") as f: sys.stdout=f # 输出指向txt文件 print(list_str1) sys.stdout=temp # 输出重定向回consle print(f.readlines()) # 将记录在文件中的结果输出到屏幕
做约分等操作成分数

def reduction(self,num): a = num.numerator b = num.denominator divisor = function1().getMaxDivisor(a, b) a = a / divisor b = b / divisor num.setNumerator(a) num.setDenominator(b) return num def getMaxDivisor(self,numerator,denominator) : if denominator == 0: return numerator else: x = numerator%denominator return function1().getMaxDivisor(denominator, x)
利用栈生成后缀式,二叉树判断还没弄太清楚
(2)对于这次结对编程还是有些感触的。首先两个人做一个事情肯定会有分歧,都会感觉到约束,但是也会有相互的监督和鼓励,关系处理的得当更加有利于项目的实现。在开始时共同的指定相应的规范,让相互可以更好的理解自己的意图,更好的相互合作,不至于出现代码过分的混乱。由于我和范洪达的代码水平都比较低,所以更多的时候是在共同的查阅资料和学习,共同的讨论。其中难免会遇到一些冲突的地方,共同的讨论和学习就十分的必要了,在共同的学习知识过程中关系也会磨合的更加融洽。
在相互监督指导的过程中,及时的发现错误,使得一些错误可以及早的避免,省去了一定的修改的时间。两个人的合作更多的是相互的鼓励和学习,也使我进步了很多。
(3)编程水平不高,所以一直在学习相关的库、函数的使用,当然也遇到了一些偏差;
在讨论决定使用哪种方式实现的时候,实际操作后发现不正确,智能重新来过
两人的习惯不一样,在共同契合规范是要花费时间修改
在自定义函数的分割上没有做好
.exe的转换中一时没有理解清楚,又去学习了一下,耗费时间
收获就是永远不要觉得自己准备的已经够充分了,上手才知道事情不会这么简单;试着去真正的倾听对方的意见而不是从内心抱着一种抵触的心态。
要求二:
冬华B520