二年级小学生计算能力测试系统
设计一个程序,用来实现5分钟100道计算题测试,它具有以下功能:
提供100道加、减、乘或除四种基本算术运算的题目;
运算数和计算结果都不能超过100;
练习者根据显示的题目输入自己的答案,程序自动判断输入的答案是否;
设置计时器,5分钟后测试结束;(100道题写成时间不到5也中也结束考试)
给出提示信息:多少时间完成多少题,正确的多少道,错误的多少道。(有能力的同学也可以给出评定等级:优良中差,标准自己设定)
timer 计时器用法
Timer(interval, function, args=[], kwargs={})
interval: 指定的时间
function: 要执行的方法
arg:方法的参数
# -*- coding: utf-8 -*-
# @Time : 2020/10/25 14:42
# @Author : 李洋
# @File : computer text.py
# @Project : demo
import random
import time
import datetime
number1 = 0 #随机数1
number2 = 0 #随机数2
op = 0 #运算符
answer = 0 #运算结果
#准备随机数和运算符
def number_op():
global number1,number2,op
op = random.choice(['+', '-', '*', '/'])
if(op == '/'):
number1 = random.randint(0, 100)
number2 = random.randint(1, 100)
else:
number1 = random.randint(0, 100)
number2 = random.randint(0, 100)
#计算结果
def operator(op):
global answer
if(op == '+'):
answer = number1 + number2
elif(op =='-'):
answer = number1 - number2
elif(op =='*'):
answer = number1 * number2
elif(op =='/'):
answer = round(number1 / number2 , 1)
return answer
#计时开始
def time_star():
starttime = datetime.datetime.now() #记录当前时间
# long running
# endtime = datetime.datetime.now()
# print ((endtime - starttime).seconds)
return starttime
#计时结束
def time_end(starttime):
# time.sleep(250)
endtime = datetime.datetime.now()
print((endtime - starttime).seconds)
return
# printgrade(right,count)
#打印成绩
def printgrade(right,count):
print('')
print('考试结束!', end='')
print('100道题,完成了{}道题,其中答对{}道,完成率为{}%,正确率为{:.2f}%'.format(count, right, count, right / count * 100))
if (right >= 90):
print('成绩为A+')
elif (right >= 80):
print('成绩为A')
elif (right >= 70):
print('成绩为B')
elif (right >= 60):
print('成绩为C')
elif (right < 60):
print('成绩为d')
#主要函数,打印题目
def main():
count = 0 #已完成的题数
right = 0 #答对的题数
starttime = time_star()
while(count<100):
number_op() #获取随机计算数
operator(op) #获得运算数
if(answer<=100):
print("({}) {}{}{}= ".format(count+1 , number1,op,number2),end='')
endtime = datetime.datetime.now()
time = (endtime-starttime).seconds
#判断时间是否超时
if(time<250):
result = input()
# print(answer)
# print(result)
# print('对',right)
if(result == str(answer)):
right += 1
count += 1
else:
print('X')
count += 1
else:
printgrade(right,count)
break
else:
continue
# right = right*10
printgrade(right,count)
if __name__ == '__main__':
main()
# starttime = time_star()
# while 1:
# while float(time) < 250:
# test()
# break
# #获取当前时间
# time1 = threading.Thread(target=time_star)
# # print(time1)
# starttime = time_star()
# # print(starttime)
# time1.start()
#
#
# print('开始')
# # 开始答题
# demo = threading.Thread(target=test)
# list = test()
#
# #计时开始
# time2 = threading.Thread(target=time_end(starttime))
# time2.start()
# list = [60,100]
#打印成绩
# printgrade(list[0],list[1])
# print('开始')
# list = test()