重言式判别 重言式判别源码及课程设计 c语言版

重言式的判别 题目:

一个逻辑表达式如果对于其変元的任一种取值都为真,则称为重言式;反之,如果对于其变元的任一种取值都为假,则称为矛盾式;然而,更多的情况下,既非重言式,也非矛盾式。试写一程序,通过真值表判别一个逻辑表达式属于上述哪一类。

一、需求分析

1、逻辑表达式从终端输入,长度不超过一行。 2、逻辑运算符包括“|”“&”“~”表示或 与 非。运算符优先程度递增,但是可由括号改变。

3、逻辑变元为大写字母表达式中任何地方都可以含有多个空格符。

4、运用自底向上的算符优先法 5、重言式显示“true forever”;矛盾式显示“false forever”; 否则显示“satisfactible”。

二、概要设计

为实现上述需求需要用到自底向上的算符优先法,和自顶向下分割,先序遍历建立二叉树的方法。 自底向上的算符优先法:

{

char OPTRCHART[7][7]= ' ','|','&','~','(',')','#', '|','>','','>',

'&','>','>','','>',

'~','>','>','>','','>',

'(','',

')','>','>','>','>','>','>',

'#','

};

switch(cmp(GetTop(&OPTR)->data,*p)) {

case '': break; }/*switch*/ 建立二叉树: typedef struct BiTNode { struct BiTNode * Lchild; struct BiTNode * Rchild; ElemType data; }BiTNode , *BiTree;

栈中的操作:

typedef struct Node

{

BiTree * base;

BiTree *top;

int stacksize;

}SqStack;

入栈操作及出栈销毁栈的操作:

int InitStack(SqStack * stack)

{

stack->base=(BiTree*)malloc(STACK_INIT_SIZE*sizeof(BiTree)); if(!stack->base)

exit(OVERFLOW);

stack->top=stack->base;

stack->stacksize=STACK_INIT_SIZE;

return OK;

}

BiTree GetTop(SqStack * stack)

{

if(stack->top==stack->base)

return NULL;

return *(stack->top-1);

}

int Push(SqStack * stack,BiTree Bitnode)

{

if(stack->top-stack->base>=stack->stacksize)

{

stack->base=(BiTree*)realloc(stack->base,(stack->stacksize+STACKINCREAMENT)*sizeof(BiTree));

if(!stack->base)

exit(OVERFLOW);

stack->top=stack->base+stack->stacksize;

stack->stacksize+=STACKINCREAMENT;

}

*(stack->top)=Bitnode;

stack->top++;

return OK;

}

BiTree Pop(SqStack * stack)

{

if(stack->top==stack->base)

return ERROR;

return *(--stack->top);

}

int DestroyStack (SqStack * stack)

{

free(stack->base);

return OK;

}

三、详细设计

详细程序如下:

#include&lt

重言式判别c语言中文网,重言式判别 重言式判别源码及课程设计 c语言版.doc相关推荐

  1. c语言利用指针函数等完成学生成绩管理系统,课程设计C语言可视化程序学生成绩管理系统...

    <课程设计C语言可视化程序学生成绩管理系统>由会员分享,可在线阅读,更多相关<课程设计C语言可视化程序学生成绩管理系统(37页珍藏版)>请在人人文库网上搜索. 1.C语言可视化 ...

  2. dsp课程设计c语言源码,DSP课程设计-基于C语言实现256点的FFT精选.pdf

    DSP课程设计-基于C语言实现256点的FFT精选 XX 大学 J1111111 UNIVERSITY DSP 课 程 设 计 基于CCS 的FFT 算法的C 语言实现和验证 学院名称: 专业班级: ...

  3. c语言 一元多项式乘法,[内附完整源码和文档] 基于C语言实现的一元多项式的计算...

    一.概述 通过C语言使用链式存储结构实现一元多项式加法.减法和乘法的运算.按指数降序排列. 二.需求分析 建立一元多项式并按照指数降序排列输出多项式,将一元多项式输入并存储在内存中,能够完成两个多项式 ...

  4. 单片机c语言24小时的计时程序框图,电子时钟单片机课程设计(WIT)要点解析.doc

    电气信息学院 单片机原理及应用课程设计报告 课题名称 电子时钟的设计 专业班级 电气自动化 学 号 学生姓名 指导教师 评 分 2014年12月22日至12月28日答辩记录 1.例举设计过程中遇到的问 ...

  5. python在abaqus中的应用代码下载_Python-(source-code)-in--Abaqus Python语言在Abaqus中的应用(源码) - 下载 - 搜珍网...

    Python语言在Abaqus中的应用 (源码)/ Python语言在Abaqus中的应用 (源码)/Python语言在Abaqus中的应用 (源码)/ Python语言在Abaqus中的应用 (源码 ...

  6. C语言Kruskal 算法 (MST)(附完整源码)

    C语言Kruskal 算法 MST的算法 C语言Kruskal 算法 MST算法完整源码(定义,实现,main函数测试) C语言Kruskal 算法 MST算法完整源码(定义,实现,main函数测试) ...

  7. C语言线性插值lerp算法(附完整源码)

    求二个数的最大公约数和最小公倍数 实现以下接口 C语言实现线性插值lerp算法完整源码(定义,实现,main函数测试) 实现以下接口 float lerp(float k0, float k1, fl ...

  8. 中英翻译机c语言实验报告引言,课程设计--C语言关键字中英翻译机.doc

    课程设计--C语言关键字中英翻译机.doc 课 程 设 计 报 告学院.系 吉林大学珠海学院计算机科学与技术系专业名称 计算机科学与技术课程设计科目 C 语言程序课程设计所在班级 4 班学生学号 04 ...

  9. c语言课设宿舍管理程序,C语言程序课程设计宿舍管理软件.doc

    C语言程序课程设计宿舍管理软件.doc 课程设计(论文) 题 目 名 称 宿舍管理软件 课 程 名 称 C语言程序课程设计 学 生 姓 名 学 号 系 .专 业 信息工程系.信息大类 指 导 教 师 ...

最新文章

  1. c++中的基本知识点
  2. 视频播放器的极致体验优化
  3. 629. K个逆序对数组
  4. LINQ - 對付 SQL Injection 的 免費補洞策略 (转)
  5. querywrapper 时间区间查询_雅思官方:关于增设用于英国签证及移民的雅思考试考点的通知!附20192020雅思考试时间安排...
  6. mac android 证书生成工具,MAC系统下,生成安卓证书的命令
  7. 我就随便写写,你也随便看看。
  8. 计算机d盘的权限怎么解决,D盘没权限,不能删除更改任何文件解决方法
  9. CentOS node,npm,cnpm 环境部署
  10. [转]Java jdbc数据库连接池总结!
  11. 设置将Maven的jar包发布到lib
  12. MyEclipse安装配置maven插件
  13. Python3爬取妹子图——爬虫下载网络图片
  14. win10快捷键及浏览器快捷键
  15. 后场村的加班别有不同
  16. vscode复制代码到wps中怎么不带黑色背景
  17. CDH踩坑记录之:熵不足
  18. operators库
  19. android ppt素材,华为ppt素材库
  20. 凸优化、轨迹优化、最优控制

热门文章

  1. 【项目管理】git和码云的使用
  2. ASP.NET Core远程调试
  3. 开源纯C#工控网关+组态软件(八)表达式编译器
  4. Visual Studio 和 Team Foundation Server 产品维护及周期策略
  5. .NET Core全新路线图
  6. Vue如何在data中正确引入图片路径
  7. java java 大端_Java 大小端转换
  8. Python3.6学习笔记(四)
  9. linux c之管道的介绍、创建关闭和简单读写(父进程向子进程写入数据)
  10. Android之如何使用junit