用c语言求多种图形中任何一种图形的面积。

用c语言求多种图形中任何一种图形的面积。,第1张

#include <stdio.h>

#include <math.h>

double trianglearea( float a, float b, float c )

double squarearea( float a, float b )

double roundarea( float r )

int main()

{

    int    index = 0

    float  a, b, c, r

    double S

    

    while(1)

    {

        笑仿printf("请输入图的类型,三角形请输入1,矩形请输入2,圆形请输入3。按0退出\n")

        printf("请输入图形序号:")

        scanf("%d", &index)

        

        if(index == 0)

            break

        else if(index == 1)

        {

            printf("输入三角形三边长:")

            scanf("%f %f %f", &a, &b, &c)

            S = trianglearea(a, b, c)

        }

        else if(index == 2)

        {

            printf("输入矩形的长和宽:")

            scanf("%f %f", &a, 耐升铅&b)

            S = squarearea(a, b)

        }

        else 昌好if(index == 3)

        {

            printf("%输入圆形的半径:")

            scanf("%f", &r)

            S = roundarea(r)

        }

        else 

            

        printf("所求面积为%lf\n\n", S)

    }

    printf("\nbye bye\n")

    

    return 0

}

double trianglearea( float a, float b, float c )

{

    double p = 0

    

    if( !(a+b>c && a+c>b && b+c>a) )

    {

        printf("这三条边无法组成三角形。\n")

        return 0

    }

    p = (a+b+c) / 2

    

    return sqrt(p*(p-a)*(p-b)*(p-c))

}

double squarearea( float a, float b )

{

    return a*b

}

double roundarea( float r )

{

    return 3.14*r*r

}

#include<iostream>

using namespace std

class base

{

public:

virtual void disp()

}

class triangle:public base

{

private:

double bottom

double height

public:

triangle(double b,double h)

{

bottom = b

height = h

}

void disp()

{

cout<<"三角形面积:"<<bottom * height / 2<<endl

}

}

class square:public base

{

private :

double a

public:

square(double a1)

{

a = a1

}

void disp()

{

cout<<"正方形面积:"<卜前<a * a<<endl

}

}

#define  pi 3.1415

class circle:public base

{

private:

double r

public:

circle(double r1)

{

r = r1

}

void disp()

{

cout<<"圆形面积:"<<pi * r  * r<<endl

}

}

int main() {

base *p

triangle t(20, 20) //第一个参数为三角形底边,第二个参数为底边上的高

square s(20)

circle c(20)

p = &t

p->disp()

p = &s

p->disp()

p = &c

p->disp()

return 0

}

扩展资料:

编译方式下,首先通过一个对应于所用程序设计语言的编译程序对源程序进行处理,经过对源程序的词法分析、语法分析、语意分析、代码生成和代码优化等阶段将所处理的源程序转换为用二进制代码表示的目标程型拿序。

然后通过连接程序处理将程序中所用的函数调用、系统功能调用等嵌入到目标程序中,构成一个可以连续执行的二进制执行文件。调用这个执行文件就可以实现程序员在对应源程序文件中所指定的相应功能。

参考资料来源:卜弊搭百度百科-编程

最简单的思路:先转成灰度图,然后转成二值图像,然后利用黑色/总像素的比值乘以图像的总面积,得到图形的面积。

如果想做的细,其中的任何一个步骤都会很精致,尤其是核谨二值化,算法有很多种,需要结合实际袭稿情改禅基况选择合用的算法,或者编写程序根据图像特征自动选择算法。再麻烦一点的话,彩色图像的色彩分割本身就是一个硕士课题了。

以上。

专业路过的老狼


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8258058.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存