
离散数学实验三用化简命题逻辑公式的方法设计一个表决开关电路.doc
5页离散数学 实验三 用化简命题逻辑公式的方法设计一个表决开关电路 - 教育文库 离散数学实验报告专业班级: 姓名: 学号: 实验成绩: 1.【实验题目】 命题逻辑(3) 2.【实验目的】 加深对五个基本联结词(否定、合取、析取、条件、双条件)的理解、掌握利用基本等价公式化简公式的方法 3.【实验内容】 用化简命题逻辑公式的方法设计一个表决开关电路 4. 【实验要求】 通过以下界面提示实现相应逻辑运算,给出具体逻辑值 **************************************************************** 请输入5位董事(分别用A、B、C、D、E表示)的表决值(1或0): A董事表决值(1或0): B董事表决值(1或0): C董事表决值(1或0): D董事表决值(1或0): E董事表决值(1或0): 出结果/继续/结束(y/c/exit): **************************************************************** 5. 【算法描述】 ① 某公司董事会由5个董事组成,公司要对某项决策进行投票表决,只要半数(3位董事)以上都同意(用1表示同意,用0表示不同意)决策通过,否则不通过。
试写出5位董事表决的命题公式(提示:列出表决开关电路真值表,从真值表得出5人表决开关电路的主合取公式(或主析取公式),将公式化简成尽可能含五个基本联结词最少的等价公式) ② 上面公式中的每一个联结词是一个开关元件,将它们定义成C语言中的函数 ③ 输入5人表决值(同意为1,不同意为0),调用上面定义的函数,将5人表决开关电路真值表的等价公式写成一个函数表达式 ④ 输出函数表达式的结果,如果是1,则表明表决通过,否则表决不通过 6. 【源程序(带注释)】 #include #include #include using namespace std; int main() { char a[100],b[100],c[100],d[100],e[100]; //定义5个字符型数组,用来储存ABCDE5个董事的表决值 char f[100]; //f数组为接收出结果/继续/结束的字符 void print(); //声明打****的函数 for(;;) { print(); cout>a; while(strcmp(a,\&& strcmp(a,\利用strcmp判断字符串,排除其他错误 { print(); cout>a; } print(); cout>b; while(strcmp(b,\ { print(); cout>b; } print(); cout>c; while(strcmp(c,\ { print(); cout>c; } print(); cout>d; while(strcmp(d,\ { print(); cout>d; } print(); cout>e; while(strcmp(e,\ { print(); cout>e; } print(); cout>f; if(strcmp(f,\{ if((a[0]+b[0]+c[0]+d[0]+e[0])>242) {print();cout<<\表决通过!\\n\利用ASC II码判断表决值是否大于242(10进制为3) else { print(); cout <<\表决不通过。
\\n\ print(); } } else if(strcmp(f,\ { break; } else if(strcmp(f,\ { exit(0); } else { print(); cout<<\输入有误,请重新输入!\\n\ print(); } } } system(\return 0; } void print() { cout<<\} 7.【实验结果与分析总结(含运行结果截图)】 主界面: 功能演算: 第 页 共 页。












