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)
View Code

 

三、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

 

posted @ 2021-09-28 00:41  酸甜爽口多汁柚子  阅读(52)  评论(0)    收藏  举报