个人PSP作业
(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分钟
做这个项目前,计划是用半天做好,实际上差不多也是半天,在程序设计中,有养成代码注释的好习惯,也能将项目分块进行,设计的思路梳理上有了一定提高,但是在实际编写的时候却又会出现很多的问题,有些思路也不是很清晰,要善于先分析算法,同时,也要严谨细心,不然在测试过程中便会容易出错。需要改进的还是在对算法的运用和分析上,同时,在变量命名时应养成使用望文生义的英文缩写或拼音缩写,这样更加规范和严谨。