• 四则运算升级


    1.题目要求:

       要求:四则运算作业进行一次升级,必须有P S P 2.1标准步骤。
       升级方式: (可选, 最少选一个升级方向) :
       (1) 功能升级, (2) 界升级,(3) 性能升级, (4) 用不同语言写升级

     2.PSP表格:

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

    3.代码说明

      1 from tkinter import *
      2 import random
      3 from fractions import Fraction
      4 
      5 root = Tk()
      6 root.title("四则运算")
      7 root.geometry("605x500+300+100")
      8 
      9 label = Label(root,text="现有如下5种题型:1)整数加减 2)小数加减3)分数加减 4)整数乘除 5)分数乘除",font=("微软雅黑",12),fg='red')
     10 label.place(x=0,y=10)
     11 label2 = Label(root,text="请选择下列想要的题型:",font=("微软雅黑",12),fg='red')
     12 label2.place(x=220,y=180)
     13 label2 = Label(root,text="难度等级:初级(0-50)、中级(0-100)、高级(0-200)",font=("微软雅黑",12),fg='red')
     14 label2.place(x=0,y=40)
     15 label4 = Label(root,text="请输入想要的难度:",font=("微软雅黑",12),fg='red')
     16 label4.place(x=120,y=80)
     17 label4 = Label(root,text="请输入想要的题数:",font=("微软雅黑",12),fg='red')
     18 label4.place(x=320,y=80)
     19 
     20 entry1 = Entry()
     21 entry1.place(x=120,y=115)
     22 entry2 = Entry()
     23 entry2.place(x=320,y=115)
     24 level=''
     25 homeworkCount=''
     26 
     27 def easy():
     28     level=entry1.get()
     29     homeworkCount=entry2.get()
     30     print(level)
     31     print(homeworkCount)
     32     button=Button(root,text="确认",command=easy,width=15,height=1)
     33     button.pack()
     34     button.place(x=230,y=145)
     35 
     36 def one():
     37     count=0
     38     level=entry1.get()
     39     homeworkCount=entry2.get()
     40     if level=="初级":
     41         level=50
     42     elif level=="中级":
     43         level=100
     44     else:
     45         level=200
     46     while count<int(homeworkCount):
     47         count=count+1
     48         print("第"+str(count)+"道题目");
     49         intAddSub(level)
     50         print("
    ")
     51     print('end!!!')
     52         
     53 def two():
     54     count=0
     55     level=entry1.get()
     56     homeworkCount=entry2.get()
     57     if level=="初级":
     58         level=50
     59     elif level=="中级":
     60         level=100
     61     else:
     62         level=200
     63     while count<int(homeworkCount):
     64         count=count+1
     65         print("第"+str(count)+"道题目")
     66         decAddSub(level)
     67         print("
    ")
     68     print('end!!!')
     69         
     70 def three():
     71     count=0
     72     level=entry1.get()
     73     homeworkCount=entry2.get()
     74     if level=="初级":
     75         level=50
     76     elif level=="中级":
     77         level=100
     78     else:
     79         level=200
     80     while count<int(homeworkCount):
     81         count=count+1
     82         print("第"+str(count)+"道题目")
     83         fraAddSub(level)
     84         print("
    ")
     85     print('end!!!')
     86 
     87 def four():
     88     count=0
     89     level=entry1.get()
     90     homeworkCount=entry2.get()
     91     if level=="初级":
     92         level=50
     93     elif level=="中级":
     94         level=100
     95     else:
     96         level=200
     97     while count<int(homeworkCount):
     98         count=count+1
     99         print("第"+str(count)+"道题目")
    100         intMulDiv(level)
    101         print("
    ")
    102     print('end!!!')
    103 
    104 def five():
    105     count=0
    106     level=entry1.get()
    107     homeworkCount=entry2.get()
    108     if level=="初级":
    109         level=50
    110     elif level=="中级":
    111         level=100
    112     else:
    113         level=200
    114     while count<int(homeworkCount):
    115         count=count+1
    116         print("第"+str(count)+"道题目")
    117         fraMulDiv(level)
    118         print("
    ")
    119     print('end!!!')
    120 
    121 def closewindows():
    122     root.destroy()
    123 
    124 def intAddSub(level):
    125     typeCal=random.randint(0,1);     #选择加减运算符
    126     num1=random.randint(0,level)    #生成随机整数
    127     num2=random.randint(0,level)
    128     if typeCal==0:
    129         print(str(num1)+"+"+str(num2)+"=?")
    130         ans1=input("您的答案是:")
    131         print("正确答案是:"+str(num1+num2))
    132     else:
    133         if num1<num2:
    134             t=num1
    135             num1=num2
    136             num2=t
    137         print(str(num1)+"-"+str(num2)+"=?")
    138         ans2=input("您的答案是:")
    139         print("正确答案是:"+str(num1-num2))
    140 
    141 def decAddSub(level):
    142     typeCal=random.randint(0,1)      #选择加减运算符
    143     num1=random.uniform(0,level)   #生成随机整数
    144     num1=round(num1,2)
    145     num2=random.uniform(0,level)
    146     num2=round(num2,2)
    147     if typeCal==0:
    148         print(str(num1)+"+"+str(num2)+"=?")
    149         ans1=input("您的答案是:")
    150         print("正确答案是:{:.2f}".format(num1+num2))
    151     else:
    152         if num1<num2:
    153             t=num1
    154             num1=num2
    155             num2=t
    156         print(str(num1)+"-"+str(num2)+"=?")
    157         ans2=input("您的答案是:")
    158         print("正确答案是:{:.2f}".format(num1-num2))
    159 
    160 def fraAddSub(level):
    161     typeCal=random.randint(0,1)     #选择加减运算符
    162     molecule1=random.randint(0,level)    #生成随机整数
    163     denominator1=random.randint(1,level)
    164     num1=Fraction(molecule1,denominator1)
    165     molecule2=random.randint(0,level)
    166     denominator2=random.randint(1,level)
    167     num2=Fraction(molecule2,denominator2)
    168     if typeCal==0:
    169         print(str(num1)+"+"+str(num2)+"=?")
    170         ans1=input("您的答案是:")
    171         print("正确答案是:"+str(num1+num2))
    172     else:
    173         if num1<num2:
    174             t=num1
    175             num1=num2
    176             num2=t
    177         print(str(num1)+"-"+str(num2)+"=?")
    178         ans2=input("您的答案是:")
    179         print("正确答案是:"+str(num1-num2))
    180 
    181 def intMulDiv(level):
    182     typeCal=random.randint(0,1)     #选择加减运算符
    183     num1=random.randint(0,level)   #生成随机整数
    184     num2=random.randint(0,level)
    185     if typeCal==0:
    186         print(str(num1)+"×"+str(num2)+"=?")
    187         ans1=input("您的答案是:")
    188         print("正确答案是:"+str(num1*num2))
    189     else:
    190         print(str(num1)+"÷"+str(num2)+"=?")
    191         ans2=input("您的答案是:")
    192         print("正确答案是:{:.2f}".format(num1/num2))
    193 
    194 def fraMulDiv(level):
    195     typeCal=random.randint(0,1)     #选择加减运算符
    196     molecule1=random.randint(0,level)    #生成随机整数
    197     denominator1=random.randint(1,level)
    198     num1=Fraction(molecule1,denominator1)
    199     molecule2=random.randint(0,level);
    200     denominator2=random.randint(1,level)
    201     num2=Fraction(molecule2,denominator2)
    202     if typeCal==0:
    203         print(str(num1)+"×"+str(num2)+"=?")
    204         ans1=input("您的答案是:");
    205         print("正确答案是:"+str(num1*num2))
    206     else:
    207         print(str(num1)+"÷"+str(num2)+"=?")
    208         ans2=input("您的答案是:");
    209         print("正确答案是:"+str(num1/num2))
    210 
    211 btn1 = Button(root,text="整数加减",width=30,height=2,bg="pink",fg="blue",command=one)
    212 btn1.pack()
    213 btn1.place(x=50,y=220)
    214 
    215 btn2 = Button(root,text="小数加减",width=30,height=2,bg="pink",fg="blue",command=two)
    216 btn2.pack()
    217 btn2.place(x=50,y=300)
    218 
    219 btn3 = Button(root,text="分数加减",width=30,height=2,bg="pink",fg="blue",command=three)
    220 btn3.pack()
    221 btn3.place(x=50,y=380)
    222 
    223 btn4 = Button(root,text="整数乘除",width=30,height=2,bg="pink",fg="blue",command=four)
    224 btn4.pack()
    225 btn4.place(x=320,y=220)
    226 
    227 btn5 = Button(root,text="分数乘除",width=30,height=2,bg="pink",fg="blue",command=five)
    228 btn5.pack()
    229 btn5.place(x=320,y=300)
    230 
    231 btn6 = Button(root,text="退出",width=30,height=2,bg="pink",fg="blue",command=closewindows)
    232 btn6.pack()
    233 btn6.place(x=320,y=380)
    234 
    235 root.mainloop()

    4.结果展示

  • 相关阅读:
    Android 四大组件 (二) Service 使用
    使用fiddler抓手机端http数据包
    解决问题:保存图片到本地文件夹后,在图库里看不到保存的图片问题。
    Android 四大组件 (一) Activity 生命周期
    第二次裸辞_潜伏期_一些感想
    最近的一些感想(关于移动客户端开发android,ios)
    错误:类型 'System.Object' 未定义或者不能引入项目
    easyui换主题,并记录在cookie.以及cookie作用域介绍
    VS发布报错 "未能将文件……复制到……"
    VS2013修改模板,增加类文件的头注释
  • 原文地址:https://www.cnblogs.com/567823a/p/15312724.html
Copyright © 2020-2023  润新知