首页 > 代码库 > 个人作业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——四则运算题目生成程序(基于控制台)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。