上机内容,要求完成一个控制台程序,实现一个简易教学管理系统,使用c#编程语言,面向对象的编程语法!实现教学管理系统,学生选课,教师上课并录入成绩,学生查询成绩等功能!写出所有功能源代码并进行注释,使用vs软件


好的,下面是一个简易的教学管理系统的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 ``` 这个简易的教学管理系统实现了学生选课、教师上课并录入成绩、学生查询成绩等功能。你可以根据需要进一步扩展和优化这个系统。 [2024-10-24 17:39:28 | AI写代码神器 | 1398点数解答]
- c语音 定义一个结构体student,其中包含的成员为char no[10];char name[10];float score。设有5个学生,从键盘输入其信息,按成绩的升序排序。并输出这5个学生排序后的信息。 输入格式: "%s%s%f" 输出格式: "请输入第%d位同学的信息:姓名 学号 成绩\n" "%s,%s,%.0f\n" 输入样例: 张三 10001 98↙ 李四 10002 100↙ 王五 10003 95↙ 赵六 10004 99↙ 钱七 10005 93↙ 输出样例: 请输入第1位同学的信息:姓名 学号 成绩↙ 请输入第2位同学的信息:姓名 学号 成绩↙ 请输入第3位同学的信息:姓名 学号 成绩↙ 请输入第4位同学的信息:姓名 学号 成绩↙ 请输入第5位同学的信息:姓名 学号 成绩↙ 钱七,10005,93↙ 王五,10003,95↙ 张三,10001,98↙ 赵六,10004,99↙ 李四,10002,100↙(373点数解答 | 2024-10-30 00:37:20)266
- 定义一个结构体student,其中包含的成员为char no[10];char name[10];float score。设有5个学生,从键盘输入其信息,按成绩的升序排序。并输出这5个学生排序后的信息。 输入格式: "%s%s%f" 输出格式: "请输入第%d位同学的信息:姓名 学号 成绩\n" "%s,%s,%.0f\n" 输入样例: 张三 10001 98 李四 10002 100 王五 10003 95 赵六 10004 99 钱七 10005 93 输出样例: 请输入第1位同学的信息:姓名 学号 成绩 请输入第2位同学的信息:姓名 学号 成绩 请输入第3位同学的信息:姓名 学号 成绩 请输入第4位同学的信息:姓名 学号 成绩 请输入第5位同学的信息:姓名 学号 成绩 钱七,10005,93 王五,10003,95 张三,10001,98 赵六,10004,99 李四,10002,100(354点数解答 | 2024-10-30 18:45:58)206
- c语言定义一个结构体student,其中包含的成员为char no[10];char name[10];float score。设有5个学生,从键盘输入其信息,按成绩的升序排序。并输出这5个学生排序后的信息。 输入格式: "%s%s%f" 输出格式: "请输入第%d位同学的信息:姓名 学号 成绩\n" "%s,%s,%.0f\n" 输入样例: 张三 10001 98↙ 李四 10002 100↙ 王五 10003 95↙ 赵六 10004 99↙ 钱七 10005 93↙ 输出样例: 请输入第1位同学的信息:姓名 学号 成绩↙ 请输入第2位同学的信息:姓名 学号 成绩↙ 请输入第3位同学的信息:姓名 学号 成绩↙ 请输入第4位同学的信息:姓名 学号 成绩↙ 请输入第5位同学的信息:姓名 学号 成绩↙ 钱七,10005,93↙ 王五,10003,95↙ 张三,10001,98↙ 赵六,10004,99↙ 李四,10002,100↙(373点数解答 | 2024-10-31 19:49:58)192
- c语音定义一个结构体student,其中包含的成员为char no[10];char name[10];float score。设有5个学生,从键盘输入其信息,按成绩的升序排序。并输出这5个学生排序后的信息。 输入格式: "%s%s%f" 输出格式: "请输入第%d位同学的信息:姓名 学号 成绩\n" "%s,%s,%.0f\n" 输入样例: 张三 10001 98↙ 李四 10002 100↙ 王五 10003 95↙ 赵六 10004 99↙ 钱七 10005 93↙ 输出样例: 请输入第1位同学的信息:姓名 学号 成绩↙ 请输入第2位同学的信息:姓名 学号 成绩↙ 请输入第3位同学的信息:姓名 学号 成绩↙ 请输入第4位同学的信息:姓名 学号 成绩↙ 请输入第5位同学的信息:姓名 学号 成绩↙ 钱七,10005,93↙ 王五,10003,95↙ 张三,10001,98↙ 赵六,10004,99↙ 李四,10002,100↙(326点数解答 | 2025-01-01 20:11:47)183
- 编程实现一个简单的密码设置系统,从键盘输入字符命令,分别实现相应的功能。 初始化设置密码为123456,等待命令输入: (1)输入字符‘1’,功能:密码确认。提示输入密码,密码正确,返回“密码正确”,否则返回密码错误。 (2)输入字符‘2’,功能:设置密码。输入设置密码后,系统提示设置正确。 (3)输入字符‘3’,功能:显示密码。 (4)输入字符‘4’,功能:重置密码。密码重置为6个0; (5)输入字符‘0’,功能:系统退出。 (6)输入其他字符,系统提示输入错误请重新输入。 (286点数解答 | 2025-03-28 10:43:21)197
- 编程实现一个简单的密码设置系统,从键盘输入字符命令,分别实现相应的功能。 初始化设置密码为123456,等待命令输入: (1)输入字符‘1’,功能:密码确认。提示输入密码,密码正确,返回“密码正确”,否则返回密码错误。 (2)输入字符‘2’,功能:设置密码。输入设置密码后,系统提示设置正确。 (3)输入字符‘3’,功能:显示密码。 (4)输入字符‘4’,功能:重置密码。密码重置为6个0; (5)输入字符‘0’,功能:系统退出。 (6)输入其他字符,系统提示输入错误请重新输入。 用c语言 (414点数解答 | 2025-03-28 10:43:55)188
- 程实现一个简单的密码设置系统,从键盘输入字符命令,分别实现相应的功能。 初始化设置密码为123456,等待命令输入: (1)输入字符‘1’,功能:密码确认。提示输入密码,密码正确,返回“密码正确”,否则返回密码错误。 (2)输入字符‘2’,功能:设置密码。输入设置密码后,系统提示设置正确。 (3)输入字符‘3’,功能:显示密码。 (4)输入字符‘4’,功能:重置密码。密码重置为6个0; (5)输入字符‘0’,功能:系统退出。 (6)输入其他字符,系统提示输入错误请重新输入 用c语言 (519点数解答 | 2025-03-28 12:42:02)226
- 初始化设置密码为123456,等待命令输入: (1)输入字符‘1’,功能:密码确认。提示输入密码,密码正确,返回“密码正确”,否则返回密码错误。 (2)输入字符‘2’,功能:设置密码。输入设置密码后,系统提示设置正确。 (3)输入字符‘3’,功能:显示密码。 (4)输入字符‘4’,功能:重置密码。密码重置为6个0; (5)输入字符‘0’,功能:系统退出。 (6)输入其他字符,系统提示输入错误请重新输入。 用c语言(409点数解答 | 2025-04-05 18:09:56)184
- 初始化设置密码为123456,等待命令输入: (1)输入字符‘1’,功能:密码确认。提示输入密码,密码正确,返回“密码正确”,否则返回密码错误。 (2)输入字符‘2’,功能:设置密码。输入设置密码后,系统提示设置正确。 (3)输入字符‘3’,功能:显示密码。 (4)输入字符‘4’,功能:重置密码。密码重置为6个0; (5)输入字符‘0’,功能:系统退出。 (6)输入其他字符,系统提示输入错误请重新输入。 用c语言 (454点数解答 | 2025-04-05 18:48:42)185
- 初始化设置密码为123456,等待命令输入: (1)输入字符‘1’,功能:密码确认。提示输入密码,密码正确,返回“密码正确”,否则返回密码错误。 (2)输入字符‘2’,功能:设置密码。输入设置密码后,系统提示设置正确。 (3)输入字符‘3’,功能:显示密码。 (4)输入字符‘4’,功能:重置密码。密码重置为6个0; (5)输入字符‘0’,功能:系统退出。 (6)输入其他字符,系统提示输入错误请重新输入 C语言 (413点数解答 | 2025-04-06 15:37:16)130
- 初始化设置密码为123456,等待命令输入: (1)输入字符‘1’,功能:密码确认。提示输入密码,密码正确,返回“密码正确”,否则返回密码错误。 (2)输入字符‘2’,功能:设置密码。输入设置密码后,系统提示设置正确。 (3)输入字符‘3’,功能:显示密码。 (4)输入字符‘4’,功能:重置密码。密码重置为6个0; (5)输入字符‘0’,功能:系统退出。 (6)输入其他字符,系统提示输入错误请重新输入 C语言(403点数解答 | 2025-04-06 15:37:54)155
- c++程序: 实现一个单门课程成绩管理系统。进入系统时,用户可选择身份:1.教师;2学生。 以教师身份进入后,如果上次已保存了数据,可将文件中数据读取出来,并允许修改部分数据。如果未保存数据,则允许教师录入新的数据。具体功能包括: 可录入或修改课程信息,包括:课程编号、课程名称; 可录入或修改课程的评分项目 (数量任意,不低于3项),包括:项目名称、所占分比例(需进行合法性检测,各项目比例之和为100%);示例如下: 项目名称 所占比例 实验 30% 作业 20% 期中考试 20% 期末考试 30% 注: 一旦录入学生成绩后,评分项目不允许修改;未录入成绩数据时,允许进行修改。 3.可录入、修改、刑除学生(学生数量不限)读门课程的各项成绩,并按照其比例自动算出总成绩;学生基本信息包括学号、姓名;示例如下: 请录入“c++编程”课程成绩 学号:201901 姓名:张三 实验:60 作业:70 期中考试:60 期未考试:80 信息显示功能。可显示课程信息、评分项目信息、所有学生的成绩单。 5.能够将上述数据保存在文件中,二进制、文本文件均可。(课程信息和评 分项目信息可保存一个文件,成绩单(6361点数解答 | 2024-05-24 02:01:02)332