Система построения графиков функций на Dev-C++

Проектирование программы построения графиков восьми различных функций. Листинг реализации нажатия кнопки "Линейная функция". Описание пользовательских структур данных. Создание библиотеки для работы с графиками. Скриншоты программы, ее тестирование.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 08.08.2013
Размер файла 1,1 M

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

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

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

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ

АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

ПОСТАНОВКА ЗАДАЧИ

ОПИСАНИЕ ПРОГРАММЫ

ОПИСАНИЕ РЕАЛИЗАЦИИ НАЖАТИЯ КНОПОК

ОПИСАНИЕ ПОЛЬЗОВАТЕЛЬСКИХ СТРУКТУР ДАННЫХ

СКРИНШОТЫ ПРОГРАММЫ

ЗАКЛЮЧЕНИЕ

СПИСОК ЛИТЕРАТУРЫ

ВВЕДЕНИЕ

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

АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

График функции -- множество точек, у которых абсциссы являются допустимыми значениями аргумента , а ординаты -- соответствующими значениями функции .

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

ПОСТАНОВКА ЗАДАЧИ

Пользователь имеет возможность построить графики восьми различных функций. Как только пользователь настроит цвет, выберет нужный ему тип функции у него будет выбор, откуда считать коэффициенты для уравнения функции: либо с клавиатуры вводить в консоль, либо с заранее подготовленного *.txt файла. После всех нужных построений пользователь может «прокрутить» область построения графиков до нужного ему значения, либо приблизить/отдалить график, причем приближать график можно сколько угодно раз, но на отдаление существует определенный порог значения. После всех манипуляций с графиками пользователь может очистить область построения и продолжить работу уже с другими графиками.

график программа функция

ОПИСАНИЕ ПРОГРАММЫ

Программа будет выполняться следующим способом. При запуске программы на экран выводится меню выбора: Построить график, о программе, выход. При выборе второго действия на экран выводятся титульный лист, который содержит основную информацию о курсовом проекте. Кнопка выхода выполняет соответствующее действие.

При нажатии на кнопку «Построить график» появляется следующее меню, которое позволяет выбрать тип функции, которую пользователь захотел построить, а также кнопки «Настройка цвета», которая позволяет соответственно настроить цвет графика. После выбора цвета и типа функции напротив выбранного типа функции появляются две кнопки, которые определят каким способом будут введены коэффициенты уравнения.

Обозначим рабочую область программы через блок схему:

+

ОПИСАНИЕ РЕАЛИЗАЦИИ НАЖАТИЯ КНОПОК

Приведём прокомментированный листинг реализации нажатия кнопки «Линейная функция». Для любой другой кнопки реализация аналогична.

registermousehandler(WM_LBUTTONDOWN,OnLClick);//считали координаты нажатия

if(f->FirstM)// если флаг "Первое меню активен, то:"

{

if(koordX>20&&koordX<220&&koordY>50&&koordY<80)//Если координаты удовл. координатам кнопки "Построить график"

{

koordX=-50;//присвоили переменным, которые хранят значения координат

koordY=-50;//запредельные значения

SecondMenu(f);//Функции рисования второго меню

f->FirstM=false;//флаг "Первое меню" не активен

}

if(koordX>20&&koordX<220&&koordY>130&&koordY<160)//Если координаты удовл. координатам кнопки "Выход"

{

koordX=-50;

koordY=-50;

exit(0);//Закрыли консоль

closegraph( );//Закрыли графическую область

}

}

//Следущий блок программы обозначим как (1)

if (f->LinF)//Если флаг "Линейная функция" активен, то

{//ЛИНЕЙНАЯ ФУНКЦИЯ

if(koordX>265&&koordX<365&&koordY>90&&koordY<120)//Если координаты удовл. координатам кнопки "Консоль"

{

f->count.countLin++;//Счетчику, который считает количесто линейных функиций прибавили 1

std::cout<<"Введите коэффициенты уравнения вида f(x)=k*x+c"<<std::endl;//Вводим коэффициенты

std::cout<<"Введите k"<<std::endl;

std::cin>>f->FLin[f->count.countLin].k;

std::cout<<"Введите c"<<std::endl;

std::cin>>f->FLin[f->count.countLin].c;

f->FLin[f->count.countLin].color=f->color;

LinFunc(f);//Построили функию

f->LinF=false;//Флаг "Линейная функция" не активен

SecondMenu(f);//Функции рисования второго меню

}

if(koordX>370&&koordX<470&&koordY>90&&koordY<120)//Если координаты удовл. координатам кнопки "Файл"

{

char infile[256]="linfunc.txt";//Имя файла

f->count.countLin++;//Счетчику, который считает количесто линейных функиций прибавили 1

FILE *inf;

inf=fopen(infile, "r");//открыли для чтения файл

while(!feof(inf))

{

fscanf (inf, "%lf%lf", &f->FLin[f->count.countLin].k,&f->FLin[f->count.countLin].c);//считали коэф.

}

fclose(inf); // закрыли файл

f->FLin[f->count.countLin].color=f->color;//учли цвет

LinFunc(f);//построили функцию

f->LinF=false;//Флаг "Линейная функция" не активен

SecondMenu(f);//Функции рисования второго меню

}

koordX=-50;//присвоили переменным, которые хранят значения координат

koordY=-50;//запредельные значения

}

//блок (1) закончился

Способ нажатия на кнопки используется в программе много раз,

везде он аналогичен блоку (1).

Составим блок схему данного блока.

ОПИСАНИЕ ПОЛЬЗОВАТЕЛЬСКИХ СТРУКТУР ДАННЫХ

Для реализации программы был создана библиотека для работы с графиками (соответственно были созданы файл реализации и заголовочный файл).

Описание данной библиотеки:

struct Frm //структура Frm описывает экран и все что на нем происходит

{

Count count;//Структура, подсчитывает кол-во функций одного типа на экране

Lin FLin[100];//массивы структур, которые описывают функции

Quad FQuad[100];

Cube FCube[100];

FSRoot FSroot[100];

FCRoot FCroot[100];

Sin FSin[100];

Cos FCos[100];

Tan FTan[100];

bool flag;//флаг, отвечает за смену цвета

bool FirstM;//флаг «Первое меню»

bool SecondM;//флаг «Второе меню»

bool SettingsM;//флаг «Настройка»

bool LinF; //флаг «Линейная функция»

bool QuadF; //флаг «Квадратичная функция»

bool CubF;//флаг «Кубическая функция»

bool SRoot;// и тд….

bool CRoot;

bool SinF;

bool CosF;

bool TanF;

int color; //текущий цвет

int X0;//X нулевое

int Y0;// У нулевое

int XMIN; //Координаты, описывающие

int XMAX;//границу

int YMIN;//области

int YMAX;//построения

int G;//коэффициент, необходим для масштабирования

};

void LinFunc(Frm *f);//построение линейной функии

void QuadFunc(Frm *f);//квадратичной

void CubicFunc(Frm *f);//кубической

void SquareRoot(Frm *f);//квадратного корня

void CubeRoot(Frm *f);//кубического корня

void SinFunc(Frm *f);//синуса

void CosFunc(Frm *f);//косинуса

void TanFunc(Frm *f);//тангенса

СКРИНШОТЫ ПРОГРАММЫ

ЗАКЛЮЧЕНИЕ

В результате выполнения работы создана система построения графиков функций на Dev-C++ которая хорошо реализует поставленную задачу.

В ходе курсовой работы была рассмотрена проблема реализации идеи, определен круг задач и основной ход работы. Изучены основные теоретические положения и подходы. Программа тестировалась все недочеты, которые были найдены были устранены.

СПИСОК ЛИТЕРАТУРЫ

Г. Шилдт. Самоучитель C++: Пер. с англ. - Санкт-Петербург: BHV-Санкт-Петербург, 1998. 620с.

В.А. Скляров. Язык C++ и объектно-ориентированное программирование: Справочное издание. - Минск: Высшая школа, 1997. 480с.

Н.Б. Культин. C/C++ в задачах и примерах. -БХВ-Петербург, 2006.226с.

Березин Б.И. Начальный курс C и C++. -Диалог-МИФИ,2005.312с.

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

...

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

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

    курсовая работа [391,2 K], добавлен 05.12.2009

  • Создание приложения, которое будет производить построение графиков функций по заданному математическому выражению. Разработка программы "Генератор математических функций". Создание мастера функций для ввода математического выражения, тестирование.

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

  • Анализ и описание алгоритма. Основные характеристики выбранного компьютера, программных сред (операционная система и среда программирования). Описание компонентов и интерфейса программы, а также модулей, процедур и функций. Вызов и загрузка программы.

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

  • Определение возможностей математического пакета и изучение методов вычисления выражений в Mathcad. Возможности построения графиков функций одной переменной. Просмотр и способы построения графика функции одного аргумента и участков двухмерных графиков.

    контрольная работа [384,8 K], добавлен 06.03.2011

  • Сравнение графиков заданной функции и интерполяционных полиномов на определенном интервале при двух вариантах выбора узлов (равномерно с шагом, по Чебышеву). Создание программы на основе метода Ньютона для построения графиков и расчета значений функции.

    контрольная работа [1,1 M], добавлен 07.07.2012

  • Команды, используемые для построения графиков функций одной переменной (двумерная графика). Назначение и возможности команды plot (), расположенной в системной библиотеке Maple, ее операции и принцип работы. Порядок отображения графиков функций.

    лабораторная работа [141,8 K], добавлен 15.07.2009

  • Создание на языке C базы данных "Стадионы города", требования к программе. Осуществление загрузки базы данных в массив и вывод главного меню в основной программе. Алгоритм работы программы в виде блок-схемы. Описание функций программы и ее листинг.

    курсовая работа [183,6 K], добавлен 06.10.2010

  • Разработка и тестирование программы класса Точка. Спецификация программы. Сценарий диалога с пользователем. Разработка структур данных и алгоритмов. Таблица параметров функций программы. Текст программы на языке C++. Особенности тестирования программы.

    лабораторная работа [43,1 K], добавлен 21.07.2012

  • Графики вещественнозначных функций вещественного переменного. Построение двумерных графиков. Пример построения графика синусоиды. Пример использования функции subplot. Оформление двумерных графиков в системе MatLab. Основные функции оформления графиков.

    курсовая работа [826,3 K], добавлен 30.04.2019

  • Практика построения графиков с использованием функций и работа с мастером диаграмм в ПП Microsoft Excel. Применение встроенных функций работы с матрицами для решения системы линейных уравнений. Практика создания запросов при работе с базами данных.

    контрольная работа [436,1 K], добавлен 08.08.2011

  • Словесное описание алгоритма программы. Открытие файла процедурой Rewrite, его проверка на наличие ошибок при открытии. Особенности построения диаграммы. Листинг программы, ее тестирование и отладка. Выполнение процедуры CloseFile при закрытии файла.

    контрольная работа [17,3 K], добавлен 11.06.2010

  • Основы программирования на 32-битном Ассемблере, разработка с его помощью программы, демонстрирующей работу одного из разделов ОС Windоws. Описание используемых АРI-функций как интерфейса программирования приложений. Листинг программы, результаты работы.

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

  • Методика и основные этапы построения ранжированных переменных, сферы и особенности их практического применения. Порядок построения графиков в декартовой системе. Приведение примеров решение нелинейных уравнений и их систем при помощи решающего блока.

    контрольная работа [364,4 K], добавлен 27.03.2011

  • Создание базы данных и СУБД. Структура простейшей базы данных. Особенности языка программирования Турбо Паскаль. Описание типов, констант, переменных, процедур и функций. Описание алгоритма базы данных (для сотрудников ГИБДД), листинг программы.

    курсовая работа [26,3 K], добавлен 26.01.2012

  • Описание логической и модульной структуры разрабатываемой программы, используемые в данном процессе основные технические средства. Организация хранения данных в программе, проектирование интерфейса. Тестирование и отладка, листинг готовой программы.

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

  • Разработка программы на языке Pascal. Описание переменных. Действия, которые должна выполнить программа согласно выбранного алгоритма. Детализация графической части программы. Листинг и тестирование программы. Вывод массива данных на экран монитора.

    контрольная работа [360,4 K], добавлен 13.06.2012

  • Простые структуры для работы с пользователями и студентами. Описание пользовательских функций приложения. Алгоритм добавления информации о студентах в начало двусвязного списка. Удаление и фильтрация информации. Функция void menu-user. Листинг кода.

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

  • Порядок составления программы, тестирующей знания пользователя по разделу физики "Электрическое поле", написанной на языке Visual C++ с использование библиотеки MFC. Листинг программы и ее практическое значение, принципы работы, структура и элементы.

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

  • Создание приложения, исполняющего трансляцию программы из языка Паскаль в язык Си: разработка алгоритма реализации задачи, описание необходимых констант, переменных, функций и операторов, представление листинга программы и распечатка результатов.

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

  • Проектирование программы для работы с матрицами, обладающей некоторым уровнем защиты, интуитивно понятным интерфейсом и легкостью управления. Набор функций в программе. Класс хранения матричных данных. Описание интерфейса, форма входа и главное окно.

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

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