(1)计划--用半天的时间来做这个项目
(2)需求分析---15分钟
a. 通过设计出自动生成小学四则运算题目的命令行程序,方便教师提取和打印,同时,随机生成的题目不能超出小学生的认识范围。
b.四则运算加减乘除,采用两个随机数,由于不能出现负数,所以在对两个随机数进行减法运算的时,需要进行比较大小,而除法在运算中,除数不能取0。
c. 进行真分数运算应注意假分数的影响
(3)生成设计文档----无
(4)设计复审---无
(5)代码规范---2分钟
虽然程序较短,实现方法简单,但是对关键代码有进行注释。
(6)具体设计---12分钟
定义函数:用def szys()实现随机生成四则运算,用def test()通过调用syzs()实现题库的制作.
所以代码分为三个部分,第一部分是生成随机四则运算,最后输出算式并返回正确答案;第二部是用户通过输入一个整数来输出所需要的算式,当输出的算式达到目标数量后,便一一输出答案;第三部分为主函数,需要用户自己选择模式,当输入是‘1’时,是为四则运算,通过调用syzs()函数得到算式和返回值,用户输入答案后,便与用户输入值进行比较。当输入是‘2’时,是生成题库,并在最后输出答案。
(7)具体编码---40分钟
import random
#四则运算
def szys():
sym = ['+', '-', '×', '÷']
f= random.randint(0, 3)
n1 = random.randint(1, 20)
n2 = random.randint(1, 20)
result = 0
if f== 0:#加法
result = n1 + n2
elif f == 1:#减法,要先比较大小,防止输出负数
n1, n2 = max(n1, n2), min(n1, n2)
result = n1 - n2
elif f== 2:#乘法
result = n1 * n2
elif f == 3:#除法,要比较大小,并循环取整除
n1, n2 = max(n1, n2), min(n1, n2)
while n1 % n2 != 0:
n1 = random.randint(1, 10)
n2 = random.randint(1, 10)
n1, n2 = max(n1, n2), min(n1, n2)
result = int(n1 / n2)
print(n1, sym[f], n2, '= ', end='')
return result
#制作题库<br data-filtered="filtered">
def test():
sym = ['+', '-', '×', '÷']
print('输入所需要的题目数量')
n=int(input())
result =[]
m=0
while m<=(n-1):
print(m+1,end='、')
result .append(szys())
print(' ')
m=m+1
m=0
print('对应的答案:')
while m<=(n-1):
print(m+1,'、',result [m])
m=m+1<br data-filtered="filtered">
print('选择想要的模式')
print('1、进行四则运算')
print('2、制作题库')<br data-filtered="filtered">
n=int(input())
#当输入1时,进行四则运算,调用函数syzs()
if n==1:
while True:
result = szys()
j= input()
s= int(j)
if s== result :
print('right')
else:
print('error.,the answer is', result )
#当输入2时,进行制作题库
if n==2:
test()
(8)代码复审---20分钟
1、概要部分
作业题目是编写自动生成四则运算的题目,复审的代码基本符合题目的需求,通过执行程序,每行代码都没有问题,可以准确的运行出结果,可读性一般,易维护。而且题目也考虑到了小学生的认知范围,但是在代码设计上,还需要解决真分数的问题。
2、设计规范部分
代码设计流程较规范,不存在无用的代码,整体简洁。
3、具体代码部分
(1)程序中,在命名变量部分使用的是n1、n2等代名词,这样命名虽简单,但是不能体现它所代表的具体含义,所以在命名时应使用望文生义的英文缩写或拼音缩写。
(2)程序中将代码进行分模块,清晰易懂。
(9)测试---20分钟
- 进行四则运算,结果:
2.制作题库, 生成30道题:
(10)测试报告---无
(11)计算工作量--5分钟
(12)事后总结,并提出改进意见---5分钟
做这个项目前,计划是用半天做好,实际上差不多也是半天,在程序设计中,有养成代码注释的好习惯,也能将项目分块进行,设计的思路梳理上有了一定提高,但是在实际编写的时候却又会出现很多的问题,有些思路也不是很清晰,要善于先分析算法,同时,也要严谨细心,不然在测试过程中便会容易出错。需要改进的还是在对算法的运用和分析上,同时,在变量命名时应养成使用望文生义的英文缩写或拼音缩写,这样更加规范和严谨。