Files
T2-start-2025/CS/Starter_assignment/Course.cs
Rens Pastoor 11b391b8a1 sync
2025-05-27 22:41:46 +02:00

74 lines
2.4 KiB
C#

namespace Starter_assignment;
class Course {
private List<Student> students = new List<Student>();
private Dictionary<string, List<Student>> groups = new Dictionary<string, List<Student>>();
private int groupCounter = 1;
public void AddStudent(string name, int studentNumber) {
name = name.Trim();
foreach (Student student in students) {
if (student.GetStudentNumber() == studentNumber) {
Console.WriteLine("Student number must be unique.");
return;
}
}
string groupName = groups.Keys.LastOrDefault();
if (groupName == null || groups[groupName].Count >= 3) {
groupName = $"PG{groupCounter}";
groups[groupName] = new List<Student>();
groupCounter++;
}
Student newStudent = new Student(name, studentNumber, groupName);
students.Add(newStudent);
groups[groupName].Add(newStudent);
Console.WriteLine($"Student {name} added successfully to {groupName}.");
}
public void ViewAllStudents() {
foreach (Student student in students) {
Console.WriteLine(student.GetInfo());
}
}
public void ViewAllGroups() {
foreach (KeyValuePair<string, List<Student>> group in groups) {
Console.WriteLine(group.Key);
}
}
public void SearchByStudentNumber(int studentNumber) {
Student foundStudent = null;
foreach (Student student in students) {
int currentStudentNumber = student.GetStudentNumber();
if (currentStudentNumber == studentNumber) {
foundStudent = student;
break;
}
}
if (foundStudent != null) {
Console.WriteLine(foundStudent.GetInfo());
} else {
Console.WriteLine("No student found.");
}
}
public void SearchByGroup(string groupName) {
if (groups.ContainsKey(groupName)) {
foreach (Student student in groups[groupName]) {
Console.WriteLine(student.GetInfo());
}
} else {
Console.WriteLine("Group not found.");
}
}
public void ShowStatistics() {
Console.WriteLine($"Total students: {students.Count}");
Console.WriteLine($"Total groups: {groups.Count}");
}
}