C#课程管理系统改进实践

17、改进教授类的AgreeToTeach方法的逻辑,使教授不会意外同意教授在同一天/同一时间上课的两个不同课程章节。

为实现此需求,可在 AgreeToTeach 方法中添加逻辑检查。在教授同意教授新的课程章节时,遍历其已教授的所有章节,检查新章节的上课时间(日期和时间)是否与已教授章节的时间冲突。若冲突,则不允许教授该章节。

以下是示例代码:

public class Professor 
{
    private Collection<Section> sectionsTaught;

    // 其他字段和方法...

    public bool AgreeToTeach(Section newSection) 
    {
        foreach (Section section in sectionsTaught) 
        {
            if (section.dayOfWeek == newSection.dayOfWeek && 
                section.timeOfDay == newSection.timeOfDay) 
            {
                return false; // 时间冲突,不允许教授
            }
        }

        sectionsTaught.Add(newSection);
        return true; // 时间不冲突,允许教授
    }
}

18、为课程类实现一个取消课程节次的方法,然后修正课程节次编号分配方式中课程调度方法的错误逻辑。(提示:为此在课程类中引入一个静态字段,并在每次创建新的课程节次时对其进行递增操作,这样即使后续取消某个课程节次,也不会出现重复的节次编号。)

以下是实现 CancelSection 方法并修正 ScheduleSection 方法逻辑的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值