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

📄 3nencode.cpp

📁 this program has an encoding techniques such as nrz i ,manchestar
💻 CPP
字号:

#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
#include<graphics.h>
#include<string.h>
long conv(int u)
{
	long b=0;
	int i=0;
	while(u)
	{
	       b+=(u%2)*pow(10,i++);
	       u/=2;
	}
       return b;
}


void main()
{
char a[2],ch,c[100];
int a1,a2,len,i,string,k,j,flag1,flag2;
int n,x1,x2,ymax1,f1,ff1,x;
 int gdriver = EGA, gmode=EGAHI, errorcode;
long int b;
char d[1000],e[100];
clrscr();
initgraph(&gdriver, &gmode, "c:\\tc\\bgi");
do
{
  printf("\nENTER UR NAME:- ");
  scanf("%s",c);
  cleardevice();

  n=strlen(c);
  for(i=0;i<n;i++)
  {
   b=conv(c[i]);
   sprintf(a,"%08ld",b);
    len=strlen(a);
//   k=0;
    k=len-4;
   for(j=i*4;j<(i*4)+4;j++)
   {
     d[j]=a[k];
     k++;
   }
  }
  d[j]='\0';
  line(20,10,20,getmaxy());
  setcolor(WHITE);
  for(i=40;i<getmaxx();i=i+20)
  {
    setlinestyle(DOTTED_LINE, 1, 1);
    line(i,5,i,getmaxy());
  }
  n=strlen(d);
  j=0;

  for(i=0,x=30;i<n;i++,x=x+20)
  {  sprintf(e,"%c",d[i]);
    outtextxy(x,10,e);
  }



printf("\nTHE BIT SEQUENCE IS=%s",d);    //d has the bits gng to encode
getch();
cleardevice();

line(40,10,40,getmaxy());
x1=20;
x2=x1+20;
ymax1=getmaxy()/2;
j=0;

for(i=40;i<=getmaxx();i=i+20)
{
setlinestyle(DOTTED_LINE,1,1);
line(i,10,i,getmaxx());
}
n=strlen(d);
  for(i=0,x=45;i<n;i++,x=x+20)
  {
    sprintf(e,"%c",d[i]);
    outtextxy(x,5,e);
  }

//*************************NRZ I**************************
setlinestyle(SOLID_LINE,1,1);
setcolor(RED);
f1=1;
outtextxy (x1-20,ymax1-120,"NRZ-i");
moveto(x1+20,ymax1-120);
while(d[j]!='\0')
{
if((d[j]=='0' && ff1==1)||(d[j]=='1' && ff1==0))
{
lineto(x1+20,ymax1-120);
moveto(x1+20,ymax1-120);
lineto(x2+20,ymax1-120);
moveto(x2+20,ymax1-120);
ff1=1;
}
else
{
ff1=0;
lineto(x1+20,ymax1-140);
moveto(x1+20,ymax1-140);
lineto(x2+20,ymax1-140);
moveto(x2+20,ymax1-140);

}

x1=x1+20;
x2=x2+20;
j++;
}


//**************************DIFFERENTIAL MANCHEASTAR************


j=0;
x1=20;
x2=x1+20;
outtextxy (x1-20,ymax1-100,"DIFFERENTIAL MANCHESTAR");
setcolor(CYAN);
flag1=0;
flag2=0;
setlinestyle(SOLID_LINE,1,1);

while(d[j]!='\0')
{
if(d[j]=='0')
{
if(flag1!=1)
{
line(x1+20,ymax1-60,x1+20,ymax1-80);
line(x1+20,ymax1-80,x2+10,ymax1-80);
line(x2+10,ymax1-80,x2+10,ymax1-60);
line(x2+10,ymax1-60,x2+20,ymax1-60);
flag2=0;
}
else
{
line(x1+20,ymax1-80,x2+10,ymax1-80);
line(x2+10,ymax1-80,x2+10,ymax1-60);
line(x2+10,ymax1-60,x2+20,ymax1-60);
flag1=0;
flag2=0;
}
}
else
{
if(flag2!=1 )
{
line(x1+20,ymax1-60,x2+10,ymax1-60);
line(x2+10,ymax1-60,x2+10,ymax1-80);
line(x2+10,ymax1-80,x2+20,ymax1-80);
}
else
{
line(x1+20,ymax1-80,x2+10,ymax1-80);
line(x2+10,ymax1-80,x2+10,ymax1-60);
line(x2+10,ymax1-60,x2+20,ymax1-60);
}
flag1=1;
flag2=1;

}


x1=x1+20;
x2=x2+20;
j++;
}

//***************************MANCHESTAR**************
j=0;
x1=20;
x2=x1+20;
outtextxy (x1-20,ymax1-50,"MANCHESTAR");
setcolor(CYAN);
flag1=0;
flag2=0;
while(d[j]!='\0')
{
if(d[j]=='0')
{
line(x1+20,ymax1-40,x2+10,ymax1-40);
line(x2+10,ymax1-40,x2+10,ymax1-20);
line(x2+10,ymax1-20,x2+20,ymax1-20);
if(flag1==1)
  {
   line(x1+20,ymax1-20,x1+20,ymax1-40);
  }
  flag1=1;
  flag2=0;
}
else
{
line(x1+20,ymax1-20,x2+10,ymax1-20);
line(x2+10,ymax1-20,x2+10,ymax1-40);
line(x2+10,ymax1-40,x2+20,ymax1-40);
if(flag2==1)
  {
  line( x1+20,ymax1-40,x1+20,ymax1-20);
  }
  flag2=1;
  flag1=0;
}


x1=x1+20;
x2=x2+20;
j++;
}

//****************************NRZ L*********************
j=0;
x1=20;
x2=x1+20;
outtextxy (x1-20,ymax1,"NRZ-L");
moveto(x1+20,ymax1);
setcolor(CYAN);
while(d[j]!='\0')
{
if(d[j]=='0')
{
//line(x1+20,ymax1,x2+20,ymax1);
lineto(x1+20,ymax1);
moveto(x1+20,ymax1);
lineto(x2+20,ymax1);
moveto(x2+20,ymax1);
}
else
{
//line(x1+20,ymax1+20,x2+20,ymax1+20);
lineto(x1+20,ymax1+20);
moveto(x1+20,ymax1+20);
lineto(x2+20,ymax1+20);
moveto(x2+20,ymax1+20);
}

x1=x1+20;
x2=x2+20;
j++;
}
/////////***************BIPOLAR*************
j=0;
x1=20;
x2=x1+20;

outtextxy (x1-20,ymax1+50,"BIPOLAR");
setcolor(GREEN);
moveto(x1+20,ymax1+60);
while(d[j]!='\0')
{
if(d[j]=='1')
{
if(f1==0)

{
//line(x1+20,ymax1+40,x2+20,ymax1+40);
lineto(x1+20,ymax1+40);
moveto(x1+20,ymax1+40);
lineto(x2+20,ymax1+40);
moveto(x2+20,ymax1+40);

f1=1;
}
else
{
//line(x1+20,ymax1+80,x2+20,ymax1+80);
lineto(x1+20,ymax1+80);
moveto(x1+20,ymax1+80);
lineto(x2+20,ymax1+80);
moveto(x2+20,ymax1+80);
f1=0;
}
}
else
{
//line(x1+20,ymax1+60,x2+20,ymax1+60);
lineto(x1+20,ymax1+60);
moveto(x1+20,ymax1+60);
lineto(x2+20,ymax1+60);
moveto(x2+20,ymax1+60);
}

x1=x1+20;
x2=x2+20;
j++;
}
      ///**************pseudo************
j=0;
x1=20;
x2=x1+20;
outtextxy (x1-20,ymax1+110,"PSEUDO");

setcolor(RED);
moveto(x1+20,ymax1+120);
while(d[j]!='\0')
{
if(d[j]=='0')
{
if(f1==0)

{
lineto(x1+20,ymax1+100);
moveto(x1+20,ymax1+100);
lineto(x2+20,ymax1+100);
moveto(x2+20,ymax1+100);

f1=1;
}
else
{
lineto(x1+20,ymax1+140);
moveto(x1+20,ymax1+140);
lineto(x2+20,ymax1+140);
moveto(x2+20,ymax1+140);
f1=0;
}
}
else
{
lineto(x1+20,ymax1+120);
moveto(x1+20,ymax1+120);
lineto(x2+20,ymax1+120);
moveto(x2+20,ymax1+120);
}

x1=x1+20;
x2=x2+20;
j++;
}

getch();
cleardevice();

printf("\n press 'y' key to continue");
ch=getch();
}while(ch=='y');
closegraph();
}

⌨️ 快捷键说明

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