罗杨美慧 20190919-6 四则运算试题生成,结对
本次作业要求参见:[https://edu.cnblogs.com/campus/nenu/2019fall/homework/7631]
结对伙伴:徐丽君
功能1 四则运算
支持出题4个数的四则运算题目,所有题目要求作者有能力正确回答。
重难点:随机生成多个表达式,用户输入的答案要与正确答案相比较。python中有一个函数eval能计算表达式的结果。判断结果使用一个answer 的列表存储每一个输入的答案,再用for 提取其中的每个答案并与result中的结果一一对应,判断其对错。
重点代码片段:
def integer(n):ch = [] #存储表达式number = random.randint(1, 4) #随机产生表达式的数量for i in range(number):rand = random.randint(0, 1) #随机产生0和1 判断是否使用括号a = func_integer(number) #调用表达式产生函数,产生表达式if rand == 0:op = operation[random.randint(2,3)] #产生*,/来连接有括号的表达式,避免产生+,—rand = random.randint(0, 1) #随机产生0和1 判断是否使用内嵌括号或外嵌括号if i != number - 1: #避免开始和结尾用无意义的括号if rand == 0:ch.append('(')ch.append(a)ch.append(op)ch.append(random.randint(1,10))ch.append(')')ch.append(operation[random.randint(0, 3)])else:ch.append(a)ch.append(operation[random.randint(0, 3)])else:ch.append(a)ch.append(operation[random.randint(0, 3)])else:ch.append(a)ch.append(operation[random.randint(0, 3)])f = ''for k,i in enumerate(ch): #把列表中的所有值用f一个个连起来if k != len(ch)-1:f += str(i)result_integer(f, n) #调用输出函数
运行截图:
功能2 支持括号
重难点:生成括号,随机生成括号,判断是否符合生成括号的条件,避免一个表达式也生成括号 。
重点代码片段:
def func_integer(number):f = ''ch = []rand = random.randint(0, 1) #选择内嵌或外嵌括号if number != 1: #避免一个表达式也产生括号if rand == 0:ch.append('(')op = operation[random.randint(0, 3)]ch.append(random.randint(1, 10))ch.append(op)ch.append(random.randint(1, 10))ch.append(')')else:op = operation[random.randint(0, 3)]if op == '/':a = random.randint(1, 10)ch.append(a)ch.append(op)ch.append(random.randint(a, 10))else:ch.append(random.randint(1, 10))ch.append(op)ch.append(random.randint(1, 10))else:op = operation[random.randint(0, 3)]if op == '/':a = random.randint(1, 10)ch.append(a)ch.append(op)ch.append(random.randint(a, 10))else:ch.append(random.randint(1, 10))ch.append(op)ch.append(random.randint(1, 10))for i in ch: #把产生表达式当成一个整体f += str(i)return f
运行截图:
功能4 支持括号
重难点:支持真分数的运算,避免单独一个表达式生成括号。
重点代码片段:
def func_integer(number):f = ''ch = []rand = random.randint(0, 1) if number != 1: if rand == 0:ch.append('(')op = operation[random.randint(0, 3)]ch.append(random.randint(1, 10))ch.append(op)ch.append(random.randint(1, 10))ch.append(')')else:op = operation[random.randint(0, 3)]if op == '/':a = random.randint(1, 10)ch.append(a)ch.append(op)ch.append(random.randint(a, 10))else:ch.append(random.randint(1, 10))ch.append(op)ch.append(random.randint(1, 10))else:op = operation[random.randint(0, 3)]if op == '/':a = random.randint(1, 10)ch.append(a)ch.append(op)ch.append(random.randint(a, 10))else:ch.append(random.randint(1, 10))ch.append(op)ch.append(random.randint(1, 10))
(1)编程体会:
本次是和徐丽君同学组队进行的结对编程,两人编程难免就会有意见不合的地方,互相都想说服对方,比如首先在编程语言的选择上就会有分歧,最后选择了Python语言。另外,自己的编程能力不够,而且对Python语言并不了解,对我来说是一门新的语言。在这个过程中,徐丽君同学悉心为我指点,我也查阅了很多资料,尽量让自己跟上她的脚步。不得不说两个人共同完成编程会提供多种思路,且效率会更高一些。
(2)编码收获以及花费时间较长和给我较大收获的事件:
- 在争论究竟采用哪种编程语言上花了一些时间,最后选择了Python语言编写。
- 这次作业中,学习了新的编程语言,安装Python环境,查阅了很多相关资料,收获很多。
- 对于代码的编写规范方面,编写时经常忘记遵守,导致编译失败,花费了不少的时间,在循序渐进后,我们会互相提醒对方,避免这种现象的发生。
- 由于两人擅长的语言不同,但对代码编程思路上有着不同的理解和思路,也让项目进度快了许多,学会了两人合作共同编程,现在能比较有默契也算是一个大的收获吧。
- 我的编写能力一般,查阅博客和资料以及队友的口头指点花了不少时间,也对我有了较大收获,在此非常感谢我的室友徐丽君同学。
(3)给出照片1张,包括结对的2位同学、工作地点、计算机
工作地点:星华公寓B320
计算机:徐丽君同学的笔记本
照片:
(4)版本控制
git地址:https://e.coding.net/xulijun/sizeyunsuan.git
转载于:https://www.cnblogs.com/lymh/p/11573877.html
罗杨美慧 20190919-6 四则运算试题生成,结对相关推荐
- 罗杨美慧 20190919-2 功能测试
本作业要求参见[https://edu.cnblogs.com/campus/nenu/2019fall/homework/7627] 要求一:bug计分 bug1 (1)标题: 罗 ...
- 罗杨美慧 20190912-2 命令行
此作业的要求参见[https://edu.cnblogs.com/campus/nenu/2019fall/homework/6582] 1.熟悉 命令行和控制台 请用C语言开发应用程序d.exe,从 ...
- 罗杨美慧 20180912-3 词频统计
此作业的要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/6583 词频统计 编写一个名为wf的程序,统计英文作品的单词量并给出每个单 ...
- 罗杨美慧 20190919-3 效能分析
作业要求参见[https://edu.cnblogs.com/campus/nenu/2019fall/homework/7628] 要求0 以 战争与和平 作为输入文件,重读向由文件系统读入.连续三 ...
- 罗杨美慧 20190919-5 代码规范,结对要求
本次作业要求参见:[https://edu.cnblogs.com/campus/nenu/2019fall/homework/7630] 结对伙伴:徐丽君 使用语言:Python 参考博客: htt ...
- 罗杨美慧 20190905-1 每周例行报告
此作业的要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/5521 本周PSP 本周进度条 累计进度图 代码累计折线图 博文字数累积折 ...
- 罗杨美慧 20190919-4 单元测试,结对
此作业的要求参见:[https://edu.cnblogs.com/campus/nenu/2019fall/homework/7629] 结对伙伴:徐丽君 要求1 对每个功能,先给出测试用例,然后再 ...
- 罗杨美慧 20190912-1 每周例行报告
此作业的要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/6581 本周PSP 本周进度条 累积进度图 代码累积折线图 博文字数累积折 ...
- 罗杨美慧 20190919-1 每周例行报告
此作业的要求参见:[https://edu.cnblogs.com/campus/nenu/2019fall/homework/7626] 本周PSP 本周进度条 累积进度图 代码累积折线图 博文字数 ...
最新文章
- 红外遥感设计报告论文+电路原理图
- 使用内存映射文件在进程之间共享数据
- 数据结构源码笔记(C语言):B树的相关运算算法
- 剑指Offer——不用加减乘除做加法
- Log4j2使用总结
- .NET开源工作流CCFlow-快速入门
- 乐视android版本怎么升级,乐视网android手机客户端升级推出V2.0版
- VIVADO常见警告、错误及解决方法
- python 描述统计_Python统计学-004:描述统计-众数
- 无法在Web服务器上启动调试。您不具备调试此应用程序的权限,此项目的URL位于Internet区域。...
- 如何使用BetterZip的压缩密码管理器?
- Thingsboard 3.1.0 - 远程控制和GPIO状态显示
- 如何在Visio中绘制KPT模型中的用户(小人)?在哪里找?
- 计算机优秀毕业生访谈,访谈 | 信息院优秀毕业生经验分享
- 4针串口线接法图_com串口线接法
- 附录一 常见概率分布及相关公式
- Orge配置Debug - 在Mac上利用Homebrew安装指定版本的Cmake
- 小工具推荐:tokei(高效统计代码行数)
- 冒充云销售的懒虫和毒虫们
- 万里长征第一步(非常重要) —— 如何愉快的阅读本小册