Объектно-ориентированное программирование на языке C++

Изучение объектно-ориентированного программирования. Анализ реализации языка C++. Особенность описания класса многочленов от одной переменной, задаваемых многочленной степенью и массивом коэффициентов. Суть проверки на адекватность вводимых значений.

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

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

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

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

Министерство образования и науки Российской Федерации

ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра оборудования и автоматизации машиностроения наименование кафедры

Объектно-ориентированное программирование наименование темы

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

Программирование и алгоритмизация

Выполнил

С.С. Земцов

И.О. Фамилия

Руководитель

Т.В. Зарак

Иркутск 2015 г

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

C++ -- компилируемый статически типизированный язык программирования общего назначения. Поддерживает такие парадигмы программирования как процедурное программирование, объектно-ориентированное программирование, обобщённое программирование, обеспечивает модульность, раздельную компиляцию, обработку исключений, абстракцию данных, объявление типов (классов) объектов, виртуальные функции.

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

C++ широко используется для разработки программного обеспечения, являясь одним из самых популярных языков программирования. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (игр).

Существует множество реализаций языка C++, как бесплатных, так и коммерческих и для различных платформ. Например, на платформе x86 это GCC, Visual C++, Intel C++ Compiler, Embarcadero (Borland) C++ Builder и другие. C++ оказал огромное влияние на другие языки программирования, в первую очередь на Java и C#.

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

Устойчивость и управляемость системы обеспечивается за счёт чёткого разделения ответственности объектов (за каждое действие отвечает определённый объект), однозначного определения интерфейсов межобъектного взаимодействия и полной изолированности внутренней структуры объекта от внешней среды (инкапсуляции).

Программа:

#include <iostream.h>

#include <iomanip.h>

#include <windows.h>

#include <string.h>

#include <math.h>

charbufRus[256];

char* Rus(const char* text)

{

CharToOem(text,bufRus);

returnbufRus;

}

inti, j;

classmch

{

floatmassiv[100];

int s[100], k;

public:

void enter();

void exit();

floatvi4();

friendmch add (mch, mch);

friendmch sub(mch, mch);

};

voidmch::enter()

{

int n=0;

cout<<Rus("Введите количество членов многочлена - ");

cin>>k;

for(i=1; i<=k; i++)//членымногочлена

{

cout<<Rus("Введите C")<<n<<"=";

cin>>massiv[i];

n++;

cout<<Rus("Введитестепеньчлена - ");

cin>>s[i];

}

cout<<endl;

}

voidmch::exit()

{

int K=1;//s - степень при Х^...

cout<<Rus("Многочлен")<<endl;

for(i=1; i<=k; i++)

{

if (i==1)

cout<<massiv[i]<<"*x^"<<s[i]<<setw(4);

else

cout<<" + "<<massiv[i]<<"*x^"<<s[i]<<setw(4);

}cout<<endl;

}

floatmch::vi4()

{

float x, buf, rez=0;

cout<<Rus("Введите значение аргумента x - ");

cin>>x;

for(i=1; i<=k; i++)

{

buf=pow(x,s[i]);

buf*=massiv[i];

rez+=buf;

}

returnrez;

}

mch add(mch a, mch b)

{

mch c;

c.k=1;

int f;

for(i=1;i<=a.k;i++)

{

f=0;

for(j=1;j<=b.k;j++)

{

if(a.s[i]==b.s[j])

{

c.massiv[c.k]=a.massiv[i]+b.massiv[j];

c.s[c.k]=a.s[i];

c.k++;

f=1;

}

}

if (f==0)

{

c.massiv[c.k]=a.massiv[i];

c.s[c.k]=a.s[i];

c.k++;

}

}

for(i=1;i<=b.k;i++)

{

f=0;

for(j=1;j<=a.k;j++)

{

if(b.s[i]==a.s[j])

{

f=1;

}

}

if (f==0)

{

c.massiv[c.k]=b.massiv[i];

c.s[c.k]=b.s[i];

c.k++;

}

}

c.k--;

return c;

}

mch sub(mch a, mch b)

{

mch c;

c.k=1;

int f;

for(i=1;i<=a.k;i++)

{

f=0;

for(j=1;j<=b.k;j++)

{

if(a.s[i]==b.s[j])

{

c.massiv[c.k]=a.massiv[i]-b.massiv[j];

c.s[c.k]=a.s[i];

c.k++;

f=1;

}

}

if (f==0)

{

c.massiv[c.k]=a.massiv[i];

c.s[c.k]=a.s[i];

c.k++;

}

}

for(i=1;i<=b.k;i++)

{

f=0;

for(j=1;j<=a.k;j++)

{

if(b.s[i]==a.s[j])

{

f=1;

}

}

if (f==0)

{

c.massiv[c.k]=b.massiv[i];

c.s[c.k]=b.s[i];

c.k++;

}

}

c.k--;

return c;

}

void main()

{

mch m1, m2, m3, m4;

floatv1, v2;

int W, Q, f1=0, f2=0, f3=0, f4=0, f5=0, f6=0;

do

{

cout<<Rus("\tМеню:\n");

cout<<Rus("1) Ввод двух многочленов\n");

cout<<Rus("2) Вывод многочленов\n");

cout<<Rus("3) Сложение\n");

cout<<Rus("4) Вычитание\n");

cout<<Rus("5) Вычисление по аргументу\n");

cout<<Rus("Вашвыбор - ");

cin>>W;

switch (W)

{

case 1://ввод двух многочленов

{

cout<<Rus("Ввод первого многочлена:\n");

m1.enter();

f1=1;

cout<<Rus("Ввод второго многочлена:\n");

m2.enter();

f2=1;

break;

}

case 2: //вывод многочленов

{

int w, q;

do

{

cout<<Rus("\n\t\tпоказать?\n");

cout<<Rus("\t1) Первый многочлен\n");

cout<<Rus("\t2) Второй многочлен\n");

cout<<Rus("\t3) Результат сложения\n");

cout<<Rus("\t4) Результат вычитания\n");

cout<<Rus("\t5) Результат вычисления\n");

cout<<Rus("\tВашвыбор - ");

cin>>w;

switch (w)

{

case 1:

{

if (f1==1 && w==1)

{

cout<<Rus("\nПервый многочлен:\n");

m1.exit();

}

else

cout<<Rus("\nНедостаточно данных!\n");

break;

}

case 2:

{

if (f2==1 && w==2)

{

cout<<Rus("\nВторой многочлен\n");

m2.exit();

}

else

cout<<Rus("\nНедостаточно данных!\n");

break;

}

case 3:

{

if (f3==1 && w==3)

{

cout<<Rus("\nРезультат сложения\n");

m3.exit();

}

else

cout<<Rus("\nНедостаточно данных!\n");

break;

}

case 4:

{

if (f4==1 && w==4)

{

cout<<Rus("\nРезультат вычитания\n");

m4.exit();

}

else

cout<<Rus("\nНедостаточно данных!\n");

break;

}

case 5:

{

if (f5==1 && w==5)

{

cout<<Rus("\nРезультат вычисления\n");

cout<<Rus("Первого - ")<<v1<<endl;

cout<<Rus("Второго - ")<<v2<<endl;

}

else

cout<<Rus("\nНедостаточно данных!\n");

break;

}

default: cout<<Rus("\n\tОшибка!\nНеобходимо выбрать номер действия из меню!\n");

}

cout<<Rus("\nПоказать другой многочлен? (1/0) - ");

cin>>q;

cout<<endl;

} while (q==Y);

break;

}

case 3: //сложение многочленов

{

if (f1==1 && f2==1)

{

m3=add(m1, m2);

cout<<Rus("Результат сложения:\n");

m3.exit();

}

else

cout<<Rus("\nНедостаточно данных!\n");

break;

}

case 4: //вычитание многочленов

{

if (f1==1 && f2==1)

{

m4=sub(m1, m2);

cout<<Rus("Результат вычитания:\n");

m4.exit();

}

else

cout<<Rus("\nНедостаточно данных!\n");

break;

}

case 5: //вычисление по аргументу

{

if (f1==1 && f2==1)

{

c1=m1.vi4();

f5=1;

c2=m2.vi4();

f6=1;

cout<<Rus("\nРезультат вычисления\nПервого - ")<<c1<<endl;

cout<<Rus("Второго - ")<<c2<<endl;

}

else

cout<<Rus("\nНедостаточно данных!\n");

cout<<endl;

break;

}

default: cout<<Rus("Выберите действие из меню!\n");

}

cout<<Rus("Вернуться к меню? (1/0) - ");

cin>>Q;

} while (Q==1);

}

Скриншоты программы

Заключение

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

Многочлен представлен классом (новым типом данных). Для перехода между конструкторами используется оператор switch с циклом с помощью оператора do while. Основным элементом для работы с многочленами являются дружественные функции (выполнение операций над многочленами). Для проверки на адекватность вводимых значений используется оператор if, позволяющий в случае невыполнения необходимого условия выводить соответствующее сообщение.

Проделанная работа позволила закрепить умения работы в среде C++, получить более обширные знания в сфере объектно-ориентированного программирования на языке C++.

Список используемой литературы

1. Стефан Р. Дэвис C++ для чайников - Вильямс, Диалектика, 2003 - 336 стр.

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

...

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

  • Использование скриптового языка программирования для разработки web-приложений (сценариев). Изучение основ объектно-ориентированного программирования в языке PHP. Ознакомление со специальными методами для работы с классами. Назначение интерфейсов.

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

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

    контрольная работа [51,7 K], добавлен 22.01.2013

  • Приемы и правила объектно-ориентированного программирования с использованием языка С++. Общие принципы разработки объектно-ориентированных программ. Основные конструкции языка С++. Разработка различных программ для Windows с использованием WIN32 API.

    учебное пособие [1,6 M], добавлен 28.12.2013

  • Методология объектно-ориентированного программирования в Java. Понятия класса, объекта и объектной переменной. Динамическая и статическая объектные модели. Логическое структурирование приложения. Наследование в Java. Отличия интерфейсов от классов.

    курс лекций [547,2 K], добавлен 01.05.2014

  • Разработка программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Класс программы, инструкция по использованию программы.

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

  • Изучение принципов объектно-ориентированного программирования, в котором основными концепциями являются понятия классов и объектов. Свойства этого вида программирования: инкапсуляция, полиморфизм, наследование. Описание класса. Конструкторы и деструкторы.

    презентация [74,8 K], добавлен 14.10.2013

  • Использование объектно-ориентированного программирования - хорошее решение при разработке крупных программных проектов. Объект и класс как основа объектно-ориентированного языка. Понятие объектно-ориентированных языков. Языки и программное окружение.

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

  • Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.

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

  • Понятие объектно-ориентированного программирования, общая характеристика языков высокого уровня. Разработка программного обеспечения для реализации компьютерной игры "пинбол" с помощью императивного программирования в среде Microsoft Visual Basic.

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

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

    презентация [214,9 K], добавлен 26.10.2013

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

    реферат [17,0 K], добавлен 15.04.2015

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

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

  • Исследование принципов объектно-ориентированного программирования на базе языка программирования С++. Разработка программного комплекса для ведения учёта памятников города. Описание процессов сортировки, поиска, формирования статистики по памятникам.

    курсовая работа [782,4 K], добавлен 26.05.2014

  • Технологии программирования. Сущность объектно-ориентированного подхода к программированию. Назначение Си, исторические сведения. Алфавит, базовые типы и описание данных. Структуры и объединения. Операторы Си++. Функции. Библиотека времени выполнения.

    курс лекций [51,9 K], добавлен 03.10.2008

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

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

  • История развития, характеристика, предназначение и особенности языка программирования Delphi. Разработка проекта создания кроссворда на объектно-ориентированном языке Delphi, который состоит из 19 вопросов по горизонтали и 16 вопросов по вертикали.

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

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

    лабораторная работа [212,0 K], добавлен 10.03.2013

  • Основная цель технологии СОМ (объектная модель компонентов) - обеспечение возможности экспорта объектов. Объектно-ориентированное программирование и его место в программировании. Принципы и применение описаний информационных систем (UML и аналоги).

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

  • Основные операции с АВЛ-деревьями, добавление и удаление элемента из сбалансированного дерева. Эффективность сортировки вставкой в АВЛ–дерево и итераторы. Алгоритм реализации АВЛ–деревьев через классы объектно–ориентированного программирования.

    курсовая работа [281,1 K], добавлен 29.11.2010

  • Почему C++. Возникновение и эволюция языка C++. Сравнение языков С++ и С. Эффективность и структура. Процедурное программирование. Модульное программирование. Абстракция данных. Объектно-ориентированное программирование. Улучшенный С.

    реферат [26,4 K], добавлен 03.06.2004

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