Графические возможности программы Microsoft Visual Studio

Исследование графических возможностей Microsoft Visual Studio, разработка программы, их демонстрирующей. Основные функции программы. Реализация форм для вывода изображения графика, осей координат, построения графика. Поле для изменения параметров.

Рубрика Программирование, компьютеры и кибернетика
Вид отчет по практике
Язык русский
Дата добавления 19.07.2012
Размер файла 726,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

ФГБОУ ВПО "ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ"

Факультет прикладной математики и телекоммуникаций

Кафедра радиоэлектронных средств

Программа по летней практике

"Гипоциклоида"

Зачетная работа по летней практике

ТПЖА.12 111-02 90 01-1

Разработал: студент гр. ИНБ-11 П.Д. Дуняшев

Проверил:

ст. преподаватель кафедры РЭС В.Ю. Кононова

Киров 2012

Содержание

  • 1. Анализ задания
  • 1.1 Текст задания
  • 1.2 Анализ задания
  • 2. Реализация метода решения задачи
  • 2.1 Проектирование программы
  • 2.2 Спецификация программы
  • 2.3 Состав программного модуля
  • 2.4 Структура программного модуля
  • 3. Функциональное назначение программы
  • Цель
  • Изучить графические возможности программы Microsoft Visual Studio, написать программу, демонстрирующую эти способности.

1. Анализ задания

1.1 Текст задания

Гипоциклоида задается параметрическим уравнением:

Разработать приложение, которое:

1.1. выводит график данной функции на экран

1.2. позволяет изменять параметр с последующей перерисовкой

1.3. анимирует движение катящейся окружности

1.2 Анализ задания

Для решения задачи разработать следующие функции:

· Функцию вывода графика на экран

· Функцию main (), которая организует работу всех разработанных функций

2. Реализация метода решения задачи

2.1 Проектирование программы

Последовательность действий:

1) Реализовать форму для вывода изображения графика

2) Реализовать функцию для вывода осей координат

3) Реализовать функцию для построения графика

4) Создать поле для изменения параметра k

2.2 Спецификация программы

При запуске программы пользователю выводится окно, содержащее:

1) Кнопку для интерактивного взаимодействия ("построить график")

2) Поле для изменения параметра k

Программа выполнена в виде основной функции и нескольких дополнительных функций для реализации отдельных графических элементов.

Если нажмете кнопку построить график, то увидите анимацию рисования гипоциклоиды по средствам движения окружности.

2.3 Состав программного модуля

Программа состоит из нескольких функций:

· Содержит главную функцию main ();

· Функция paint_axis () - рисование осей координат

· Функция Paint_Circle (int centX, int centY,radius) - рисование окружности

· Функция Paint_Graphic () - рисование графика

· Функция points_and_anim () - заполнение массива точек, по которым рисуется график и анимированное отображение графика путем катящейся окружности

В программе используются переменные типов (int, double)

Входные данные программы приведены в Таблица А.1.

2.4 Структура программного модуля

Структура программного модуля представлена на рисунке 1.

Рисунок 1 - Структура программного модуля

visual studio график программа

3. Функциональное назначение программы

Данная программа написана на языке Microsoft Visual C++ 2008 и успешно функционирует в операционных системах Windows XP, Windows 7.

Программа предназначена для построения графика астроиды.

Используемые технические средства

Минимальные требования к системе:

· Минимальная частота процессора 800MHz

· 256 Mb RAM

· 6 000 kb свободного пространства на диске

· 4 Mb видеоадаптер

· Клавиатура

· Мышь

1 Вызов и загрузка

Программа приступает к работе после запуска файла "Астроида. exe" и занимает на диске 5 Mb. Данный файл достаточен для полного функционирования программного продукта и не нуждается в дополнительных файлах.

2 Входные данные

Входные данные представлены в Таблице А.1.

Таблица А.1. - Входные данные

Тип

Идентификатор

Назначение

Диапазон

double

x

Координата по оси x

1.7е-308

до1.7е+308

double

y

Координата по оси y

1.7е-308

до1.7е+308

int

k

Параметр уравнения гипоциклоиды

1<=k<=15

double

temp

Переменная, используемая в цикле рисования графика

0<=temp<=6.28

int

R

Радиус большей окружности

R=250

int

r

Радиус меньшей окружности

r=int (R/k)

3 Описание логической структуры

После загрузки файла "Гипоциклоида. exe" откроется окно с кнопкой и числовым списком.

Через кнопку осуществляется анимированное изображение графика астроиды.

Через список осуществляется смена значения параметра k.

4 Схемы программ

Схемы программ представлены на рисунка А.1-А.5.

Рисунок А.1 - Схема программы функции main ()

Рисунок А.2 - Схема функции paint_axis ()

Рисунок А.3 - Схема функции Paint_Circle ()

Рисунок А.4 - Схема функции Paint_Graphic ()

Рисунок А.5 - Схема функции point_and_anim ()

1 Назначение и условия применения программы

Программа разработана в качестве зачетной работы по дисциплине "Информатика" по техническому заданию преподавателя. Программный продукт является зачетной работой по летней практике.

2 Работа с программой

После загрузки файла "Гипоциклоида. exe" появляется приложение с заранее нарисованным осями координат, с кнопкой "Построить график" и числовым списком для изменения параметра.

Рисунок Б.1 - Окно приложения

При нажатии кнопки "Построить график" происходит анимированное построение графика, результатом которого является изображение гипоциклоиды (параметр k по умолчанию равен 3).

Рисунок Б.2 - Результат работы приложения

При изменении параметра, меняется коэффициент k и как следствие = график функции.

Рисунок Б.3 - Результат работы приложения (измененный параметр)

Текст программы

Form1. h

#pragma once

#include <time. h>

#include "math. h"

#include <windows. h>

#define centerX 400

#define centerY 300

#define maxT 6.3

#define minT 0

namespace практика_3 {

using namespace System;

using namespace System:: ComponentModel;

using namespace System:: Collections;

using namespace System:: Windows:: Forms;

using namespace System:: Data;

using namespace System:: Drawing;

// / <summary>

// / Сводка для Form1

// /

// / Внимание! При изменении имени этого класса необходимо также изменить

// / свойство имени файла ресурсов ("Resource File Name") для средства компиляции управляемого ресурса,

// / связанного со всеми файлами с расширением. resx, от которых зависит данный класс. В противном случае,

// / конструкторы не смогут правильно работать с локализованными

// / ресурсами, сопоставленными данной форме.

// / </summary>

public ref class Form1: public System:: Windows:: Forms:: Form

{

public:

Form1 (void)

{

InitializeComponent ();

p = gcnew array<Point> (64);

// TODO: добавьте код конструктора

//

}

array <Point> ^p;

int r1;

int r2;

int k;

double x, y, t, temp;

private: System:: Windows:: Forms:: NumericUpDown^ k_num;

private: System:: Windows:: Forms:: Label^ label2;

private: System:: Windows:: Forms:: Timer^ timer1;

public:

public:

private: System:: Windows:: Forms:: Label^ label1;

private:

public:

protected:

// / <summary>

// / Освободить все используемые ресурсы.

// / </summary>

~Form1 ()

{

if (components)

{

delete components;

}

}

private: System:: Windows:: Forms:: Button^ button1;

private: System:: ComponentModel:: IContainer^ components;

protected:

private:

#pragma region Windows Form Designer generated code

// / <summary>

// / Обязательный метод для поддержки конструктора - не изменяйте

// / содержимое данного метода при помощи редактора кода.

// / </summary>

void InitializeComponent (void)

{

this->components = (gcnew System:: ComponentModel:: Container ());

this->button1 = (gcnew System:: Windows:: Forms:: Button ());

this->label1 = (gcnew System:: Windows:: Forms:: Label ());

this->k_num = (gcnew System:: Windows:: Forms:: NumericUpDown ());

this->label2 = (gcnew System:: Windows:: Forms:: Label ());

this->timer1 = (gcnew System:: Windows:: Forms:: Timer (this->components));

(cli:: safe_cast<System:: ComponentModel:: ISupportInitialize^ > (this->k_num)) - >BeginInit ();

this->SuspendLayout ();

//

// button1

//

this->button1->Location = System:: Drawing:: Point (642, 533);

this->button1->Name = L"button1";

this->button1->Size = System:: Drawing:: Size (140, 23);

this->button1->TabIndex = 0;

this->button1->Text = L"Построить график";

this->button1->UseVisualStyleBackColor = true;

this->button1->Click += gcnew System:: EventHandler (this, &Form1:: button1_Click);

//

// label1

//

this->label1->AutoSize = true;

this->label1->Font = (gcnew System:: Drawing:: Font (L"Microsoft Sans Serif", 9.75F, System:: Drawing:: FontStyle:: Regular, System:: Drawing:: GraphicsUnit:: Point,

static_cast<System:: Byte> (204)));

this->label1->Location = System:: Drawing:: Point (564, 536);

this->label1->Name = L"label1";

this->label1->Size = System:: Drawing:: Size (22, 16);

this->label1->TabIndex = 1;

this->label1->Text = L"k=";

this->label1->Click += gcnew System:: EventHandler (this, &Form1:: label1_Click);

//

// k_num

//

this->k_num->Location = System:: Drawing:: Point (592, 536);

this->k_num->Maximum = System:: Decimal (gcnew cli:: array< System:: Int32 > (4) {15, 0, 0, 0});

this->k_num->Minimum = System:: Decimal (gcnew cli:: array< System:: Int32 > (4) {1, 0, 0, 0});

this->k_num->Name = L"k_num";

this->k_num->Size = System:: Drawing:: Size (44, 20);

this->k_num->TabIndex = 2;

this->k_num->Value = System:: Decimal (gcnew cli:: array< System:: Int32 > (4) {3, 0, 0, 0});

this->k_num->ValueChanged += gcnew System:: EventHandler (this, &Form1:: k_num_ValueChanged);

//

// label2

//

this->label2->AutoSize = true;

this->label2->Font = (gcnew System:: Drawing:: Font (L"Microsoft Sans Serif", 9, System:: Drawing:: FontStyle:: Bold, System:: Drawing:: GraphicsUnit:: Point,

static_cast<System:: Byte> (204)));

this->label2->Location = System:: Drawing:: Point (528,9);

this->label2->Name = L"label2";

this->label2->Size = System:: Drawing:: Size (251, 45);

this->label2->TabIndex = 3;

this->label2->Text = L"График гипоциклоиды: \r\nx = r (k - 1) (cos (t) + cos ( (k-1) t) / (k - 1)) \r\ny = r (k - 1) ("

L"sin (t) - sin ( (k-1) t) / (k - 1))";

this->label2->Visible = false;

//

// Form1

//

this->AutoScaleDimensions = System:: Drawing:: SizeF (6, 13);

this->AutoScaleMode = System:: Windows:: Forms:: AutoScaleMode:: Font;

this->ClientSize = System:: Drawing:: Size (791, 568);

this->Controls->Add (this->label2);

this->Controls->Add (this->k_num);

this->Controls->Add (this->label1);

this->Controls->Add (this->button1);

this->FormBorderStyle = System:: Windows:: Forms:: FormBorderStyle:: FixedSingle;

this->MaximizeBox = false;

this->MinimizeBox = false;

this->Name = L"Form1";

this->Text = L"Form1";

this->Load += gcnew System:: EventHandler (this, &Form1:: Form_Load);

this->Paint += gcnew System:: Windows:: Forms:: PaintEventHandler (this, &Form1:: Form_Paint);

this->Activated += gcnew System:: EventHandler (this, &Form1:: Form_activated);

this->MouseMove += gcnew System:: Windows:: Forms:: MouseEventHandler (this, &Form1:: Form_MouseMove);

(cli:: safe_cast<System:: ComponentModel:: ISupportInitialize^ > (this->k_num)) - >EndInit ();

this->ResumeLayout (false);

this->PerformLayout ();

}

#pragma endregion

private: System:: Void button1_Click (System:: Object^ sender, System:: EventArgs^ e) {

label2->Invalidate ();

this->label2->Visible = true;

point_and_anim ();

Paint_Graphic ();

Paint_Circle (0,0, r2);

}

private: System:: Void Form_MouseMove (System:: Object^ sender, System:: Windows:: Forms:: MouseEventArgs^ e) {

}

private: System:: Void Form_Paint (System:: Object^ sender, System:: Windows:: Forms:: PaintEventArgs^ e) {

paint_axis ();

}

private: System:: Void Form_Load (System:: Object^ sender, System:: EventArgs^ e) {

}

private: void paint_axis ()

{

Graphics ^g = CreateGraphics ();

g->DrawLine (Pens:: Black, 400, 0, 400, 600);

g->DrawLine (Pens:: Black, 0, 300, 800, 300);

g->DrawString ("x",gcnew Drawing:: Font ("Times",

12),Brushes:: Black, 775,280);

g->DrawString ("y",gcnew Drawing:: Font ("Times",

12),Brushes:: Black, 385,0);

}

private: System:: Void k_num_ValueChanged (System:: Object^ sender, System:: EventArgs^ e) {

}

private: void Paint_Circle (int centX, int centY, int radius)

{

Graphics ^g = CreateGraphics ();

g->DrawEllipse (Pens:: Black, centX + centerX - radius, centerY - radius - centY, radius*2, radius*2);

g->DrawLine (Pens:: Black, centX + centerX, centerY - centY, centerX + x, centerY + y);

}

private: void Paint_Graphic ()

{

Graphics ^g = CreateGraphics ();

g->Clear (BackColor);

paint_axis ();

Paint_Circle (0,0, r2);

g->DrawLines (Pens:: Red, p);

}

private: void point_and_anim ()

{

r2 = 250;

k = safe_cast<Int32> (k_num->Value);

Graphics ^g = CreateGraphics ();

g->Clear (BackColor);

r1 = int (r2/k);

temp = minT;

int i = 0;

double x1, y1;

while (temp <= maxT)

{

x = r1* (k-1) * (cos (temp) + cos ( (k-1) *temp) / (k - 1));

y = r1* (k-1) * (sin (temp) - sin ( (k-1) *temp) / (k - 1));

p [i] = Drawing:: Point (centerX + int (x), centerY + int (y));

Paint_Graphic ();

x1 = (r2-r1) *sin (temp+1.57);

y1 = (r2-r1) *cos (temp+1.57);

Paint_Circle (int (x1), int (y1), r1);

temp += 0.1;

:: Sleep (40);

i++;

}

}

}

Размещено на Allbest.ru


Подобные документы

  • Объектно-ориентированная технология создания программ. Среда разработки Visual Studio.NET. Особенности среды Microsoft Visual Studio 2010. Приложения C# для расчетов по формулам, консольный ввод-вывод. Форматирование значений данных. Программы с циклами.

    методичка [2,1 M], добавлен 11.09.2014

  • Общие сведения о работе программы в среде программирования Microsoft Visual Studio 2008, на языке программирования C++. Ее функциональное назначение. Инсталляция и выполнение программы. Разработанные меню и интерфейсы. Алгоритм программного обеспечения.

    курсовая работа [585,5 K], добавлен 24.03.2009

  • Microsoft Visual C++ и среда программирования Microsoft Developer Studio 6.0. Решение интеллектуальной задачи на компьютере. Построение алгоритма кодирования на Visual C++. Алгоритм решения задачи. Описание программы "Sort". Инструкции пользователя.

    курсовая работа [46,0 K], добавлен 27.11.2007

  • Создание программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С# средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Определение математического аппарата, применение его в задаче.

    курсовая работа [500,4 K], добавлен 13.01.2015

  • Составление программы для вычисления по двум формулам одной и той же переменной "X". Создание программы, которая по введенному значению аргумента вычислят значение функции, заданной в виде графика. Вывод на экран значения функции, заданной графически.

    курсовая работа [4,9 M], добавлен 14.03.2014

  • Характеристика интегральной среды разработки Microsoft Visual Studio NET, ее особенности. Анализ программ "Сетевой чат", программа-клиент. Основные функции программы-сервера, порядок ее запуска. Влияние персонального компьютера на организм человека.

    дипломная работа [1,1 M], добавлен 11.07.2012

  • Разработка игры "Угадай персонажа", ее суть и содержание. Запоминание новых персонажей и вопросов, коррекция базы данных. Использование языка программирования С++ и среды разработки Microsoft Visual Studio 2010. Алгоритмы и методы, структура программы.

    курсовая работа [571,9 K], добавлен 14.07.2012

  • Изучение особенностей проектирования прикладных программ с помощь средств Visual Studio 2010 на языке C#. Расчет конического соединения, конусного градиента, усилия для разрыва соединения и требуемой силы сжатия. Реализация и тестирование программы.

    курсовая работа [1,7 M], добавлен 19.02.2013

  • Рассмотрение основ работы в Microsoft Visual Studio 2010 с языком программирования С#. Реализация программы обработки данных авиапассажиров. Выбор метода ввода данных из текстового файла. Создание фильтра для обработки списка по определенным критериям.

    курсовая работа [1,4 M], добавлен 17.01.2016

  • Создание приложения Windows Forms в среде Microsoft Visual Studio 2008. Разработка программы "Курсовой" для организации работы по учёту курсовых работ в учебных заведениях с возможностью добавления, удаления, редактирования и поиска информации.

    курсовая работа [2,2 M], добавлен 28.06.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.