Система построения графиков функций на 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