In this assignment you will create a program to process the…

In this assignment you will create a program to process the attached file (data.txt) to calculate the grades for a course. Each line of the file has the following format: Name Test1 Test2 Test3 ( 50% ) Based on that, compute an average score and a final grade. Grade is to be assigned as: A if the total is at least 90, B if it is at last 80, C if it is at least 70, D if it is at least 60, and F otherwise. ( 20% ) Compute the class average.  ( See sample output. HINT: use \t  (tabs) to separate name test1 …   ). ( 30% ) Determine the Grades Distribution ( See sample output. Hint: Use accumulators to count the number of As, Bs, etc  ).input file—————————– input file ( dataStudents.txt)———————————–  Sami 83 65 85Bill 94 100 90John 100 81 82Mary 65 50 74Adam 50 72 45Juan 100 85 90Alex 90 70 95Luke 60 75 50 Sample outputCop 1334Name    Test1       Test2   Test3    Avg     Grade———————————————————–Sami    83.00     65.00    85.00     77.67   CBill       94.00     100.00  90.00   94.67   AJohn    100.00   81.00    82.00     87.67   BMary    65.00     50.00    74.00     63.00   DAdam   50.00     72.00    45.00     55.67   FJuan    100.00    85.00    90.00     91.67   AAlex     90.00     70.00    95.00     85.00   BLuke    60.00     75.00    50.00     61.67   D—————Grades Distribution—————–A: 2B: 2C: 1D: 2F: 1Class Average: 77.12

Consider the Graph class stub in C# given below, which was u…

Consider the Graph class stub in C# given below, which was used in Lab 2. As the producer of the Graph class, write a method which accepts an array of integers as input, and determines whether the elements of the array form a cycle (ordered by array index). class Graph {         private object edges;           public Graph(int numVertices)         {   …   }         public int getNumVertices()         {   …   }         public void addVertexData(int vertexNumber, object vertexData)         {   …   }         public void addEdge(int vertex1, int vertex2)         {   …   }         public void removeEdge(int vertex1, int vertex2)         {   …   }         public bool hasEdge(int vertex1, int vertex2)         {   …   }         public object getVertexData(int vertexNumber)         {   …   }         public bool isConnected()         {   …   }         public bool hasCycle()         {   …   }         public bool isTree()         {   …   }                  private int[] depthFirstSearch(int s)         {   …   }         //more private methods below     }