697

Использование графики в приложениях Windows Forms

Лабораторная работа

Информатика, кибернетика и программирование

Разработать приложение с графическим интерфейсом пользователя, которое позволяет рисовать заданную геометрическую фигуру в клиентской области главного окна, строит и отображает график заданной функции

Русский

2013-01-06

108 KB

29 чел.

МИНИСТЕРСТВО НАУКИ И ОБРАЗОВАНИЯ УКРАИНЫ

ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра информационных систем

Отчёт

по лабораторной работе №4

по курсу: «Объектно-ориентированное программирование»

по теме: «Использование графики в приложениях Windows Forms»

Выполнил:

студент 2 курса 5 группы

факультета ЭИ

Нгуен Вьет Дык

Проверил:
доцент кафедры ИС

Лосев М.Ю.

2012

Содержание

Условие задания---------------------------------------------------------------------------3

UML- Диаграмма--------------------------------------------------------------------------3

Задача

Исходный код программы --------------------------------------------------------------3

Примеры результатов работы программы на тестовых исходных данных----7

Вывод----------------------------------------------------------------------------------------7


Условие задания.

Варіант 14

Задание 1.

Разработать приложение с графическим интерфейсом пользователя, которое позволяет рисовать заданную геометрическую фигуру в клиентской области главного окна.

Сектор. Одинарный клик правой кнопкой мыши.

Задание 2.

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

Ctg(x), где х = от 0 до 180.

UML – Диаграмма

Исходный код программы

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;

using System.Collections;

using System.Drawing.Drawing2D;

namespace lr4

{

   public partial class MY_LR : Form

   {

     

       Dictionary<double, double> f1 = new Dictionary<double, double>();

       ArrayList points = new ArrayList();

       

       Pen pen = new Pen(Brushes.Red);

       double xmax = 180, x0 = 0;

       SolidBrush peen = new SolidBrush(Color.Green);

     

       public MY_LR()

       {

           InitializeComponent();

           

           for (double x = x0; x <= xmax; x += 1)

               f1.Add(x, (System.Math.Atan(x)));

           chart1.Series[0].Points.DataBindXY(f1.Keys, f1.Values);

           chart1.Series[0].LegendText = "функция ctg(x)";

       }

     

       private void Form1_Paint(object sender, PaintEventArgs e)

       {

           Graphics g = e.Graphics;

           pen.Width = 3;

         

           float startAngle = 0.0F;

           float sweepAngle = 275.0F;

           foreach (Point p in points) {

               

               Rectangle rect = new Rectangle(p.X, p.Y, 100, 50);

               e.Graphics.DrawPie(pen, rect, startAngle, sweepAngle);

               e.Graphics.FillPie(peen, rect, startAngle, sweepAngle);

       }

       }

       

       private void t1_Click(object sender, EventArgs e)

       {

           chart1.Visible = false;

           domainUpDown1.Visible = true;

           

           label1.Visible = true;

           label2.Visible = true;

           button2.Visible = true;

           panel1.Visible = false;

       }

     

       private void t2_Click(object sender, EventArgs e)

       {

           chart1.Visible = true;

           domainUpDown1.Visible = false;

           

           label1.Visible = false;

           label2.Visible = false;

           button2.Visible = false;

           panel1.Visible = true;

       }

    

       private void button1_Click_1(object sender, EventArgs e)

       {

           f1.Clear();

           x0 = Convert.ToDouble(numericUpDown1.Text);

           xmax = Convert.ToDouble(numericUpDown2.Text);

           if (x0 > xmax) { MessageBox.Show("Zadayte pravil'no interval", "!", MessageBoxButtons.OK); return; }

           for (double x = x0; x <= xmax; x += 1)

               f1.Add(x, ((System.Math.Atan(x))));

           chart1.Series[0].Points.DataBindXY(f1.Keys, f1.Values);

           chart1.Series[0].LegendText = "функция ctg(x)";

           if (comboBox2.Text == "Золотой")

           {

               chart1.Series[0].Color = Color.Gold;

           }

           if (comboBox2.Text == "Зеленый")

           {

               chart1.Series[0].Color = Color.Green;

           }

           if (comboBox2.Text == "Синий")

           {

               chart1.Series[0].Color = Color.Blue;

           }

           chart1.Series[0].BorderWidth = Convert.ToInt32(numericUpDown3.Value);

       }

       private void MY_LR_MouseClick(object sender, MouseEventArgs e)

       {

           if (e.Button == MouseButtons.Right)

           {

               Point p = new Point();

               p.X = e.X - 51;

               p.Y = e.Y - 23;

               points.Add(p);

           }

           Invalidate();

       }

       private void Z(object sender, EventArgs e)

       {

           if (domainUpDown1.Text == "Красный")

               pen.Color = Color.Red;

           if (domainUpDown1.Text == "Синий")

               pen.Color = Color.Blue;

           if (domainUpDown1.Text == "Черный")

               pen.Color = Color.Black;

           if (domainUpDown1.Text == "Серый")

               pen.Color = Color.Gray;

           if (domainUpDown1.Text == "Желтый")

               pen.Color = Color.Yellow;

       }

       private void button2_Click(object sender, EventArgs e)

       {  

           if (colorDialog1.ShowDialog() == DialogResult.OK)

           {              

               peen.Color = colorDialog1.Color;               

           }

       }

      

       }

           }

                

       

Результаты работы программы

Вывод: В ходе данной лабораторной работы усовершенствовал практические навыки разработки интерфейса пользователя с помощью WindowsForms, приобрела практические навыки использования библиотечных классов для работы с графикой, усовершенствовала навыки работы с интегрированной средой MS Visual Studio.


 

А также другие работы, которые могут Вас заинтересовать

15450. Состояние и перспективы развития закрытых паевых инвестиционных фондов недвижимости 816.5 KB
  Введение Индустрия инвестиционных фондов в нашей стране в последнее десятилетие развивалась в большей степени экстенсивными темпами нежели по пути качественного роста. Практически ежегодно увеличивался объём средств в доверительном управлении российских управляющ
15451. Управление рисками инвестиционных проектов в пищевой промышленности 2.78 MB
  Управление рисками инвестиционных проектов в пищевой промышленности ВВЕДЕНИЕ Актуальность исследования. Опыт развития рыночных отношений показал что инвестирование является важнейшим источником экономического роста финансовой основой прогресса. Объективный...
15452. Східні слов’яни: походження, розселення, соціально-економічний розвиток і культура. Виникнення назви „Русь” 37.5 KB
  Східні слов’яни: походження розселення соціальноекономічний розвиток і культура. Виникнення назви Русь€. Витоки словян вчені відносять до кінця бронзового початку залізного віку. За своїм походженням словяни. автохтонне не прийшле а таке що сформувалося на ц...
15453. Утворення Київської Русі. Основні етапи її розвитку 73.5 KB
  Утворення Київської Русі. Основні етапи її розвитку. Протягом VIII IX ст. словяни розселилися на території Східної Європи. Найбільшими словянськими племенами були: поляни що жили на Середній Наддніпрянщині сіверяни на р. Десна вятичі на Оці на заході від полян дрегов
15454. Соціально-економічний ї політичний устрій Київської Русі 29.5 KB
  Соціально-економічний ї політичний устрій Київської Русі Київська Русь започаткувала феодальний період в історії народів Східної Європи які не знали рабовласницької формації. Феодалізм зароджувався у них на основі первіснообщинного ладу. Головною особливістю ран...
15455. Причини та наслідки занепаду Київської Руcі 32 KB
  Причини та наслідки занепаду Київської Руcі. XIIXIII століття на Русі увійшли в історію як період феодальної роздробленості. По смерті великого князя київського Мстислава сина Володимира Мономаха Київська Русь розпадається на багато князівств і земель. Поза сум...
15456. Формування Галицько-Волинського князівства. Суспільні відносини в державі 39.5 KB
  Формування ГалицькоВолинського князівства. Суспільні відносини в державі. Серед руських князівств найбільшими були РостовоСуздальське ПолоцькоМінське і ГалицькоВолинське князівство. Київ став стольним містом Київської землі яка займала територію Середнього...
15457. Діяльність князів Романа і Данила. Розквіт Галицько-Волинського князівства 31.5 KB
  Діяльність князів Романа і Данила. Розквіт ГалицькоВолинського князівства. Обєднання Галичини й Волині Правління Романа Мстиславича Скориставшись смертю у 1199 р. останнього представника династії Ростиславичів Володимира Ярославича Роман Мстиславич спи...
15458. Зовнішня політика та значення Галицько-Волинської держави 40.5 KB
  Зовнішня політика та значення ГалицькоВолинської держави. По смерті Ярослава Мудрого з початком феодальної роздробленості Галицьке князівство відокремилося від Києва. Першими галицькими князями були нащадки онуків Ярослава Мудрого Ростиславичі а на Волині Мстисла...