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.


 

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

85771. Маркетингове дослідження відношення індивідуальних споживачів до безалкогольних газованих напоїв (на прикладі компанії «Кока Кола») 183.3 KB
  Метою курсової роботи стане вивчення відносин споживачів до солодких безалкогольних газованих напоїв. Досягнення зазначеної мети потребує виконання наступних завдань: Порівняння відношення споживачів до марки та її основних конкурентів Вивчення методів дослідження компонентів відношення споживачів.
85772. Барабанный котельный агрегат 157.39 KB
  Большинство современных теплотехнических измерительных приборов основано на применении электрических принципов измерения неэлектрических величин температуры давления расхода и пр. Схема определяет место установки тягодутьевых машин на холодном воздухе горячем воздухе дымовых газах число независимых ниток с разными характеристиками трактов и машин наличие постоянно действующих перемычек с дросселированием давления в них и др. Определение минимального перепада давления дифманометра Верхний предел измерения дифманометра. Определяем...
85773. Створення геометричних тіл, обмежених плоскими поверхнями 1.44 MB
  Придивившись до предметів, що оточують нас, ви помітите, що вони представляють форму геометричних тіл або їх поєднання. Якщо ви навчитеся створювати тривимірні моделі простих геометричних тіл, то уміле їх поєднання дозволить створювати складніші форми.
85774. Побудова креслення простими командами із застосуванням прив’язок 1.35 MB
  Мета. Ознайомитися з основними елементами робочого вікна, побудовою геометричних примітивів, управління відображенням документу у вікні Теоретичні відомості. Основні елементи робочого вікна документу Фрагмент Виберіть тип документу Фрагмент...
85775. Редагування об’єкту. Видалення об’єкту і його частин. Заливка областей кольором у фрагменті 743.78 KB
  Мета. Ознайомиться з панеллю редагування об’єктів. Досліджувати способи видалення об’єктів і його отдельны частин. Ознайомитися із способами заливки окремих областей об’єкту різними способами заливки. Теоретичні відомості. Редагування об’єкту. Видалення об’єкту і його частин.
85777. ПРОГРАМИ З РОЗГАЛУЖЕНИМИ ТА ЦИКЛІЧНИМИ АЛГОРИТМАМИ 51.17 KB
  Мета роботи – вивчити оператори мови СІ та основні функції введення-виведення даних, навчитися складати та відлагоджувати розрахункові програми з розгалуженими та циклічними структурами. Завдання: Скласти блок-схеми алгоритмів та програми мовою СІ для табулювання функцій.
85778. Лабараторная дыягностыка бактэрыяльных і мікозных інфекцый сельскагаспадарчай і хатняй жывёлы 2.19 MB
  Для дыягностыкі інфекцыйных захворванняў выкарыстоўваюць комплексны падыход, пры якім улічваюць клінічнае праяўленне, эпізаатычную сітуацыю, вынікі паталагаанатамічнага ўскрыцця. Лабараторны ж дыягназ выстаўляюць на падставе мікраскапічнага, бактэрыялагічнага, сералагічнага і біялагічнага метадаў даследавання.