实验9:Problem D: 从点到面

本文介绍了一个关于定义Point和Rectangle两个类的问题,通过具体的代码示例,详细展示了如何使用C++来创建表示二维空间中点和矩形的类。重点在于理解类的设计、构造函数、析构函数以及拷贝构造函数的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

HomeWeb BoardProblemSetStandingStatusStatistics
 
Problem D: 从点到面

Problem D: 从点到面

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 529   Solved: 332
[ Submit][ Status][ Web Board]

Description

一个矩形可以由左上角和右下角的顶点而唯一确定。现在请定义两个类:Point和Rectangle。

其中Point类有x和y两个属性(均为int类型),表示二维空间内一个点的横纵坐标,并具有相应的构造函数、析构函数和拷贝构造函数。此外,还有getX()和getY()方法用以得到一个点的坐标值。

Rectangle类有leftTop和rightBottom两个属性(均为Point类的对象),表示一个矩形的左上角和右下角的两个点,并具有相应的构造函数、析构函数。此外,还有getLeftTop()、getRightBottom()方法用于获取相应的左上角点、右下角点,getArea()方法用以获取面积。

 

Input

输入有多行。

第一行是一个正整数M,表示后面有M个测试用例。

每个测试用例占一行,包括4个正整数,分别为左上角的横坐标、纵坐标,右下角的横坐标、纵坐标。

注意:

1.请根据输出样例判断两个类中相应方法的书写方法。

2. 假定屏幕的左下角为坐标原点。

 

Output

输出见样例。

 

Sample Input

1 10 10 20 0

Sample Output

A point (10, 10) is created! A point (20, 0) is created! A rectangle (10, 10) to (20, 0) is created! Area: 100 Left top is (10, 10) A point (20, 0) is copied! A point (20, 0) is copied! Right bottom is (20, 0) A point (20, 0) is erased! A point (20, 0) is erased! A rectangle (10, 10) to (20, 0) is erased! A point (20, 0) is erased! A point (10, 10) is erased!

HINT

 

Append Code

[ Submit][ Status][ Web Board]
#include<iostream>
using namespace std;
class Point{
    friend class Rectangle;
public:
    int x,y;
    Point(int a,int b):x(a),y(b){cout<<"A point ("<<x<<", "<<y<<") is created!"<<endl;}
    ~Point(){cout<<"A point ("<<x<<", "<<y<<") is erased!"<<endl;}
    Point(const Point &p){x=p.x;y=p.y;cout<<"A point ("<<x<<", "<<y<<") is copied!"<<endl;}
    int getX(){return x;}
    int getY(){return y;}

};
class Rectangle{
    friend class Point;
public:
    Point leftTop,rightBottom;
    Rectangle(Point p,Point q):leftTop(p),rightBottom(q){cout<<"A rectangle ("<<leftTop.x<<", "<<leftTop.y<<") to ("<<rightBottom.x<<", "<<rightBottom.y<<") is created!"<<endl;}
    Rectangle(int a,int b,int c,int d):leftTop(a,b),rightBottom(c,d){cout<<"A rectangle ("<<leftTop.x<<", "<<leftTop.y<<") to ("<<rightBottom.x<<", "<<rightBottom.y<<") is created!"<<endl;}
    ~Rectangle(){cout<<"A rectangle ("<<leftTop.x<<", "<<leftTop.y<<") to ("<<rightBottom.x<<", "<<rightBottom.y<<") is erased!"<<endl;}
    Point &getLeftTop(){return leftTop;}
    Point getRightBottome(){return rightBottom;}
    int getArea(){return (rightBottom.x-leftTop.x)*(leftTop.y-rightBottom.y);}
};
int main()
{
    int cases;
    int x1, y1, x2, y2;

    cin>>cases;
    for (int i = 0; i < cases; i++)
    {
        cin>>x1>>y1>>x2>>y2;
        Rectangle rect(x1,y1,x2,y2);
        cout<<"Area: "<<rect.getArea()<<endl;
        cout<<"Left top is ("<<rect.getLeftTop().getX()<<", "<<rect.getLeftTop().getY()<<")"<<endl;
        cout<<"Right bottom is ("<<rect.getRightBottome().getX()<<", "<<rect.getRightBottome().getY()<<")"<<endl;
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/auto1945837845/p/5447296.html

好的,这是一个通用的**8D报告模板**,适用于解决各类质量问题(如客户投诉、内部缺陷、供应商问题等)。你可以根据具体情况进行填充和调整。 **8D报告模板** **报告编号:** `[例如:QR-2023-001]` **报告日期:** `[填写日期]` **负责人:** `[填写8D团队负责人姓名]` **问题来源:** `[例如:客户XXX投诉、内部发现、供应商反馈]` **产品/过程名称:** `[描述发生问题的产品或过程]` **问题描述:** `[清晰、客观、具体地描述问题现象,包括:What/What is wrong, Where, When, How many, How detected]` --- **D0:准备8D过程 (Prepare for the 8D Process)** * **紧急反应措施 (ERA - Emergency Response Action):** * `[描述为立即遏制问题影响、防止问题进一步扩大或流入客户处所采取的临时行动,例如:隔离库存、停止发货、通知客户、100%筛选、更换等。]` * **实施人:** `[姓名]` * **完成日期:** `[日期]` * **有效性验证:** `[简要说明如何确认ERA有效(如:筛选后无不良品流出,客户确认停止接收问题批次)]` **D1:组建团队 (Establish the Team)** * **团队成员 (列出姓名、部门、角色):** * `[姓名]` - `[部门]` - `[角色,如:组长、质量、工程、生产、采购、销售等]` * `[姓名]` - `[部门]` - `[角色]` * `[姓名]` - `[部门]` - `[角色]` * ... *(确保团队具备解决问题所需的知识、权限和资源)* **D2:描述问题 (Describe the Problem)** * **使用5W2H详细定义问题:** * **What:** `[问题具体是什么?缺陷模式?]` * **Where:** `[问题发生在哪里?地理位置、生产线、工位、产品部位?]` * **When:** `[问题何时首次被发现?何时开始发生?发生的时间模式?]` * **Who:** `[谁发现了问题?哪个客户/部门/操作员?]` * **Why:** `[为什么这是个问题?(对客户、内部流程、安全、成本等的影响)]` * **How:** `[问题是如何被发现的?(检验方法、测试方法、客户反馈)]` * **How many/much:** `[问题发生的数量?比例?缺陷率?影响范围(批次号、序列号、时间段)?成本估算?]` * **问题清晰化:** `[用一句话清晰概括核心问题]` * **图片/图表/数据附件:** `[如有,可在此注明或附上]` **D3:实施并验证临时措施 (Implement and Verify Interim Containment Actions)** * **临时遏制措施 (ICA - Interim Containment Action):** * `[描述在找到永久解决方案前,为100%防止问题流出到客户或内部下游流程所采取的全面围堵措施。比D0的ERA更系统、更彻底。例如:对所有在制品、成品、在途品、客户库存进行100%全检、返工、更换、召回;修改作业指导书增加临时检查点;加强供应商来料检验等。]` * **措施清单:** 1. `[措施1描述]` - **负责人:** `[姓名]` - **计划完成日:** `[日期]` - **实际完成日:** `[日期]` - **验证方法/结果:** `[描述如何验证该措施有效及结果]` 2. `[措施2描述]` - **负责人:** `[姓名]` - **计划完成日:** `[日期]` - **实际完成日:** `[日期]` - **验证方法/结果:** `[描述如何验证该措施有效及结果]` 3. ... *(持续进行,直到永久措施生效)* * **有效性验证总结:** `[确认ICA已有效实施,并成功阻止了问题蔓延。]` **D4:确定并验证根本原因 (Identify and Verify Root Cause)** * **问题分析过程:** * `[描述使用的根本原因分析工具,如:5 Why, 鱼骨图/Ishikawa, 因果矩阵, FMEA回顾, 故障树分析(FTA), DOE等。]` * `[展示分析过程的关键步骤和发现。例如:进行5 Why分析的问答链。]` * **识别出的可能原因:** * `[列出所有通过分析找到的可能原因(人、机、料、法、环、测)]` * **根本原因验证:** * `[描述如何通过数据、测试实验、再现性分析等方法,逐一验证或排除可能原因。]` * **确认的根本原因:** * `[清晰地、具体地陈述经过验证的、真正的、最底层的根本原因(通常不止一个)。避免模糊描述。例如:不是“操作员失误”,而是“作业指导书未明确要求测量扭矩,且未提供扭矩扳手”。]` 1. `[根本原因 1]` - **验证证据:** `[描述]` 2. `[根本原因 2]` - **验证证据:** `[描述]` 3. ... **D5:选择和验证永久纠正措施 (Choose and Verify Permanent Corrective Actions)** * **针对根本原因提出永久纠正措施 (PCA - Permanent Corrective Action):** * `[针对D4确认的每一个根本原因,提出具体的、可执行的、长期的解决方案。措施应能消除根本原因,防止问题复发。]` * **PCA方案评估与选择:** * `[描述评估备选PCA方案的过程(例如:可行性、成本、时间、风险、有效性)。]` * `[说明最终选择的PCA方案及理由。]` * **PCA清单:** 1. **针对根本原因 `[X]`:** `[PCA 1 详细描述]` - **负责人:** `[姓名]` - **计划完成日:** `[日期]` 2. **针对根本原因 `[Y]`:** `[PCA 2 详细描述]` - **负责人:** `[姓名]` - **计划完成日:** `[日期]` 3. ... * **PCA验证:** * `[描述在实施前或小范围试运行中,如何验证PCA的有效性(例如:通过测试、试生产、数据分析等)。]` * **验证结果:** `[确认PCA能有效解决根本原因,且不会引入新问题。]` **D6:实施和确认永久纠正措施 (Implement and Validate Permanent Corrective Actions)** * **PCA实施计划与执行:** * `[详细描述PCA的实施步骤、时间表、所需资源。]` * **实施状态:** 1. `[PCA 1]` - **负责人:** `[姓名]` - **计划完成日:** `[日期]` - **实际完成日:** `[日期]` - **证据:** `[例如:修改后的文件号、新设备照片、培训记录等]` 2. `[PCA 2]` - **负责人:** `[姓名]` - **计划完成日:** `[日期]` - **实际完成日:** `[日期]` - **证据:** `[例如:修改后的文件号、新设备照片、培训记录等]` 3. ... * **效果确认 (Validation):** * `[描述在PCA全面实施后,如何收集数据、监控过程/产品性能,以确认问题已被彻底解决且未复发(例如:跟踪关键指标X天/周/月,不良率降至目标以下,客户反馈改善)。]` * **确认结果:** `[提供数据或证据证明PCA长期有效,问题已关闭。]` * **ICA退出计划:** `[描述何时及如何安全地撤除D3的临时遏制措施(ICA)。]` **D7:预防再发生 (Prevent Recurrence)** * **系统改进:** * `[描述为防止此类问题或类似问题在其他产品、过程、地点或系统中再次发生,所采取的预防性措施。例如:]` * 修改相关文件:`[列出更新的文件,如:PFMEA, 控制计划(CP), 作业指导书(SOP/WI), 图纸, 检验标准, 设计规范等]` * 流程/系统变更:`[描述改进的管理流程、信息系统、审核机制等]` * 培训:`[针对修订内容对相关人员进行培训]` - **培训记录:** `[注明或附件]` * 经验教训分享:`[如何将本次问题的经验教训传递到其他相关区域或产品线]` * **措施清单:** 1. `[预防措施 1 描述]` - **负责人:** `[姓名]` - **计划完成日:** `[日期]` - **实际完成日:** `[日期]` 2. `[预防措施 2 描述]` - **负责人:** `[姓名]` - **计划完成日:** `[日期]` - **实际完成日:** `[日期]` 3. ... **D8:表彰小组和个人的贡献 (Congratulate the Team)** * **团队总结与认可:** * `[简要总结8D过程的成果和收获。]` * `[对团队及其成员的辛勤工作和贡献表示正式感谢和认可。]` * `[记录团队学到的关键经验教训。]` * **报告关闭:** * **关闭人:** `[通常是8D负责人或管理层代表]` * **关闭日期:** `[日期]` * **关闭条件确认:** `[确认所有D1-D7步骤均按要求完成且有效,问题已解决,预防措施到位。]` --- **附件 (Attachments):** * `[可在此列出所有支持性文件,如:图片、数据图表、测试报告、5 Why分析表、鱼骨图、FMEA更新页、修改后的文件副本、培训记录、会议记录等]` **批准 (Approvals):** * **编制:** `[姓名/日期]` * **审核:** `[姓名/日期]` (通常为质量或工程负责人) * **批准:** `[姓名/日期]` (通常为部门经理或管理层代表) --- **使用说明和注意事项:** 1. **实事求是:** 所有描述、数据和结论必须基于事实和证据。 2. **清晰具体:** 避免模糊语言,使用可量化和可验证的描述。 3. **区分D0, D3, D5:** * **D0 (ERA):** 是**立即**的**止血**动作,目的是**快速止损**。 * **D3 (ICA):** 是**系统性的围堵**,确保**问题不流出**,直到PCA生效。范围比D0更广。 * **D5 (PCA):** 是**消除根本原因**的**永久解决方案**。 4. **根本原因 (D4):** 这是核心。务必深入挖掘到最底层的原因,并用可靠的方法验证。避免停留在表面现象。 5. **系统性分析工具 (D4):** 务必使用合适的工具进行深入分析,不能凭感觉猜测。 6. **验证 (D3, D5, D6):** 每一步的关键措施(ICA, PCA)以及最终效果都必须有**客观证据**证明其有效性。 7. **预防 (D7):** 这是体现持续改进的关键。要将经验教训固化到系统和流程中,防止问题变异或异地复发。 8. **团队协作 (D1, D8):** 8D是团队工作,需要跨职能合作。认可贡献很重要。 9. **文件化:** 所有措施、修改、培训等都应有记录可查(作为附件或引用)。 10. **时间性:** 每个步骤都应有明确的计划日期和实际完成日期,确保问题及时解决。 11. **客户沟通:** 如果问题源于客户投诉,需及时向客户反馈8D进展和结果。 这个模板提供了一个结构化的框架。在实际应用中,根据问题的复杂性和公司的具体要求,内容的详略程度可以调整。核心是遵循8D的逻辑思维过程,系统地解决问题并防止再发。
最新发布
06-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值