首页 > 技术文章 > 自动生成小学题目

2987831760qq-com 2020-09-21 14:16 原文

源代码管理平台Gitbee地址:https://gitee.com/chen-haijin/

1.题目要求:能自动生成小学四则运算题目,且每一道题目的运算结果不能为负。除了支持整数运算外,还要支持真分数四则运算。

2.工具清单

   1)编程语言:python

   2) 效能分析工具:profile

   3)源代码管理平台:Gitbee

3.PSP表格

    预计耗时(分钟) 实际耗时(分钟)
Planning 计划 30 20
Estimate 估计这个任务需要多少时间 5 5
Development 开发 120 100
Analysis 需求分析 5 5
Design Spec 生成设计文档 / /
Design Review 设计复审(和同事审核设计文档) / /
Coding Standerd 代码规范(为目前的开发制定合适的规范) / /
Design 具体设计 50 60
Coding 具体编码 60 85
Code Review 代码复审 5 5
Text 测试(自测,修改代码,提交修改) 20 30
Reporting 报告 20 20
Text Report 测试报告 10 20
Size Measurement 计算工作量 5 5
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 10 10
Sum 合计 340 365

4.解题思路

       首先,拿到这个题目,我先明确这个软件的使用对象,题目有哪些要求。然后根据题目要求,我初步明确这个软件一次性要生成题目的个数范围为可由用户自主选择个。接着,我明确这个软件生成的每一道题目中,只有2个数参与四则运算。最后,我思考最多可以把题目分解成几个小部分,我把题目分解为以下几个部分:

1)用户选择题目数量

2)随机生成(+,- ,x,÷)四个符号中的其中一个运算符。

3)自动生成2个范围在0~100的随机整数。(由于本人时间有限,只设计生成随机整数整数)

4)用户输入答案,根据2)中生成的符号。选择对应的运算法则,并给出正确答案。

5.代码说明

 

# -*- coding: utf-8 -*-
"""
Created on Mon Sep 21 11:14:59 2020

@author: user
"""


import random
def dfef():
    homeworkNumber=int(input("请输入要出的题目数量:"))#用户选择题目数量
    count=0  #题目数量
    while count<homeworkNumber :
        #选择运算法则符号
        typeCh=random.randint(0,3)
        #生成随机数
        left=random.randint(0,100)
        right=random.randint(0,100)
        if typeCh==0: #加法
              print(str(left)+"+"+str(right)+"= ?")
              input("请输入你的结果")
              print("正确结果是:"+str(left+right))
        elif typeCh==1: #减法
            if left< right:
                middleVariable=left
                left=right
                right= middleVariable
            print(str(left)+"-"+str(right)+" = ?")
            input("请输入你的结果")
            print("正确结果是:"+str(left-right))
        elif typeCh==2:   #乘法
            print(str(left)+"*"+str(right)+"= ?")
            input("请输入你的结果")
            print("正确结果是:"+str(left*right))
        else:          #除法
            print(str(left)+"/"+str(right)+" = ?")
            input("请输入你的结果:")
            if left%right==0:
                print("正确结果是:"+str(left/right))
            else:
                print("正确结果是:"+str(left)+"/"+str(right))
        print("\n")
        count=count+1
        
dfef()

 

6.测试运行

 

 

 7.性能分析

 

 

 

 

 

  

 

推荐阅读