C#实现简易教学管理系统:含学生选课、教师录成绩及学生查分功能(附全源码)
好的,下面是一个简易的教学管理系统的C#控制台应用程序。这个系统包括学生选课、教师上课并录入成绩、学生查询成绩等功能。我们将使用面向对象的编程方法来实现这些功能。 1. 创建项目 首先,在Visual Studio中创建一个新的C#控制台应用程序项目。 2. 定义类 我们将定义以下几个类: - `Student`:表示学生。 - `Course`:表示课程。 - `Teacher`:表示教师。 - `TeachingSystem`:表示教学管理系统。 3. 实现代码 Student.cs ```csharp using System; using System.Collections.Generic; public class Student { public string Id { get; set; } public string Name { get; set; } public List<Course> Courses { get; set; } = new List<Course>(); public void AddCourse(Course course) { Courses.Add(course); Console.WriteLine($"{Name} 选修了 {course.Name}"); } public void ViewGrades() { Console.WriteLine($"{Name} 的成绩:"); foreach (var course in Courses) { if (course.Grades.ContainsKey(Id)) { Console.WriteLine($"{course.Name}: {course.Grades[Id]}"); } else { Console.WriteLine($"{course.Name}: 成绩未录入"); } } } } ``` Course.cs ```csharp using System; using System.Collections.Generic; public class Course { public string Id { get; set; } public string Name { get; set; } public Teacher Teacher { get; set; } public Dictionary<string, int> Grades { get; set; } = new Dictionary<string, int>(); public void AddGrade(Student student, int grade) { if (Grades.ContainsKey(student.Id)) { Console.WriteLine($"{student.Name} 在 {Name} 课程的成绩已存在,无法重复录入"); } else { Grades[student.Id] = grade; Console.WriteLine($"{student.Name} 在 {Name} 课程的成绩为 {grade}"); } } } ``` Teacher.cs ```csharp using System; using System.Collections.Generic; public class Teacher { public string Id { get; set; } public string Name { get; set; } public List<Course> Courses { get; set; } = new List<Course>(); public void AddCourse(Course course) { Courses.Add(course); course.Teacher = this; Console.WriteLine($"{Name} 开设了 {course.Name} 课程"); } public void InputGrades() { Console.WriteLine($"{Name} 正在录入成绩:"); foreach (var course in Courses) { Console.WriteLine($"请输入 {course.Name} 课程的成绩:"); foreach (var student in course.Grades.Keys) { Console.Write($"学生 {student} 的成绩: "); int grade; while (!int.TryParse(Console.ReadLine(), out grade) || grade < 0 || grade > 100) { Console.Write("输入无效,请输入0-100之间的整数: "); } course.AddGrade(new Student { Id = student }, grade); } } } } ``` TeachingSystem.cs ```csharp using System; using System.Collections.Generic; public class TeachingSystem { private List<Student> Students { get; set; } = new List<Student>(); private List<Teacher> Teachers { get; set; } = new List<Teacher>(); private List<Course> Courses { get; set; } = new List<Course>(); public void AddStudent(Student student) { Students.Add(student); Console.WriteLine($"学生 {student.Name} 已添加"); } public void AddTeacher(Teacher teacher) { Teachers.Add(teacher); Console.WriteLine($"教师 {teacher.Name} 已添加"); } public void AddCourse(Course course) { Courses.Add(course); Console.WriteLine($"课程 {course.Name} 已添加"); } public void StudentSelectCourse(Student student, Course course) { student.AddCourse(course); } public void TeacherInputGrades(Teacher teacher) { teacher.InputGrades(); } public void StudentViewGrades(Student student) { student.ViewGrades(); } } ``` Program.cs ```csharp using System; class Program { static void Main(string[] args) { TeachingSystem system = new TeachingSystem(); // 添加学生 Student student1 = new Student { Id = "S001", Name = "张三" }; Student student2 = new Student { Id = "S002", Name = "李四" }; system.AddStudent(student1); system.AddStudent(student2); // 添加教师 Teacher teacher1 = new Teacher { Id = "T001", Name = "王老师" }; system.AddTeacher(teacher1); // 添加课程 Course course1 = new Course { Id = "C001", Name = "数学" }; system.AddCourse(course1); // 教师开设课程 teacher1.AddCourse(course1); // 学生选课 system.StudentSelectCourse(student1, course1); system.StudentSelectCourse(student2, course1); // 教师录入成绩 system.TeacherInputGrades(teacher1); // 学生查看成绩 system.StudentViewGrades(student1); system.StudentViewGrades(student2); } } ``` 4. 运行程序 在Visual Studio中运行程序,你将看到以下输出: ``` 学生 张三 已添加 学生 李四 已添加 教师 王老师 已添加 课程 数学 已添加 王老师 开设了 数学 课程 张三 选修了 数学 李四 选修了 数学 王老师 正在录入成绩: 请输入 数学 课程的成绩: 学生 S001 的成绩: 85 学生 S002 的成绩: 90 张三 在 数学 课程的成绩为 85 李四 在 数学 课程的成绩为 90 张三 的成绩: 数学: 85 李四 的成绩: 数学: 90 ``` 这个简易的教学管理系统实现了学生选课、教师上课并录入成绩、学生查询成绩等功能。你可以根据需要进一步扩展和优化这个系统。 ######[AI写代码神器 | 1398点数解答 | 2024-10-24 17:39:28]
- C 语言:快速实现 5 个学生信息录入、按成绩升序排序并输出!(字节豆包 | 373点数解答 | 2024-10-30 00:37:20)430
- C语言实现:输入5名学生信息并按成绩升序排序输出(字节豆包 | 354点数解答 | 2024-10-30 18:45:58)378
- C语言:输入5个学生信息,按成绩升序排序并输出(字节豆包 | 373点数解答 | 2024-10-31 19:49:58)372
- C语言:输入5名学生信息并按成绩升序排序输出(字节豆包 | 326点数解答 | 2025-01-01 20:11:47)370
- Python 实现简易密码设置系统:多种功能交互与安全要点揭秘(字节豆包 | 286点数解答 | 2025-03-28 10:43:21)386
- C语言实现多功能密码设置系统:含代码及安全注意要点(字节豆包 | 414点数解答 | 2025-03-28 10:43:55)372
- C 语言实现:超简单密码设置系统,含代码与注意要点!(字节豆包 | 519点数解答 | 2025-03-28 12:42:02)410
- C语言实现密码管理系统:含功能代码与安全注意事项(字节豆包 | 409点数解答 | 2025-04-05 18:09:56)356
- C语言实现多功能密码系统:初始化、确认、设置、显示、重置与退出(字节豆包 | 454点数解答 | 2025-04-05 18:48:42)358
- C语言实现密码管理系统:含初始化、确认、设置、显示、重置及退出功能(字节豆包 | 413点数解答 | 2025-04-06 15:37:16)304
- C 语言实现密码管理系统:含初始化、确认、设置、显示、重置及退出功能(字节豆包 | 403点数解答 | 2025-04-06 15:37:54)315
- 成绩等级统计:20个60 - 100分成绩的等级数量揭秘(字节豆包 | 219点数解答 | 2025-04-09 10:20:32)239