Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Create an Application using C#. Which Adds, Edits, and Deletes assignments onto

ID: 3808472 • Letter: C

Question

Create an Application using C#. Which Adds, Edits, and Deletes assignments onto a storage medium, with grades per student–per assignment. Assignments must be separated into 2 groups- Homework and Test. Grades for each group per student must be calculated along with an overall grade for each student (given in both percentage and Letter grade).

a.Program must include

    i.Subprograms with parameter passing

    ii.Abstract Data types

    iii.Encapsulation

    iv.Exception/ Error Handling

     v.Must verify only valid scores are entered per assignment

     vi.Documented for maintenance purposes

This is the code I have so far, can someone fix the errors:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace Project

{

public class Assignment

{

static void Main(string [] args)

{

string type;

double mark;

public Assignment(string type, double mark)

{

this.type = type;

this.mark = mark;

}

double getMark()

{

return mark;

}

}

class Student

{

string name;

double grade;

string letterGrade;

// list of Assignments

ArrayList AssignmentList = new ArrayList();

Student(string name)

{

this.name = name;

}

void addAssignment(Assignment A)

{

AssignmentList.Add(A);

}

void deleteAssignment(Assignment A)

{

AssignmentList.Remove(A);

}

void editAssignment(Assignment A, string type, double mark)

{

AssignmentList.Remove(A);

AssignmentList.Add(new Assignment(type, mark));

//AssignmentList.Add(A);

}

void calculateGrade()

{

grade = 0;

foreach (Assignment assignment in AssignmentList)

{

grade += assignment.getMark();

}

grade = grade / AssignmentList.Count;

}

void calculateLetterGrade()

{

if (grade > 90 && grade <= 100)

{

Console.WriteLine("A grade");

}

else if (grade > 80 && grade <= 90)

{

Console.WriteLine("B grade");

}

else if (grade > 70 && grade <= 80)

{

Console.WriteLine("C grade");

}

else if (grade > 60 && grade <= 70)

{

Console.WriteLine("D grade");

}

else if (grade > 50 && grade <= 60)

{

Console.WriteLine("E grade");

}

else

{

Console.WriteLine("F grade"); //fail

}

}

}

}

Explanation / Answer

Hi, I updated your code a bit. You can Edit/Delete/Update assigment in Main Class. You can add more validation if required in IsValidAssignment method. Please find the code below.

using System;
using System.Collections.Generic;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Student st = new Student("Peter");
Assignment assignmentA = new Assignment("HomeWork", 100);
Assignment assignmentB = new Assignment("Test", 40);

st.AddAssignment(assignmentA);
st.AddAssignment(assignmentB);

st.CalculateGrade();
st.CalculateOverAllGrade();
st.CalculateLetterGrade();
Console.WriteLine("HomeWork Grade = " + st.homeWorkgrade + ", Test Grade = " + st.testgrade + ", Letter Grade = " + st.letterGrade + ", OverAllGrade = " + st.overallGrade);

Console.ReadLine();
}
}

/// <summary>
/// Assignment class
/// </summary>
public class Assignment
{
public string type;
public decimal mark;
  
public Assignment(string type, decimal mark)
{
this.type = type;
this.mark = mark;
}

/// <summary>
/// Get marks
/// </summary>
/// <returns></returns>
public decimal getMark()
{
return mark;
}

/// <summary>
/// Check assignment is valid or not
/// </summary>
/// <returns></returns>
public bool IsValidAssignment()
{
if (this.mark > 100 || this.mark < 0)
return false;

return true;
}
}

/// <summary>
/// Student Class
/// </summary>
public class Student
{
public string name;
public decimal homeWorkgrade;
public decimal testgrade;
public string letterGrade;
public decimal overallGrade;

// list of Assignments
List<Assignment> AssignmentList = new List<Assignment>();

public Student(string name)
{
this.name = name;
}

/// <summary>
/// AddAssignment
/// </summary>
/// <param name="assignment"></param>
public void AddAssignment(Assignment assignment)
{
if (!assignment.IsValidAssignment())
{
Console.WriteLine("Assignment can not be added, Given marks for this assignment is not valid ");
return;
}

AssignmentList.Add(assignment);
}

/// <summary>
/// DeleteAssignment
/// </summary>
/// <param name="assignment"></param>
public void DeleteAssignment(Assignment assignment)
{
if (AssignmentList.Contains(assignment))
{
AssignmentList.Remove(assignment);
}
}

/// <summary>
/// EditAssignment
/// </summary>
/// <param name="assignment"></param>
/// <param name="type"></param>
/// <param name="mark"></param>
public void EditAssignment(Assignment assignment, string type, decimal mark)
{
Assignment newAssignment = new Assignment(type, mark);
if (!newAssignment.IsValidAssignment())
{
Console.WriteLine("Assignment can not be edited as Given marks for assignment is not valid");
return;
}

if (AssignmentList.Contains(assignment))
{
AssignmentList.Remove(assignment);
}
AssignmentList.Add(newAssignment);
}

/// <summary>
/// CalculateGrade
/// </summary>
public void CalculateGrade()
{
try
{
int homeworkCounter = 0;
int testgroupCounter = 0;
homeWorkgrade = 0;
testgrade = 0;
foreach (Assignment assignment in AssignmentList)
{
if (assignment.type == "Test")
{
testgroupCounter = testgroupCounter + 1;
testgrade += assignment.getMark();
}
else
{
homeworkCounter = homeworkCounter + 1;
homeWorkgrade += assignment.getMark();
}
}
if(homeworkCounter!= 0)
homeWorkgrade = homeWorkgrade / homeworkCounter;

if(testgroupCounter !=0 )
testgrade = testgrade / testgroupCounter;
}
catch(Exception ex)
{
Console.WriteLine("Exception in calculating Grade. Error detail :" + ex.ToString());
}
}

/// <summary>
/// CalculateOverAllGrade
/// </summary>
public void CalculateOverAllGrade()
{
try
{
overallGrade = 0;
foreach (Assignment assignment in AssignmentList)
{
overallGrade += assignment.getMark();
}
overallGrade = overallGrade / AssignmentList.Count;
}
catch(Exception ex)
{
Console.WriteLine("Exception in calculating CalculateOverAllGrade. Error detail :" + ex.ToString());
}
}

/// <summary>
/// CalculateLetterGrade
/// </summary>
public void CalculateLetterGrade()
{

if (overallGrade > 90 && overallGrade <= 100)
{
letterGrade = "A grade";
}
else if (overallGrade > 80 && overallGrade <= 90)
{
letterGrade = "B grade";
}
else if (overallGrade > 70 && overallGrade <= 80)
{
letterGrade = "C grade";
}
else if (overallGrade > 60 && overallGrade <= 70)
{
letterGrade = "D grade";
}
else if (overallGrade > 50 && overallGrade <= 60)
{
letterGrade = "E grade";
}
else
{
letterGrade = "F grade"; //fail
}
}
}
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote