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

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

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

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

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

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

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

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

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

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

G(x)= b0+b1x+b2x2+b3x3+ … +bmxm, тогда

F(x)+G(x)= c0+c1x+c2x2+c3x3+ … +cnxn, где сii+bi.

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

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

G(x)= b0+b1x+b2x2+b3x3+ … + bmxm, тогда

F(x)*G(x)= d0+d1x+d2x2+d3x3+ … + bm+nxm+n, где dk=? аi bk-i. В частности,

d0= a0* b0,

d1= a0* b1+ a1* b0,

d2= a0* b2+ a1* b1+ a2* b0,

….

dn+m=an*bm.

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

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

G(x)= b0+b1x+b2x2+b3x3+ … +bmxm, тогда

F(x) - G(x)= c0+c1x+c2x2+c3x3+ … +cnxn, где сii - bi.

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

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

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

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

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

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

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

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

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 с.

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

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

Приложение

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

#include <iostream>

using namespace std;

class Mnogochlen

{

int A[100], n;

public:

void vvod();

void vichisl();

void slozh (Mnogochlen mA, Mnogochlen mB);

void vichit (Mnogochlen mA, Mnogochlen mB);

void umnozh (Mnogochlen mA, Mnogochlen mB);

void vivod();

void menu (Mnogochlen mA, Mnogochlen mB);

};

int main()

{

Mnogochlen a, b, c;

a.vvod();

a.vivod();

b.vvod();

b.vivod();

c.menu (a, b);

system («Pause»);

return 0;

}

void Mnogochlen:menu (Mnogochlen mA, Mnogochlen mB)

{

char ch;

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

do

{

ch = getchar();

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

if (ch=='1')

mA.vichisl();

if (ch=='2')

slozh (mA, mB);

if (ch=='3')

vichit (mA, mB);

if (ch=='4')

umnozh (mA, mB);

vivod();

}

void Mnogochlen:vvod()

{

cout<<endl;

cout<< «vvedite stepen mnogochlena:»;

cin>>n;

cout<< «vvedite koefficienti\n»;

for (int k=0; k<=99; k++)

{A[k]=0;}

for (int i=0; i<=n; i++)

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

}

void Mnogochlen:vivod()

{

int f;

f=0;

for (int i=n; i>=0; i-)

if (A[i]!=0)

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

f++;}

else {if (i!=0)

if (A[i]>0) cout<< "+"<<A[i]<< "*x^"<<i;

else cout<<A[i]<< "*x^"<<i;

else

if (A[i]>0) cout<< "+"<<A[i];

else cout<<A[i];

f++;}

}

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

cout<<endl;

}

void Mnogochlen:vichisl()

{

cout<<endl;

int q, w, e;

w=0;

cout<< «vvedite X:»; cin>>q;

e=1;

for (int i=0; i<=n; i++) {w=w+A[i]*e; e=e*q;}

cout<<«f («<<q<<») = «<<w;

cout<<endl;

}

void Mnogochlen:slozh (Mnogochlen mA, Mnogochlen mB)

{

for (int k=0; k<=99; k++) {A[k]=0;}

if (mA.n>mB.n) n=mA.n; else n=mB.n;

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

}

void Mnogochlen:vichit (Mnogochlen mA, Mnogochlen mB)

{for (int k=0; k<=99; k++) {A[k]=0;}

if (mA.n>mB.n) n=mA.n; else n=mB.n;

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

}

void Mnogochlen:umnozh (Mnogochlen mA, Mnogochlen mB)

{

for (int k=0; k<=99; k++) {A[k]=0;}

n=mA.n+mB.n;

for (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];}

}

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


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

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

    курсовая работа [449,8 K], добавлен 14.01.2011

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

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

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

    отчет по практике [700,5 K], добавлен 24.11.2014

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

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

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

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

  • Анализ процесса обработки информации и выбор структур данных для хранения. Методы решения задачи и разработка основных алгоритмов предметной области. Структурная схема программного продукта. Описание эмуляции команды FSUB математического сопроцессора.

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

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

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

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

    дипломная работа [4,3 M], добавлен 19.01.2017

  • Разработка системы хранения и обработки данных, интерфейса. Использование технологии Xamarin.Forms для организации заполнения путевых листов. Выбор операционной системы, языка и среды программирования. Аппаратная интеграция информационной системы.

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

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

    курсовая работа [81,7 K], добавлен 18.08.2014

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