M代码:课程选择与学生成绩查询

需积分: 10 0 下载量 78 浏览量 更新于2024-09-10 收藏 7KB TXT 举报
在本篇M代码中,主要讨论了与课程选择相关的两个核心功能:学生选课信息查询以及根据课程编号查找学生记录。首先,`ClassMethodFindInfoByName`方法用于获取特定学生姓名对应的所有选修课程信息。它通过以下步骤实现: 1. 将输入的学生姓名(`StName`)转换为大写(`setStName=$$ALPHAUP^SSUTIL4(StName)`),便于数据库查询。 2. 通过`$o(^DHCStudenti(...))`函数获取该姓名在`^DHCStudenti`表中的行ID(`sStRowId`)。 3. 遍历学生(`^DHCStudent`)表,找到与当前学生关联的所有课程(`forsetsub=$o(^DHCStudent(StRowId,"C",sub))`),并提取每门课程的相关信息,如课程代码(`CourseDr`)、课程描述(`CourseDesc`)和学分(`Score`)。 其次,`ClassMethodFindInfoByCourse`方法针对课程编号进行操作,其目的是查找某个课程的所有选修学生记录。具体流程如下: 1. 对输入的课程编号(`CourseNum`)进行大小写转换(`setCourseNum=$$ALPHAUP^SSUTIL4(CourseNum)`)。 2. 利用`$o(^User.DHCCourseI(...))`函数获取课程编号在`^User.DHCCourseI`表中的对应行ID(`sCourseRowId`)。 3. 遍历所有学生记录(`forsetStRowId=$o(^DHCStudent(StRowId))`),检查每个学生是否选修了指定课程: - 初始化一个标志变量`HasFlag`,表示学生是否已选该课程。 - 再次遍历学生课程列表(`forsetsub=$o(^DHCStudent(StRowId,"C",sub))`),如果找到与课程编号匹配的课程并且学生尚未选修,则记录相关信息(如设置`HasFlag`为1)。 这两个方法在教育管理信息系统中扮演着关键角色,帮助管理员和教师快速查询学生的选课情况,方便课程管理和教学评估。通过M语言编写这些方法,显示了其在处理数据检索和业务逻辑方面的高效性和灵活性。