个人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分钟

  1. 进行四则运算,结果:

       2.制作题库,   生成30道题:

                  

 

(10)测试报告---无

(11)计算工作量--5分钟

(12)事后总结,并提出改进意见---5分钟

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

posted @ 2019-04-04 22:48  zhouyaya  阅读(288)  评论(0编辑  收藏  举报