%3Cp%20class%3D%22c3%22%3E%3Cspan%20class%3D%22c1%20c1%22%3Eadd%20a%20student%20
ID: 3551122 • Letter: #
Question
%3Cp%20class%3D%22c3%22%3E%3Cspan%20class%3D%22c1%20c1%22%3Eadd%20a%20student%20module%20in%3C%2Fspan%3E%0A%3Ctt%20class%3D%22c2%22%3Estudent.h%3C%2Ftt%3E%20%3Cspan%20class%3D%0A%22c1%20c1%22%3Eand%26nbsp%3B%3C%2Fspan%3E%3Ctt%20class%3D%22c2%22%3Estudent.cpp%3C%2Ftt%3E%3Cspan%20class%3D%0A%22c1%20c1%22%3E.%20This%20should%3C%2Fspan%3E%3C%2Fp%3E%0A%3Cul%20class%3D%22c2%20c5%22%3E%0A%3Cli%20class%3D%22c4%22%3EProvide%20your%26nbsp%3B%3Ctt%20class%3D%0A%22c2%22%3EStudent%3C%2Ftt%3E%26nbsp%3Bstruct%3C%2Fli%3E%0A%3Cli%20class%3D%22c4%22%3EAdd%20a%20constructor%20to%20initialize%20the%20student%0Adata.%3C%2Fli%3E%0A%3Cli%20class%3D%22c4%22%3EConvert%20the%26nbsp%3B%3Ctt%20class%3D%0A%22c2%22%3EaddGrade%3C%2Ftt%3E%26nbsp%3Band%26nbsp%3B%3Ctt%20class%3D%0A%22c2%22%3EcomputeGPA%3C%2Ftt%3E%26nbsp%3Bfunctions%20from%20the%20prior%20assignment%20into%0Amember%20functions%20of%20the%3Ctt%20class%3D%0A%22c2%22%3EStudent%3C%2Ftt%3E%26nbsp%3Bstruct.%3C%2Fli%3E%0A%3C%2Ful%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%2F%2Fgpacalc.cpp%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%0A%3Cdiv%20class%3D%22c6%22%3E%23include%20%26lt%3Bfstream%26gt%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%23include%20%26lt%3Biostream%26gt%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%23include%20%26lt%3Biomanip%26gt%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%23include%20%26lt%3Bstring%26gt%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%23include%20%22student.h%22%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%23include%20%22gradeValue.h%22%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3Eusing%20namespace%20std%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%2F**%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%20Read%20a%20student%20record%2C%20followed%20by%20a%20number%0Aof%20grade%20records.%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%20Update%20the%20student%20record%20to%20reflect%20the%0Anew%20grades%2C%20then%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%20compute%20and%20print%20the%20student's%20GPA.%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%20%40param%20input%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%20%40param%20output%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%2F%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3Evoid%20gpaCalc%20(istream%26amp%3B%20input%2C%20ostream%26amp%3B%0Aoutput)%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%7B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20string%20name%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20getline%20(input%2C%20name)%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20int%20credits%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20double%20qp%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20input%20%26gt%3B%26gt%3B%20credits%20%26gt%3B%26gt%3B%20qp%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20Student%20student(name%2C%20credits%2C%20qp)%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20string%20grade%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20input%20%26gt%3B%26gt%3B%20grade%20%26gt%3B%26gt%3B%20credits%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20while%20(grade%20!%3D%20%220%22%20%26amp%3B%26amp%3B%20credits%20!%3D%0A0)%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%26nbsp%3B%7B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%26nbsp%3B%20student.addGrade%20(grade%2C%0Acredits)%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%26nbsp%3B%20input%20%26gt%3B%26gt%3B%20grade%20%26gt%3B%26gt%3B%0Acredits%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%26nbsp%3B%7D%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%26nbsp%3Bdouble%20gpa%20%3D%0Astudent.computeGPA()%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%26nbsp%3Boutput%20%26lt%3B%26lt%3B%20student.name%20%26lt%3B%26lt%3B%0A'%20'%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%26nbsp%3B%26lt%3B%26lt%3B%20fixed%20%26lt%3B%26lt%3B%20setprecision(2)%0A%26lt%3B%26lt%3B%20gpa%20%26lt%3B%26lt%3B%20endl%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%7D%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3Eint%20main%20(int%20argc%2C%20char**%20argv)%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%7B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%2F%2F%20A%20useful%20%22trick%22%3A%20The%20code%20below%20looks%20to%0Asee%20if%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%2F%2F%20a%20command%20line%20parameter%20has%20been%0Aspecified.%20If%20so%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%2F%2F%20%26nbsp%3B%20%26nbsp%3B%20e.g.%3A%20gpaCalc%0AfileName%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%2F%2F%20the%20command%20line%20paraemter%20is%20assumed%20to%0Aname%20an%20input%20file%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%2F%2F%20and%20the%20rest%20of%20the%20program%20reads%20form%0Athat%20file.%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%2F%2F%20If%20no%20command%20parameter%20is%20given%2C%20the%0Aprogram%20reads%20its%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%2F%2F%20input%20from%20cin.%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%2F%2F%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%2F%2F%20What%20makes%20this%20useful%20is%20that%20it%20is%0Aoften%20easier%20to%20supply%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%2F%2F%20input%20from%20a%20file%20during%20debugging%2C%20even%0Aif%20the%20program%20is%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%2F%2F%20normally%20supposed%20to%20read%20from%20standard%0Ainput%20(cin).%26nbsp%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20if%20(argc%20%26gt%3B%201)%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%26nbsp%3B%20%7B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20ifstream%20inputFile%0A(argv%5B1%5D)%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20gpaCalc%20(inputFile%2C%0Acout)%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%26nbsp%3B%20%7D%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20else%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%26nbsp%3B%20gpaCalc%20(cin%2C%20cout)%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20return%200%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%7D%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%2F%2Fgradevalue.cpp%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%0A%3Cdiv%20class%3D%22c6%22%3E%23include%20%22gradeValue.h%22%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3Eusing%20namespace%20std%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3Estruct%20GradeValue%20%7B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3Estring%20%26nbsp%3Bgrade%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3Edouble%20value%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%7D%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3Econst%20GradeValue%20gradeValues%5B%5D%20%3D%20%7B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%7B%22A%22%2C%204.0%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%7B%22A-%22%2C%203.7%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%7B%22B%2B%22%2C%203.3%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%7B%22B%22%2C%20%26nbsp%3B3.0%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%7B%22B-%22%2C%202.7%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%7B%22C%2B%22%2C%202.3%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%7B%22C%22%2C%20%26nbsp%3B2.0%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%7B%22C-%22%2C%201.7%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%7B%22D%2B%22%2C%201.3%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%7B%22D%22%2C%20%26nbsp%3B1.0%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%7B%22F%22%2C%20%26nbsp%3B0.0%7D%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%7D%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3Econst%20int%20numGradeValues%20%3D%2011%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%2F**%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%20Search%20an%20array%20of%20GradeValues%20for%20one%0Amatching%20a%20given%20grade%20string%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%20returning%20the%20corresponding%20grade%20value.%20If%0Athe%20grade%20string%20is%20not%20in%20the%20array%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%20return%20the%20value%20of%20the%20last%20element%20of%20the%0Aarray.%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%20%40param%20table%20%26nbsp%3B%20an%20array%20of%0AGradeValues%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%20%40param%20tableSize%20number%20of%20elements%20i%20nthe%0Aarray%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%20%40param%20grade%20%26nbsp%3B%20the%20grade%20that%20we%20are%0Asearching%20for%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%20%40return%20%26nbsp%3Bthe%20value%20corresponding%20to%0Athat%20grade%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%2F%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3Edouble%20findGradeValue%20(string%20grade)%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%7B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20for%20(int%20i%20%3D%200%3B%20i%20%26lt%3B%20numGradeValues%3B%0A%2B%2Bi)%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%26nbsp%3B%20if%20(gradeValues%5Bi%5D.grade%20%3D%3D%0Agrade)%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20return%0AgradeValues%5Bi%5D.value%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B%20return%0AgradeValues%5BnumGradeValues-1%5D.value%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%7D%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%2F%2Fgradevalue.h%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%0A%3Cdiv%20class%3D%22c6%22%3E%23ifndef%20GRADEVALUE_H%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%23define%20GRADEVALUE_H%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%23include%20%26lt%3Bstring%26gt%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%2F**%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%20Search%20an%20array%20of%20GradeValues%20for%20one%0Amatching%20a%20given%20grade%20string%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%20returning%20the%20corresponding%20grade%20value.%20If%0Athe%20grade%20string%20is%20not%20in%20the%20array%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%20return%20the%20value%20of%20the%20last%20element%20of%20the%0Aarray.%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%20%40param%20grade%20%26nbsp%3B%20the%20grade%20that%20we%20are%0Asearching%20for%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%20%40return%20%26nbsp%3Bthe%20value%20corresponding%20to%0Athat%20grade%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%26nbsp%3B*%2F%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3Edouble%20findGradeValue%20(std%3A%3Astring%20grade)%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%23endif%3C%2Fdiv%3E%0A%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%2F%2Fold%20code%20from%20previous%20assignmnet%20with%20functions%0Aneeded%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c6%22%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%2F*%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20gpaCalc.cpp%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20%26nbsp%3BCreated%20on%3A%20Jan%2020%2C%202014%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3BAuthor%3A%20zeil%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%2F%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%23include%20%26lt%3Biostream%26gt%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%23include%20%26lt%3Biomanip%26gt%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%23include%20%26lt%3Bstring%26gt%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Eusing%20namespace%20std%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Estruct%20GradeValue%20%7B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Estring%20%26nbsp%3Bgrade%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Edouble%20value%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7D%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%2F**%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20A%20table%20(array)%20of%20legal%20grades%20with%0Atheir%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20values.%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%2F%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Econst%20GradeValue%20gradeValues%5B%5D%20%3D%20%7B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7B%22A%22%2C%204.0%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7B%22A-%22%2C%203.7%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7B%22B%2B%22%2C%203.3%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7B%22B%22%2C%20%26nbsp%3B3.0%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7B%22B-%22%2C%202.7%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7B%22C%2B%22%2C%202.3%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7B%22C%22%2C%20%26nbsp%3B2.0%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7B%22C-%22%2C%201.7%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7B%22D%2B%22%2C%201.3%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7B%22D%22%2C%20%26nbsp%3B1.0%7D%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7B%22F%22%2C%20%26nbsp%3B0.0%7D%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7D%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%2F%2F%20%2B%2B%2B%2B%2B%20start%20your%20code%20%2B%2B%2B%2B%2B%2B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Estruct%20Student%20%7B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Estring%20name%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Eint%20credits%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Edouble%20qualityPoints%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7D%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%2F**%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20Search%20an%20array%20of%20GradeValues%20for%20one%0Amatching%20a%20given%20grade%20string%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20returning%20the%20corresponding%20grade%20value.%20If%0Athe%20grade%20string%20is%20not%20in%20the%20array%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20return%20the%20value%20of%20the%20last%20element%20of%20the%0Aarray.%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20%40param%20table%20%26nbsp%3B%20an%20array%20of%0AGradeValues%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20%40param%20tableSize%20number%20of%20elements%20i%20nthe%0Aarray%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20%40param%20grade%20%26nbsp%3B%20the%20grade%20that%20we%20are%0Asearching%20for%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20%40return%20%26nbsp%3Bthe%20value%20corresponding%20to%0Athat%20grade%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%2F%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Edouble%20findGradeValue%20(const%20GradeValue%20table%5B%5D%2C%0Aint%20tableSize%2C%20string%20grade)%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Efor%20(int%20i%20%3D%200%3B%20i%20%26lt%3B%20tableSize%3B%20%2B%2Bi)%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Eif%20(table%5Bi%5D.grade%20%3D%3D%20grade)%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Ereturn%20table%5Bi%5D.value%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Ereturn%20table%5BtableSize-1%5D.value%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7D%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%2F**%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20Update%20a%20student%20record%20to%20reflect%20the%20idea%0Athat%20the%20student%20has%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20just%20received%20a%20grade%20in%20a%20course%20worth%20a%0Acertain%20number%20of%20credits.%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20%40param%20aStudent%20The%20student.%20This%20function%0Awill%20update%20the%20total%20number%20of%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20credits%0Aattempted%20by%20the%20student%20and%20the%20total%20quality%20points%20earned.%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20%40param%20grade%20%26nbsp%3BThe%20grade%20recieved.%20Must%0Abe%20one%20of%20the%20letter%20combinations%20%22A%22%2C%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%22A-%22%2C%0A...%2C%20defined%20in%20the%20gradeValues%20array%2C%20above%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20%40param%20credits%20%26nbsp%3BNumber%20of%20credits%20in%0Athe%20course%20where%20this%20grade%20was%20earned.%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%2F%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Evoid%20addGrade(Student%26amp%3B%20aStudent%2C%20string%20grade%2C%0Aint%20credits)%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3EaStudent.credits%20%2B%3D%20credits%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Edouble%20v%20%3D%20findGradeValue(gradeValues%2C%2011%2C%0Agrade)%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3EaStudent.qualityPoints%20%2B%3D%20credits%20*%20v%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7D%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%2F**%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20Compute%20the%20grade%20point%20average%20for%20a%0Astudent%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20%40param%20aStudent%20a%20student%20record%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20%40return%20student's%20grade%20point%20average%2C%0Adefined%20as%20the%20total%20quality%20points%20earned%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%0A%26nbsp%3Bdivided%20by%20the%20total%20credits%20attempted.%20If%20the%20student%20has%0Aattempted%200%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%0A%26nbsp%3Bcredits%2C%20return%200.0%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%2F%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Edouble%20computeGPA%20(const%20Student%26amp%3B%0AaStudent)%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Eif%20(aStudent.credits%20%26gt%3B%200)%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Ereturn%20aStudent.qualityPoints%20%2F%0AaStudent.credits%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Eelse%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Ereturn%200.0%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7D%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%2F%2F%20%2B%2B%2B%2B%2B%20end%20your%20code%20%2B%2B%2B%2B%2B%2B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%2F**%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20Read%20a%20student%20record%2C%20followed%20by%20a%20number%0Aof%20grade%20records.%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20Update%20the%20student%20record%20to%20reflect%20the%0Anew%20grades%2C%20then%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20compute%20and%20print%20the%20student's%20GPA.%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20%40param%20input%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%20%40param%20output%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B*%2F%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Evoid%20gpaCalc%20(istream%26amp%3B%20input%2C%20ostream%26amp%3B%0Aoutput)%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B%20%26nbsp%3BStudent%20student%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B%20%26nbsp%3Bgetline%20(input%2C%20student.name)%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B%20%26nbsp%3Binput%20%26gt%3B%26gt%3B%20student.credits%0A%26gt%3B%26gt%3B%20student.qualityPoints%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B%20%26nbsp%3Bstring%20grade%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B%20%26nbsp%3Bint%20credits%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B%20%26nbsp%3Binput%20%26gt%3B%26gt%3B%20grade%20%26gt%3B%26gt%3B%0Acredits%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B%20%26nbsp%3Bwhile%20(grade%20!%3D%20%220%22%20%26amp%3B%26amp%3B%20credits%0A!%3D%200)%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B%20%26nbsp%3B%7B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B%26nbsp%3B%20addGrade%20(student%2C%20grade%2C%0Acredits)%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B%26nbsp%3B%20input%20%26gt%3B%26gt%3B%20grade%20%26gt%3B%26gt%3B%0Acredits%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B%20%26nbsp%3B%7D%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B%20%26nbsp%3Bdouble%20gpa%20%3D%0AcomputeGPA(student)%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B%20%26nbsp%3Boutput%20%26lt%3B%26lt%3B%20student.name%20%26lt%3B%26lt%3B%0A'%20'%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%26nbsp%3B%26nbsp%3B%20%26lt%3B%26lt%3B%20fixed%20%26lt%3B%26lt%3B%0Asetprecision(2)%20%26lt%3B%26lt%3B%20gpa%20%26lt%3B%26lt%3B%20endl%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7D%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Eint%20main%20(int%20argc%2C%20char**%20argv)%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3EgpaCalc%20(cin%2C%20cout)%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3Ereturn%200%3B%3C%2Fdiv%3E%0A%3Cdiv%20class%3D%22c7%22%3E%7D%3C%2Fdiv%3E%0A%3Cdiv%3E%3Cbr%20%2F%3E%3C%2Fdiv%3E%0A%3C%2Fdiv%3E%0A%3C%2Fdiv%3E%0AExplanation / Answer
/** * Update a student record to reflect the idea that the student has * just received a grade in a course worth a certain number of credits. * * @param aStudent The student. This function will update the total number of * credits attempted by the student and the total quality points earned. * @param grade The grade recieved. Must be one of the letter combinations "A", * "A-", ..., defined in the gradeValues array, above; * @param credits Number of credits in the course where this grade was earned. *//** * Compute the grade point average for a student * * @param aStudent a student record * @return student's grade point average, defined as the total quality points earned * divided by the total credits attempted. If the student has attempted 0 * credits, return 0.0 */
/** * Update a student record to reflect the idea that the student has * just received a grade in a course worth a certain number of credits. * * @param aStudent The student. This function will update the total number of * credits attempted by the student and the total quality points earned. * @param grade The grade recieved. Must be one of the letter combinations "A", * "A-", ..., defined in the gradeValues array, above; * @param credits Number of credits in the course where this grade was earned. */
/** * Compute the grade point average for a student * * @param aStudent a student record * @return student's grade point average, defined as the total quality points earned * divided by the total credits attempted. If the student has attempted 0 * credits, return 0.0 */
struct Student { string name; int credits; double qualityPoints; Student(){ name = ""; credits = 0; qualityPoints = 0; } Student(string name,int credits,double qp){ this->name = name; this->credits = credits; this->qualityPoints = qp; }
void addGrade(string grade, int credits) { this->credits += credits; double v = findGradeValue(gradeValues, 11, grade); this->qualityPoints += credits * v; }
double computeGPA() { if (this->credits > 0) return this->qualityPoints / this->credits; else return 0.0; } void addGrade(string grade, int credits) { this->credits += credits; double v = findGradeValue(gradeValues, 11, grade); this->qualityPoints += credits * v; }
double computeGPA() { if (this->credits > 0) return this->qualityPoints / this->credits; else return 0.0; } double computeGPA() { if (this->credits > 0) return this->qualityPoints / this->credits; else return 0.0; } };
/** * Search an array of GradeValues for one matching a given grade string, * returning the corresponding grade value. If the grade string is not in the array, * return the value of the last element of the array. * * @param table an array of GradeValues * @param tableSize number of elements i nthe array * @param grade the grade that we are searching for * @return the value corresponding to that grade */ double findGradeValue (const GradeValue table[], int tableSize, string grade) { for (int i = 0; i < tableSize; ++i) if (table[i].grade == grade) return table[i].value; return table[tableSize-1].value; }
// +++++ end your code ++++++
/** * Read a student record, followed by a number of grade records. * Update the student record to reflect the new grades, then * compute and print the student's GPA. * * @param input * @param output */ void gpaCalc (istream& input, ostream& output) { Student student; getline (input, student.name); input >> student.credits >> student.qualityPoints; string grade; int credits; input >> grade >> credits; while (grade != "0" && credits != 0) { student.addGrade (grade, credits); input >> grade >> credits; } double gpa = student.computeGPA(); output << student.name << ' ' << fixed << setprecision(2) << gpa << endl; }
int main (int argc, char** argv) { gpaCalc (cin, cout); return 0; }
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.