人人都能学会的编程入门课
胡光
原百度高级算法研发工程师
19410 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 38 讲
开篇词 (1讲)
人人都能学会的编程入门课
15
15
1.0x
00:00/00:00
登录|注册

30 | 毕业设计:实现你自己的计算器程序

你好,我是胡光,欢迎来到“综合项目篇”的最后一节课。
这节课,我将带你完成一个富有挑战性的任务,就是一起开发一门“编程语言”。哈哈……我说开发一门编程语言当然是和你开玩笑,不过我们可以开发编程语言中的一小部分,那就是定义变量和基本的表达式运算功能。
三个月的时间,我们一起用 C 语言写了这么久的代码,我相信只要你坚持学习,不断拓展自己的编程能力,终有一天你可以开发出一门自己的编程语言。今天,我就带你打个头阵,从计算器程序开始。

计算器程序的功能设计

我们将要实现的计算器程序也算是开发一个小项目,那么开发项目的第一步,就是对我们实现的功能进行设计,一般计算器功能如下:
第一次出现的变量赋值语句,即为变量定义;
计算表达式的值。
这两个功能,看似简单,可实际要考虑的还很多,例如:变量是否有作用域的限制啊,合法变量名的规则,表达式中支持的运算符种类啊,每一种运算符的优先级,等等。这些需要考虑的细节,每一个都会给我们的项目增加一点点难度。
为了把难度控制在一个可以实现的范围,我们对计算器功能做进一步的细致描述,同时也是降低项目实现难度,重新修订的功能定义如下:
第一次出现的变量赋值语句,即为变量定义;
计算表达式的值;
没有作用域的概念,所有变量都是全局变量;
变量名只允许 26 个小写的英文字母,也就是说,程序中最多有 26 个变量;
表达式只支持四则混合运算 +、-、*、/ 以及 ();
表达式中参与运算的值均为正整数,除法规则参考 C 语言整形之间的除法规则;
变量赋值语句和表达式语句,均各占一行。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文以《思维利器:表达式树》为题,详细介绍了通过C语言编写一个计算器程序的功能设计和实现过程。作者首先设计了计算器程序的功能,包括变量定义和表达式计算等功能,并介绍了二叉树的遍历方式,如前序遍历、中序遍历和后序遍历,以及它们的递归定义方式。通过这些遍历方式,读者可以更好地理解如何解决表达式求值问题。文章还介绍了确定运算符顺序的技巧,为读者提供了实际编码过程中的技术指导。通过对表达式树的理解,读者可以更好地掌握表达式计算的过程,而不仅仅是在程序中建立表达式树结构。整篇文章以清晰的逻辑结构和丰富的示例,帮助读者快速了解并掌握了表达式树的应用方法。通过今天的课程,读者可以掌握二叉树的三种遍历方式,表达式与表达式树的对应关系,以及表达式树的后续遍历结果等知识。文章内容丰富,技术性强,对读者进行了系统性的教学,使其能够快速理解并应用所学知识。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《人人都能学会的编程入门课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(8)

  • 最新
  • 精选
  • 初航我带你,远航靠自己 感谢老师的教导

    作者回复: 很高兴在最后一篇看到你的留言,专栏一路走来,都有你留言的影子,希望你日后乘风破浪,扬帆远航。d(^_^o)

    2020-03-28
    3
  • dra
    op蜜,期待胡船长再出一个进阶专栏,把打acm的实力酣畅淋漓的发挥出来

    作者回复: ⁄(⁄ ⁄ ⁄ω⁄ ⁄ ⁄)⁄

    2020-03-28
    2
  • 潮汐
    迟来的末尾打卡,期待老师新的作品!

    作者回复: ^_^,江湖再见

    2020-05-19
  • 许童童
    期待老师再次开船,下次我带你一起远征。

    作者回复: 好嘞!d(^_^o)

    2020-03-28
  • Hunter Liu
    第一,一定要出进阶专栏。第二,我一定会多刷几遍。

    作者回复: 第一,看缘分。第二,加油!

    2020-03-28
  • 徐洲更
    一路学习下来,以前看过的概念都在看完以后有了新的理解,比如说用自变量来确定动态规划的状态,快慢指针在快乐数的应用。当然宏这方面的知识目前还理解的不够,估计平时用的太少了,以后还要多看几遍!

    作者回复: 很开心看到你坚持到了最后一篇,并看到你的留言,日后继续加油!d(^_^o)

    2020-03-28
  • 🤪HappyJoo
    债见船长大人,您继续远航,我入门了先跳海了

    作者回复: 哈哈哈哈,借你泳圈一用。

    2020-03-28
  • 阿牛
    27和29行的结尾是不是少了两个break;😳
    2022-06-26
收起评论
显示
设置
留言
8
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部