Разработка специализированного программного модуля для решения указанной задачи

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    269,89 Кб
  • Опубликовано:
    2014-12-09
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка специализированного программного модуля для решения указанной задачи













Курсовая работа

Разработка специализированного программного модуля для решения указанной задачи

Введение

алгоритм интерфейс программирование

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

В разделе «Выбор технологии, языка и среды программирования» выбор средств реализации.

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

В разделе «Разработка структурной схемы программного продукта» приведена структурная схема программы.

В разделе «Проектирование интерфейса пользователя» производится построение графа диалога, а также разработка форм ввода-вывода информации.

В разделе «Выбор стратегии тестирования и разработка тестов» проводится тестирование нашей программы при различных исходных значениях.

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


1. Выбор технологии, языка и среды программирования

В соответствии с заданием в качестве языка программирования был выбран язык Visual C++. Разработанный программный продукт использует технологию объектно-ориентированного программирования, заключающуюся в использовании классов.

Объектно-ориентированное программирование (ООП) - это способ организации кода в программе путем его группировки в виде объектов, то есть отдельных элементов, которые включают информацию (значения данных) и функции. Все системы ООП базируются на трех основных концепциях:

.        Инкапсуляция

.        Полиморфизм

.        Наследование

Инкапсуляция - механизм, объединяющий данные и код, манипулирующий с этими данными, а так же защищает и то, и другое от внешнего вмешательства и неправильного использования.

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

Наследование - это процесс, посредством которого один объект может приобретать свойство другого. Тот объект, который наследует свойства другого может добавлять к ним свои свойства. Наследование позволяет поддерживать в программировании иерархию классов.

Класс - это некоторое множество объектов, имеющее общую структуру и общее поведение.


2. Анализ и уточнение требований к программному продукту

 

.1 Анализ процесса обработки информации и выбор структур данных для ее хранения


Многочлен - функции вида:

F(x)= a0+a1x+a2x2+a3x3+ … +anxn,

где аi - фиксированные коэффициенты, х - переменная. Многочлены составляют один из важнейших классов элементарных функций.

Операция сложения многочленов:

F(x)= a0+a1x+a2x2+a3x3+ … +anxn(x)= b0+b1x+b2x2+b3x3+ … +bmxm, тогда(x)+G(x)= c0+c1x+c2x2+c3x3+ … +cnxn, где сii+bi.

Операция умножения многочленов:

F(x)= a0+a1x+a2x2+a3x3+ … +anxn(x)= b0+b1x+b2x2+b3x3+ … + bmxm, тогда(x)*G(x)= d0+d1x+d2x2+d3x3+ … + bm+nxm+n, где dk=∑ аi bk-i. В частности,

d0= a0* b0,

d1= a0* b1+ a1* b0,2= a0* b2+ a1* b1+ a2* b0,

….

dn+m=an*bm.


Операция вычитания многочленов:

F(x)= a0+a1x+a2x2+a3x3+ … +anxn(x)= b0+b1x+b2x2+b3x3+ … +bmxm, тогда(x) - G(x)= c0+c1x+c2x2+c3x3+ … +cnxn, где сii - bi.

 

2.2 Выбор методов и разработка основных алгоритмов решения задачи

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

§  вычислять значения многочлена при заданном аргументе

§  проводить операции сложения многочленов

§  проводить операции вычитания многочленов

§  проводить операции умножения многочленов

Также, программа должна содержать меню, позволяющее осуществить проверку всех методов класса.



3. Проектирование интерфейса пользователя

 

.1 Построение графа диалога


Для работы с программой было реализовано меню, состоящее из пяти пунктов. При выборе пункта 1-производится вычисление значения многочлена в точке. При выборе пункта 2 - производится сложение многочленов. При выборе пункта 3 - производится вычитание многочленов. При выборе пункта 4 - производится умножение многочленов. При выборе пункта 5 мы выходим из программы.

Рисунок 2 - Граф диалога

F - menu

F1 - вычисление значения многочлена в точке

F2 - сложение многочленов

F 3 - вычитание многочленов

F4 - умножение многочленов

F5 - выход

3.2 Разработка форм ввода-вывода информации

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

Выходной информацией является описание многочлена.


4. Выбор стратегии тестирования и разработка тестов

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

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

Рисунок 3 - Входные данные

На экране вывелись два многочлена, при использовании входных данных. Теперь выберем пункт 1 для вычисления многочлена в точке:

Рисунок 4 - Результат программы при выборе в меню пункта 1

Теперь посмотрим, что произойдет, когда введем пункт 2, который складывает два многочлена:

Рисунок 5 - Результат программы при выборе в меню пункта 2

Теперь посмотрим, что произойдет, когда введем пункт 3, который вычитает два многочлена:

Рисунок 6 - Результат программы при выборе в меню пункта 3

Теперь посмотрим, что произойдет, когда введем пункт 3, который умножает два многочлена:


Рисунок 7 - Результат программы при выборе в меню пункта 4


Заключение

Курсовая работа выполнена с целью разработки программы для описания класса многочленов.




Список использованных источников

1. C#: Пер. с англ. / Дейтел Х., Дейтел П., Листфилд Дж., Нието Т., Йегер Ш., Златкина М. - СПб.: БХВ-Петербург, 2006. - 1056 с.

. Visual C# 2008: базовый курс.: Пер. с англ. - М.: ООО «И.Д. Вильямс», 2009. - 1216 с.

. Библиотека MSDN - msdn.microsoft.com


Приложение

Программный код 111.cpp:

#include <iostream>namespace std;Mnogochlen

{A[100], n;:vvod();vichisl();slozh (Mnogochlen mA, Mnogochlen mB);vichit (Mnogochlen mA, Mnogochlen mB);umnozh (Mnogochlen mA, Mnogochlen mB);vivod();menu (Mnogochlen mA, Mnogochlen mB);

};

main()

{a, b, c;.vvod();.vivod();.vvod();.vivod();.menu (a, b);(«Pause»);0;

}

void Mnogochlen:menu (Mnogochlen mA, Mnogochlen mB)

{

ch;<<»\n 1: Vichislenie v tochke \n 2: Slozhenie \n 3: Vichitanie \n 4: Umnozhenie \n 5:EXIT \n»;

{= getchar();

} while((ch < '1') || (ch > '5'));

(ch=='1').vichisl();(ch=='2')(mA, mB);(ch=='3')(mA, mB);(ch=='4')(mA, mB);();

}

Mnogochlen:vvod()

{<<endl;<< «vvedite stepen mnogochlena:»;>>n;<< «vvedite koefficienti\n»;(int k=0; k<=99; k++)

{A[k]=0;}(int i=0; i<=n; i++)

{cout<<» a»<<i<<» =»; cin>>A[i];}

}

Mnogochlen:vivod()

{f;=0;(int i=n; i>=0; i-)(A[i]!=0)

{if (f==0) {if (i!=0) cout<<A[i]<< "*x^"<<i; else cout<<A[i];++;}{if (i!=0)(A[i]>0) cout<< "+"<<A[i]<< "*x^"<<i;cout<<A[i]<< "*x^"<<i;(A[i]>0) cout<< "+"<<A[i];cout<<A[i];++;}

}(f==0) {cout<<0;}<<endl;

}

Mnogochlen:vichisl()

{<<endl;q, w, e;=0;<< «vvedite X:»; cin>>q;=1;(int i=0; i<=n; i++) {w=w+A[i]*e; e=e*q;}<<«f («<<q<<») = «<<w;<<endl;

}

Mnogochlen:slozh (Mnogochlen mA, Mnogochlen mB)

{(int k=0; k<=99; k++) {A[k]=0;}(mA.n>mB.n) n=mA.n; else n=mB.n;(int i=0; i<=n; i++) {A[i]=mA.A[i]+mB.A[i];}

}

Mnogochlen:vichit (Mnogochlen mA, Mnogochlen mB)

{for (int k=0; k<=99; k++) {A[k]=0;}(mA.n>mB.n) n=mA.n; else n=mB.n;(int i=0; i<=n; i++) {A[i]=mA.A[i] - mB.A[i];}

}

Mnogochlen:umnozh (Mnogochlen mA, Mnogochlen mB)

{(int k=0; k<=99; k++) {A[k]=0;}=mA.n+mB.n;(int i=0; i<=mA.n; i++) for (int j=0; j<=mB.n; j++) {A [i+j]=A [i+j]+mA.A[i]*mB.A[j];}

}

Похожие работы на - Разработка специализированного программного модуля для решения указанной задачи

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!