飞机零件

#include<stdio.h>

struct dat

{

    int y;

    int m;

    int d;

};

struct planepart

{

    char pn[50];

    struct dat brodat;

    double price;

    char no[20];

};

struct planepart input()

{

    int i;

    struct planepart fpsr;

    printf("请输入该零部件的名称 出厂时间 价格 编号:");

    scanf("%s %d-%d-%d %lf %s",

&fpsr.pn,

&fpsr.brodat.y,

&fpsr.brodat.m,

&fpsr.brodat.d,

&fpsr.price,

&fpsr.no);

    return fpsr;

}

void fun1(struct planepart* fpd)

{

    printf("编号:%s;出厂日期:%d%d%d日;价格:%.2lf;编号:%s\n",

        fpd->pn,

        fpd->brodat.y,

        fpd->brodat.m,

        fpd->brodat.d,

        fpd->price,

        fpd->no);

}

void fun2(struct planepart* fporder)

{

    int i,j;

    double priceor=fporder->price;

    struct planepart fpdemo1=*fporder;

    for (i=0;i<4;i++)

        for (j=0;j<4-i;j++)

{

            if (fporder[j].price<fporder[j+1].price)

{

                fpdemo1=fporder[j];

                fporder[j]=fporder[j+1];

                fporder[j+1]=fpdemo1;

            }

}

    printf("\n价格最高的零部件信息:\n");

    fun1(fporder);

    printf("\n价格依次由高到低的各零部件信息:\n");

     for (i=0;i<5;i++)

{

        fun1(fporder+i);

    }

}

void fun3(struct planepart* pprice)

{

    int i;

    printf("\n大于五年的零件信息:\n");

    for (i=0;i<5;i++)

{

        if ((2022-(pprice+i)->brodat.y)>5)

{

            (pprice+i)->price/=2.0;

            fun1(pprice+i);

        }

    }

}

int main()

{

    int i;

    struct planepart fp[5];

    for (i=0;i<5;i++)

{

        printf("\n请输入第%d个部分的零部件信息:\n",i+1);

        fp[i]=input();

    }

    printf("\n所有零部件信息为:\n");

    for (i=0;i<5;i++)

{

    fun1(fp+i);

    }

    fun2(fp);

    fun3(fp);

return 0;

}

posted @ 2022-11-13 15:28  是夕木木呀  阅读(109)  评论(0编辑  收藏  举报