第六章思考题

来源:互联网 发布:斗米兼职 知乎 编辑:程序博客网 时间:2024/06/06 19:56

1.程序的编写其最终目的就是为了解决一个实际问题,所以在程序设计之前只有对所解决的问题有正确的理解,才能写出有实际效用的程序。

2.从窗口中获取数字表达式并实现加减乘除四则运算,并且在运算的过程中必须考虑到优先级问题以及括号的作用,最终输出符合规则的正确结果。

3.将大问题在细节方面细分为小问题,1)可以利用手头的工具或函数库等其他辅助手段

2)。。。

4.防止功能蔓延,并且我们会常常自以为完全理解了我们的问题,此时在这个小的有限的程序上,我们可以进行分析和设计实现,做种深刻理解要求解的问题。(原型prototype)

5.“功能蔓延”指在已实现的基本功能版本上进一步添加暂时非必要的“漂亮特性”,一旦这种思维开始,便很难停下来,人们总是追求完美,但此时是不恰当的时刻。

6.软件开发的三个主要阶段是:分析,设计,实现。

7.“用例”指的是展现程序最低限度应该实现的功能的例子

8.查找并排除错误,生成正确、可维护的程序。

9.Number只是由浮点数字构成,在四个类型中结构最简单。Primary关键在于将括号里的表达式可以单独出来进行计算。

Term主要用来解决乘除取余问题,保证了乘除以及取余的运算优先于加减。Expression通过加减构筑整个运算式的整体框架。

10.17与4是Number所以是Primary也是Term也是Expression,Expression+Term是Expression,所以17+4是Expression,又因为括号中间加Expression是Primary,所以(17+4)是Primary,同理(5-1)也是Primary,因为Primary是Term,所以(17+4)/(5-1)符合Term/Primary所以是Term,因为Term是Expression,所以整个表达式就是Expression

11.因为C++语言机器标准库已经提供了整数及其加、减、乘、除和模等运算。

12.单词是用来表示一个基本单元的一个字符序列。例如数字或者运算符。利用“分词(动词)”读取输入字符并组合为单词。

13.文法(grammar):类似于一种语言的语法规则,例如一个句子最基本的就是动词+名词。文法规则就是指定义一个满足一个文法的条件。

14.一个类就是一个用户自定义类型,它定义了所需要的数据以及对数据能执行的有效操作。用户自主定义一个类满足用户自己的需要的类型与操作,这可以弥补本语言及其标准函数库的不足

15.构造函数用于初始化类对象

16.若Expression语法规则中,若其前后没有+、-符号,则单独的Term就是Expression,而Term归根结底就是Number,所以最终还是退回单词。

17.???

18.putback()函数的功能是将其参数放回Token_Stream的缓冲区内,即若预读取的类没有用上则放回到输入流中。

19.计算器在计算的过程中会涉及浮点数的运算,但是取模运算中只定义了整型的浮点运算,没有对浮点数定义模运算。

20.kind用来存储所读入的数据类型,并且如果读入的是正数,则value用来存储相应的数值。

21.public(公有接口:用户方便使用类型所属的,只包含用户需要的内容)private(具体实现:实现类型所需)

22.将缓冲区的单词拿出来进行运算

23.";"和“q”作为程序运行的特殊意义字符需要单独列出来,当switch选择出这两个字符时,则执行程序设定给他们各自的任务。

24.代码编写并调试成功后进行测试

25.用户自定义类型就是非内置的类型,通过自定义类型,我们可以更直接的表达我们的思想。

26.对于一个C++用户自定义类型,其接口是用public标识,提供给了用户如何使用的具体细节,而隐藏了具体的代码。

27.代码库实现了一些我们需要解决的问题的一部分,直接拿来使用可以节省我们的精力,做更多的事。

函数原型:类似函数定义时的函数头,又称函数声明。

class:表示定义一个“用户自定义类型”

数据成员:一个用户自定义类型可以有成员函数(操作)和数据成员。 ??类成员

成员函数:用户自定义类型中对数据成员的操作

语法分析:根据文法规则读取单词流的方式,实现该方式的程序称为语法分析器。

设计:做出系统的整体结构图,并确定具体的实现内容以及他们之间的相互联系,还要考虑那些工具(如函数库)有助于实现程序的结构。


  

1 0
原创粉丝点击