用C#写:学生活动报名系统描述:设计一 个学生活动报名系统,其中包含一个Student类 和一个Event类。学生可以选择报名参加一个或 多个活动。系统应支持以下功能:学生报名活 动。列出学生已报名的活动。检查活动是否满员
时间: 2024-09-25 16:16:26 浏览: 137
在C#中,我们可以创建一个简单的学生活动报名系统,包括`Student`和`Event`两个类。这里是一个基本的设计描述:
```csharp
// Student类
public class Student
{
public int ID { get; set; }
public string Name { get; set; }
private List<Event> enrolledEvents;
// 构造函数
public Student(int id, string name)
{
ID = id;
Name = name;
enrolledEvents = new List<Event>();
}
// 报名活动方法
public void RegisterForEvent(Event e)
{
if (!e.IsFull)
{
e.Enroll(this);
enrolledEvents.Add(e);
} else
{
Console.WriteLine("活动已满,无法报名!");
}
}
// 列出报名活动
public void ViewEnrolledEvents()
{
if (enrolledEvents.Count > 0)
{
Console.WriteLine($"学生{Name}已报名的活动有:");
foreach (var eventObj in enrolledEvents)
{
Console.WriteLine($" - {eventObj.Name}");
}
} else
{
Console.WriteLine($"{Name}还未报名任何活动。");
}
}
}
// Event类
public abstract class Event
{
public int ID { get; set; }
public string Name { get; set; }
protected int maxCapacity;
private int currentRegistrations = 0;
// 构造函数
public Event(int id, string name, int capacity)
{
ID = id;
Name = name;
maxCapacity = capacity;
}
// 检查活动是否满员
public bool IsFull => currentRegistrations == maxCapacity;
// 抽象方法,子类需实现报名操作
public abstract void Enroll(Student student);
// 其他如取消报名等方法...
}
// 子类示例(例如SportsEvent)
public class SportsEvent : Event
{
public override void Enroll(Student student)
{
currentRegistrations++;
Console.WriteLine($"{student.Name}已成功报名体育活动'{Name}'!");
}
}
```
这个设计包含了基本的功能,学生可以报名活动、查看已报名活动以及检查活动是否满员。注意,由于题目要求支持多种活动,所以`Event`是一个抽象类,并且子类(如`SportsEvent`)需要实现`Enroll`方法的具体行为。
阅读全文