Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2007, 23:20   #1
Raptor
Пользователь
 
Регистрация: 24.11.2007
Сообщений: 50
По умолчанию

Всем доброго времени суток!

Вводитса 6 чисел (колличество рабочих дней каждого рабочего).
Нужно построить диаграмму основанную на этих данных.
Может кто-то может помочь?
И еще вопос: как сделать так чтобы информация записывалась в файл, находящийся в любом месте,a не только в папке BIN?

Код:
#include<stdio.h>
#include<stdlib.h>
#include<graphics.h>
#include<conio.h>
#define strsk 2
#define max 360
void maked(int p[]);
main()
{
int i,j,l,s1[strsk+1];
struct Person {
char lastName[32];
char firstName[32];
int days;
} Person[strsk];
s1[0]=0;
l=0;
printf("Vvedite imja i familiju\n");
for (i=0;i<strsk;++i)
{printf("Imja: ");
scanf(" %s", &Person[i].firstName );
printf("Familija: ");
scanf(" %s", &Person[i].lastName );
printf("Days : ");
scanf(" %d", &Person[i].days );
printf("\n");
l=l+Person[i].days;
}
for (i=0;i<strsk;++i)
{
s1[i+1]=(s1[i]+((Person[i].days)*360)/l);
}
maked(s1);
}
void maked(int p[])
{int g_driver, g_mode;
int i,x=200, y=75, r=150;
detectgraph(&g_driver,&g_mode);
initgraph(&g_driver,&g_mode,"c:\\bc45\\bgi");
setviewport(150,150,400,350,0);
setbkcolor(BLUE);
setcolor(LIGHTBLUE);
for (i=0; i< strsk; i++)
{setfillstyle(i+5,15);
pieslice(x,y,p[i],p[i+1],r);
}
getch();
closegraph();
return;
}
Вот удалось накропать. Но есть поблемка: похоже, работает правильно только для значений <= 90. Может кто-нибудь мжет указать в чем ошибка?

Цитата:
Код вставляем в тег [CОDE][/СОDЕ] или пользуемся кнопкой # (расширенный режим). Модератор.

Последний раз редактировалось AlDelta; 15.12.2007 в 10:13.
Raptor вне форума Ответить с цитированием
Старый 15.12.2007, 19:53   #2
Raptor
Пользователь
 
Регистрация: 24.11.2007
Сообщений: 50
По умолчанию

Уже разобрался.
Вот правильный код:
Код:
#include<stdio.h>
#include<stdlib.h>
#include<graphics.h>
#include<conio.h>
#include<math.h>
#define strsk 3
#define max 360
void maked(float p[]);
main()
{
int i,j;
float k,s1[strsk+1];
FILE *f;
struct Person {
char lastName[32];
char firstName[32];
float alga;
} Person[strsk];
s1[0]=0;
k=0;
for (i=0;i<strsk;++i)
{printf("Vaards: ");
scanf(" %s", &Person[i].firstName );
printf("Uzvaards: ");
scanf(" %s", &Person[i].lastName );
printf("Alga: ");
scanf(" %f", &Person[i].alga );
k=k+Person[i].alga;
printf("\n");
}
for (i=0;i<strsk;++i)
{
s1[i+1]=(s1[i]+((Person[i].alga)*(360/k)));
}
maked(s1);
}
void maked(float p[])
{int g_driver, g_mode;
int i,x=200, y=75, r=150;
detectgraph(&g_driver,&g_mode);
initgraph(&g_driver,&g_mode,"c:\\bc45\\bgi");
setviewport(150,150,400,360,0);
setbkcolor(BLACK);
setcolor(GREEN);

for (i=0; i< strsk; i++)
{setfillstyle(i+5,15);
pieslice(x,y,p[i],p[i+1],r);
outtextxy(x+5*i,y+5*i,"KIKI");
}
getch();
closegraph();
return;
}
Осталось только надписать поля диаграмы. Кто-нибудь может подсказать как это сделать?
Raptor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обновить диаграмму на экранной форме? kkkk30 Microsoft Office Access 10 15.07.2008 08:37
в диаграмму таблицу Exo Microsoft Office Excel 2 16.04.2008 13:01
Пути к данным Лубышев Общие вопросы Delphi 3 21.01.2008 18:56
Гиперссылка на диаграмму Nasya Microsoft Office Excel 1 23.07.2007 20:08