首页 > 代码库 > 个人作业1——四则运算题目生成程序(基于控制台)

个人作业1——四则运算题目生成程序(基于控制台)

Coding地址

 


 需求分析


这次程序是写的是一个包括整数和真分数的四则运算出题器。出题器顾名思义,基本功能就是出题,然后在用户作答后进行正误判断、纠错等,最后在进行打分。

 


功能设计


 题目生成器的主要功能及工作流程:

    1.根据用户输入的参数出题

    2.用户作答判断正误并反馈

    拓展功能:

    1.对于用户错误的回答,会进行纠错并加入错题集。 输入calc.py -e *(*代表数字)即可重新练习*道错题

 


 设计实现


 程序通过Python3实现

核心功能就是出题,题目分为两个类型,整数和真分数,两种类型分别写在两个函数内,通过main函数来随机选取调用

1 for i in range(num):
2     print (str(i+1)+: ,end=‘‘)
3     type_ = random.randint(0, 1)
4     if type_:
5         tag = int_cal()
6     else:
7         tag = fra_cal()

题目肯定要随机,数字随机运算符也要随机。所以就需要调用random库对各种要求进行随机选取,并生成题目

import random
from fractions import Fraction
def int_cal():
    a = random.randint(1,10)
    b = random.randint(1,10)
    sign = [+,-,×,÷]
    c = random.choice(sign)
    index = sign.index(c)
    if c==- and b>a:
        a,b=b,a
    print (a,c,b,=,end=‘‘)

在用户输入后,当然还要对用户的答案进行判断以及纠错并加入错题集(黄色部分)

 1     if answer==str(key[index]):
 2         print (正确!)
 3         return False
 4     else:
 5         print (不正确!,a,sign[index],b,=,key[index])
 6         ques = str(a)+sign[index]+str(b)
 7         key = str(key[index])
 8         err = {ques:key}
 9         error_gather(err)
10         return True

 错题写入操作以及重新练习错题

 1 def error_gather(err):
 2     errfile = open(error,r)
 3     error = eval(errfile.read())
 4     errfile.close()
 5     error.update(err)
 6     errfile = open(error,w)
 7     errfile.write(str(error))
 8     errfile.close()
 9 
10 def error_extract(errnum):
11     errfile = open(error,r)
12     error = eval(errfile.read())
13     errfile.close()
14     ques = list(error.keys())
15     for i in range(errnum):
16         print(str(i+1)+: +ques[i]+=,end=‘‘)
17         answer = input()
18         if answer==error[ques[i]]:
19             print(正确!)
20         else:
21             print(不正确!)
22         if i==len(ques)-1:
23             print(已经没有错题了)
24             exit()

 


 测试运行


 运行截图:

技术分享

 


 PSP 


 

Personal Software Process Stages

Estimated Time(min)

Actual Time (min)

计划

10

6

·任务估计

10

6

开发

91

124

·需求分析 (包括学习新技术)

10

8

·生成设计文档

5

6

·设计复审

5

3

·代码规范

1

1

·具体设计

5

8

·具体编码

60

83

·代码复审

5

2

·测试(自我测试,修改代码,提交修改)

10

13

报告

30

24

·测试报告

15

18

·计算工作量

10

6

·提出过程改进计划

5

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 总结 


 

写程序是一个很有趣的过程

 

 

 

 

 

个人作业1——四则运算题目生成程序(基于控制台)