- •Курсовая работа
- •Содержание отчета по курсовой работе
- •Постановка задачи
- •Задание на курсовую работу
- •Теоретические сведенья
- •Свойства проекта
- •Интерфейсные элементы Windows-приложений Общие свойства, события и методы
- •Компонент DatagriedView
- •Компоненты MenuStrip, Chart.
- •Пример выполнения работы Постановка задачи
- •Структура программы
- •Схемы алгоритмов
- •Описание интерфейса взаимодействия с пользователем
- •Исходный текст программы
- •Варианты заданий
Пример выполнения работы Постановка задачи
Необходимо написать программу на языке С++ для табулирования функции и построения ее графика. Функция имеет следующий вид:
Программа должна иметь следующие функциональные возможности:
Табулирование функции.
Расчет функции при помощи ряда.
Расчет функции при помощи рекурсии.
Вывод результатов работы в таблицу.
Построение графиков каждой из функций.
Сохранение результатов в файл.
Чтение результатов из файла.
Таким образом, дерево функций будет иметь следующий вид (рис. 1).
Рисунок 1. Дерево функций
Для разработки программы будет использоваться Windows Forms. Интерфейс будет располагаться на одной форме, которая будет иметь две закладки. Закладка 1 – для ввода данных и вывода результатов табулирования и Закладка 2 – для построения графика интерфейс показан на рис. 2 и рис. 3. Интерфейс разработан при помощи программы Pencil.
Рисунок 2. интерфейс формы закладка для ввода данных
Рисунок 3. Интерфейс формы закладка для построения графика
Структура главного меню показана на рис.4.
Рисунок 4. Структура главного меню
Структура программы
В программе разработана структура для хранения информации о результатах табулирования. Структура имеет следующий вид (табл. 1).
Таблица 1. Описание структуры
struct xy |
|
x |
y |
double |
double |
Также в программе объявлены две переменных данной структуры и три списка для хранения результатов табулирования. Объявление имеет следующий вид:
struct xy
{
double x,y;
} obj,obj1;
list<xy> Sin,Sin1,Sin2;
Программа состоит из одного модуля и имеет следующую структуру(рис.5).
Рисунок 5. Структура программы
Проведем спецификацию всех функций программы (табл.2)
Таблица 2. Спецификация функций
Функция |
Описание |
Void button1_Click (System::Object^ sender, System::EventArgs^ e)
|
Функция расчета. Вызывается при нажатии кнопки «Расчет». В ней решаются следующие задачи: 1. Инициализация начальных значений переменных 2. Вызов функции для очистки таблицы и графика 3. Вызов функций расчета 4. Вызов функции вывода Входные данные: System::Object^ sender – объект вызвавший событие (кнопка). System::EventArgs^ e- данные о событии(нажатии кнопки). Выходные данные: - |
System::Void записьВФайлToolStripMenuItem_Click (System::Object^ sender, System::EventArgs^ e)
|
Функция записи в файл. Вызывается при нажатии на пункт меню «Запись в файл» Входные данные: System::Object^ sender – объект вызвавший событие (кнопка). System::EventArgs^ e- данные о событии(нажатии кнопки). list<xy> Sin2 – список результатов табулирования при помощи рекурсии, т.е. значений х и у. list<xy> Sin1 – список результатов табулирования при помощи ряда, т.е. значений х и у. list<xy> Sin – список результатов табулирования эталонной функции sin(x)/x, т.е. значений х и у. Выходные данные: sin.txt – файл с данными табулирования эталонной функции sin(x)/x sin1.txt - файл с данными табулирования при помощи ряда sin2.txt txt - файл с данными табулирования при помощи рекурсии. |
System::Void чтениеИзФайлаToolStripMenuItem_Click
|
Функция чтения из файла. Вызывается при нажатии на пункт меню «Чтение из файла» Входные данные: System::Object^ sender – объект вызвавший событие (кнопка). System::EventArgs^ e- данные о событии(нажатии кнопки). Выходные данные: list<xy> Sin2 – список результатов табулирования при помощи рекурсии, т.е. значений х и у. list<xy> Sin1 – список результатов табулирования при помощи ряда, т.е. значений х и у. list<xy> Sin – список результатов табулирования эталонной функции sin(x)/x, т.е. значений х и у.
|
int count
|
Функция для расчета количества строк в файле Входные данные: - Выходные данные: количество строк |
void vivod()
|
Функция для вывода данных в таблицу и построения графика Входные данные: - Выходные данные: - |
void clear()
|
Функция для очистки данных в таблице и графике Входные данные: - Выходные данные: - |
void func3(double xn,double xk,double h)
|
Функция для табулирования при помощи рекурсии Входные данные: double xn – начало интервала double xk – конец интервала double h – шаг табулирования Выходные данные: list<xy> Sin2 – список результатов табулирования при помощи рекурсии, т.е. значений х и у. |
void rec (double x,double mem,double mul,double n,double* sum)
|
Функция для расчета суммы рекурсией Входные данные: double x – текущее значение х double mem – текущее значение множителя double mul – текущее значение знака (+ или -) double n – текущее значение n Входные данные: double* sum – текущее значение суммы ряда |
void func2(double xn,double xk,double h)
|
Функция для табулирования при помощи рядя Входные данные: double xn – начало интервала double xk – конец интервала double h – шаг табулирования Выходные данные: list<xy> Sin1 – список результатов табулирования при помощи ряда, т.е. значений х и у. |
void ryd(double x)
|
Функция для расчета суммы ряда Входные данные: double x –значение х Входные данные: double sum – значение суммы ряда |
void func(double xn,double xk,double h)
|
Функция для табулирования при помощи рядя Входные данные: double xn – начало интервала double xk – конец интервала double h – шаг табулирования Выходные данные: list<xy> Sin – список результатов табулирования эталонной функции sin(x)/x, т.е. значений х и у. |
