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.


 

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

46495. Пятилетняя гражданская война. Политика военного коммунизма 17.51 KB
  При этом остававшийся экономический потенциал не обновлялся на протяжении всего периода войны и представлял собою полуразвалившееся оборудование и транспорт. Сельское хозяйство производило продукции на 40 меньше чем до войны. Одним из главных итогов гражданской войны стали глубочайшие социальные изменения в российском обществе. Вместе с тем итоги гражданской войны включали не только результаты разрушительных процессов но и определенное созидающее начало.
46496. Экономический рост и развитие 66 KB
  Вследствие неодновременности выборов работа Государственной думы проходила при неполном составе её пополнение шло в ходе работы. Комиссии Государственной думы работали над законопроектами о неприкосновенности личности свободе совести собраний об отмене смертной казни. В центре внимания II Думы как и ее предшественницы находился аграрный вопрос. Третьеиюньский государственный переворот новое Положение о выборах в Думу в нарушение Основных законов было утверждено царем без санкции Думы и Государственного совета означал поражение...
46497. Рroposition 17.62 KB
  Propositions show up in formal logic as objects of a formal language. A formal language begins with different types of symbols. These types can include variables, operators, function symbols, predicate (or relation) symbols, quantifiers, and propositional constants
46498. Эхинококкоз печени. Клиника, диагностика, методы хирургического лечение 17.71 KB
  Эхинококкоз печени. При перкуссии расширения границ печени.Периоды развития: латентный продромальных явлений прогрессивное увеличение печени период осложнений.
46499. Анализ прибыли предприятия 17.72 KB
  Прибыль предприятия характеризует превышение если наоборот то убыток выручки над расходами является главным показателем эффективности деятельности и отражает цель предпринимательства. В зависимости способа вычисления и направлений распределения различают такие основные виды прибыли предприятия: валовую балансовую прибыль операционную прибыль прибыль от обычной деятельности и прибыль после налогообложения чистую прибыль.Валовая балансовая прибыль Gross Profit разность между чистым доходом от реализации продукции и себестоимостью...
46500. Понятие и методы калькуляции затрат 17.86 KB
  Калькуляция служит основой для определения средних издержек производства и установления себестоимости продукции. Методы калькуляции это методы расчёта издержек производства себестоимости продукции объёма незавершённого производства основанные на калькуляции затрат. Попередельный метод калькуляции это метод исчисления себестоимости применяемый на предприятиях где исходный материал в процессе производства проходит ряд переделов или где из одних исходных материалов в одном технологическом процессе получают различные виды продукции....
46501. Техническое диагностирование. Этапы комплексной диагностики участков МТ. 17.87 KB
  Основными задачами контроля и диагностики МТ являются определение технического состояния на основе комплексного мониторинга в процессе создания и эксплуатации системы оценка и прогнозирование динамики технического состояния с целью обеспечения надежной и безопасной эксплуатации газотранспортной системы. Контроль и мониторинг технического состояния трубопроводных систем включает: получение информации в предэксплуатационный период ранняя диагностика из проектных материалов включая материалы изысканий лабораторных исследований грунтов...
46502. Диаграммы UML 17.91 KB
  Диаграммы UML. UML определяет следующие диаграммы: 1. Диаграммы применения use cse Или диаграммы вариантов использования Представляют собой граф из действующих лиц ctors и их взаимодействие с системой представленное сценариями применения. Диаграммы классов Cодержат набор статических декларативных элементов как например классы типы их связи объединенные в граф.
46503. Обеспечение электробезопасности техническими способами и СЗ 17.91 KB
  При случайном прикосновении для обеспечения электробезопасности применяют: защитные оболочки защитные ограждения временные или стационарные безопасное расположение токоведущих частей изоляцию этих частей и РМ малое U защитное отключение предупредительную сигнализацию блокировку и знаки безопасности; а при прикосновении к нетоковедущим металлическим частям защитное заземление зануление выравнивание потенциала защитное отключение изоляцию нетоковедущих частей электроразделение сети малое U контроль электроизоляции и СИЗ....