描述:用c#设计一个学生活动报名系统,其中包含一个Student类和一个Event类。学生可以选择报名参加一个或多个活动。系统应支持以下功能: 学生报名活动。 列出学生已报名的活动。检查活动是否已满员。
时间: 2024-09-26 18:08:30 浏览: 45
C#程序设计综合实践-学生通讯录
在C#中,我们可以设计一个简单的学生活动报名系统,涉及两个核心类:`Student`和`Event`。首先,我们创建这两个类:
1. **Student 类**:
```csharp
public class Student
{
public int ID { get; set; }
public string Name { get; set; }
private Dictionary<int, Event> registeredEvents;
public Student(string name)
{
Name = name;
registeredEvents = new Dictionary<int, Event>();
}
// 报名活动
public void RegisterForEvent(Event e)
{
if (!e.IsFull)
{
e.Enroll(this);
registeredEvents.Add(e.ID, e);
}
else
{
Console.WriteLine($"Event {e.Name} is full.");
}
}
// 列出已报名活动
public string ListRegisteredEvents()
{
if (registeredEvents.Count == 0)
{
return "No events are registered.";
}
StringBuilder result = new StringBuilder();
foreach (var pair in registeredEvents)
{
result.AppendLine($"ID: {pair.Key}, Event: {pair.Value.Name}");
}
return result.ToString();
}
}
```
2. **Event 类**:
```csharp
public class Event
{
public int ID { get; set; }
public string Name { get; set; }
public int MaxCapacity { get; set; }
private int currentRegistrations;
public bool IsFull
{
get { return currentRegistrations >= MaxCapacity; }
}
public void Enroll(Student student)
{
if (IsFull)
{
throw new Exception("Event is already full.");
}
currentRegistrations++;
}
}
```
在这个设计中,每个学生有一个`Student`对象,可以注册多个活动,并通过`ListRegisteredEvents`方法查看他们已报名的活动。`Event`类有最大容量限制,当达到上限时拒绝新的注册请求。
阅读全文