C语言如何画饼图

来源:互联网 发布:微信查看淘宝店铺 编辑:程序博客网 时间:2024/04/30 12:15

#include "graphics.h"
#include "conio.h"
#include "stdio.h"
#include "math.h"

 

int computer,printer,plotter,scanner,paper,disk;//六种资源
int n=6;//n的大小可以自己修改
float x0=200,y0=230,r=120;
float PI=3.14159265;
int color[6]={RED,YELLOW,BLUE,GREEN,WHITE,LIGHTRED};
int temp[6]={computer,printer,plotter,scanner,paper,disk};

void draw_notes()//画饼图边上的注释矩形图
{
  rectangle(350,110,450,350);
  for(int i=0;i<n;i++){
   line(350,150+i*40,450,150+i*40);
   setfillstyle(1,color[i]);
      bar(350,110+i*40,450,150+i*40);
  }
  outtextxy(470,130,"computer");
  outtextxy(470,170,"printer");
  outtextxy(470,210,"plotter");
  outtextxy(470,250,"scanner");
  outtextxy(470,290,"computer");
  outtextxy(540,290,"paper");
  outtextxy(470,330,"hard");
  outtextxy(510,330,"disk");
}

void draw_pie()//画饼图
{
 circle(x0,y0,r);
 int temp[6]={computer,printer,plotter,scanner,paper,disk};
 int temp2=0;
 for(int i=0;i<n;i++){
  setfillstyle(1,color[i]);
  pieslice(x0,y0,temp2,temp[i]/50.0*180,r);
  temp[i+1]+=temp[i];
  temp2=temp[i]/50.0*180;
 }
}

void input()//数据大小自己手动输入
{
   printf("Please input the percentage of computer: ");
   scanf("%d",&computer);
   printf("Please input the percentage of printer: ");
   scanf("%d",&printer);
   printf("Please input the percentage of plotter: ");
   scanf("%d",&plotter);
   printf("Please input the percentage of scanner: ");
   scanf("%d",&scanner);
   printf("Please input the percentage of paper: ");
   scanf("%d",&paper);
   printf("Please input the percentage of disk: ");
   scanf("%d",&disk);
   int sum=0;
   int temp[6]={computer,printer,plotter,scanner,paper,disk};
   for(int j=0;j<n;j++){
  sum+=temp[j];
 }
   if(sum<=100){
    draw_notes();
       draw_pie();
   }
   else{
  printf("the total percentage is over 100%,please input the right number!/n");
  input();
 }
}

void main()

   struct viewporttype  info;
   int gdriver=DETECT,gmode;
   initgraph(&gdriver,&gmode,"E://tc3//BGI");
   getviewsettings(&info);
   input();
   getch();
   clearviewport();
   closegraph();
}

 

 

原创粉丝点击