Microsoft Visual C# в задачах и примерах. 2-е изд



Download 2,39 Mb.
Pdf ko'rish
bet33/104
Sana23.02.2022
Hajmi2,39 Mb.
#135218
TuriКнига
1   ...   29   30   31   32   33   34   35   36   ...   104
Bog'liq
C# справочник задачи


Часть 1 
110 
// закрываем поток 
sr.Close(); 
// задать процедуру обработки события Paint 
this.Paint += new PaintEventHandler(Diagram); 
double sum = 0; 
int j = 0; 
// вычислить сумму 
for (j = 0; j < N; j++) 
sum += dat[j]; 
// вычислить долю каждой категории 
for (j = 0; j < N; j++) 
p[j] = (double)(dat[j] / sum); 

// задаем цвет формы 
//this.BackColor = System.Drawing.Color.White; 
catch ( Exception ex) 

MessageBox.Show(ex.Message, 
"Диаграмма", 
MessageBoxButtons.OK, 
MessageBoxIcon.Error); 


// процедура рисует круговую диаграмму; 
// имеет такие же параметры, что и 
// процедура обработки события Paint 
private void Diagram(object sender, PaintEventArgs e) 


Примеры и задачи 
111 

// графическая поверхность 
Graphics g = e.Graphics; 
// шрифт заголовка 
Font hFont = new Font("Tahoma", 12); 
// выводим заголовок 
int w = (int)g.MeasureString(header,
hFont).Width; 
int x = (this.ClientSize.Width - w) / 2; 
g.DrawString(header, 
hFont, System.Drawing.Brushes.Black, x, 10); 
// шрифт легенды 
Font lFont = new Font("Tahoma", 9); 
// диаметр диаграммы 
int d = ClientSize.Height - 70; 
int x0 = 30; 
int y0 = (ClientSize.Height - d) / 2 + 10; 
// координаты верхнего левого угла 
// области легенды 
int lx = 60 + d; 
int ly = y0 + (d - N * 20 + 10) / 2; 
// длина дуги сектора 
int swe; 
// кисть для заливки сектора диаграммы 
Brush fBrush = Brushes.White; 


Часть 1 
112 
// начальная точка дуги сектора 
int sta = -90; 
// рисуем диаграмму 
for (int i = 0; i < N; i++) 

// длина дуги 
swe = (int)(360 * p[i]); 
// задать цвет сектора 
switch (i) 

case 0: 
fBrush = Brushes.YellowGreen; break; 
case 1: 
fBrush = Brushes.Gold; break; 
case 2: 
fBrush = Brushes.Pink; break; 
case 3: 
fBrush = Brushes.Violet; break; 
case 4: 
fBrush = Brushes.OrangeRed; break; 
case 5: 
fBrush = Brushes.RoyalBlue; break; 
case 6: 
fBrush = Brushes.SteelBlue; break; 
case 7: 
fBrush = Brushes.Chocolate; break; 
case 8: 
fBrush = Brushes.LightGray; break; 

// из-за округления возможна ситуация, 
// при которой будет промежуток между 


Примеры и задачи 
113 
// последним и первым секторами 
if (i == N - 1) 

// последний сектор 
swe = 270 - sta; 

// рисуем сектор 
g.FillPie(fBrush, x0, y0, d, d, sta, swe); 
// рисуем границу сектора 
g.DrawPie(System.Drawing.Pens.Black, x0, y0, 
d, d, sta, swe); 
// прямоугольник легенда 
g.FillRectangle(fBrush, 
lx, ly + i * 20, 20, 10); 
g.DrawRectangle(System.Drawing.Pens.Black, 
lx, ly + i * 20, 20, 10); 
// подпись 
g.DrawString( title[i] + " - " + 
p[i].ToString("P"), 
lFont,
System.Drawing.Brushes.Black, 
lx + 24, ly + i * 20 - 3); 
// начальная точка дуги для следующего 
// сектора 
sta = sta + swe;






Download 2,39 Mb.

Do'stlaringiz bilan baham:
1   ...   29   30   31   32   33   34   35   36   ...   104




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish