You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将用户输入值分配至指定数组及为教师分配课程信息(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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 13:35:18