如何将用户输入值分配至指定数组及为教师分配课程信息(C#)
教务系统课表模块的C#实现方案
问题1:将用户输入的值分配至指定数组
实现逻辑
先根据用户输入的课程数量初始化对应长度的数组,再循环获取每门课的内容和教室信息,逐个填充到数组元素中。这里用自定义Course类封装课程信息,比单纯的字符串数组更清晰易维护。
代码示例
// 封装课程信息的实体类 public class Course { public string Content { get; set; } public string Classroom { get; set; } } // 从用户输入生成课程数组的方法 public static Course[] CreateCourseArrayFromInput() { Console.WriteLine("请输入课程数量:"); if (!int.TryParse(Console.ReadLine(), out int courseCount) || courseCount <= 0) { Console.WriteLine("课程数量输入无效"); return Array.Empty<Course>(); } Course[] courses = new Course[courseCount]; for (int i = 0; i < courseCount; i++) { Console.WriteLine($"请输入第{i+1}门课程的内容:"); string content = Console.ReadLine().Trim(); Console.WriteLine($"请输入第{i+1}门课程的教室:"); string classroom = Console.ReadLine().Trim(); courses[i] = new Course { Content = content, Classroom = classroom }; } return courses; }
问题2:将课程信息分配给特定教师指定工作日
实现逻辑
定义Teacher类,用字典存储教师的课表(键为工作日枚举,值为对应课程数组)。分配时找到目标教师,直接将课程数组关联到指定工作日的键值对中,若已有课表可选择覆盖或跳过。
代码示例
// 工作日枚举,避免输入错误 public enum Weekday { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday } // 封装教师信息及课表的实体类 public class Teacher { public string Name { get; set; } public Dictionary<Weekday, Course[]> Schedule { get; set; } public Teacher(string name) { Name = name; Schedule = new Dictionary<Weekday, Course[]>(); } } // 给指定教师分配指定工作日的课表 public static void AssignScheduleToTeacher(Teacher teacher, Weekday targetDay, Course[] courses) { if (teacher == null || courses == null) { Console.WriteLine("教师或课程信息不能为空"); return; } if (teacher.Schedule.ContainsKey(targetDay)) { Console.WriteLine($"教师{teacher.Name}在{targetDay}已有课表,是否覆盖?(Y/N)"); string choice = Console.ReadLine().Trim().ToUpper(); if (choice != "Y") return; teacher.Schedule[targetDay] = courses; } else { teacher.Schedule.Add(targetDay, courses); } Console.WriteLine($"已完成教师{teacher.Name}在{targetDay}的课表分配"); }
附加:查询模块实现
// 查询指定教师指定工作日的课表 public static void QueryTeacherSchedule(Teacher teacher, Weekday targetDay) { if (teacher == null) { Console.WriteLine("教师信息不能为空"); return; } if (!teacher.Schedule.TryGetValue(targetDay, out Course[] courses)) { Console.WriteLine($"教师{teacher.Name}在{targetDay}无课表记录"); return; } Console.WriteLine($"=== {teacher.Name} {targetDay}课表 ==="); for (int i = 0; i < courses.Length; i++) { Console.WriteLine($"第{i+1}节:{courses[i].Content} | 教室:{courses[i].Classroom}"); } }
调用示例
// 创建教师实例 Teacher mathTeacher = new Teacher("张老师"); // 生成课程数组 Course[] mondayCourses = CreateCourseArrayFromInput(); // 分配课表 AssignScheduleToTeacher(mathTeacher, Weekday.Monday, mondayCourses); // 查询课表 QueryTeacherSchedule(mathTeacher, Weekday.Monday);
内容的提问来源于stack exchange,提问作者yeah
相关产品推荐
相关产品推荐

