#include<iostream>
#include<conio.h>
using namespace std;
char name[4]={'A','B','C','D'};
int f[20][4];
void var_3()
{
int ch,t,item=0,ddd,ii;
bool result[8],a[3],tempb;
cout<<"F(A,B,C)=";
do
{
if(item>0)cout<<"+";
ddd=0;
t=0;
do
{
ch=getch();
switch(ch)
{
case 89:
case 121:
cout<<name[t];
f[item][t]=1;
break;
case 78:
case 110:
cout<<name[t]<<"'";
f[item][t]=0;
break;
case 68:
case 100:
f[item][t]=2;
break;
default:
continue;
}
ddd+=f[item][t];
t++;
}while(t<3);
item++;
}while(ddd!=6);
item--;
for(int i=0;i<8;i++)
{
result[i]=false;
ii=i;
for(int j=2;j>=0;j--)
{
a[j]=ii%2;
ii/=2;
}
for(int j=0;j<item;j++)
{
tempb=1;
for(int k=0;k<3;k++)
{
if(f[j][k]==0)tempb=tempb&&(!a[k]);
else if(f[j][k]==1)tempb=tempb&&a[k];
}
result[i]=result[i]||tempb;
}
}
cout<<endl<<"卡诺图如下:"<<endl;
cout<<"A->"<<" 0 1"<<endl<<"BC"<<endl;
cout<<"00 "<<result[0]<<" "<<result[4]<<endl;
cout<<"01 "<<result[1]<<" "<<result[5]<<endl;
cout<<"11 "<<result[3]<<" "<<result[7]<<endl;
cout<<"10 "<<result[2]<<" "<<result[6]<<endl;
}
void var_4()
{
int ch,t,item=0,dddd,ii;
bool result[16],a[4],tempb;
cout<<"F(A,B,C,D)=";
do
{
if(item>0)cout<<"+";
dddd=0;
t=0;
do
{
ch=getch();
switch(ch)
{
case 121:
case 89:
cout<<name[t];
f[item][t]=1;
break;
case 110:
case 78:
cout<<name[t]<<"'";
f[item][t]=0;
break;
case 100:
case 68:
f[item][t]=2;
break;
default:
continue;
}
dddd+=f[item][t];
t++;
}while(t<4);
item++;
}while(dddd!=8);
item--;
for(int i=0;i<16;i++)
{
result[i]=false;
ii=i;
for(int j=3;j>=0;j--)
{
a[j]=ii%2;
ii/=2;
}
for(int j=0;j<item;j++)
{
tempb=1;
for(int k=0;k<4;k++)
{
if(f[j][k]==0)tempb=tempb&&(!a[k]);
else if(f[j][k]==1)tempb=tempb&&a[k];
}
result[i]=result[i]||tempb;
}
}
cout<<endl<<"卡诺图如下:"<<endl;
cout<<"CD->"<<" 00 01 11 10"<<endl;
cout<<"AB"<<endl;
cout<<"00 "<<result[0]<<" "<<result[1]<<" "<<result[3]<<" "<<result[2]<<endl;
cout<<"01 "<<result[4]<<" "<<result[5]<<" "<<result[7]<<" "<<result[6]<<endl;
cout<<"11 "<<result[12]<<" "<<result[13]<<" "<<result[15]<<" "<<result[14]<<endl;
cout<<"10 "<<result[8]<<" "<<result[9]<<" "<<result[11]<<" "<<result[10]<<endl;
}
void main()
{
int choice;
cout<<"变量名分别为A,B,C,D;依次输入各个最小项,如果最小项中含有这个变量,按y;含有这个变量的反,按n;不含这个变量,按d"<<endl;
cout<<"例如要输入BC'D,则连按dyny。全部按d表示结束输入"<<endl;
CHOOSE:
cout<<"现在选择3变量还是4变量的卡诺图,请按3或4:"<<endl;
choice=getch();
if(choice==51)var_3();
if(choice==52)var_4();
goto CHOOSE;
}
业余草
- 粉丝: 1w+
- 资源: 970
最新资源
- 中国2025年水资源预测与优化分配策略的研究与应用
- CMMI全新体系简介及软件工作标准流程.docx
- DELPHI数据库程序设计安排.docx
- C高级编程试验基础指导书.docx
- DSP原理与应用练习题+参考答案-通信-广工.docx
- excel试题及答案.docx
- excel2007常用快捷键(完全版).docx
- GPRS接口标准流程详细分析.docx
- html+css网页设计复习题(可编辑修改word版).docx
- HPInkTank310扫描软件基本使用方法(可编辑修改word版).docx
- gpt分区下安装windows7(可编辑修改word版).docx
- I2S接口规范(可编辑修改word版).docx
- 中国水资源危机预测与管理策略建立-灰度模型与线性回归模型的应用
- 中国水资源短缺风险评估与应对策略-基于多目标优化模型
- 专题 反比例函数中k的几何意义.pdf
- 基于双层神经网络模型预测全球空气质量变化
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈