返回
C# 综合应用实习:揭秘学生成绩录入系统的神秘面纱
后端
2023-03-29 17:04:05
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 格式。 -
如何管理学生个人信息?
系统提供学生管理功能,用户可以添加、修改和删除学生信息。 -
如何设置课程的成绩权重?
系统允许用户设置课程的成绩权重,以计算学生的最终成绩。 -
如何生成成绩报表?
系统提供成绩报表生成功能,用户可以根据班级或专业生成成绩报表。 -
系统是否可以与其他系统集成?
系统支持与其他系统集成,例如学生信息系统和考试管理系统。