⏱️ 2 שעות | 🎯 בניית מערכת שלמה
נבנה מערכת מלאה עם כל מה שלמדנו!
// Interface
interface IPerson
{
void PrintInfo();
}
// Student class
class Student : IPerson
{
public string Name;
public int Id;
public List<double> Grades;
public Student(string name, int id)
{
Name = name;
Id = id;
Grades = new List<double>();
}
public void AddGrade(double grade)
{
Grades.Add(grade);
}
public double GetAverage()
{
if (Grades.Count == 0) return 0;
return Grades.Sum() / Grades.Count;
}
public void PrintInfo()
{
Console.WriteLine($"תלמיד: {Name} ({Id})");
Console.WriteLine($"ממוצע: {GetAverage():F2}");
}
}
// Teacher class
class Teacher : IPerson
{
public string Name;
public string Subject;
public List<Student> Students;
public Teacher(string name, string subject)
{
Name = name;
Subject = subject;
Students = new List<Student>();
}
public void AddStudent(Student student)
{
Students.Add(student);
}
public void PrintInfo()
{
Console.WriteLine($"מורה: {Name}");
Console.WriteLine($"מקצוע: {Subject}");
Console.WriteLine($"מספר תלמידים: {Students.Count}");
}
}
// Classroom class
class Classroom
{
public string Name;
public Teacher Teacher;
public List<Student> Students;
public Classroom(string name, Teacher teacher)
{
Name = name;
Teacher = teacher;
Students = new List<Student>();
}
public void AddStudent(Student student)
{
Students.Add(student);
Teacher.AddStudent(student);
}
public double GetClassAverage()
{
if (Students.Count == 0) return 0;
double sum = 0;
foreach (Student s in Students)
sum += s.GetAverage();
return sum / Students.Count;
}
public void PrintReport()
{
Console.WriteLine($"\n=== כיתה {Name} ===");
Teacher.PrintInfo();
Console.WriteLine($"\nממוצע הכיתה: {GetClassAverage():F2}");
Console.WriteLine("\nתלמידים:");
foreach (Student s in Students)
{
Console.WriteLine($" - {s.Name}: {s.GetAverage():F2}");
}
}
}
// School class
class School
{
public string Name;
public List<Classroom> Classrooms;
public List<Teacher> Teachers;
public School(string name)
{
Name = name;
Classrooms = new List<Classroom>();
Teachers = new List<Teacher>();
}
public void AddClassroom(Classroom classroom)
{
Classrooms.Add(classroom);
if (!Teachers.Contains(classroom.Teacher))
Teachers.Add(classroom.Teacher);
}
public Student FindStudent(int id)
{
foreach (Classroom c in Classrooms)
foreach (Student s in c.Students)
if (s.Id == id)
return s;
return null;
}
public void PrintFullReport()
{
Console.WriteLine($"\n╔══════════════════════════════╗");
Console.WriteLine($"║ בית ספר {Name} ║");
Console.WriteLine($"╚══════════════════════════════╝");
foreach (Classroom c in Classrooms)
c.PrintReport();
}
}
class Program
{
static void Main()
{
// יצירת בית ספר
School school = new School("הרצל");
// יצירת מורים
Teacher teacher1 = new Teacher("דני כהן", "מתמטיקה");
Teacher teacher2 = new Teacher("שרה לוי", "אנגלית");
// יצירת כיתות
Classroom class1 = new Classroom("ט1", teacher1);
Classroom class2 = new Classroom("ט2", teacher2);
// יצירת תלמידים
Student s1 = new Student("יוסי", 101);
s1.AddGrade(95);
s1.AddGrade(88);
s1.AddGrade(92);
Student s2 = new Student("שרה", 102);
s2.AddGrade(78);
s2.AddGrade(85);
s2.AddGrade(80);
Student s3 = new Student("דוד", 103);
s3.AddGrade(90);
s3.AddGrade(94);
s3.AddGrade(88);
// הוספת תלמידים לכיתות
class1.AddStudent(s1);
class1.AddStudent(s2);
class2.AddStudent(s3);
// הוספת כיתות לבית ספר
school.AddClassroom(class1);
school.AddClassroom(class2);
// דוח מלא
school.PrintFullReport();
// חיפוש תלמיד
Student found = school.FindStudent(102);
if (found != null)
{
Console.WriteLine($"\n\nנמצא תלמיד:");
found.PrintInfo();
}
}
}
יצרת מערכת מלאה עם: Classes, Lists, Interfaces, Methods, Properties!
→ קודם 🏠 בית סיכום ←