A. First, create (with notepad application ) and copy the below data (not the captions) into a file name Referees.txt B. You are to write a program to do the followings: 1. Define a class named CReferee as defined in homework 12. 2. Define an enumeration type RefereeGrade including 5 values UNKNOWN, CLUB, STATE, NATIONAL and FIFA (given) in the header file Referee.h. It should be before the definition of the class CReferee. 3. Then, create an array of 10 elements typed CReferee (in main file) 4. Create a menu with the following options: a. List all referees b. List all referees of a specific grade c. List all referees with grade lower than a specific grade d. List all referees with grade higher than a specific grade e. List information of a specific referee using the Id f. List information of a specific referee using the first and last names g. Add a referee h. Remove a referee using Id i. Update referee grade using Id j. Quit 5. Add a new function readRefereelnfo() to read the list of referees from the input file Referees.txt into the array of referees. This function should be called first in main(). See HW6 for references. 6. Add a new function writeRefereelnfo() to write the current information of the referees from the application to the file Referees.txt. This function should be called in the Quit option before terminating your application. The file is then updated with the latest information of the referees. See HW6 for references. 7. Copy HW6 functions of conversion between Grade and string to this project to use. 8. For option "List all referees", only list the referees with the id NOT "R000". 9. For option "List all referees with grade ...", ask for that specific grade and then use operators==,>or tinclude 'string: using namcspace std; emam Referedirade + UNKNOWN, CL.UB, STATI, NATIONAT, FIFA 1; class CHeferee t publes: CRefereelk: CReferee(): HAdd your required function here (HW12) strins id: liting Name; aring IName; private: Referectionde grade; li Referee.cpp "include "Refereeh −CRefिeci.CRefereed) 1 Midd your code here 1 CReftree:i-CRefcreed) [1] ilimpheretal yout required member funstions bere P4.epp "include ciostrame" sinclude sirieg? tinclude "Refereeh −using namespace std; int metur): void listAlireferces0; void listRefereesofSpecificGradel: void listeReferees With Gradetligher Than SpecificGirade(): void tisereferees WithGiradeL.ow er ThanSpecifieGraden: void listReferecinfoWittidio: void listtRefercelnfoWithNameso: void addNewRefereeQk void removeRefcroe(): void updateReferee(irade(): void Quith K CReferec reftroes\{10]: Wil Function so read refcree information from the file Referesedet void readRefereelafo(); void writeReferelnfols, void main!) readReferectnfof int choice, do । systeme "C. LS"); chorice " memu(f) switch (chotee) f case 11 FisAlIRefersevel4 break: case 2 : liarefereesorSpecificCirade(x break: case 3: break; case 4 ! I leviRefereet WitbCitadel.ow er ThankipecifieGradelK break case 5: I tuakefercelafoWithtal) break: case 6: listirefereelafoWith:iames(), broaly case 7i addinewkefereci): break: case 8 ; remeveReficrocti break;case9. updaleReforeeCradent breal- case 10 : Quitr: break; default: 1 system("RAUSE"T: 1 whale tchoice>0. 4 d choice<10ksyveme "RMSE"): 1 int menuc) int eption: cout ee " RATEREE ASSIGNING SYSTEM H's"; cout ce * 2. List All Refences of A Spocific Grade,n n; coutce ∗3. Liet All Referees With Gitade Higher A Specifis Grade th": sout ee " 4. Liat Alil Refereet With Girade Lower A Specific Girade 'a"? cout10)1 covi sec "Invalid optivellt Mease seloct kalid optives: ". cin≫>aption: 1 return optive: y void list NllReferced) cout ce "Inside latallReferces 0 in'e"; Memove when starting corling WYour code here 1 void listRefereso(OSpecifictirader) f WYour code bere 1 void listrReferessWithKieadeHigher ThanSpecificGiraded) in Your suds bere 1 void listzRefercesWithGiradet.merThanSpecificGirade() 1 itYout code here 1 void listaRefercelnfoWithldy] cout ece "Inside listtReferechfowithld0in −7: . Heemone when starting soding Hour cule here 1 woid list:RefercelnfoWithNames] 1 /i Your code here 3 woid addNew Referee() Hour code here 1 void remaneReferce; 1 cout se "Inside removelteferes () in an"; 1. Themove where startimg codaz 1.Your sade bere void updateReferecCraded cout e "Inside updateRefiereefirade ()n mm ∗; 1. Remewe when startisg coding HYour code here 1 void Quitl) 1 W Write Referee information back to the flle Referees.dat WriteRefereelufo(x; cout cec "llawe a nice day lnin"; 1 void resikefercelnfol? 1 1 voud wtiteReferecinfor) 1