this is my Q:

i must use:

Arrays of Structures
Searching
Sorting
Recursion

Question

Write a menu driven C program for manipulating the records of students in a classroom. The class may include at most 50 students. A student record consists of the following information:
• Student name (max 50 chars string)
• Student id number (7 digits id number)
• Student GPA: grade point average (float between 0 and 4.0)

The program should perform two major tasks. First, it reads the data of N students (where N is a number selected by the user). Then, the program allows the user to perform any combination of the following tasks:

1. Add a new student to the classroom.
2. Delete a student from the classroom.
3. Modify the record of a particular student in the class.
4. Sort - using insertion sort - in two different ways (ascending and descending) the records of the students according to:
a. Student name or
b. Student id
5. Print the record of a particular student given his:
a. Name or
b. Id number.
6. Print the records of all the students in the classroom.
7. Exit the program.

Remarks:

• No two students share the exact name
• No two students share the exact id number
• Before adding a new student, make sure that the student is not already in the class. In other words search for the student using a recursive sequential search algorithm.
• The user is allowed to delete a student based on:
o Student unique name
o Student id number.
• The user can modify the GPA of a student given his name or id number.
• Implement a recursive function to print the records of all the students in the classroom.