Menu
CoddyTech

回顾:点管理器

本课属于 Coddy C 学习旅程的“面向对象编程”单元。第 11 课,共 61 课。

challenge icon

挑战

简单

我们来构建一个完整的 Point 模块,用于管理二维坐标。这个复习挑战会综合运用你学过的知识,了解如何把结构体当作对象使用:通过指针修改状态,并使用 const 指针执行只读操作。

你需要创建三个文件:

  • point.h:声明一个包含两个整数成员的 Point 结构体:x 和 y。还要声明两个充当方法的函数:
    • point_move:接收一个指向 Point 的指针和两个整数(dx 和 dy),将这两个值分别加到 x 和 y 上,从而移动点的位置
    • point_print:接收一个指向 Point 的 const 指针,并显示它的坐标(此函数不应修改该点)
    使用符号 POINT_H 添加包含保护。
  • point.c:实现这两个函数。仔细考虑哪个函数需要使用普通指针来修改点,哪个函数使用 const 指针来安全地读取点而不进行修改。
  • main.c:创建一个 Point,移动它,并显示它在不同阶段的位置。

你会收到 4 个整数输入:初始 x、初始 y、dx 值(水平移动的距离)和 dy 值(垂直移动的距离)。

在主文件中,使用起始坐标初始化一个 Point,打印它的初始位置,按给定的距离移动它,然后打印它的新位置。

point_print 函数应按以下格式输出:

Point: ({x}, {y})

例如,输入 3、5、2 和 -1 时,输出为:

Point: (3, 5)
Point: (5, 4)

亲手试试

#include <stdio.h>
#include "point.h"

int main() {
    // 读取输入值
    int x, y, dx, dy;
    scanf("%d", &x);
    scanf("%d", &y);
    scanf("%d", &dx);
    scanf("%d", &dy);
    
    // TODO:创建一个初始坐标为 (x, y) 的 Point
    
    // TODO:使用 point_print 输出初始位置
    
    // TODO:使用 point_move 将点移动 (dx, dy)
    
    // TODO:使用 point_print 输出新位置
    
    return 0;
}

面向对象编程中的所有课

自己练习: C 在线编译器