實驗9:Problem E: 點在圓內嗎?

来源:http://www.cnblogs.com/auto1945837845/archive/2016/04/29/5447300.html
-Advertisement-
Play Games

有個坑是: Problem E: 點在圓內嗎? Problem E: 點在圓內嗎? Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 553 Solved: 277[Submit][Status][Web Board] Description 定義一個Poi ...


有個坑是:

  1. The Point (0, 0) is created!
  2. A Point (0, 0) is copied!
  3.  A Point (0, 0) is erased!

 

Home Web Board ProblemSet Standing Status Statistics
  Problem E: 點在圓內嗎?

Problem E: 點在圓內嗎?

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 553  Solved: 277
[Submit][Status][Web Board]

Description

定義一個Point類和Circle類,用於判斷給定的一系列的點是否在給定的圓內。

其中,Point類:

1.有2個成員x和y,分別為其橫坐標和縱坐標;1個靜態成員numOfPoints,用於計算生成的點的個數。

2.具有構造函數、析構函數和拷貝構造函數,具體格式輸出根據樣例自行判斷。

3. 具有靜態方法int getNumOfPoints(),用於返回numOfPoints的值。

4. 具有int getX()和int getY()方法,用於獲取橫坐標和縱坐標。

Circle類:

1. 擁有Point類的對象center,表示圓心坐標。擁有radius對象,表示圓的半徑;1個靜態成員numOfCircles,用於指示生成了多少個圓對象。

2. 具有構造函數、析構函數和拷貝構造函數,具體格式根據樣例自行判斷。

3.具有靜態方法int getNumOfCircles(),返回numOfCircles的值。

4. 具有getCenter()方法,返回圓心坐標。註意:根據輸出結果判斷返回值類型。

5. 具有bool pointInCircle(Point &)方法,用於判斷給定的點是否在當前圓內。是則返回true,否則返回false。

 

Input

輸入分多行。

第一行M>0,表示有M個測試用例。

每個測試用例又包括多行。第1行包含3個整數,分別為一個圓的橫坐標、縱坐標和半徑。第2行N>0,表示之後又N個點,每個點占一行,分別為其橫坐標和縱坐標。

所有輸入均為整數,且在int類型範圍內。

 

Output

輸出見樣例。註意:在圓的邊上的點,不在圓內。

 

Sample Input

2 0 0 10 3 2 2 11 11 10 0 1 1 20 3 2 2 1 1 100 100

Sample Output

The Point (0, 0) is created! Now, we have 1 points. The Point (1, 1) is created! Now, we have 2 points. A circle at (1, 1) and radius 1 is created! Now, we have 1 circles. We have 2 points and 1 circles now. The Point (0, 0) is created! Now, we have 3 points. A Point (0, 0) is copied! Now, we have 4 points. A Point (0, 0) is copied! Now, we have 5 points. A circle at (0, 0) and radius 10 is created! Now, we have 2 circles. A Point (0, 0) is erased! Now, we have 4 points. The Point (2, 2) is created! Now, we have 5 points. (2, 2) is in the circle at (0, 0). The Point (11, 11) is created! Now, we have 6 points. (11, 11) is not in the circle at (0, 0). The Point (10, 0) is created! Now, we have 7 points. (10, 0) is not in the circle at (0, 0). A Point (0, 0) is erased! Now, we have 6 points. A circle at (0, 0) and radius 10 is erased! Now, we have 1 circles. A Point (0, 0) is erased! Now, we have 5 points. The Point (1, 1) is created! Now, we have 6 points. A Point (1, 1) is copied! Now, we have 7 points. A Point (1, 1) is copied! Now, we have 8 points. A circle at (1, 1) and radius 20 is created! Now, we have 2 circles. A Point (1, 1) is erased! Now, we have 7 points. The Point (2, 2) is created! Now, we have 8 points. (2, 2) is in the circle at (1, 1). The Point (1, 1) is created! Now, we have 9 points. (1, 1) is in the circle at (1, 1). The Point (100, 100) is created! Now, we have 10 points. (100, 100) is not in the circle at (1, 1). A Point (1, 1) is erased! Now, we have 9 points. A circle at (1, 1) and radius 20 is erased! Now, we have 1 circles. A Point (1, 1) is erased! Now, we have 8 points. We have 8 points, and 1 circles. A circle at (1, 1) and radius 1 is erased! Now, we have 0 circles. A Point (1, 1) is erased! Now, we have 7 points. A Point (0, 0) is erased! Now, we have 6 points.

HINT

 

Append Code

append.cc,
[Submit][Status][Web Board]

한국어<   中文  فارسی  English  ไทย
All Copyright Reserved 2010-2011
SDUSTOJ TEAM
GPL2.0 2003-2011 HUSTOJ Project TEAM
Anything about the Problems, Please Contact Admin:
admin

#include<iostream>
using namespace std;
class Point{
public:
    int x,y;
    static int numOfPoints;
    Point(int a=0,int b=0):x(a),y(b){numOfPoints++;cout<<"The Point ("<<x<<", "<<y<<") is created! Now, we have "<<numOfPoints<<" points."<<endl;}
    ~Point(){numOfPoints--;cout<<"A Point ("<<x<<", "<<y<<") is erased! Now, we have "<<numOfPoints<<" points."<<endl;}
    Point(const Point&p){numOfPoints++;x=p.x;y=p.y;cout<<"A Point ("<<x<<", "<<y<<") is copied! Now, we have "<<numOfPoints<<" points."<<endl;}
    static int getNumOfPoints(){return numOfPoints;}
    int getX(){return x;}
    int getY(){return y;}

};
class Circle{
public:
    Point center;
    int radius;
    static int numOfCircles;
    Circle(int a,int b,int c):center(a,b),radius(c){numOfCircles++;cout<<"A circle at ("<<center.x<<", "<<center.y<<") and radius "<<radius<<" is created! Now, we have "<<numOfCircles<<" circles."<<endl;}
    Circle(Point p,int r):center(p),radius(r){numOfCircles++;cout<<"A circle at ("<<center.x<<", "<<center.y<<") and radius "<<radius<<" is created! Now, we have "<<numOfCircles<<" circles."<<endl;}
    ~Circle(){numOfCircles--;cout<<"A circle at ("<<center.x<<", "<<center.y<<") and radius "<<radius<<" is erased! Now, we have "<<numOfCircles<<" circles."<<endl;}
    Circle(const Circle &c){numOfCircles++;center.x=c.center.x;center.y=c.center.y;radius=c.radius;cout<<"A circle at ("<<center.x<<", "<<center.y<<") and radius "<<radius<<" is created! Now, we have "<<numOfCircles<<" circles."<<endl;}
    static int getNumOfCircles(){return numOfCircles;}
    Point &getCenter(){return center;}
    bool pointInCircle(Point &p){if((p.x-center.x)*(p.x-center.x)+(p.y-center.y)*(p.y-center.y)<radius*radius) return true;else return false;}
};
int Point::numOfPoints=0;
int Circle::numOfCircles=0;
int main()
{
    int cases,num;
    int x, y, r, px, py;
    Point aPoint(0,0), *bPoint;
    Circle aCircle(1,1,1);
    cin>>cases;
    cout<<"We have "<<Point::getNumOfPoints()<<" points and "<<Circle::getNumOfCircles()<<" circles now."<<endl;
    for (int i = 0; i < cases; i++)
    {
        cin>>x>>y>>r;
        bPoint = new Point(x,y);
        Circle circle(*bPoint, r);
        cin>>num;
        for (int j = 0; j < num; j++)
        {
            cin>>px>>py;
            if (circle.pointInCircle(*(new Point(px, py))))
            {
                cout<<"("<<px<<", "<<py<<") is in the circle at (";
                cout<<circle.getCenter().getX()<<", "<<circle.getCenter().getY()<<")."<<endl;
            }
            else
            {
                cout<<"("<<px<<", "<<py<<") is not in the circle at (";
                cout<<circle.getCenter().getX()<<", "<<circle.getCenter().getY()<<")."<<endl;
            }
        }
        delete bPoint;
    }
    cout<<"We have "<<Point::getNumOfPoints()<<" points, and "<<Circle::getNumOfCircles()<<" circles."<<endl;
    return 0;
}

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、Enable-Migrations 啟用遷移 2、Add-Migration 為掛起的Model更改創建遷移版本 2、Update-Database 更新資料庫命令 (1)預設更新到最新版本 (2)更新到特定版本 -TargetMigration(如下圖)。 此命令可當作回滾用,如我已經完成了所 ...
  • 獲取【下載地址】 【免費支持更新】三大資料庫 mysql oracle sqlsever 更專業、更強悍、適合不同用戶群體【新錄針對本系統的視頻教程,手把手教開發一個模塊,快速掌握本系統】 A集成代碼生成器 [正反雙向(單表、主表、明細表、樹形表,開發利器)+快速構建表單;freemaker模版技術 ...
  • 步驟一:在聲明的數據域中按Ctrl+1: 步驟二:點擊最後一個選項Create getter and setter,在彈出的對話框中點擊確定: 在介紹另外一個方法: 步驟一:聲明完類的數據域之後,輸入set,按住Alt+/: 步驟二:同步驟一,輸入get,再按住Alt+/: ...
  • 1.在C++ 程式中調用被C 編譯器編譯後的函數,為什麼要加extern “C”?答:首先,extern是C/C++語言中表明函數和全局變數作用範圍的關鍵字,該關鍵字告訴編譯器,其聲明的函數和變數可以在本模塊或其它模塊中使用。通常,在模塊的頭文件中對本模塊提供給其它模塊引用的函數和全局變數以關鍵字e ...
  • 你應該知道介面是一種契約,它與實現方式無關 但是類,即使是抽象類,你都能自定義成員變數,而成員變數往往就與實現方式有關。 這一點的實際意義不大。 但是有一點,類會暴露太多不必要,甚至不能暴露的東西,你看一下java.util中,大部分的數據結構,都被設計成了介面-抽象類-最後實際類 例如Collec ...
  • 目錄 1 描述性統計是什麼?2 使用NumPy和SciPy進行數值分析 2.1 基本概念 2.2 中心位置(均值、中位數、眾數) 2.3 發散程度(極差,方差、標準差、變異繫數) 2.4 偏差程度(z-分數) 2.5 相關程度(協方差,相關係數) 2.6 回顧3 使用Matplotlib進行圖分析 ...
  • 程式模擬的系統結構如下 軟體界面如下 第一張圖為執行機構的輸出u的變化曲線(第一個水箱的進水量) 第二張圖為第一個水箱(上水箱)的水位變化曲線 第三張圖為第二個水箱(下水箱)的水位變化曲線 控制面板如下 設定值預設為10 預設為自動控制,點擊手動控制按鈕後,控制對象的輸入u不會自動變化。 手動控制切 ...
  • 最近在做一個項目使用到 http_build_query 這個魔術方法很好用,它可以將一個數組轉換成這樣的格式: 比如 $_arr = array('action'=>'show','page'=>'2'); 使用 http_build_query($_arr); echo $_arr; 結果如下: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...