关于如何编写一个程序的27个基本相关问题

1.“程序设计就是问题理解”的含义是什么?

  • "程序设计就是问题理解"的含义是,程序设计的核心是要准确地理解问题,并找到解决问题的方法和算法。在程序设计中,首先需要深入了解问题的需求和约束,然后将问题划分为更小的子问题,最终通过编写程序来解决这些子问题。问题理解是程序设计的关键,只有充分理解问题,才能更好地设计和实现解决方案。

2.计算器程序的设计,简要分析计算器程序应该实现哪些功能?

   计算器程序应该实现以下功能:

  • 支持基本的四则运算,包括加法、减法、乘法和除法。
  • 能够处理多位数的输入,支持小数运算。
  • 具备运算符的优先级和结合性的处理,遵循数学运算规则。
  • 能够处理括号,并正确地解析和计算括号内的表达式。
  • 提供错误处理和异常处理,例如除零错误等。
  • 提供清除和重置功能,以及显示结果的功能。

3.如何把一个大问题分解成一系列易于处理的小问题?

  •  分析大问题的要求和目标。
  • 将大问题划分为更小的子问题,每个子问题都是原问题的一部分。
  • 确定子问题之间的关系和依赖。
  • 为每个子问题设计一个解决方案,并逐个解决子问题。
  • 将各个子问题的解决方案组合起来,构成解决原问题的综合解决方案。

4.为什么编写一个程序时,先编写一个小的、功能可控的版本是一个好主意?

  • 可以更快地进行开发和测试,减少开发周期。
  • 可以更容易地调试和排除错误,提高代码质量。
  • 可以更方便地进行功能扩展和优化,避免过早的功能蔓延。
  • 可以更好地管理项目进度和资源,避免过度复杂的开发过程。

5.为什么功能蔓延是不好的?

  • 增加了开发和测试的复杂性和工作量。
  •  增加了代码的复杂性和维护成本。
  • 增加了出错的可能性,导致程序不可靠。
  •  增加了项目的风险和不确定性。
  •  可能会偏离原始需求和目标,导致用户不满意。

6.软件开发的三个主要阶段是什么?

  • 需求分析和问题定义阶段:在这个阶段,确定软件的需求和目标,理解问题和约束,定义问题域和用户需求。
  • 设计和实现阶段:在这个阶段,根据需求分析的结果,设计软件的架构和模块,编写程序代码,实现具体的功能。
  • 测试和维护阶段:在这个阶段,对软件进行测试和调试,修复错误和问题,确保软件的正确性和可靠性。同时,根据用户反馈和需求变化来进行维护和改进。

7.什么是“用例”?

  • "用例"是描述软件功能和行为的一种技术工具。它是一系列测试情景或场景,用于说明软件系统的功能特性、用户行为或系统响应。每个用例描述了一个用户的目标和预期结果,以及与系统之间的交互过程。

8.测试的目的是什么?

  • 测试的目的是确保软件的正确性和可靠性。通过测试,可以验证软件的各个功能是否按照需求和规格进行了正确实现。测试可以帮助发现和修复潜在的错误和问题,提高软件的质量和可靠性。

9.比较Term、Expression、Number 和Primary的不同点。

  • Term:表示一个表达式的项,可能是一个数字或一个含有运算符的子表达式。
  •  Expression:表示一个完整的表达式,由多个Term组成,通过运算符进行连接。
  • Number:表示一个数字,可以是整数或小数。
  • Primary:表示一个基本的表达式单元,可以是一个数字或一个带括号的子表达式。

10.当输人表达式被分解为Term、Expression、Number和Primary等组成部分,试按这种方式分析表达式(17+4)/(5-1)的构成

  • Primary:(17+4) 和 (5-1)
  • Number:17,4,5,1
  • Term:(17+4)
  • Expression:(17+4)/(5-1)

11.为什么程序中没有名为number()的函数?

  • 可能是因为在程序中不需要定义一个叫做number()的函数,或者可能是因为该函数在其他地方已经定义了。

12.什么是单词?

  • 单词是具有独立语义的最小语言单位。在编程中,单词通常指编程语言中的关键字、标识符、操作符、常量等。

13.什么是文法?文法规则是什么?

  • 文法是描述语言结构的规则集合。文法规则定义了如何将符号序列(例如单词)组合成更复杂的结构。

14.什么是类?类的作用是什么?

  • 类是一种用户自定义的数据类型,可以封装数据和功能。类的作用是提供一种组织和管理数据和功能的方式,可以通过创建对象来使用类。

15.如何为一个类的一个成员提供一个缺省值?

  • 可以为类的成员提供一个缺省值通过在类的构造函数中设置默认参数值。

16.在 expression() 函数中,为什么switch语句的默认处理是退回单词?17.什么是“预读取”?

  • 在expression()函数中,switch语句的默认处理是退回单词是为了处理无效的输入。如果输入的单词不是预期的操作符或数字,则将其放回缓冲区并返回上一级调用,以便处理下一个表达式。

18. putback()函数的功能是什么?为什么说它是有用的?

  • putback()函数的功能是将一个字符放回输入流。它是有用的因为它允许程序在读取输入时进行退回和重读操作。

19.在 term() 函数中,为什么难以实现取模运算符%?

  • 在term()函数中,难以实现取模运算符%是因为取模运算符需要读取两个操作数,但在当前设计中,term()函数只能处理一个操作数。

20.Token类的两个数据成员的作用是什么?

  • Token类的两个数据成员的作用是存储单词的类型(例如数字、操作符)和值(例如具体的数字或操作符字符串)。

21.为什么把类的成员分成private 和public 两种类型?

  • 将类的成员分为private和public两种类型是为了实现封装的概念,private成员对外部不可见,只能在类的内部访问和修改,而public成员可以被外部调用和访问。

22.对于Token_stream类,当缓冲区中有一个单词时,调用get()函数会发生什么情况?

  • 当缓冲区中有一个单词时,调用get()函数会返回该单词并将缓冲区清空,以便读取下一个单词。

23.在 Token_stream类的get()函数中,为什么在switch语句中增加了对‘;’和‘q’的处理?

  • 在Token_stream类的get()函数中,增加了对‘;’和‘q’的处理是为了支持程序中的结束符和退出符号。当输入的是‘;’时,表示一条语句结束;当输入的是‘q’时,表示用户想要退出程序。

24.应该从什么时候开始测试程序?

  • 应该从最简单的情况开始测试程序,逐步增加测试的复杂度和覆盖范围,以确保程序在不同情况下的正确性和稳定性。

25.“用户自定义类型”是什么?我们为什么需要这种机制?

  • “用户自定义类型”是指根据用户的特定需求定义的新的数据类型。我们需要这种机制是因为编程语言中提供的基本数据类型和操作符有限,无法满足所有的应用需求,通过用户自定义类型可以扩展和灵活地应对不同的问题。

26.对于一个C++用户自定义类型,它的接口是指什么?

  • 对于一个C++用户自定义类型,它的接口是指对外可见的成员函数和数据成员,即定义了如何使用该类型的操作和属性。

27.我们为什么要依赖代码库?  详细解释说明以上相关内容

  • 代码库是存储和管理可复用代码的集合。我们依赖代码库是因为代码库中的代码经过测试和验证,可以提高开发效率,减少错误和重复工作。同时,代码库也可以提供常用功能和算法的实现,方便开发人员在项目中重用。
  • 13
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值