Skip to content

矿大计算机学院程序设计综合实践课程教材源码

Notifications You must be signed in to change notification settings

GeekPoplar/myCalculator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

myCalculator(程序设计综合实践课程实验一)

本项目为矿大计算机学院程序设计综合实践教材上提供的源码,比较简单,且有着不能按照优先级进行运算等问题

本项目由VS 2019创建

下一步,改进这个计算器!!!


魏敬杨,2019年11月18日晚


终于,放上了自己敲的源码,基本是将书上代码全部推翻重造了,其中核心计算逻辑的思路来自数据结构课程。

目前,从表面上看起来,这个计算器已经没有太大的问题了,但是它也还有着致命的bug。

整个运算的核心逻辑的是用一个数值栈和一个符号栈并对各操作符设置优先级来实现的。在按动数值和操作符的过程中,我是用了一个队列来临时存放输入的数值和操作符的。

其中我比较满意的几个点有:

  • 用户界面简洁大方,有新意
  • 核心运算逻辑没有问题,可以方便的实现拓展
  • 对小数进行了精度控制
  • 比较巧妙地实现了对负数的输入和操作

目前最大的问题是,我无法比较好地解决退格的问题,即当一个数或字符被删除后,我无法将其从队列中去掉,几种可以尝试的解决方案有:

  • 用一个双向队列来实现后进队的元素也可被弹出
  • 用一个栈来暂存按键过程中输入的数值和符号,若需要退格,则将后进栈的元素弹出,在按下等号时,再用另一个栈来做一个中转,实现最初输入的元素的“先进先出”的顺序操作
  • 用字符串或字符串数组来实现按键的存放元素的功能

魏敬杨,2019年12月1日晚,补记


About

矿大计算机学院程序设计综合实践课程教材源码

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages