编程作业:结构体、联合与枚举的应用

需积分: 0 0 下载量 181 浏览量 更新于2024-08-03 收藏 216KB PDF 举报
"本次作业主要涉及C语言中的结构体、联合和枚举的使用,以及相关的数据操作。作业包括三个部分:设计一个学生结构体,计算数学最终成绩并输出;定义点和矩形结构体,编写相关操作函数;定义课程枚举类型并创建课表,输出课程时间。" 在C语言中,结构体是一种自定义数据类型,可以将多个不同类型的变量组合在一起形成一个新的数据结构。在题目1中,我们需要创建一个名为`Student`的结构体,包含`name`(姓名)、`id`(学号)、`math_score`(数学平时成绩)、`midterm`(期中成绩)、`final`(期末成绩)和`grade`(最终课程成绩)这六个字段。然后,我们可以初始化一个结构体数组,为4位学生分配初始值。接着,利用给定的权重(平时50%,期中20%,期末30%)计算最终课程成绩,并根据给定的成绩等级表转换为等级制。最后,通过循环遍历结构体数组,输出每位学生的各项成绩。 题目2涉及到两个结构体`point`和`rectangle`。`point`用于表示屏幕上的点,包含两个整型字段`x`和`y`。`rectangle`用于表示矩形,包含两个`point`类型的成员`upper_left`和`lower_right`,分别表示矩形的左上角和右下角坐标。我们需要编写四个函数来操作矩形:计算面积、获取矩形中心、移动矩形和判断点是否在矩形内。这些函数都需要接收`rectangle`类型的参数,并根据需求进行计算和修改。 题目3引入了枚举类型`Course`,它用于表示课程名称。枚举类型允许我们定义一组预定义的常量,每个常量都有一个关联的整数值。在这里,我们需要创建一个枚举类型,包含所有课程的名称。接着,定义一个二维数组来表示一周的课表,每个元素都是`Course`类型,表示特定时间的课程。我们需要编写一个函数,接受一个`Course`类型的参数,输出该课程在一周内的上课时间。此外,主函数中还需要读取用户输入的课程名称,通过strcmp函数比较后,调用对应的函数输出课程的时间表。 这个作业旨在考察对C语言中数据结构和基本操作的理解,包括结构体的定义、初始化和遍历,枚举类型的使用,以及函数的设计和调用。同时,也涉及到简单的输入输出处理和字符串比较。通过完成这些任务,学生可以进一步提升他们的编程能力。