计算机软件技术实习02

本文是作者在计算机软件技术实习中的第二周学习记录,主要介绍了使用MFC构建一个支持算术表达式求解的计算器,包括退格和清除功能的实现。退格功能通过删除CString字符串的最后一个字符实现,清除功能则将字符串置空。此外,还搭建了链表栈的框架,为中缀表达式转后缀表达式计算做准备。
摘要由CSDN通过智能技术生成

计算机软件技术实习

第二周学习记录

实验1——支持算术表达式求解的计算器

前言

上周说到,我选择用MFC来完成本次实验。那么,现在我来总结一下本周的学习成果。

退格功能的实现

由于我设置的文本框是通过一个CString全局变量str来存储字符串的,所以退格功能就相对简单,只需要把str储存的字符串最后面的一个字符删除然后再通过文本框显示出来就能实现退格功能。
其中删除字符串最后一个字符的方法很容易实现,利用CString类里面的GetLength函数来获取字符串长度,再用Delete函数删掉长度减1下标的字符就完成了。

void CCalculator01Dlg::OnBnClickedButton5()//退格
{
   
	str.Delete(str.GetLength() - 1);
	windows1.SetWindowTextW(str);
}
清除功能的实现

有了前面退格功能的经验,那么清除功能也非常容易实现,并且相对于退格来说更加简单。只需要将str赋值为空字符串,再通过对话框显示就能实现该功能。
不过值得注意的是,本次实验的计算器是通过堆栈和队列把中缀表达式转化成后缀表达式来计算的,所以大部分代码都会在等号“=”函数下面,这里就只需要将文本框里面的字符串清空就行。

void CCalculator01Dlg::OnBnClickedButton7()//清除
{
   
	str = "";
	windows1.SetWindowText(str);
}
链表栈的框架

除了实现了剩下的这些按钮的基本功能,我还写好了链表栈的大部分框架。本次用链表栈的原因是链表栈由于通过链表来实现,其中含有指针,而指针则是C/C++最强力的工具,能方便实现很多功能,所以链表栈相对比较合适。
链表栈的代码如下,其中Create函数目前似乎并不会用到,所以只是留了一个函数名,方便后序补写。
PS:以下代码只是雏形,后续可能会因为各种原因增删改查。

//链表
c
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏格拉没有底~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值