The text below is selected, press Ctrl+C to copy to your clipboard. (⌘+C on Mac) No line numbers will be copied.
Guest
Q3
By Guest on 23rd November 2022 07:12:36 PM | Syntax: TEXT | Views: 6



New paste | Download | Show/Hide line no. | Copy text to clipboard
  1. #include<iostream>
  2. #include<conio.h>
  3. #include<cmath>
  4. #include<ctime>
  5. #include<stdlib.h>
  6. using namespace std;
  7. class Noise2{
  8.         public:
  9.                 int *arr;
  10.                 int f,m,x;
  11.                 Noise2();
  12.                 void correct_data(int);
  13.                 void acknow_lost(int);
  14.                 void data_lost(int);
  15.                 void time_delay(int);
  16.                 void resend(int);
  17.         void next_f(int);              
  18.                        
  19. };
  20. Noise2::Noise2()
  21. {
  22.         cout<<"Enter the number of frames : "<<endl;
  23.         cin>>f;
  24.         arr=new int[f];
  25.         cout<<"Enter the size of window : "<<endl;
  26.         cin>>m;
  27.         x=(pow(2,m))-1;
  28.         cout<<"No of frames sent at a time "<<x<<endl;
  29. }
  30. void Noise2::correct_data(int i)
  31. {
  32.                 cout<<"                                       Recieved frame f"<<i<<endl;
  33.                 getch();
  34.                 cout<<"                                       Sending Acknowledgement to sender"<<endl;
  35.                 getch();
  36.                 cout<<"Recieved Acknowlegdement from reciever"<<endl;
  37.                 getch();
  38. }
  39. void Noise2::acknow_lost(int i)
  40. {
  41.                 {
  42.                         cout<<"                                       Sending Acknowledgement to sender"<<endl;
  43.                         cout<<"                       Acknowlegdement lost from reciever"<<endl;
  44.                         cout<<"Resend frame again"<<endl;
  45.                 //      cout<<"Sending frame f"<<i<<"----------------------------->"<<endl;
  46.                         getch();
  47.                         cout<<"                            Recieved frame f"<<i<<endl;
  48.                         getch();
  49.                        
  50.                 }
  51.                         cout<<"                        Sending Acknowledgement to sender"<<endl;
  52.                         getch();
  53.                         cout<<"Acknowlegdement Recieved from reciever"<<endl;
  54.                         getch();
  55. }
  56. void Noise2::data_lost(int i)
  57. {
  58.                         cout<<"                    frame"<<i<<" lost from reciever"<<endl;
  59.                         cout<<"Resending frame"<<endl;
  60.                         cout<<"                                       Recieved frame f"<<i<<endl;
  61.                         getch();
  62.                         cout<<"Sending Acknowledgement to sender"<<endl;
  63.                         getch();
  64.                         cout<<"Acknowlegdement Recieved from reciever side"<<endl;
  65.                         getch();
  66. }
  67. void Noise2::time_delay(int i)
  68. {
  69.                         cout<<"                                 Time delayed"<<endl;
  70.                         resend(i);
  71.                         getch();
  72.                         cout<<"                                 Recieved frame f"<<i<<endl;
  73.                         getch();
  74.                         cout<<"Acknowledgement Sent to sender"<<endl;
  75.                         getch();
  76.                         cout<<"Acknowlegdement Recieved from reciever"<<endl;
  77.                         getch();
  78. }
  79. void Noise2::resend(int i)
  80. {
  81.         int j;
  82.         cout<<"Resending frame "<<endl;
  83.         for(int j=0;j<x;j++)
  84.         {
  85.                 arr[j]=j+i;
  86.                 if((j+i)<=f)
  87.                 cout<<arr[j]<<" ";
  88.         }
  89.         cout<<endl;
  90. }      
  91. void Noise2::next_f(int i)
  92. {
  93.                 for(int j=0;j<x;j++)
  94.                 {
  95.                         if(j+i<=f)
  96.                         {
  97.                         arr[j]=j+i;
  98.                         if(i==1)
  99.                         {
  100.                                 cout<<"Sending frame "<<arr[j]<<endl;
  101.                         }
  102.                     }
  103.             }
  104.             if(i!=1 && i<=f+x-1)
  105.             {
  106.                 cout<<"Sending frame "<<arr[x-1]<<endl;
  107.             }
  108.             cout<<"Frame in current window : ";
  109.             for(int j=0;j<x;j++)
  110.             {
  111.                 arr[j]=j+i;
  112.                 if(j+i<=f)
  113.                 {
  114.                         cout<<arr[j]<<" ";
  115.                 }
  116.             }
  117. }
  118. int main()
  119. {
  120.         Noise2 obj;
  121.         int r;
  122.         int x;
  123.         srand(time(0));
  124.         for(int i=1;i<=obj.f;i++)
  125.         {
  126.                 obj.next_f(i);
  127.                 r=(rand()%4);
  128.         switch(r)
  129.                 {
  130.                         case 0:
  131.                                 obj.correct_data(i);
  132.                                 break;
  133.                         case 1:
  134.                                 obj.acknow_lost(i);
  135.                                 break;
  136.                         case 2:
  137.                                 obj.data_lost(i);
  138.                                 break;
  139.                         case 3:
  140.                                 obj.time_delay(i);
  141.                                 break;
  142.                         default:
  143.                                 cout<<"Invalid input!"<<endl;
  144.                 }
  145.         }
  146.         cout<<"SUCCESSFUL TRANSFER OF FRAMES!"<<endl;
  147.     getch();
  148.         return 0;
  149. }



  • Recent Pastes