个人PSP升级作业

PSP2.1表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 20 10
Estimate 估计这个任务需要多少时间 10 10
Development 开发 260 300
Analysis 需求分析 (包括学习新技术) 20 20
Design Spec 生成设计文档 10 15
Design Review 设计复审 (和同事审核设计文档) 15 15
Coding Standard 代码规范 (为目前的开发制定合适的规范) 15 20
Design 具体设计 15 10
Coding 具体编码 100 150
Code Review 代码复审 50 40
Test 测试(自我测试,修改代码,提交修改) 30 30
Reporting 报告 30 25
Test Report 测试报告 25 25
Size Measurement 计算工作量 10 10
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 15 15
合计   370

395

 代码:

 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()

结果:

 

原文地址:https://www.cnblogs.com/wjxk/p/15318208.html