离散数学大作业任务书 |
您所在的位置:网站首页 › 函数值表 › 离散数学大作业任务书 |
目 录 实际的练习题目、系统的总功能和各子模块的功能………………………………………………………………………………11.1题目及问题描述………………………………………………………………1 1.2功能概述………………………………………………………………………1 1.3技术选型………………………………………………………………………1 1.4代码实现………………………………………………………………………2 主要算法简述…………………………………………………………9程序流程图……………………………………………………………103.1功能模块设计…………………………………………………………………10 3.2关键方法流程图………………………………………………………………11 3.3界面设计………………………………………………………………………11 3.4系统测试………………………………………………………………………11 总结报告………………………………………………………………16 实际的练习题目、系统的总功能和各子模块的功能 题目及问题描述(1)求任意一个命题公式的真值表。 (2)利用真值表求任意一个命题公式的主范式。 (3)判断两个命题公式是否等值。 功能概述1. 求任意一个命题公式的真值表:首先通过调用init函数输入命题公式,然后根据命题公式中包含的所有变量,生成该命题公式的真值表,即计算所有可能情况下命题公式的结果,并输出其真值表。 2. 利用真值表求任意一个命题公式的主范式:根据真值表中为1或0的情况,计算得出该命题公式的主合取范式和主析取范式,并分别输出。 3. 判断两个命题公式是否等值:输入两个命题公式,分别计算它们的真值表,并比较它们的真值表是否相等,最后输出结果。 技术选型操作系统 Windows 11 编程语言(及版本) C++ 编辑软件/IDE VS 代码实现 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include using namespace std; typedef struct optrstack { char oper[30]; int loc; }OPStack; void initop(OPStack& op) { int i; op.loc = 0; for (i = 0; i < 30; i++)op.oper[i] = '\0'; } void push(OPStack& op, char c) { op.oper[op.loc++] = c; } char pop(OPStack& op) { return(op.oper[--op.loc]); } typedef struct opndstack { int oper[60]; int loc; }OPndStack; void initopnd(OPndStack& op) { int i; op.loc = 0; for (i = 0; i < 30; i++)op.oper[i] = '\0'; } void pushopnd(OPndStack& op, int c) { op.oper[op.loc++] = c; } int popopnd(OPndStack& op) { return(op.oper[--op.loc]); } void init(char s[]) { int t; printf("\n请输入任意一个命题公式(命题变元为一个字符)\n"); printf("非、析取、合取、条件、双条件词分别用符号!、|、&、-、+表示\n"); cin>>s; t = strlen(s); s[t] = '@'; s[t + 1] = '\0'; } int is_optr(char c) { char optr_list[] = "+-|&!()@"; for (int i = 0; i < (int)strlen(optr_list); i++) if (c == optr_list[i])return 1; return 0; } char first(char op1, char op2) { char tab[8][9] = { ">>>>", ">>>>>>", ">", " |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |