高级程序设计课程设计报告(2012).pdfVIP

  • 15
  • 0
  • 约5.35千字
  • 约 7页
  • 2020-10-15 发布于江苏
  • 举报
高级程序设计课程设计报告 姓名 黄宏伟 班级学号 P1401110514 成绩 题目 逻辑计算器 一、 分析(要求包括系统的功能目标、用例) 目标: 实现一个专门计算逻辑表达式的计算器。 支持逻辑非 (!)、与 () 、或 (|)、异或 (^) 、补 (~)等逻辑运算符。与算 术运算符相似,这些逻辑运算符也有单目和双目之分、也有优先级 之分,具体地, !和~为前缀一元运算符, 其余为双目运算符;一元运 算符!和 ~的优先级最高,其次是 ,再其次是 ^,最低的是 |。因此 x|y^z 表示 x|(y^z)而不是 (x|y)^z,而 x^yz 表示 x^(yz) 。 用例: (1 ) 支持除补运算符 ~之外的所有逻辑运算符。 (2 ) 支持括号 (),括号的优先级比任何逻辑运算符高。 (3 ) 运算分量为 int 类型,运算结果为 0 或 1,分别表示 false 和 true 。在逻辑运算(除了 ~)时,非 0 当作 1 处理。例如: !3 的结果 是 0 ,3|!0 的结果是 1, 1^2 的结果等同于 1^1 的结果 0 。 (4 ) 允许一行输入几个逻辑表达式同时计算它们, 它们之间用 ;‘’ 分隔。 二、 总体设计及概要设计 (包括系统的总体结构、各模块之间的层次调用关系、主程序的流程、类图) 第 1 页 首先,自己先对这个课题进行思考,要用什么样的语句来编写这 一段程序,还有要遵循怎么的逻辑关系,大概可以分成几大块来写, 先写什么后写什么,这些都在我的考虑范围内。 然后,我根据自己的想法先在脑子里拟出一个大概的框架出来, 然后用 C++ 编程软件先将脑子里的大体框架先编写出来,再调试一 遍。先纠正语言里的逻辑错误,使代码能够顺利运行。然后再根据 调试的结果,与实验的目标一一对照比较,观察有哪些目标所要求 的地方代码没能够实现的,在这个时候就需要我们自己逐一添加。 此时,添加的时候必须注意不能影响到整段代码的正确性,也不能 造成代码的不连贯,在这样的基础上,逐次查漏补缺。这样做的最 大的好处在于,从上到下一边检查一遍补充,有利于代码的完整性, 从而使代码能够实现所有要求实现的功能,并且,大大节约了写完 一整段再重头再看的复杂的过程的时间,从而大大提了编写语言的 效率。 三、 详细设计(包括各类的定义、核心算法的设计、函数的调用关系图) 第 2 页 #include std_lib_facilities.h class Token { public: char kind; double value; Token(char ch) :kind(ch), value(0) { } Token(char ch, double val) :kind(ch), value(val) { } }; class Token_stream { public: Token_stream(); Token get(); void putback(Token t); private: bool full; Token buffer; }; Token_stream::Token_stream() :full(false), buffer(0) {} void Token_stream::putback(Token t) { if (full) error(putback() into a full buffer); buffer = t; full = true; } Token Token_stream::get() { i

文档评论(0)

1亿VIP精品文档

相关文档