С для профессиональных программистов




Разработка функций построения диаграмм. - часть 4


void line(),goto_xy(),grid(),label();

void hashlines(),legend(),read_cursor_xy();

void palette(),color_puts(),fill_box();

main()

double widget[] =

10.1,20,30,35.34,50

;

double global[] =

19,20,8.8,30,40

;

double tower[] =

25.25,19,17.4,33,29

;

int min,max;

char n[][20] =

"widget",

"global",

"tower"

;

char lab[][20] =

"1983",

"1984",

"1985",

"1986",

"1987"

;

mode(4);                        /* выбор режима 320*200 */

palette(0);

grid(0,50);    /* построение линии нулевого уровня */

hashlines();   /* вывод пунктирных линий */

label(lab,5);  /* вывод чисел */

legend(n,3);   /* вывод надписей */

/* вывод курса акций трех кампаний */

bargraph(widget,5,0,0,50,4);

bargraph(global,5,10,0,50,4);

bargraph(tower,5,20,0,50,4);

getch();

mode(3);

/* Вывод линии нулевого уровня диаграммы */

void grid(min,max)

int min,max;

register int t;

goto_xy(22,0); printf("%d",min);

goto_xy(0,0); printf("%d",max);

line(180,10,180,300,1);

/* вывод меток на экран */

void label(str,num)

char str[][20]; /* массив меток */

int num; /* количество меток */

int i,j,inc;

inc = 38/num;

i = 2; /* определение начальной точки */

for (j=0;j<num;j++)

goto_xy(23,i);

printf(str[j]);

i += inc;

/* Вывод пунктирных линий на экран */

void hashlines()

int i,j;

for (i=10;1<180;i+=10)

for (j=10;j<300;j+=5)

mempoint(i,j,3); /* одна точка на каждые 5 единиц

растра */

/* вывод надписи */

void legend(names,num)

char names[][20];

int num; /* количество наименований */

int color = 1,i,j;

goto_xy(24,0); /* надпись производится в последней строке */

j = 0;

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

/* вывод наименования */

printf("%s   ",names[i]);

/* определение координаты цветного прямоугольника. В 4

режиме каждому литерному символу отводится 8 единиц

растра ( в ширину )  */




Содержание  Назад  Вперед