GREEN UNIVERSITY OF BANGLADESH
Assignment
COURSE TITLE: Data Communication LAB
COURSE CODE: CSE 308
Date of performance : 09 – 04 – 2020
Date of submission : 02 – 06 – 2020
Submitted To
Mohammad Ehsan Shahmi Chowdhury
Lecturer
Department of CSE
Submitted By
Name: Mahmuda Akter
ID: 181002013
Section: 181_DD
Dept. : CSE
Assignment # 1(A):
#include<stdio.h>
#include<conio.h>
int add(int,int);
int com(int);
void checksum(int digi[],int n)
{
//checksum
int i,j,dl,dil;
int
data1[20],newdata[20]={},newdata1[20]={},comp[20],checksum[20],c
r[20]={};
printf("\nEnter The data length=");
scanf("%d",&dl);
printf("Enter the following data one by one: \n");
for(i=0;i<n;i++){
printf("%d",digi[i]);
if((i+1)%dl==0){
printf("\n");
}
}
for(j=1;j<=(n/dl);j++){
printf("\n Enter The Data %d : \n",j);
for(i=0; i<dl; i++)
scanf("%d",&data1[i]);
for(i=dl-1; i>=0; i--)
{
newdata[i]=add(data1[i],newdata[i]);
newdata1[i]=newdata[i];
}
for(i=dl-1; i>=0; i--)
{
newdata[i]=add(newdata1[i],cr[i]);
}
}
printf("\n\n New Data Is : ");
for(i=0; i<dl; i++)
{
printf("%d",newdata[i]);
}
printf("\n New Bit Stream Received From Sender : ");
printf("\n Checksum : ");
for(i=0; i<dl; i++)
{
checksum[i]=com(newdata[i]);
printf("%d",checksum[i]);
}
getch();
}
int main()
{
int n=7,k,i,j;
int roll[1000]={};
printf("Student ID using space:\n");
j=0;
do
{
scanf("%d",&n);
int a[10]= {};
for(i=0; n>0; i++)
{
a[i]=n%2;
n=n/2;
}
for(i=3; i>=0; i--)
{
roll[j]=a[i];
printf("%d",a[i]);
j++;
}
printf(" ");
}while(getchar()!='\n');
printf("\n\nDigital Bit Stream Number: ");
k=j;
for(i=0; i<k; i++)
{
printf("%d",roll[i]);
}
checksum(roll,k);
return 0;
}
int add(int x, int y)
{
int static carry=0;
if(x==1 && y==1 && carry==0)
{
carry=1;
return 0;
}
else if(x==1 && y==1 && carry==1)
{
carry=1;
return 1;
}
else if(x==1 && y==0 && carry==0)
{
carry=0;
return 1;
}
else if(x==1 && y==0 && carry==1)
{
carry=1;
return 0;
}
else if(x==0 && y==1 && carry==0)
{
carry=0;
return 1;
}
else if(x==0 && y==1 && carry==1)
{
carry=1;
return 0;
}
else if(x==0 && y==0 && carry==0)
{
carry=0;
return 0;
}
else
{
carry=0;
return 1;
}
}
int com(int a)
{
if(a==0)
return 1;
else
return 0;
}
Output:
Assignment # 1(B):
#include<stdio.h>
void TwoDprity(int digi[],int size)
{
int n,data[20][20],i,j,count=0;
printf("\n\nEnter the no. of Chanks: ");
scanf("%d",&n);
int s=(size/n);
int x=0;
for(i=0;i<n;i++){
for(j=0;j<s;j++){
data[i][j]=digi[x];
x++;
}
}
printf("Entered Date by Divide chanks Is:\n");
for(i=0;i<n;i++)
{
for(j=0;j<s;j++)
printf("%d ",data[i][j]);
printf("\n");
}
//Row Parity checking
for(i=0;i<n;i++){
for(j=0;j<s;j++){
if(data[i][j]==1){
count++;
}
if(count%2==0) data[i][s]=1;
else data[i][s]=0;
}
count=0;
}
//Data with row parity
printf("Data with row parity:\n");
for(i=0;i<n;i++)
{
for(j=0;j<=s;j++)
printf("%d ",data[i][j]);
printf("\n");
}
//Column Parity checking
for(i=0;i<=s;i++){
for(j=0;j<n;j++){
if(data[j][i]==1){
count++;
printf("%d",count);
}
if(count%2==0) data[n][i]=1;
else data[n][i]=0;
}
count=0;
}
//Data with column parity
printf("Data with column parity:\n");
for(i=0;i<=n;i++)
{
for(j=0;j<=s;j++)
printf("%d ",data[i][j]);
printf("\n");
}
printf("Data with parity:\n");
for(i=0;i<=n;i++)
{
for(j=0;j<=s;j++)
printf("%d ",data[i][j]);
printf(" ");
}
}
int main()
{
int n=7,k,i,j;
int roll[1000]={};
printf("Student ID using space:\n");
j=0;
do
{
scanf("%d",&n);
int a[10]= {};
for(i=0; n>0; i++)
{
a[i]=n%2;
n=n/2;
}
for(i=3; i>=0; i--)
{
roll[j]=a[i];
printf("%d",a[i]);
j++;
}
printf(" ");
}while(getchar()!='\n');
printf("\n\nDigital Bit stream number: ");
k=j;
for(i=0; i<k; i++)
{
printf("%d",roll[i]);
}
TwoDprity(roll,k);
return 0;
}
Output:
Assignment # 02:
#include<stdio.h>
void division(int temp[],int gen[],int n,int r)
{
for(int i=0; i<n; i++)
{
if (gen[0]==temp[i])
{
for(int j=0,k=i; j<r+1; j++,k++)
if(!(temp[k]^gen[j]))
temp[k]=0;
else
temp[k]=1;
}
}
}
int main()
{
int n,r,message[50],gen[50],temp[50];
printf("Enter the number of message bits : ");
scanf("%d",&n);
printf("Enter the number of generator bits : ");
scanf("%d",&r);
printf("Enter the generator : ");
for(int i=0; i<r; i++)
scanf("%d",&gen[i]);
r--;
printf("\nAt Receiver's End ");
printf("\nEnter the received message : ");
for(int i=0; i<n+r; i++)
scanf("%d",&message[i]);
for(int i=0; i<n+r; i++)
temp[i] = message[i];
division(temp,gen,n,r);
for(int i=0; i<r; i++)
{
if(temp[n+i])
{
printf("\nError detected in received message.");
return 0;
}
}
printf("No error in received Message.\nReceived Message :
");
for(int i=0; i<n; i++)
printf("%d ",message[i]);
return 0;
}
Output:
Assignment # 03:
#include<stdio.h>
#include<string.h>
int main()
{
char j[50],i[50]="";
int x,y,k,len,c=0;
printf("Enter data in binary form : ");
scanf("%s",&j);
len=strlen(j);
for(x=6,y=0;x<len-6;x++,y++)
{
if(j[x]=='0')
{
c++;
if(c==3)
{
i[y]=j[x]; x=x+1; c=0;
}
else
{
i[y]=j[x];
}
}
else
{
c=0; i[y]=j[x]; }
}
i[y]='\0';
printf("\nAfter De-stuffing:%s",i);
}
Output:
Assignment # 04:
#include<stdio.h>
int main()
{
int i=0,c=0,x=0,j;
char data[80],receiver[500],arr[500], escape[50] =
"iknowright";
printf("Character Stuffing.\n\n**SENDER PART**\n\nEnter Sender
Data: ");
scanf("%s",data);
printf("\nAfter Character Stuffing, Encrypted data is: \n");
for(i=0; i<strlen(data); i++)
{
if(data[i]=='a'){
arr[x++]='a';
for(j=0;j<strlen(escape);j++){
arr[x++]=escape[j];
}
}
else{
arr[x++]=data[i];
}
}
printf("\n%s",arr);
x=0;
int len=strlen(arr);
printf("\n\n**RECEIVER PART**\n\n");
printf("\nAfter Character DE-Stuffing, Original data is: ");
for(i=0; i<len; i++)
{
if(arr[i]=='a'){
receiver[x++]='a';
i=i+strlen(escape);
}
else{
receiver[x++]=arr[i];
}
}
printf("\n%s",receiver);
return 0;
}
Output: