Программирование в C++
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
(ФГБОУ ВПО «ВГТУ»)
Факультет заочного образования
Кафедра Компьютерных интеллектуальных технологий проектирования
КУРСОВАЯ РАБОТА
По дисциплине: «Программирование»
По теме: «Программирование в C++»
Разработал студент В.В. Мешков
Руководитель П.Ю. Гусев
Воронеж, 2014г.
Введение
Объектно-ориентированное программирование (сокращенно ООП) - это в наше время совершенно естественный подход к построению сложных (и не очень сложных) программ и систем. Когда вы открываете любую программу, вы видите окно с множеством кнопок, разделов меню, окон редактирования, списков и т.п. Все это объекты. Причем сами по себе они ничего не делают. Они ждут каких-то событий - нажатия пользователем клавиш или кнопок мыши, перемещения курсора и т.д. Когда происходит подобное событие, объект получает сообщение об этом и как-то на него
реагирует: выполняет некоторые вычисления, разворачивает список, заносит символ в окно редактирования и т.д. Все это можно описать и разработать с помощью языка С++.
1. Теоретическая часть
.1 Общее описание языка
C++ - компилируемый <#"justify">1.2 История создания
Язык возник в начале 1980-х годов <#"justify">·Получить универсальный язык со статическими типами данных, эффективностью и переносимостью языка C.
·Непосредственно и всесторонне поддерживать множество стилей программирования, в том числе процедурное программирование <#"justify">Выбор именно C в качестве базы для создания нового языка программирования объясняется тем, что язык C:
·является многоцелевым, лаконичным и относительно низкоуровневым языком;
·подходит для решения большинства системных задач;
·исполняется везде и на всём;
·стыкуется со средой программирования UNIX.
Несмотря на ряд известных недостатков языка C, Страуструп пошёл на его использование в качестве основы, так как «в C есть свои проблемы, но их имел бы и разработанный с нуля язык, а проблемы C нам известны». Кроме того, это позволило быстро получить прототип компилятора (cfront), который лишь выполнял трансляцию добавленных синтаксических элементов в оригинальный язык C.
По мере разработки C++ в него были включены другие средства, которые перекрывали возможности конструкций C, в связи с чем неоднократно поднимался вопрос об отказе от совместимости языков путём удаления устаревших конструкций. Тем не менее, совместимость была сохранена из следующих соображений:
·сохранение действующего кода, написанного изначально на C и прямо перенесённого в C++;
·исключение необходимости переучивания программистов, ранее изучавших C (им требуется только изучить новые средства C++);
·исключение путаницы между языками при их совместном использовании («если два языка используются совместно, их различия должны быть или минимальными, или настолько большими, чтобы языки было невозможно перепутать»).
К 1983 году <#"justify">1.3 История стандартов
В 1985 году <#"justify">1.4 Обзор языка
Стандарт C++ на 2003 год <#"justify">1.Комментарии:
С++ поддерживает как комментарии в стиле C:
« /* это комментарий, который может состоять из нескольких строчек
*/»
так и однострочные:
«// вся оставшаяся часть строки является комментарием»,
где // обозначает начало комментария, а ближайший последующий символ новой строки, который не предварён символом \ (либо эквивалентным ему обозначением ??/), считается окончанием комментария.
2.Типы
В C++ доступны следующие встроенные типы:
·Символьные: char, wchar_t (char16_t и char32_t, в стандарте C++11 <#"justify">1.6 Объектно-ориентированные особенности языка
C++ добавляет к C объектно-ориентированные возможности. Он вводит классы, которые обеспечивают три самых важных свойства ООП <#"justify">1.Описание функций в теле класса
В теле класса можно указать только заголовок функции, а можно описать всю функцию (см. пример с функцией Alloc ниже. В этом случае она считается встраиваемой (inline)).
2.Константные функции-члены
Нестатические функции-члены (и только они) могут иметь описатель const
class Array
{
...double operator[] (int n) const;
Такие функции не имеют права изменять поля класса (кроме полей, определённых как mutable). Если они пытаются это сделать, компилятор должен выдать сообщение об ошибке.
3.Наследование <#"justify">Конструктор наследника вызывает конструкторы базовых классов, а затем конструкторы нестатических членов-данных, являющихся экземплярами классов. Деструктор работает в обратном порядке.
Наследование бывает публичным, защищённым и закрытым (то есть закрытого типа).
Наследник - это больше чем базовый класс, поэтому, если наследование открытое, то он может использоваться везде, где используется базовый класс, но не наоборот.
4.Полиморфизм
Семантика системы типов С++ не полиморфна (в отличие от потомков ML <#"justify">Основным способом организации информации в C++ являются классы. В отличие от структуры (struct) языка C, которая может состоять только из полей и вложенных типов, класс (class) C++ может состоять из полей, вложенных типов и функций-членов (member functions). Инкапсуляция в С++ реализуется через указание уровня доступа к членам класса: они бывают публичными (открытыми, public), защищёнными (protected) и собственными (закрытыми, приватными, private). В C++ структуры формально отличаются от классов лишь тем, что по умолчанию члены и базовые классы у структуры публичные, а у класса - собственные.
Проверка доступа происходит во время компиляции, попытка обращения к недоступному члену класса вызовет ошибку компиляции.
6.Конструкторы и деструкторы
В классах всегда есть специальные функции - конструкторы <#"justify">2.Практическая часть
2.1.Задача 1
Составить программу поиска трехзначных чисел которые при делении на 47 дают в остатке 43, а при делении на 43 дают в остатке 47.
Текст программы:
#include <iostream>
#include <conio.h>
#include <ctime>
namespace std;
()
{i,j;(i=100; i<1000; i++)
{if ((i%47==43) or (i%43==47))<<i<<endl;
}
_getch();
}
Выходные данные:
.2 Задача 2
Дано натуральное число. Определить номер цифры «8» в нем, считая от конца числа. Если такой цифры нет, ответом должно быть число 0, если таких цифр в числе несколько - должен быть определен номер самой левой из них.
Текст программы:
#include <iostream>
#include <conio.h>
#include <ctime>
#include <stdlib.h>
#include <cstring>
namespace std;
()
{a;j[25];dlina,i,bufer,k;=-1;=1;<< "Vvedite naturalnoe chislo:";>> a;(a<=0) cout<<"Chislo "<<a<<" ne podhodit pod uslovie zadachi"<<endl;(a>0)(a,j,10);= strlen(j)-1;(i=dlina;i!=-1;i--)
{(j[i]=='8')
{=k;
}=k+1;
}(bufer != -1)<<bufer<<endl; cout<<"0"<<endl;
_getch();
}
Входные, выходные данные
Заключение
В процессе курсовой работы мной были изучены методы создания циклов for, предложений if, в результате чего приобретены практические навыки в этих областях. Для этого использовалась главная функция main, обеспечивающая всю необходимую и правильную работу программы.
наследование инкапсуляция константный функция
Список использованной литературы
1. Джарод Холингвэрт, Дэн Баттерфилд, Боб Сворт, Джэйми Оллсоп C++Builder 5. Руководство разработчика.
. Borland C++ Builder 5. Энциклопедия программиста. Калверт Ч., Рейсдорф К., "ДиаСофт" - 2001, 944 стр.
3. Галерея «ПЕТРОПОЛЬ». Неформальное введение в C++ и TURBO VISION. 1992г.
. М.И. Болски. Язык программирования Си. 1988г.
5. Герберт Шилдт. C + + для начинающих. Пер. с англ. М: ЭКОМ Паблишерз 2007.
. Герберт Шилдт. Полный справочник по C + + 4-е издание. Пер. с англ. М: издательский дом « Вильямс » 2010.
Больше работ по теме:
Предмет: Информационное обеспечение, программирование
Тип работы: Курсовая работа (т)
Новости образования
КОНТАКТНЫЙ EMAIL: [email protected]
Скачать реферат © 2017 | Пользовательское соглашение
ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ