⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linear.cpp

📁 自己编的一个线性码的类。可以添加到需要的工程中。
💻 CPP
字号:
#include "StdAfx.h"
#include ".\linear.h"
#include<iostream>
using namespace std;


Linear::Linear(void)
{
	num=NULL;
	m=0;
	n=0;
}

Linear::~Linear(void)
{
	delete[]num;
}


Linear::Linear(int **m1,int a,int b)
{
	m=a;
	n=b;
	Inital(m1,m,n);
}
void Linear::Inital(int **m,int a, int b)
{
	int i,j;
	if(a!=0&&b!=0)
	{
		if(m==NULL)
		{
			num=NULL;
			return;
		}
		num=new (int*)[a];
		for(i=0;i<a;i++)
			num[i]=new int[b];
		if(num==NULL)
		{
			cerr<<"Error,Not sucessful allocation of memory!";
			exit(1);
		}
		for( i=0;i<a;i++)
			for( j=0;j<b;j++)
				num[i][j]=m[i][j];
	}
	else
		Linear();
}

bool Linear::Find(int *m1)
{
	if(m==NULL||num==NULL)
		return false;
	else{
		int i,j;
		for( i=0;i<m;i++)
			for(j=0;j<n;j++)
			if(num[i][j]==m1[i][j])
				continue;
			else
				break;
		if(j==n)
			return true;
		else
			return false;
	}
}

int *operator+(int *t1,int *t2)
{
	for(int i=0;i<n;i++)
		t1[i]+=t2[i];
	return t1;
}


bool Linear::IsLinear()
{
	int i,j;
	int *temp1,*temp2;
	for(i=0;i<m;i++)
	{
		temp1=num[i];
		for(j=i+1;j<m;j++)
	 {   
		 temp2=num[j];
		 if(Find(temp2+temp1)==false)
			 break;
	 }
	}

    if(j==m)
		return true;
	else{
		cout<<"Is Not Linear code!"<<endl;
		return false;
	}
}

int operator-(int *t1,int *t2)
{
	int i,j=0;
	for(i=0;i<n;i++)
		j+=(t1[i]-t2[i]+2)%2;
	return j;
}

int Linear::MinD()
{
	int i,j,min=n,temp=0;
	int *temp1,*temp2;
	for(i=0;i<m;i++)
	{
		temp1=num[i];
		for(j=i+1;j<m;j++)
		{
			temp2=num[j];
            temp=temp1-temp2;
			if(min>temp)
				min=temp;
		}
	}
	return min;
}


		


		 







⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -