PSP流程下四则运算升级作业
一、简单四则运算
1.题目要求:能自动生成小学四则运算题目,且每一道题目的运算结果不能为负。
2.软件功能:1)整数加法 2)整数减法 3)整数乘法 4)整数除法
二、升级四则运算
1.题目要求:能自动生成小学四则运算题目,且每一道题目的运算结果不能为负。
2.软件功能:此次升级过程中主要对功能与界面方面进行升级,例如增加分数运算,答案检验等。具体功能如下:
1)两位小数加法 2)两位小数减法 3)分数加法 4)分数减法 5)答案检验 6)难度选择
同时还设计了一个题目选择窗口,可以自主选择难度、题目数量和题目类型。
3.代码(时间有限只完成部分功能)
from tkinter import * import random from fractions import Fraction root = Tk() root.title("四则运算") root.geometry("600x400+300+100") label1 = Label(root,text="选择题型:",font=("微软雅黑",12),fg='blue') label1.place(x=250,y=130) label2 = Label(root,text="难度级别(1,2,3):",font=("微软雅黑",12),fg='blue') label2.place(x=130,y=50) label3 = Label(root,text="出题数:",font=("微软雅黑",12),fg='blue') label3.place(x=360,y=50) entry1 = Entry() entry1.place(x=120,y=90) entry2 = Entry() entry2.place(x=320,y=90) level='' homeworkCount='' def IntAddSubWindow(): count=0 level=entry1.get() homeworkCount=entry2.get() if level=="1": level=50 elif level=="2": level=100 else: level=200 while count<int(homeworkCount): count=count+1 print("第"+str(count)+"道题目"); IntAddSub(level) print("\n") def DecAddSubWindow(): count=0 level=entry1.get() homeworkCount=entry2.get() if level=="1": level=50 elif level=="2": level=100 else: level=200 while count<int(homeworkCount): count=count+1 print("第"+str(count)+"道题目") DecAddSub(level) print("\n") def IntMulDivWindow(): count=0 level=entry1.get() homeworkCount=entry2.get() if level=="1": level=50 elif level=="2": level=100 else: level=200 while count<int(homeworkCount): count=count+1 print("第"+str(count)+"道题目") IntMulDiv(level) print("\n") def DecMulDivWindow(): count=0 level=entry1.get() homeworkCount=entry2.get() if level=="1": level=50 elif level=="2": level=100 else: level=200 while count<int(homeworkCount): count=count+1 print("第"+str(count)+"道题目") DecMulDiv(level) print("\n") def IntAddSub(level): typeCal=random.randint(0,1) num1=random.randint(0,level) num2=random.randint(0,level) if typeCal==0: print(str(num1)+"+"+str(num2)+"=?") ans1=input("您的答案是:") print("正确答案是:"+str(num1+num2)) else: if num1<num2: t=num1 num1=num2 num2=t print(str(num1)+"-"+str(num2)+"=?") ans2=input("您的答案是:") print("正确答案是:"+str(num1-num2)) def DecAddSub(level): typeCal=random.randint(0,1) num1=random.uniform(0,level) num1=round(num1,2) num2=random.uniform(0,level) num2=round(num2,2) if typeCal==0: print(str(num1)+"+"+str(num2)+"=?") ans1=input("您的答案是:") print("正确答案是:{:.2f}".format(num1+num2)) else: if num1<num2: t=num1 num1=num2 num2=t print(str(num1)+"-"+str(num2)+"=?") ans2=input("您的答案是:") print("正确答案是:{:.2f}".format(num1-num2)) def IntMulDiv(level): typeCal=random.randint(0,1) num1=random.randint(0,level) num2=random.randint(0,level) if typeCal==0: print(str(num1)+"×"+str(num2)+"=?") ans1=input("您的答案是:") print("正确答案是:"+str(num1*num2)) else: print(str(num1)+"÷"+str(num2)+"=?") ans2=input("您的答案是:") print("正确答案是:{:.2f}".format(num1/num2)) def DecMulDiv(level): typeCal=random.randint(0,1) num1=random.uniform(0,level) num1=round(num1,2) num2=random.uniform(0,level) num2=round(num2,2) if typeCal==0: print(str(num1)+"×"+str(num2)+"=?") ans1=input("您的答案是:"); print("正确答案是:"+str(num1*num2)) else: print(str(num1)+"÷"+str(num2)+"=?") ans2=input("您的答案是:"); print("正确答案是:"+str(num1/num2)) btn1 = Button(root,text="整数加减",width=30,height=2,bg="navajowhite",fg="black",command=IntAddSubWindow) btn1.pack() btn1.place(x=50,y=200) btn2 = Button(root,text="小数加减",width=30,height=2,bg="navajowhite",fg="red",command=DecAddSubWindow) btn2.pack() btn2.place(x=50,y=280) btn3 = Button(root,text="整数乘除",width=30,height=2,bg="navajowhite",fg="black",command=IntMulDivWindow) btn3.pack() btn3.place(x=320,y=200) btn4 = Button(root,text="小数乘除",width=30,height=2,bg="navajowhite",fg="red",command=DecMulDivWindow) btn4.pack() btn4.place(x=320,y=280)
三、SPS表格
| 预计耗时(分钟) | 实际耗时(分钟) | ||
| 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 |
浙公网安备 33010602011771号