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.


 

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

16850. ФОРМИРОВАНИЕ РУМЫНСКИХ ДИАЛЕКТОВ 116 KB
  ФОРМИРОВАНИЕ РУМЫНСКИХ ДИАЛЕКТОВ Проблема формирования 4х румынских диалектов: дакорумынского арумынского мегленорумынского и истрорумынского широко обсуждается в румынской лингвистике. Для решения данной проблемы и получения ответов на многочисленные вопросы...
16851. Анализ философии нового религиозного сознания 44.5 KB
  Анализ философии нового религиозного сознания В конце прошлого столетия и особенно в начале настоящего бурно развивающегося XX века получило распространение религиознофилософское движение под названием религиозного ренессанса. Это движение охватило широкие круг...
16852. Под знаком террора, или: в защиту имени о. Александра Меня 59.5 KB
  Леонид Василенко Под знаком террора или: в защиту имени о. Александра Меня Под знаком террора не может быть раскрыта правда. Николай Бердяев Недавно гдето в ноябре 1998 г. появилось Православное книжное обозрение в редакционном совете которого видим следующих: арх...
16853. Трипілля. Там, де відкрили легендарну цивілізацію 16.88 KB
  Трипілля. Там де відкрили легендарну цивілізацію Зовсім недалеко від нашої столиці всього за 30 км розкинулось на березі Дніпра мальовниче селище Трипілля яке має багатющу та ще до кінця не вивчену історію якої б вистачило не те що на три сила а й на три міста. Місце...
16854. Различия создают различия: разница в экспрессии генов отличает людей от других приматов 46 KB
  Различия создают различия: разница в экспрессии генов отличает людей от других приматов Девид Девитт Еще со времен Дарвина ученыеэволюционисты замечали анатомическое сходство между людьми и большими приматами включая шимпанзе горилл и орангутангов. За последние...
16855. 10 опасностей теистической эволюции 70.5 KB
  PAGE 1 10 опасностей теистической эволюции Вернер Гитт Атеистическая формула для эволюции выглядит следующим образом: Эволюция = материя эволюционные факторы случай и необходимость мутации отбор изоляция смерть очень долгие периоды времени. ...
16856. Биостратиграфия. Геохронологическая шкала 91.81 KB
  Биостратиграфия Вертьянов С. Ю. Для подтверждения или опровержения гипотезы макроэволюции как и любой научной концепции необходимы теоретическая разработка и экспериментальные исследования. Что могло бы подтвердить факт происшедшей эволюции Безусловно останки...
16857. Нервная система человека: Свидетельство Разумного Замысла 214 KB
  Нервная система человека: Свидетельство Разумного Замысла [Часть I] Брэд Хараб Данная статья является первой из серии статей Доктора Хараба. Разумный замысел человеческого тела является научным свидетельством о Боге. При оценивании сложности и дизайна различных сис...
16858. Нервная система человека: Свидетельство Разумного Замысла [Часть II] 237.5 KB
  Нервная система человека: Свидетельство Разумного Замысла [Часть II] Брэд Хараб Соматическая нервная система Соматическая нервная система иннервирует возбуждает скелетные мышцы и регулирует деятельность которая находится под сознательным контролем. Такие...