需 求 分 析 (附 代 码 ) 一 、 需 求 分 析 ( 1) 首 先 定 义 两 个 栈OPTR、 OPND, 栈OPTR 用 于 存 放 运 算 符 , 栈OPND用 于 存 放 操 作 数 ; 定 义 一 个 一 维 数 组expr【 】 存 放 表 达 式 串
( 2) 主 函 数 主 要 包 括 两 部 分 : ( 1) 判 断 运 算 符 优 先 权 , 返 回 优 先 权 高 的 ; ( 2)操 作 函 数
( 3) 开 始 将 ‘ #’ 入 操 作 符 栈 , 通 过 一 个 函 数 来 判 别 算 术 运 算 符 的 优 先 级
且规 定 ‘ #’ 的 优 先 级 最 低
在 输 入 表 达 式 的 最 后 输 入 ‘ #’ , 代 表 表 达 式 输 入 结 束
在 表 达 式 输 入 过 程 中 , 遇 操 作 数 则 直 接 入 栈
遇 到 运 算 符 则 与 栈 顶 运 算 符 比 较 优先 级 ,当 前 运 算 符 优 先 级 高 (前 面 的 运 算 还 不 应 执 行 )则 当 前 运 算 符 入 栈 ,扫 描 下 一符 号 ;否 则 栈 顶 运 算 符 出 栈 ,两 操 作 数 出 栈 ,进 行 运 算 ,所 得 结 果 入 数 栈 ,重 新 比 较 当前 运 算 符 (注 意 当 前 运 算 符 未 变 )与 新 栈 顶 运 算 符
如 此 重 复 直 到 栈 顶 运 算 符 与 当前 符 号 均 为 ‘ #’ , 运 算 结 束
( 4) 最 初 实 现 的 加 、 减 、 乘 、 除 及 带 小 括 号 的 基 本 运 算 , 但 考虑到 实 用 性, 后来 的 设计中 有加 上了乘 方运 算
在 乘 方运 算 中 借用 了 C 库中 自带 的 乘 方函 数pow
二、 概要 设计 1、 设定