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.


 

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

73084. Вывод (доказательство) в логике 31.5 KB
  Вывод доказательство в логике: вывод и вывод из данных формул в аксиоматическом исчислении высказываний прямое и косвенное доказательство в системах естественного вывода. Доказательство логическая форма мысли обосновывающая истинность того или иного положения посредством других положений...
73085. Политика снижения рождаемости, ее результативность в разных странах 23.47 KB
  Политика одного ребёнка на одну семью (или одна семья — один ребёнок) — демографическая политика Китая. Китай был вынужден законодательно ограничить размер семьи в 1970-х годах, когда стало понятно, что огромное количество людей перегружает земельные, водные и энергетические ресурсы страны.
73086. Демографическая ситуация в экономически развитых странах мира (на примерах Европейских стран, Североамериканских, Тихоокеанских) 23.59 KB
  Население планеты постоянно растет. Самые быстрые темпы роста численности населения по-прежнему сохраняются в группе из 50 наименее развитых стран: 95% всего прироста численности населения мира приходится на данные регионы, и лишь 5% — на более развитые.
73088. Темпы роста населения мира. Модель Мальтуса 18.56 KB
  Томас Мальтус родился 13 февраля 1766 года в имении Рукери, Доркинг (английское графство Суррей), близ города Гилдфорд, в состоятельной дворянской семье. Отец учёного, Дэниел Мальтус, был последователем Давида Юма и Жан-Жака Руссо (с обоими он был лично знаком).
73089. Безопасность и санитарно-гигиенические требования к технологическим процессам и оборудованию 28.5 KB
  При разработке и организации технологических процессов и конструировании производственного оборудования станков машин аппаратуры инструментов и пр. Основными направлениями в организации технологических процессов при конструировании и модернизации оборудования обеспечивающими указанные...
73090. Декларирование и лицензирование промышленной безопасности опасный производственных объектов. Инженерно-технические средства безопасности и планы ликвидации аварийных ситуаций (ПЛАС) 28 KB
  Деятельность по проектированию строительству эксплуатации расширению реконструкции техническому перевооружению консервации и ликвидации опасного производственного объекта; изготовлению монтажу наладке обслуживанию и ремонту технических устройств применяемых на опасном...
73091. Классификация жидкостей по температуре вспышки 11.99 KB
  Температура вспышки соответствует нижнему температурному пределу воспламенения. Температуру вспышки используют для оценки воспламеняемости жидкости а также при разработке мероприятий для обеспечения пожаро и взрывобезопасности ведения технологических процессов.
73092. Государственный надзор и контроль за исполнением правовых актов по охране труда 30.5 KB
  В систему гос. надзора и контроля за охраной труда РБ входят Департамент гос. инспекции труда Министерства труда и социальной защиты (МТиСЗ); Департамент по надзору за безопасным ведением работ в промышленности (Госпромнадзор); Министерства по чрезвычайным ситуациям (МЧС)...