- 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
您可能关注的文档
最近下载
- 2025 AI智能体的实践应用:评估与治理基础框架白皮书(中文).docx
- 2025-2026学年高一语文下学期开学摸底考试试题及答案详解(含范文参考).docx VIP
- 混凝土排水管道基础及接口 04S516.pdf VIP
- 基于LABVIEW的虚拟频谱分析仪设计.pdf VIP
- 潍柴WP7NG系列天然气发动机维修手册.PDF
- 数据结构期末复习题.docx VIP
- 2026年苏州健雄职业技术学院单招职业技能考试参考题库及答案详解.docx VIP
- 清洁能源领域:氢能企业的组织架构与职责.docx VIP
- T∕SIA 065-2025 智能体行为安全要求.pdf VIP
- 22G101三维图集合集.pdf VIP
原创力文档

文档评论(0)