#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
最新资源
- 三相可控整流电路设计与仿真文档:涵盖主电路设计、参数计算及元件选择,三相可控整流电路的设计与仿真,带文档,有需要的直接,文档中有可控主电路设计及参数计算,计算整流电压器参数,选择整流元件的额定等
- PowerDesigner 16.7 64位破jie解 dll文件
- "西门子S7-200与组态王仿真技术:电梯系统六层运行原理图与程序送报研究",西门子s7-200和组态王仿真,需与实物接线 两部电梯六层 电梯仿真 送报告 原理图 程序 ,西门子S7-200;组态王
- 掌讯车机SD8227 新UI车速版-1024x600 版本6.6 ROM 带root全套资料
- 永磁同步电机矢量控制Matlab仿真:双闭环与前馈补偿下的波形表现优秀,永磁同步电机矢量控制Marlab仿真(采用双闭环以及前馈补偿的控制方式)波形完好 ,核心关键词:永磁同步电机;矢量控制;Mar
- 基于SMIC18EE工艺的24位高精度Sigma Delta ADC模拟电路设计:学习架构与电路搭建指南,sigma delta ADC 模拟ic设计 24位高精度sigma delta ADC 使用
- 马原期末复习 选择题知识点
- 粉煤灰加固土研究现状综述.pdf
- 高海拔输油管道气保护药芯焊丝半自动焊工艺研究与应用.pdf
- 非常规油气储层孔隙结构研究方法及评价参数综述.pdf
- 高难山地测量工序施工行进线路规划及应用探讨.pdf
- 混凝土板柱节点弯曲裂缝截面冲切承载力验算方法研究.pdf
- 高应力下岩石损伤破裂机制研究进展.pdf
- 基于ResNet-ViT和注意力机制的车道线检测方法.pdf
- 基于ROC分析及样本熵的轴承故障检测.pdf
- 基于BERT的机构名命名实体细粒度实体识别研究.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈