python实现简易计算器(软工实践第一次作业)


作业信息

这个作业属于哪个课程2301-计算机学院-软件工程
这个作业要求在哪里软工实践第一次作业
这个作业的目标实现一个具备基本功能的可视化计算器
其他参考文献框架参考

提示:以下是本篇文章正文内容

解题思路描述

1.语言环境:python语言
2.界面设计:利用python的Tkinter库实现计算器界面设计
3.逻辑设计:主要通过eval功能计算数值,同时调用math库里的函数
4.功能完善:
按键颜色、大小等外观设计;
实现连续计算功能。

Gitcode项目地址

python简易计算器

PSP表格

PSPPersonal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning计划1010
• Estimate• 估计这个任务需要多少时间1010
Development开发60100
• Analysis• 需求分析 (包括学习新技术)120150
• Design Spec• 生成设计文档1010
• Design Review• 设计复审1010
• Coding Standard• 代码规范 (为目前的开发制定合适的规范)2030
• Design• 具体设计3040
• Coding• 具体编码100160
• Code Review• 代码复审20100
• Test• 测试(自我测试,修改代码,提交修改)3060
Reporting报告150250
• Test Repor• 测试报告2020
• Size Measurement• 计算工作量1010
• Postmortem & Process Improvement Plan• 事后总结, 并提出过程改进计划1010
合计610970

设计与实现过程

1.按键button设计

运用tkinter.Button,其中利用command=lambda:引用 Add()函数,利用grid()布局
提示:(仅展示了一些按钮制作)

##数字键
button1 = tk.Button(root, text=' 1 ', bg=color1, command=lambda: Add(1), height=1, width=7)
button1.grid(row=2, column=0)
##运算键
add = tk.Button(root, text=' + ', bg=color1, command=lambda: Add("+"), height=1, width=7)
add.grid(row=2, column=3)
##清空键
clear = tk.Button(root, text='Clear', bg=color3, command=Clear, height=1, width=7)
clear.grid(row=2, column=6)
##结果键
equal = tk.Button(root, text=' = ', bg=color3, command=Result, height=1, width=7)
equal.grid(row=5, column=6)

2.创建输入框

entrys = tk.Entry(root, textvariable=result,width=28)
entrys.grid(columnspan=7, ipadx=104)

3.字符添加函数Add()

提示:定义两个全局变量t,t1,初始值为空
t为实际字符串;t1为显示字符串
可视化界面显示t1

def Add(num):
     global t,t1
     t1 = t1 + str(num)
     if num=="^":
         t=t+"**"
     elif num=="lg":
         t=t+"math.log10"
     elif num=="ln":
         t=t+"math.log"
     elif num=="sin":
         t=t+"math.sin"
     elif num=="cos":
         t=t+"math.cos"
     elif num=="tan":
         t=t+"math.tan"
     elif num=="!":
         t="math.factorial("+t+")"
     elif num=="π":
         t=t+"math.pi"
     elif num=="e":
         t=t+"math.e"
     else:t=t+str(num)
     print(t)
     result.set(t1)

4.结果运算函数Result()

利用try ,except测试
total保留计算结果两位小数,并将结果再次保存到t,t1中,直到清空
小优化:
原本:计算1+2=3后需要Clear()清空,进行下次计算。修改后:可利用上次值继续运算

def Result():
     try:
        global t,t1
        total= round(float(eval(t)),2)
        print(total)
        t=t1=str(total)
        result.set(t)
     except:
        result.set(" error ")
        t=t1=""

5.清除运算函数Clear()

清空t,t1,屏幕内容

def Clear():
    global t,t1
    t=t1=""
    result.set("")

关键功能展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

程序性能改进

1.按键优化
*——>×
/——>÷
在这里插入图片描述
在这里插入图片描述
2.重复计算
可继续使用上次计算结果,上文已解释

单元测试展示

异常处理措施与改进

当连续输入多个运算符或缺少运算语法错误时自动报错
在这里插入图片描述

心路历程与收获

1.了解了项目开发过程, 进行计划,需求分析,开发时编写代码、满足需求、设计文档,单元测试、bug调试等。
2.学会了pythonTkinter库的许多使用方式,对math库有了更深了解
3.增强了我的代码撰写能力和修改代码的能力

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值