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



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


Часть 1 
96 
// выведем текст еще раз 
e.Graphics.DrawString(header, hFont, 
System.Drawing.Brushes.DarkGreen, x, y + h); 

// изменился размер окна 
private void Form1_Resize(object sender, EventArgs e) 

// сообщить системе о необходимости
// перерисовать окно. В результате будет 
// сгенерировано событие Paint. 
this.Refresh(); 



Диаграмма 
В окне программы Диаграмма (рис. 1.22) отображается диа-
грамма изменения курса доллара. Данные загружаются из тексто-
вого файла usd.dat, где каждое число в отдельной строке. 
Рис. 1.22. Окно программы Диаграмма 


Примеры и задачи 
97 
Программа (листинг 1.20) демонстрирует использование методов 
DrawString

DrawRectangle

FillRectangle
, а также работу с 
массивами и чтение данных из файла. 
Листинг 1.20. Модуль формы программы Диаграмма 
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
namespace Diagram 

public partial class Form1 : Form 

// данные 
private double[] d;
// строит график
private void drawDiagram(object sender, 
PaintEventArgs e) 

// графическая поверхность 
Graphics g = e.Graphics; 
// шрифт подписей данных 
Font dFont = new Font("Tahoma", 9); 
// ** заголовок ** 
// шрифт заголовка 


Часть 1 
98 
Font hFont = new Font("Tahoma", 14, 
FontStyle.Regular); 
string header = "Изменение курса доллара"; 
// ширина области отображения текста 
int wh =(int)g.MeasureString(header,
hFont).Width; 
int x = (this.ClientSize.Width - wh) / 2;
g.DrawString(header, 
hFont, System.Drawing.Brushes.DarkGreen, 
x, 5); 
/* 
* область построения диаграммы: 
* - отступ сверху - 100; 
* - отступ снизу - 20; 
* - отступ слева - 20; 
* - отступ справа - 20. 

* ClientSize - размер внутренней области окна 

* график строим в отклонениях от минимального 
* значения ряда данных, так, чтобы он занимал 
* всю область построения 
*/ 
double max = d[0]; // максимальный эл-т массива 
double min = d[0]; // минимальный эл-т массива 
for (int i = 1; i < d.Length; i++) 

if (d[i] > max) max = d[i]; 


Примеры и задачи 
99 
if (d[i] < min) min = d[i]; 

// рисуем диаграмму 
int x1, y1; // координаты левого верхнего 
// угла столбика 
int w, h; // размер столбца 
// ширина столбиков диаграммы 
// 5 - расстояние между столбиками 
// d.Length - кол-во рядов данных (столбиков) 
w = (ClientSize.Width - 40 - 5 * (d.Length - 1)) 
/ d.Length; 
x1 = 20; 
for (int i = 0; i < d.Length; i++) 

y1 = this.ClientSize.Height - 20 - 
(int)((this.ClientSize.Height - 100) * 
(d[i] - min) / (max - min)); 
// подпись численного значения первой точки 
g.DrawString(Convert.ToString(d[i]), 
dFont, System.Drawing.Brushes.Black, 
x1, y1 - 20); 
// рисуем столбик 
h = ClientSize.Height - y1 - 20 + 1; 
// зеленый прямоугольник 
g.FillRectangle(Brushes.ForestGreen, 
x1, y1, w, h); 
// контур прямоугольника 
g.DrawRectangle(System.Drawing.Pens.Black, 
x1, y1, w, h); 


Download 2,39 Mb.

Do'stlaringiz bilan baham:
1   ...   25   26   27   28   29   30   31   32   ...   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