返回

C# 综合应用实习:揭秘学生成绩录入系统的神秘面纱

后端

C#综合应用实习中的学生成绩录入系统

专业和课程列表的下拉加载

为了方便用户选择,系统从数据库中加载专业和课程名列表,并将其显示在对应的下拉框中。当用户选择某个专业时,系统还会根据该专业加载对应的学号列表,便于用户快速筛选出需要录入成绩的学生。

学生成绩的显示

当用户选择某个学生和某一门课时,系统会从数据库中检索并显示该学生该门课的成绩。成绩将显示在表单中,以便用户可以查看和修改。

学生成绩的录入

系统允许用户录入学生成绩,并将其保存到数据库中。用户只需选择学生和课程,输入成绩,然后点击“提交”按钮,成绩便会被记录在系统中。

表单验证

为了确保录入的成绩准确无误,系统会进行表单验证。例如,当用户输入成绩时,系统会检查成绩是否为数字,并且在合理范围内。

代码示例

// 从数据库中加载专业列表
List<string> majors = new List<string>();
using (var conn = new SqlConnection(connectionString))
{
    conn.Open();
    var cmd = new SqlCommand("SELECT Major FROM Majors", conn);
    using (var reader = cmd.ExecuteReader())
    {
        while (reader.Read())
        {
            majors.Add(reader.GetString(0));
        }
    }
}

// 将专业列表选项添加到下拉框中
comboBoxMajors.DataSource = majors;

// 从数据库中加载课程名列表
List<string> courses = new List<string>();
using (var conn = new SqlConnection(connectionString))
{
    conn.Open();
    var cmd = new SqlCommand("SELECT CourseName FROM Courses", conn);
    using (var reader = cmd.ExecuteReader())
    {
        while (reader.Read())
        {
            courses.Add(reader.GetString(0));
        }
    }
}

// 将课程名列表选项添加到下拉框中
comboBoxCourses.DataSource = courses;

// 当用户选择某个专业时,触发此事件
private void comboBoxMajors_SelectedIndexChanged(object sender, EventArgs e)
{
    // 获取选中的专业
    string major = comboBoxMajors.SelectedItem.ToString();

    // 从数据库中加载该专业的学号列表
    List<string> studentIds = new List<string>();
    using (var conn = new SqlConnection(connectionString))
    {
        conn.Open();
        var cmd = new SqlCommand("SELECT StudentId FROM Students WHERE Major = @Major", conn);
        cmd.Parameters.AddWithValue("@Major", major);
        using (var reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                studentIds.Add(reader.GetString(0));
            }
        }
    }

    // 将学号列表选项添加到下拉框中
    comboBoxStudentIds.DataSource = studentIds;
}

// 当用户选择某个学生和某一门课时,触发此事件
private void comboBoxStudentIds_SelectedIndexChanged(object sender, EventArgs e)
{
    // 获取选中的学生和课程
    string studentId = comboBoxStudentIds.SelectedItem.ToString();
    string courseName = comboBoxCourses.SelectedItem.ToString();

    // 从数据库中检索该学生该门课的成绩
    int score = 0;
    using (var conn = new SqlConnection(connectionString))
    {
        conn.Open();
        var cmd = new SqlCommand("SELECT Score FROM Scores WHERE StudentId = @StudentId AND CourseName = @CourseName", conn);
        cmd.Parameters.AddWithValue("@StudentId", studentId);
        cmd.Parameters.AddWithValue("@CourseName", courseName);
        using (var reader = cmd.ExecuteReader())
        {
            if (reader.Read())
            {
                score = reader.GetInt32(0);
            }
        }
    }

    // 将成绩显示到表单中
    textBoxScore.Text = score.ToString();
}

// 录入学生成绩
private void buttonSubmitScore_Click(object sender, EventArgs e)
{
    // 获取选中的学生和课程
    string studentId = comboBoxStudentIds.SelectedItem.ToString();
    string courseName = comboBoxCourses.SelectedItem.ToString();

    // 获取录入的成绩
    int score = int.Parse(textBoxScore.Text);

    // 将成绩保存到数据库中
    using (var conn = new SqlConnection(connectionString))
    {
        conn.Open();
        var cmd = new SqlCommand("INSERT INTO Scores (StudentId, CourseName, Score) VALUES (@StudentId, @CourseName, @Score)", conn);
        cmd.Parameters.AddWithValue("@StudentId", studentId);
        cmd.Parameters.AddWithValue("@CourseName", courseName);
        cmd.Parameters.AddWithValue("@Score", score);
        cmd.ExecuteNonQuery();
    }

    // 提示用户录入成功
    MessageBox.Show("成绩录入成功!");
}

常见问题解答

  • 如何导出学生成绩单?
    系统提供导出功能,用户可以将学生成绩导出为 Excel 或 PDF 格式。

  • 如何管理学生个人信息?
    系统提供学生管理功能,用户可以添加、修改和删除学生信息。

  • 如何设置课程的成绩权重?
    系统允许用户设置课程的成绩权重,以计算学生的最终成绩。

  • 如何生成成绩报表?
    系统提供成绩报表生成功能,用户可以根据班级或专业生成成绩报表。

  • 系统是否可以与其他系统集成?
    系统支持与其他系统集成,例如学生信息系统和考试管理系统。