离散数学 实验三 用化简命题逻辑公式的方法设计一个表决开关电路

2020-03-27 12:59

离散数学实验报告

专业班级: 姓名: 学号: 实验成绩: 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<<\请输入5位董事(分别用A、B、C、D、E表示)的表决值(1或0):\\n\\n\

cout<<\董事表决值(1或0):\\n\\tB董事表决值(1或0):\\n\\tC董事表决值(1或0):\\n\\tD董事表决值(1或0):\\n\\tE董事表决值(1或0):\

cout<<\出结果/继续/结束(y/c/exit):\\n\ print(); cout<<\请输入A董事表决值(1或0):\ cin>>a; while(strcmp(a,\&& strcmp(a,\利用strcmp判断字符串,排除其他错误

{

print(); cout<<\董事表决值输入有误,请重新输入!\\n\ print();

cout<<\请输入A董事表决值(1或0):\ cin>>a; } print();

cout<<\请输入B董事表决值(1或0):\ cin>>b; while(strcmp(b,\ {

print(); cout<<\董事表决值输入有误,请重新输入!\\n\ print();

cout<<\请输入B董事表决值(1或0):\ cin>>b;

} print(); cout<<\请输入C董事表决值(1或0):\ cin>>c; while(strcmp(c,\ {

print(); cout<<\董事表决值输入有误,请重新输入!\\n\ print();

cout<<\请输入C董事表决值(1或0):\ cin>>c; } print(); cout<<\请输入D董事表决值(1或0):\ cin>>d; while(strcmp(d,\ {

print(); cout<<\董事表决值输入有误,请重新输入!\\n\ print();

cout<<\请输入D董事表决值(1或0):\ cin>>d; } print(); cout<<\请输入E董事表决值(1或0):\ cin>>e; while(strcmp(e,\ {

print(); cout<<\董事表决值输入有误,请重新输入!\\n\ print();

cout<<\请输入E董事表决值(1或0):\ cin>>e; } print();

cout<<\您输入的董事会表决值为:\\n\

cout<<\董事表决值:\董事表决值:\董事表决值:\董事表决值:\董事表决值:\

print(); for(;;) {

cout<<\出结果/继续/结束(y/c/exit):\ cin>>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.【实验结果与分析总结(含运行结果截图)】

主界面:

功能演算:


离散数学 实验三 用化简命题逻辑公式的方法设计一个表决开关电路.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:电气识图习题2013

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: