计算机软件实习预习 项目一 简单计算器

目录

一、实验目的

二、算法学习

三、编程语言和平台

四、操作难点和解决方案 

五、参考资料


一、实验目的

  • 能通过设计的按钮控件输入并实现算术表达式,表达式在文本框中显示,运算结果输出显示;
  • 能够检验算术表达式的合法性; 能够实现混合运算的求解,算术表达式中包括加、减、乘、除、括号等运算符;能够保存和浏览历史运算记录;
  • 设计一个友好的GUI图形用户界面。

二、算法学习

  • 中缀表达式

       定义:一般我们生活中常见的表达式都为中缀表达式,主要特点为操作符以中缀的形式处于                      操作数的中间,例如:3 + 4 * 2 (a + b * c)。

  • 后缀表达式

       定义: 运算符放在运算项后面的逻辑表达式,主要特点为操作符以后缀的形式处于操作数之                       后,例如:3 4 2 * + (a + b * c)。

  • 中缀表达式转换为后缀表达式

        从左向右依次读取算术表达式的元素X,分以下情况进行不同的处理:

      (1)如果X是操作数,直接入队

      (2)如果X是运算符,再分以下情况:  

               a)如果栈为空,直接入栈。  

               b)如果X==”(“,直接入栈。  

               c)如果X==”)“,则将栈里的元素逐个出栈,并入队到后缀表达式队列中,直到第一个                         配对的”(”出栈。(注:“(”和“)”都不 入队)      

               d)如果是其他操作符(+ - * /),则和栈顶元素进行比较优先级。 如果栈顶元素的优先级                       大于等于X,则出栈并把栈中弹出的元素入队,直到栈顶元素的优先级小于X或者栈                         为空。弹出完这些元素后,才将遇到的操作符压入到栈中。

          (3)最后将栈中剩余的操作符全部入队。

  • 后缀表达式值的计算

        首先准备一个栈Res_Stack.

        1、从左开始向右遍历后缀表达式的元素。

        2、如果取到的元素是操作数,直接入栈Res_Stack,如果是运算符,从栈中弹出2个数进行                 运算,然后把运算结果入栈

        3、当遍历完后缀表达式时,计算结果就保存在栈里了。 

三、编程语言和平台

编程语言:JAVA

IntelliJ IDEA Community Edition 2021.2.1

四、操作难点和解决方案 

  • 第一次进行非验证性实验,不知道从什么步骤开始。观摩学长学姐的博客目录学习思路。
  • 如何制作GUI图形界面。BILIBILI搜索GUI相关代码学习。
  • 算法如何由理论知识转化为代码。百度搜索计算器相关代码学习。
  • 显示数据的文本框内容每次不断叠加。clearRect清空面板。
  • 限制符号个数(表达式合法性)。设置一些参数进行限制。
  • 历史记录如何保存。在图形界面额外写三个文本框。
  • 计算器出错和可改进情况考虑不周全。参考学长学姐的视频以及日常数学经验。

五、参考资料

Java界面01-图形计算器_哔哩哔哩_bilibili

Java实现带括号优先级的计算器 - 落枫飘飘 - 博客园 (cnblogs.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值