【c++】[自动生成真值表/主析取范式/主合取范式的计算器]

关于自动生成真值表/主析取范式/主合取范式的计算器

我用c++写了一个,需要的自取,如果好用请点赞

链接:https://pan.baidu.com/s/1Ji1zPDtjAc6-TDxovEzMVw 密码:8jmv

源码在下面,写了一整天,转的麻烦标明出处

————————————————

使用效果截图

【c++】[自动生成真值表/主析取范式/主合取范式的计算器]_第1张图片

原创源码:

//自动生成真值表 
//varchar变长字符数组类型
#include
#include
#include
#include
#include
using namespace std;
int Getlength(char* start);//用于测量字符数组中的有效长度 
int Copyalpha(char *a,char* b);//用于将a字符数组中字母复制到b数组中并存储 
bool compare(char a,char b);//用于和sort函数搭配使得函数的排序顺序变为由大到小 
void testprint(char* start);//用于测试其他函数工作是否正常
void printheadline(char* b,int numbersofalpha,char* a);
void simplify(char* start);//用于将已经得到的真值表进行化简 
char trans(int);//用于将整数转化为对应的字符 
//用于打印真值表的首行 
//参数为a、b数组和b数组中的有效字母的个数 
void translate(int len,char* list);//用于解释已经储存的主析取和主合取的范式(数字编码转字符编码) 
int dothemathandprintandstorage(char* a,char* b,char* result,int* truetable,int times);
//用于将每行的真值表自动生成
//并将计算结果(0/1)返回 
//参数的接口有
/* 
	原来的逻辑语句储存数组a
	储存有效字母的字符数组(按照升序排列)b
	用于储存每一次真值表的暂存数组truetable
	记录是第几行的参数times 
*/ 
int zxq[1050000];
int zhq[1050000];//最大可以承受20个不同变量的运算 
int main(){
	char a[100],b[100];
	for(int i=0;i<1050000;i++){
		zxq[i]=zhq[i]=-1;
	}	
	cout<<"  ____________________________"<>a;  
	cout<='a')&&(a[i]<='z')||(a[i]>='A')&&(a[i]<='Z')){
			pd=0;
			for(int j=0;jb[j]){
				temp=b[i];b[i]=b[j];b[j]=temp;
			}
		}
	}
	return endposition;
}
void testprint(char* start){
	char *p=start;
	while(*p!='\0'){
		cout<<*p;
		p++;
	}
	p=NULL; 
	start=NULL; 
	cout<0){
		truetable[position]=temptimes%2;
		position++;
		temptimes/=2;
	} 
	int temp=0,exlimit=0;
	int realtable[lenofalpha];
	for(int i=0;i

 

你可能感兴趣的:(离散数学)