首页 > 编程语言 >编程打卡:面向对象程序设计

编程打卡:面向对象程序设计

时间:2023-05-23 19:11:21浏览次数:34  
标签:编程 return cout area float class 面向对象 打卡 public

#include <iostream>
#include <iomanip>
using namespace std;
const float PI = 3.14159;
class Shape {
public:
    virtual float area() = 0;
};
class Circle : public Shape {
private:
    float radius;
public:
    Circle(float r) : radius(r) {}
    float area() {
        return PI * radius * radius;
    }
};
class Rectangle : public Shape {
private:
    float length, breadth;
public:
    Rectangle(float l, float b) : length(l), breadth(b) {}
    float area() {
        return length * breadth;
    }
};
class Square : public Shape {
private:
    float side;
public:
    Square(float s) : side(s) {}
    float area() {
        return side * side;
    }
};
class Trapezoid : public Shape {
private:
    float a, b, h;
public:
    Trapezoid(float a, float b, float h) : a(a), b(b), h(h) {}
    float area() {
        return (a + b) * h / 2;
    }
};
class Triangle : public Shape {
private:
    float base, height;
public:
    Triangle(float b, float h) : base(b), height(h) {}
    float area() {
        return base * height / 2;
    }
};
int main() {
    float a[9];
    for (int i = 0; i < 9; i++) {
        cin >> a[i];
    }
    Circle c(a[0]);
    Square s(a[1]);
    Rectangle r(a[2], a[3]);
    Trapezoid t(a[4], a[5], a[6]);
    Triangle tr(a[7], a[8]);
    float sum = c.area() + s.area() + r.area() + t.area() + tr.area();
    cout << fixed << setprecision(3) << sum << endl;
}
#include <iostream>
using namespace std;
class Horse {
    public:
    Horse() {
        cout << "Horse 申请了空间...\n";
    }
    virtual ~Horse() {
        cout << "Horse 释放了空间...\n";
    }
    virtual void Fly() {
        cout << "Just a horse.\n";
    }
};
class Pegasus : public Horse {
    public:
    Pegasus() {
        cout << "Pegasus 申请了空间...\n";
    }
    ~Pegasus() {
        cout << "Pegasus 释放了空间...\n";
    }
    void Fly() {
        cout << "I can fly!\n";
    }
};
int main()
{
    Horse *p1 = new Horse; //输出:Horse 申请了空间...
    Horse *p2 = new Pegasus; /*  输出两行:
                                 Horse 申请了空间...
                                 Pegasus 申请了空间...   
                     */    
    cout << endl; 
    
    p1->Fly(); //输出:Just a horse.
    p2->Fly(); //输出:I can fly!
    cout << endl; 
    
    delete p1; //输出:Horse 释放了空间...
    delete p2;  /* 输出两行:
                   Pegasus 释放了空间... 
                   Horse 释放了空间... 
            */
    return 0;
}
#include <iostream>
#include <cmath>
using namespace std;
class Point {
public:
    double x, y, z;
    friend double operator-(const Point& a, const Point& b) {
        return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+(a.z-b.z)*(a.z-b.z));
    }
};
template <class T>
double dist(T a, T b) {
    return abs(a-b);
}
int main() {
    int n;
    while (cin >> n) {
        if (n == 0) break;
        if (n == 1) {
            int a,b;
            cin >> a >> b;
            cout << dist<int>(a,b) << endl;
        }
        else if (n == 2) {
            double a,b;
            cin >> a >> b;
            cout << dist<double>(a,b) << endl;
        }
        else if (n == 3) {
            Point a,b;
            cin >> a.x >> a.y >> a.z >> b.x >> b.y >> b.z;
            cout << dist<Point>(a,b) << endl;
        }
    }
}

标签:编程,return,cout,area,float,class,面向对象,打卡,public
From: https://www.cnblogs.com/sugar-refinery/p/17426146.html

相关文章

  • 每日打卡,pta题目
    给定一个长度不超过 104 的、仅由英文字母构成的字符串。请将字符重新调整顺序,按 PATestPATest.... 这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按PATest的顺序打印,直到所有字符都被输出。输入格式:输入在一......
  • 5.23打卡
    #include<bits/stdc++.h>usingnamespacestd;constfloatPI=3.141593;constfloatFENCE_PRICE=35;constfloatCONCRETE_PRICE=20;classCircle{public:Circle(floatr);floatcircumference();floatarea();private:......
  • 实验4 函数与异常处理编程
    task1程序源码:1print(sum)2sum=423print(sum)45definc(n):6sum=n+17print(sum)8returnsum9sum=inc(7)+inc(7)10print(sum)运行截图:Q1:  task1.py源码中,共有4处有python语句print(sum)(line1,line3,line7,line11......
  • c++打卡第三十五天
    一、最大公约数1、问题描述 2、设计思路本题中可以有三种算法,其中我们提供第三种辗转相除法的代码,第一种是从1开始,由于最大公约数可以是最小的那个数,所以我们循环条件到两个之中的小数,如果这个数满足可以整除两个整数,遍历到最大的那个数时,打印出来。第二种是从小数开始循环,当......
  • 5_22打卡_c语言贪吃蛇(失败)
    funtion.h#pragmaonce#include<stdio.h>#include<time.h>#include<stdlib.h>#include<Windows.h>#include<conio.h>#include<iostream>#defineWIDTH20#defineHEIGHT15//地图的宽和高#defineSPEED2000typedefenum{ WALL,......
  • (转载)PYTHON修饰器的函数式编程--纪念下陈皓老师
    PYTHON修饰器的函数式编程2014年的时候陈老师就写了这个python装饰器的文章,比现在的很多的文章都好谨以此文纪念下陈皓老师Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟DesignPattern里的Decorator搞混了,其实这是完全不同的两个东西。虽然好......
  • 并发编程(上)
    day22并发编程(上)网络编程,了解网络相关的知识点并且要知道几乎所有网络的通信本质上都是通过socket模块实现。例如:网站、网络爬虫。并发编程,提升代码执行的效率。原来代码执行需要20分钟,学习并发编程后可以加快到1分钟执行完毕。今日课程目标:初步了解进程和线程并可以基于线程......
  • 实验四 函数与异常处理编程
    实验任务一程序源代码:1print(sum)2sum=423print(sum)45definc(n):6sum=n+17print(sum)8returnsum9sum=inc(7)+inc(7)10print(sum)实验结果:问题:task1.py源码中,共有4处有python语句print(sum)(line1,line3,line7,line11)。这4......
  • 打卡33
     这个程序运行超时,思路是遍历所有的数,看是否合理。#include<bits/stdc++.h>usingnamespacestd;boolf(intx){ for(inti=2;i<=x/i;i++) { if(x%i==0)returnfalse; } returntrue;}intmain(){ for(inti=1000;i<=9999;i++) { if(f(i)) { ints=0; s+=i%10*1000; ......
  • 5.23打卡
      3.程序流程图 4.代码实现#include<bits/stdc++.h>usingnamespacestd;main(){doublesum=0;inti;for(i=1;i<=64;i++)sum=sum+pow(2,i-1);printf("国王总共需要赏赐给宰相的麦子数为:\n%f\n",sum);} 5.测试截图 ......