计算逻辑表达式的值

计算逻辑表达式的值

ID:25414608

大小:65.50 KB

页数:17页

时间:2018-11-20

计算逻辑表达式的值_第1页
计算逻辑表达式的值_第2页
计算逻辑表达式的值_第3页
计算逻辑表达式的值_第4页
计算逻辑表达式的值_第5页
资源描述:

《计算逻辑表达式的值》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实习报告题目:计算逻辑表达式的值 实习时间:2007.6 实习者:086052-18王顺云1.需求分析(1)要求将一个逻辑运算表达式转换为二叉树结果,然后利用二叉树的后序遍历,    求解表达式的值。(2)表达式的值由用户输入,以t代表true,f代表false,最终计算的结果为true    或false。(3)程序以人机对话的方式执行。(4)测试数据:表达式为(A&&!B)

2、

3、(!A&&C)

4、

5、!C              变量值为:A=TRUE  B=FALSE C=FALSE2.设计2.1设计思想  (1)存储结构   在程序中,先后使用了顺序表、二叉树的存储结构。  

6、(2)主要算法的基本思想   A.用一个字符数组来存储逻辑表达式,然后利用堆栈将逻辑表达式的中缀形式转化为后       缀形式,并将后缀形式存储到队列中。   B.通过堆栈,将队列中的后缀表达式转化为一颗二叉树。   C.用户输入表达式中变量的值,将变量的值保存入一个线性表中,通过二叉树的后序遍      历与保存用变量值的线性表的结合,将结果计算出来,并存储到根结点中,然后就在     屏幕打印最终结果。2.2设计表示法  (1)过程或函数调用关系图       (2)基于数据结构的操作组         本次实习中用到了数组、堆栈、队列、二叉树等,基本基本上所有的函数都是基

7、        于数据结构的操作。    (3)过程或函数接口规格说明     /*将一个变量插入到堆栈中备用,如果插入前变量已经存在,则不插入,否则插入*/     voidappendvar(datatypex,vartypevars[])     /*处理表达式中的变量及变量值--根据变量,取出变量的值*/     datatypegetvalue(datatypex,vartypevars[])     voidinitializequeue(queuetype*q)/*队列的初始化*/     intappendqueue(queuetype*q,datatypex)/

8、*进队*/     datatypedeletequeue(queuetype*q)/*出队*/     voidinitializestack(stacktype*s)/*堆栈的初始化*/     intinsertstack(stacktype*s,datatypex)/*进栈*/     datatypedeletestack(stacktype*s)/*出栈*/     datatypegettopstack(stacktype*s)/*取栈顶元素*/     datatypepri(datatypex1,datatypex2)/*优先级比较*/     intpostf

9、ix(stacktype*s,datatype*expression,queuetype*q)/*中缀转化为后缀*/     intinitializetree(btreetype**bt)/*二叉树的初始化*/     intcreatebtree(queuetype*q)/*构造二叉树*/     datatypelist(btreetype*b)/*树的后序遍历*/2.3实现注释用户输入变量的是值时,只能输入t或者是f,来代表true或者是false。如果需要使用不同的表达式,只需要对程序进行简单的修改,即让用会自己来输入表达式。如果是用户自己输入表达式,那么表达式的长度不

10、能超过20个字符。用户手册(1)本程序在DOS环境下运行,文件名为true.exe(2)运行时,提示信息如下:    Theexpressionis具体表达式    Inputthet(True)orf(False)onebyone:    A=用户输入的值    ……    Theresultis:计算的结果,要么是true,要么是false。4.测试结果 A=t,B=f,C=f 结果为true A=t,B=t,C=t 结果为false5.源程序清单True.c#include#include#include#include#defineMAXNUM20#defineNIL0t

11、ypedefchardatatype;typedefstruct/*定义堆栈类型*/{ datatypestack[MAXNUM]; inttop;}stacktype;typedefstruct/*定义队列类型*/{ datatypequeue[MAXNUM]; inthead; intlast;}queuetype;typedefstructbtree/*定义二叉树类型*/{ datatypedata; structbtree*lchild; structbtree*rchi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。