📄 3nencode.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 + -