697

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

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

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

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

Русский

2013-01-06

108 KB

30 чел.

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

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

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

Отчёт

по лабораторной работе №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.


 

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

10587. Устройство надстроек при реконструкции здания. Конструкции надстраиваемых этажей и мансард 36.5 KB
  Устройство надстроек при реконструкции здания. Конструкции надстраиваемых этажей и мансард. Этаж мансардный мансарда этаж в чердачном пространстве фасад которого полностью или частично образован поверхностью поверхностями наклонной или ломаной крыши при этом ли...
10588. Предпроектные мероприятия по оценке реконструируемого здания его объемно-планировочного и конструктивного состояния. Перекрытия, покрытия определение их типов и состояния 702 KB
  Предпроектные мероприятия по оценке реконструируемого здания его объемно-планировочного и конструктивного состояния. Перекрытия покрытия определение их типов и состояния. В реконструируемых или капитально ремонтируемых домах с высотой жилых этажей более 28 м до...
10589. Устройство дополнительных входных узлов при перепрофилировании помещений нижних этажей (жилые, не жилые помещения) 22.5 KB
  Устройство дополнительных входных узлов при перепрофилировании помещений нижних этажей жилые не жилые помещения. При реконструкции и модернизации зданий с учетом перепрофилирования первых этажей и подвалов с размещением в них нежилых помещений по составу предус
10590. Фасады реконструируемых зданий с учетом новых теплозащитных и архитектурно-художественных свойств 2.26 MB
  Фасады реконструируемых зданий с учетом новых теплозащитных и архитектурнохудожественных свойств. Фасадные системы предназначены для использования в новом строительстве а также при капитальном ремонте и реконструкции существующих зданий в целях придания зданию со
10591. Космоцентризм. Античная философия 60.5 KB
  Античная философия: космоцентризм Античная философия возникла в греческих городах-государствах полисах на рубеже VII-VI вв. до н.э. Первая стадия – досократовская – VIIV вв. до н.э.. Представители: Милетская школа Гераклит Эфесский элейская школа Пифагор и его послед...
10592. Философия Возрождения: антропоцентризм (XV –XVI вв.) 50 KB
  Философия Возрождения: антропоцентризм XV –XVI вв. С XV века происходят изменения в социально-экономической и духовной жизни Западной Европы. Она характеризуется возникновением мануфактур техническими открытиями и нововведениями самопрялка ткацкий станок водяное к...
10593. Немецкая классическая философия во второй половине XVIII века 56 KB
  Немецкая классическая философия В Германии во второй половине XVIII века сформировалось новое направление немецкая классическая философия. Ее представители: Кант –дуалист Фихте субъективный идеалист Шеллинг объективный идеалист Гегель – объективный идеали
10594. Отечественная философия XIX - начала XX веков 82.5 KB
  Отечественная философия XIX начала XX веков Русская философия начинает свое существование с XIX века. Основная тема которая на протяжении почти целого столетия занимала умы русской интеллигенции – историческая судьба России ее прошлое настоящее и будущее ее историче...
10595. Предмет и цель математического моделирования 19.24 KB
  Предмет и цель математического моделирования. В развитии различных областей человеческой деятельности математика оказывала и оказывает существенное влияние. Ее роль складывалась исторически и зависела от двух факторов: степени развития математических понятий и ма