- •Задача 1. Конвертер
- •Задача 2. Фунты-килограммы
- •Задача 3. Сила тока.
- •Задача 4. Сопротивление
- •Задача 5. Кафе
- •Задача 6. Любимый напиток
- •Задача 7. Электроэнергия
- •Задание 8. Осаго
- •Задание 9.Просмотр иллюстраций
- •Задача 10. Калькулятор
- •Задача 11. Калькулятор-2
- •Задача 12.Секундомер
- •Задача 13. Угадай число
- •Задание 14.Угадай число-2
- •Задание 15.Запуск Internet Explorer
- •Задание 16.Конвертор
- •Задание 17.Конвертор 2
- •Задание 18.Погода
- •Задание 19.Средняя температура
- •Задание 20. Простая база данных
- •Задание 21. Редактор текста
- •Задание 22. Приветствие
- •Задача 23. Олимпийский флаг
- •Задание 24. Диаграмма
- •Задача 26. Круговая диаграмма.
- •Задача 27. Просмотр иллюстраций.
- •Задача 28 .Часы
- •Задача 29. Пинг понг.
- •Задача 30. Полет в облаках
- •Задача 31.Баннер
- •Задача 32. Фоновый рисунок
- •Задача 33. Wav
- •Задача 34. Mp3 Player
- •Задача 35.Воспроизведение midi
- •Задача 36.Compact Disk Player (версия 1)
- •Задача 37.Compact Disk Player (версия 2)
- •Задача 38.VideoPlayer
- •Задача 39. Анимация
- •Задача 40. Записная книжка
- •Задача 41 Магазин
- •Задача 42. Ежедневник
- •Задача 43. Сапер
- •Часть 1. Примеры и задачи
- •Часть 1. Примеры и задачи
- •Задача 44 Игра 15
- •Часть 1. Примеры и задачи
- •Задача 45. Игра "Собери картинку" (Puzzle)
- •Задача 46 Игра "Парные картинки"
- •Задача 47. Экзаменатор
- •Задача 48. Экзаменатор-2
- •Задача 49. Календарь
- •Задача 50. Будильник
- •Задача 51. Очистка диска
- •Задача 52.Печать
- •Задачи для самостоятельного решения Задача 1. Скидка
- •Задача 2.Доход по вкладу
- •Задача 3. Таблица умножения
- •Задача 4.Поездка на автомобиле
- •Задача 5.Стоимость разговора
- •Задача 6. Стеклопакет
- •Задача7. Калькулятор
- •Задача 8. Электроэнергия
- •Задача 9. Добрый день
- •Задача 10. Часы
- •Задача 11. Узоры
- •Задача 12. Курс доллара
- •Задача 13. Диаграмма
- •Задача 14. Домашние животные
- •Задача 15. Кораблик
- •Задача 16. Сапер
- •Задача 17 .Экзаменатор
- •Задача 18. База данных "Расходы"
Задача 14. Домашние животные
Напишите программу, в окне которой формируется круговая диаграмма, иллюстрирующая результат опроса — ответа на вопрос "Есть ли у вас домашние животные? Какие?" (Рис. 74)
Рис 74
Вывод: В этом задании мы создали круговую диаграмму в которой иллюстрирующая результат опроса — ответа на вопрос "Есть ли у вас домашние животные? Какие?"
Листинг
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Math.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
#undef PEOPLE
#define ENERGY
#ifdef PEOPLE
#define HB 6
#define OBR
AnsiString Title = "населениеземли";
float datafHB] = {1.25e9,1е9,274е6,216е6,172е6,146еб};
float pr[HB];
AnsiString dTitle[HB] = {"Китай","Индия","США",
"Индонезия","Бразилия","Россия"};
TColor cl[HB] = {clLime, clBlue, clMaroon,
clGreen, clYellow, clTeal};
#endif
#ifdef ENERGY
#define HB 6
#undef OBR
AnsiString Title = "Использованиеэнергии";
float data[HB] = {0.1,1.3,3,22,30,40};
float pr[HB];
AnsiString dTitle[HB] = {"Другие",
"попугай",
"рыбки",
"Собака","Кошка","Нет"};
TColor cl[HB] = {clLime, clBlue, clPurple, clSkyBlue,
clYellow, clTeal};
#endif
#define R 80 // радиусдиаграммы
#define D 160 // диаметрдиаграммы
#define TORAD 0.0174532
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
int i,j;
// сортировкаисходных данных методом"пузырька"
float bd;
AnsiString bt;
TColor bc;
for (i = 0; i < HB; i ++)
for (j = 0 ; j < HB-1; j++)
if (data[j+1] < data[j])
{
bd = data[j];
data[j] = data[j+1];
data[j+1] = bd;
bt = dTitle[j];
dTitle[j] = dTitle[j+1];
dTitle[j+1] = bt;
bc = cl[j];
cl[j] = cl[j+1];
cl[j+1] = bc;
}
#ifdef OBR
float sum = 0;
for (i = 0; i < HB; i++)
sum += data[i];
for (i = 0; i < HB; i++)
pr[i] = ( data[i] / sum) * 100;
#else
for ( i = 0; i < HB; i++)
pr[i] = data[i];
#endif
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
int x,y;
int i;
Canvas->Font->Name = "Tahoma";
Canvas->Font->Size = 12;
x = (ClientWidth - Canvas->TextWidth(Title)) /2;
Canvas->Brush->Style = bsClear;
Canvas->TextOutA(x,15,Title);
x = (ClientWidth - D) /2 - R;
y = 15 + Canvas->TextHeight(Title) + 20;
int x0,y0;
int x1,y1;
int x2,y2;
int a1,a2;
x0 = x + R;
y0 = y + R;
a1 = 0;
for (int i = 0; i < HB; i++ )
{
if (i != HB-1)
a2 = ( a1 + 3.6 * pr[i]);
else
a2 = 359;
x1 = x0 + R * cos (a2 * TORAD);
y1 = y0 + R * sin (a2 * TORAD);
x2 = x0 + R * cos (a1 * TORAD);
y2 = y0 + R * sin (a1 * TORAD);
if ( abs(a1-a2) <= 6 )
Canvas->Pen->Style = psClear;
else
Canvas->Pen->Style = psSolid;
Canvas->Brush->Color = cl[i];
Canvas->Pie(x,y,x+D,y+D,x1,y1,x2,y2);
a1 =a2;
Canvas->Font->Size -= 2;
int dy = Canvas->TextHeight("a");
x = x + D + 40;
y = y + 20;
for (i =HB-1; i >=0; i--)
{
Canvas->Brush->Color = cl[i];
Canvas->Rectangle(x,y,x+40,y+dy);
Canvas->Brush->Style = bsClear;
Canvas->TextOutA(x+50,y,dTitle[i]+ ", " + FloatToStrF(pr[i],ffGeneral,2,2) + "%");
y = y + dy +10;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormResize(TObject *Sender)
{
Form1->Refresh();
}
//---------------------------------------------------------------------------
