写一段代码 基于C/S框架的考试系统
时间: 2024-11-30 10:16:46 浏览: 14
在C/S架构(Client-Server,客户端服务器模式)的考试系统中,通常分为前端客户端和后端服务器两部分。以下是一个简单的基于C# WinForm客户端和ASP.NET WebAPI后端的示例代码片段:
**前端(C# WinForms 客户端 - Windows应用程序)**
```csharp
using System;
using System.Net.Http;
using System.Windows.Forms;
public partial class ExamClient : Form
{
private HttpClient client = new HttpClient();
public ExamClient()
{
InitializeComponent();
}
private async void buttonStartExam_Click(object sender, EventArgs e)
{
string.examId = textBoxExamId.Text; // 获取考试ID
try
{
HttpResponseMessage response = await client.GetAsync($"api/exams/start/{examId}");
if (response.IsSuccessStatusCode)
{
MessageBox.Show("考试开始成功");
// 在这里处理响应数据...
}
else
{
MessageBox.Show("请求失败,请检查考试ID是否正确");
}
}
catch (Exception ex)
{
MessageBox.Show($"发生错误:{ex.Message}");
}
}
}
```
**后端(ASP.NET Web API - 服务器端)**
```csharp
// WebApiConfig.cs 或 Startup.cs 的控制器部分
[ApiController]
[Route("api/[controller]")]
public class ExamsController : ControllerBase
{
[HttpGet("{examId}/start")]
public ActionResult StartExam(int examId)
{
// 这里模拟数据库操作
if (IsExamValid(examId))
{
// 发送考试开始通知、更新状态等操作
return Ok("考试开始");
}
else
{
return BadRequest("无效的考试ID");
}
}
// 其他辅助方法...
}
```
这个例子展示了客户端如何通过HTTP GET请求向服务器发起考试开始的操作,并处理响应结果。实际的考试系统会更复杂,包括用户登录验证、考试题目管理、成绩计算等功能。
阅读全文