public static void Main()
Kita kita1 = new Kita('D', 3, 4);
Kita kita2 = new Kita('A', 2, 5);
Console.WriteLine("Description (kita1): " + kita1.ToString());
Console.WriteLine("Description: (kita2): " + kita2.ToString());
Console.WriteLine("Number of students in kita1: " + kita1.GetNumOfStudents());
Console.WriteLine("Number of students in kita2: " + kita2.GetNumOfStudents());
Talmid t1 = new Talmid("כהן אלי", new Date(21, 05, 2004));
int[] t1_Grades = { 38, 76, 89, 43, 54 };
Talmid t2 = new Talmid("לוי נתנאל", new Date(21, 01, 1997));
int[] t2_Grades = { 93, 90, 99, 93, 100 };
Talmid t3 = new Talmid("לוי נחום", new Date(01, 09, 1986));
int[] t3_Grades = { 15, 10, 34, 23, 39 };
if (kita1.AddStudent(t1)) { Console.WriteLine(t1.GetName() + " was added to the class!"); }
else { Console.WriteLine(t1.GetName() + " wasn't added to the class!"); }
if (kita1.AddStudent(t2)) { Console.WriteLine(t2.GetName() + " was added to the class!"); }
else { Console.WriteLine(t2.GetName() + " wasn't added to the class!"); }
if (kita2.AddStudent(t3)) { Console.WriteLine(t3.GetName() + " was added to the class!"); }
else { Console.WriteLine(t3.GetName() + " wasn't added to the class!"); }
Console.WriteLine("Description (kita1)(again): " + kita1.ToString());
Console.WriteLine("Description (kita2)(again): " + kita2.ToString());
Console.WriteLine(kita1.BestStudent().GetName() + " is the best student in kita1");
Console.WriteLine(kita2.BestStudent().GetName() + " is the best student in kita2");
Console.WriteLine("Enter Name, Day, Month, Year:");
Talmid t = new Talmid(Console.ReadLine(), new Date(int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine())));
if (kita1.IsStudentlnClass(t)) { Console.WriteLine(t.GetName() + " is a member of the class kita1!"); }
else if (kita2.IsStudentlnClass(t)) { Console.WriteLine(t.GetName() + " is a member of the class kita2!"); }
else { Console.WriteLine(t.GetName() + " isn't a member of any class!"); }
int levy_counter = 0, cohen_counter = 0, high_grade_kita1_counter = 0, high_grade_kita2_counter = 0, kita1_fail_counter = 0, kita2_fail_counter = 0;
for (int i = 0; i < kita1.GetTalmidim().Length; i++)
if (kita1.GetTalmidim()[i] != null)
if (kita1.GetTalmidim()[i].GetName().IndexOf("לוי") != -1) { levy_counter++; }
else if (kita1.GetTalmidim()[i].GetName().IndexOf("כהן") != -1) { cohen_counter++; }
if (kita1.GetTalmidim()[i].Avg() < 55) { kita1_fail_counter++; }
if (kita1.GetTalmidim()[i].Avg() > 85) { high_grade_kita1_counter++; }
for (int i = 0; i < kita2.GetTalmidim().Length; i++)
if (kita2.GetTalmidim()[i] != null)
if (kita2.GetTalmidim()[i].GetName().IndexOf("לוי") != -1) { levy_counter++; }
else if (kita2.GetTalmidim()[i].GetName().IndexOf("כהן") != -1) { cohen_counter++; }
if (kita2.GetTalmidim()[i].Avg() < 55) { kita2_fail_counter++; }
if (kita2.GetTalmidim()[i].Avg() > 85) { high_grade_kita2_counter++; }
Console.WriteLine("Contains Levy: " + levy_counter);
Console.WriteLine("Contains cohen: " + cohen_counter);
Console.WriteLine("Falis in kita1: " + kita1_fail_counter);
Console.WriteLine("Falis in kita2: " + kita2_fail_counter);
Console.WriteLine("High grades in kita1: " + high_grade_kita1_counter);
Console.WriteLine("High grades in kita2: " + high_grade_kita2_counter);
if (kita1.BestStudent().Avg() > kita2.BestStudent().Avg())
Console.WriteLine(kita1.BestStudent().GetName() + " is the best student in both of the classes!");
else if (kita1.BestStudent().Avg() < kita2.BestStudent().Avg())
Console.WriteLine(kita2.BestStudent().GetName() + " is the best student in both of the classes!");
private int numOfStudents;
private Talmid[] talmidim;
public Kita(char level, int number, int numOfStudents)
this.numOfStudents = numOfStudents;
talmidim = new Talmid[20];
public Kita(char level, int number)
Console.WriteLine("Enter the number of students:");
numOfStudents = int.Parse(Console.ReadLine());
int[] grades = new int[5];
talmidim = new Talmid[20];
for (int i = 0; i < talmidim.Length; i++)
Console.WriteLine("Enter Name, Day, Month, Year:");
talmidim[i] = new Talmid(Console.ReadLine(), new Date(int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine())));
Console.WriteLine("Enter Grades:");
for (int k = 0; k < grades.Length; k++)
grades[k] = int.Parse(Console.ReadLine());
talmidim[i].SetGrades(grades);
Console.WriteLine("Enter Level, class Number, number of students:");
level = char.Parse(Console.ReadLine());
number = int.Parse(Console.ReadLine());
numOfStudents = int.Parse(Console.ReadLine());
int[] grades = new int[5];
talmidim = new Talmid[20];
for (int i = 0; i < talmidim.Length; i++)
Console.WriteLine("Enter Name, Day, Month, Year:");
talmidim[i] = new Talmid(Console.ReadLine(), new Date(int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine())));
Console.WriteLine("Enter Grades:");
for (int k = 0; k < grades.Length; k++)
grades[k] = int.Parse(Console.ReadLine());
talmidim[i].SetGrades(grades);
numOfStudents = kita.numOfStudents;
talmidim = new Talmid[20];
for (int i = 0; i < numOfStudents; i++)
talmidim[i] = kita.talmidim[i];
public char GetLevel () { return this.level; }
public int GetNumber () { return this.number; }
public int GetNumOfStudents () { return this.numOfStudents; }
public Talmid[] GetTalmidim () { return this.talmidim; }
public void SetLevel(char level) { this.level = level; }
public void SetNumber(int number) { this.number = number; }
public void SetNumOfStudents(int numOfStudents) { this.numOfStudents = numOfStudents; }
public void SetTalmidim(Talmid[] talmidim) { this.talmidim = talmidim; }
public Talmid BestStudent()
Talmid tBest = talmidim[0];
for (int i = 0; i < numOfStudents; i++)
if (talmidim[i].Avg() > tBest.Avg())
public bool IsStudentInClass(Talmid st)
for (int i = 0; i < numOfStudents; i++)
if (talmidim[i].GetName() == st.GetName())
public bool AddStudent (Talmid stu)
for (int i = 0; i < numOfStudents; i++)
if (talmidim[i] == null) { talmidim[i] = new Talmid(stu); return true; }
public override string ToString()
int[] studentGrades = new int[5];
string str = "Level: " + level + ", Grade Number: " + number + ", Number of students: " + numOfStudents;
for (int i = 0; i < numOfStudents; i++)
str += ", Name of student: " + talmidim[i].GetName() + ", birth of " + talmidim[i].GetName() + ": " + talmidim[i].GetBirth().ToString() +
", Grades of " + talmidim[i].GetName() + ": ";
studentGrades = talmidim[i].GetGrades();
for (int k = 0; k < studentGrades.Length; k++)
str += ", " + studentGrades[k];
public Talmid(string Name, Date birth)
this.birth = new Date(birth);
this.grades = new int[5];
this.birth = new Date(t.birth);
this.grades = new int[5];
for (int i = 0; i < grades.Length; i++)
Date temp = new Date(this.birth);
int[] copy = new int[this.grades.Length];
for (int i = 0; i < copy.Length; i++)
copy[i] = this.grades[i];
public void SetName(string Name)
public void SetBirth(Date d)
this.birth.SetDay(d.GetDay());
this.birth.SetMonth(d.GetMonth());
this.birth.SetYear(d.GetYear());
public void SetGrades(int[] grades)
for (int i = 0; i < grades.Length; i++)
this.grades[i] = grades[i];
for (int i = 0; i < this.grades.Length; i++)
return (double)sum / this.grades.Length;
public override string ToString()
string st = "name: " + this.Name + ", birth: " + this.birth.ToString() + ", grades: ";
for (int i = 0; i < grades.Length; i++)
st += this.grades[i] + ", ";
public Date(int Day, int Month, int Year)
public void SetDay(int Day)
public void SetMonth(int Month)
public void SetYear(int Year)
public int ComperTo(Date other)
if (this.Year == other.Year)
if (this.Month == other.Month)
return (this.Day - other.Day);
return (this.Month - other.Month);
return (this.Year - other.Year);
public override string ToString()
return (Day + "/" + Month + "/" + Year);