Wd 1-26 2022-12-20 22:43 采纳率: 0%
浏览 110
已结题

刚刚学习编程,这个问题应该怎么解决

求最近距离的药店。【问题描述】
一到冬季,感冒生病的人就变多。试根据下面的描述求出距离小明家最近的药店距离。假设小明家用二维平面下的坐标点来表示(x,y),小明家附近有n家药店(n<=10),n家药店距离小明家均不超过1000,用坐标点(xi,yi)表示,编写程序求得小明家到最近的药店距离。即对于任意不同的xi,xj,求出min{ sqrt((xi- x)(xi-x) + (yi-y)(yi-y) )}
同时,需要采用以下实现方式完成:
自定义实现Point类,同时实现构造,拷贝构造,析构三个函数。并统计整个程序中三种函数的调用次数。可格式参考如下:
class Point{ public:
int x:y:
Point(int a=0,int b=0){…}
Point(const Point &a)L)
~Point0{.…}

  • 写回答

6条回答 默认 最新

  • 极智视界 2022-12-21 12:03
    关注
    获得7.50元问题酬金

    下面是一个可以解决这个问题的示例代码:

    #include <iostream>
    #include <cmath>
    
    using namespace std;
    
    // 定义 Point 类
    class Point {
    public:
        int x, y;
        // 构造函数
        Point(int a = 0, int b = 0) {
            x = a;
            y = b;
            cout << "Point 构造函数被调用" << endl;
        }
        // 拷贝构造函数
        Point(const Point &a) {
            x = a.x;
            y = a.y;
            cout << "Point 拷贝构造函数被调用" << endl;
        }
        // 析构函数
        ~Point() {
            cout << "Point 析构函数被调用" << endl;
        }
    };
    
    // 计算两点之间的距离
    double distance(Point p1, Point p2) {
        return sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));
    }
    
    int main() {
        int n;
        Point home(0, 0); // 小明家的坐标
        Point store(0, 0); // 药店的坐标
    
        cout << "请输入小明家的坐标:" << endl;
        cin >> home.x >> home.y;
        cout << "请输入药店的数量:" << endl;
        cin >> n;
    
        // 记录最小距离
        double min_distance = 1000000;
    
        for (int i = 0; i < n; i++) {
            cout << "请输入第 " << i+1 << " 家药店的坐标:" << endl;
            cin >> store.x >> store.y;
    
            // 计算两点之间的距离
            double d = distance(home, store);
            // 更新最小距离
            if (d < min_distance) {
                min_distance = d;
            }
        }
    
        cout << "距离最近的药店距离小明家 " << min_distance << " 单位" << endl;
        return 0;
    }
    

    在上面的代码中,我们定义了一个 Point 类,其中包含构造函数、拷贝构造函数和析构函数。

    在主函数中,我们首先输入小明家的坐标,然后输入药店的数量。接着,我们通过循环输入药店的坐标,并计算与小明家之间的距离。如果距离小于最小距离,就更新最小距离。最后,输出最小距离即可。

    评论

报告相同问题?

问题事件

  • 系统已结题 12月28日
  • 创建了问题 12月20日

悬赏问题

  • ¥15 H.264选择性加密例程
  • ¥50 windows的SFTP服务器如何能批量同步用户信息?
  • ¥15 centos7.9升级python3.0的问题
  • ¥15 如何解决调试dev-出++5.11不成功问题
  • ¥15 安装CentOS6时卡住
  • ¥20 关于#监控系统#的问题,如何解决?(相关搜索:系统软件)
  • ¥20 c语言写的8051单片机存储器mt29的模块程序
  • ¥60 求直线方程 使平面上n个点在直线同侧并且距离总和最小
  • ¥50 java算法,给定试题的难度数量(简单,普通,困难),和试题类型数量(单选,多选,判断),以及题库中各种类型的题有多少道,求能否随机抽题。
  • ¥50 rk3588板端推理