编写一个C#程序用来模拟考试流程,有一个老师类 Teacher,学 生类 Student,老师引发考试事件,学生进行考试,学生答完题发 出完成答题事件,老师收卷。
时间: 2024-03-12 17:43:09 浏览: 81
好的,这是一个简单的C#程序示例,实现了您所说的考试模拟流程。
```csharp
using System;
class Teacher
{
// 开始考试事件
public event Action StartExam;
// 考试结束事件
public event Action EndExam;
// 引发开始考试事件
public void BeginExam()
{
Console.WriteLine("考试开始!");
if (StartExam != null)
{
StartExam();
}
}
// 收卷
public void CollectPaper()
{
Console.WriteLine("考试结束,收卷!");
if (EndExam != null)
{
EndExam();
}
}
}
class Student
{
// 完成答题事件
public event Action AnswerCompleted;
// 参加考试
public void TakeExam()
{
Console.WriteLine("开始作答...");
// 模拟答题过程
for (int i = 1; i <= 10; i++)
{
Console.WriteLine("第{0}题:答案是A", i);
}
Console.WriteLine("作答完成!");
if (AnswerCompleted != null)
{
AnswerCompleted();
}
}
}
class Program
{
static void Main(string[] args)
{
Teacher teacher = new Teacher();
Student student = new Student();
// 注册事件处理方法
teacher.StartExam += student.TakeExam;
student.AnswerCompleted += teacher.CollectPaper;
// 开始考试
teacher.BeginExam();
Console.ReadLine();
}
}
```
在这个程序中,我们定义了一个Teacher类和一个Student类,分别表示老师和学生。老师类包含开始考试事件StartExam和考试结束事件EndExam,以及引发开始考试事件的BeginExam方法和收卷的CollectPaper方法。学生类包含完成答题事件AnswerCompleted和参加考试的TakeExam方法。在程序的Main方法中,我们创建了一个Teacher对象和一个Student对象,并将它们的事件处理方法相互注册。当老师引发开始考试事件时,会调用学生对象的TakeExam方法,模拟学生答题过程,并在答题完成后触发AnswerCompleted事件。老师对象的事件处理方法会在学生答完题后被调用,执行收卷操作,模拟考试结束。
阅读全文