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.


 

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

74507. Технические средства и системное программное обеспечение корпоративных информационных систем 5.37 MB
  Описание архитектуры фон Неймана В настоящее время используются разнообразные принципы логической и структурной организации ЭВМ. Исторически первыми но не утратившими своего значения являются однопроцессорные ЭВМ фоннеймановской архитектуры. В основу архитектуры положены традиционные принципы построения однопроцессорной ЭВМ сформулированные Дж. Как показывает дальнейшее развитие и совершенствование компьютеров такая архитектура построения ЭВМ является препятствием для дальнейшего роста производительности компьютера.
74508. ИНФОРМАЦИОННЫЕ РЕСУРСЫ КОРПОРАТИВНЫХ ИНФОРМАЦИОННЫХ СИСТЕМ 1.09 MB
  Весь процесс производства с точки зрения информатики представляет собой непрерывный процесс порождения обработки изменения хранения и распространения информации. Современное предприятие можно рассматривать как эффективный информационный центр источниками информации которого являются внешняя и внутренняя деловая среда.
74509. Предмет и основные понятия корпоративных информационных систем 1.1 MB
  Понятие информационной системы. Корпоративные информационные системы. Структура корпоративной информационной системы. Цель изучения дисциплины Корпоративные информационные системы подготовка к использованию современных информационных технологий в рамках КИС как инструмента для решения научных и практических задач в своей предметной области на высоком профессиональном уровне а также к участию в разработке и внедрении этих систем.
74510. ПРИКЛАДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КОРПОРАТИВНЫХ ИНФОРМАЦИОННЫХ СИСТЕМ 2.7 MB
  Посмотрим каким критериям должна удовлетворить концепция КИС: концепция КИС должна быть полностью формализована и ясна с точки зрения реализации обеспечивается технологиями ООП; созданная КИС не должна требовать частых переделок КИС меняется Пользователем на пользовательском уровне Разработчик в этом участвует значительно реже только подменяя ядро КИС на более эффективное; КИС должна иметь форму коробочного продукта КИС реализованная на принципах ООП близка этой форме; КИС должна требовать минимальной настройки под конкретное...
74511. ПРОЕКТИРОВАНИЕ КОРПОРАТИВНЫХ ИНФОРМАЦИОННЫХ СИСТЕМ 192.5 KB
  Более подробно жизненный цикл КИС корпоративной информационной системы можно представить следующим образом: Этап анализа на котором происходит сбор предложений требований пожеланий аналогий фактов примеров эскизов сценариев и т. Этап управления вариантами системы необходим чтобы не утонуть в накапливаемом аналитическом материале. Этап конструирования знаменуют собой начало синтеза первых очертаний системы. Здесь происходит разработка вариантов архитектуры системы концептуальных моделей системы диаграмм взаимодействия подсистем...
74512. Сетевое обеспечение корпоративных информационных систем 6.39 MB
  Корпоративные сети. Целесообразность создания компьютерной сети обуславливается следующим: возможностью использования территориально распределенного программного обеспечения информационных баз данных и баз знаний находящихся у различных пользователей; возможностью организации распределенной обработки данных путем привлечения ресурсов многих вычислительных машин; оперативному перераспределению нагрузки между компьютерами включенными в сеть и ликвидации пиковой нагрузки за счет перераспределения ее с учетом часовых поясов; специализацией...
74514. Корпоративные базы данных 3.81 MB
  Корпоративная база данных является центральным звеном корпоративной информационной системы и позволяет создать единое информационное пространство корпорации. Корпоративные базы данных