Помощь в написании студенческих работ
Антистрессовый сервис

Разработка приложения на языке программирования C++

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Класс может определить свои собственные операции new и delete (new и delete для массива объектов). New — оператор языка программирования C++, обеспечивающий выделение динамической памяти. Оператор delete возвращает память выделенный оператором new, чтобы избежать утечки памяти. Деструктор является противоположностью конструктора. Он вызывается при уничтожении объектов и должен производить… Читать ещё >

Разработка приложения на языке программирования C++ (реферат, курсовая, диплом, контрольная)

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

" НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМ. Н.И. ЛОБАЧЕВСКОГО"

НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ ФАКУЛЬТЕТ УПРАВЛЕНИЯ И ПРЕДПРИНИМАТЕЛЬСТВА

КУРСОВАЯ РАБОТА

по дисциплине: «Информационные технологии и платформы разработки информационных систем»

на тему: «Разработка приложения на языке программирования C++»

Выполнил: студент группы 123−1И Петров Владислав Алексеевич Проверил: Преподаватель Майорова Ирина Владимировна Н. Новгород, 2014 г.

  • Введение
  • Постановка задачи
  • Теоретическая часть
  • Практическая часть
  • Результат выполнения программы
  • Заключение
  • Список литературы

C++ представляет собой объектно-ориентированный низкоуровневый язык программирования, отвечающий стандартам ANSI и Международной организации стандартов (International Standards Organization — ISO). Объектная ориентированность C++ означает, что он поддерживает стиль программирования, упрощающий кодирование крупномасштабных программ и обеспечивающий их расширяемость. Будучи низкоуровневым языком, C++ может генерировать весьма эффективные высокоскоростные программы. Сертификация ANSI и ISO обеспечила переносимость C++: написанные на нем программы совместимы с большинством современных сред программирования. Уже в самом названии содержится намек на то, что C++ является следующим поколением языка программирования C — результатом добавления новых веяний академической компьютерной мысли к старому доброму C. На C++ можно делать все то же, что и на C, и даже таким же образом. Но это нечто большее, чем просто C, наряженный в новые одежды. Дополнительные возможности C++ весьма значительны и требуют не только некоторых размышлений, но и привычки, однако результат того заслуживает.

Объектно-ориентированное программирование (ООП) — подход к программированию, при котором основными концепциями являются понятия объектов и классов.

Постановка задачи

1. Описать класс с именем COLLABORATE (сотрудник), содержащий следующие члены-данные открытого типа (можно закрытого типа — более сложный вариант):

· фамилия сотрудника;

· год рождения;

· пол.

2. Описать класс с именем FIRM (фирма), содержащий следующие члены-данные закрытого типа:

· количество сотрудников;

· указатель на массив сотрудников.

3. Класс FIRM должен содержать следующие члены-функции:

· конструктор без параметров;

· конструктор с параметрами;

· конструктор копирования;

· деструктор, выводящий сообщение о своей работе;

· функцию ввода данных в объект класса с клавиатуры (можно из файла);

· функцию вывода данных из объекта класса на дисплей;

· функцию добавления сотрудника в массив;

· функцию удаления сотрудника из массива;

· функцию подсчета количество женщин пенсионного возраста (возраст? 55 лет);

· функцию подсчета количество мужчин пенсионного возраста (возраст? 60 лет);

· функцию, формирующую массив сотрудников в зависимости от пола;

· другие функции, если они необходимы.

4. Написать программу, демонстрирующую работу с этим классом.

Теоретическая часть

класс конструктор деструктор программирование

Формат класса

Для хранения разнотипной информации о физическом объекте нужна специальная структура. Эта структура называется классом.

class COLLABORATE

{

public:

char fio [15];

int dat;

char pol [15];

};

Объявление класса начинается с ключевого слова class, после которого идет имя класса и пара фигурных скобок. После открывающейся скобки находится ключевое слово public (public делает все находящиеся за ним члены класса открытыми; private (закрытый, внутренний член класса) — обращение к члену допускается только из методов того класса, в котором этот член определен). После ключевого слова идет описание полей класса.

Функции

void Get_FIRM () const; // Функцию вывода данных из объекта класса на дисплей;

void Set_FIRM (); // Функцию ввvода данных в объект класса с клавиатуры;

По историческим причинам функции-члены называются также методами.

Полное имя функции пишется как void FIRM: Set_FIRM (). Имя класса в начале полного имени означает, что эта функция является членом класса NKI (: — оператор разрешения видимости).

Синтаксис вызова функции-члена такой же, как и синтаксис обращения к переменной-члену класса.

a. Set_FIRM ();

Создание указателя на объект

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

COLLABORATE *pMas;

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

Специальные элементы-функции класса

Специальными функциями класса называют функции, которые могут вызываться компилятором неявно. Это может происходить при создании и удалении представителей класса, при их копировании и преобразовании в другие типы. К таким функциям относятся:

· Конструктор. Инициализирует представителей класса.

· Конструктор копии. Инициализирует новый представитель, используя значения существующего объекта.

· Операция присваивания. Присваивает содержимое одного представителя класса другому.

· Деструктор. Производит очистку уничтожаемого объекта.

· Оператор new. Выделяет память для динамически создаваемого объекта.

· Оператор delete. Освобождает память, выделенную под динамический объект.

Конструктор

Конструктор имеет тоже имя, что и класс. Он вызывается компилятором всегда, когда создается новый представитель класса.

// Конструктор

FIRM: FIRM ()

{

n = 0;

pMas = NULL;

}

// Конструктор с параметром

FIRM: FIRM (int n)

{

int i;

this->n = n;

pMas = new COLLABORATE [n];

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

{

pMas [i]. fio = 0;

pMas [i]. dat = 0;

pMas [i]. pol = 0;

}

}

Относительно конструкторов имеют место такие правила:

· Для него не объявляется тип возвращаемого значения

· Он не может возвращать значений оператором return

Конструктор копирования

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

// Конструктор копирования

FIRM: FIRM (const FIRM& b)

{

n = b. n;

pMas = new COLLABORATE [n];

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

pMas [i] = b. pMas [i];

}

Деструктор

Деструктор является противоположностью конструктора. Он вызывается при уничтожении объектов и должен производить необходимую очистку объекта перед освобождением занимаемой им памяти. Именем деструктора должно быть имя класса, которому предшествует тильда (~).

// Деструктор

FIRM: ~FIRM ()

{

if (pMas)

delete [] pMas;

cout << «dectructor» << endl;

}

Операции класса new и delete

Класс может определить свои собственные операции new и delete (new [] и delete [] для массива объектов). New — оператор языка программирования C++, обеспечивающий выделение динамической памяти. Оператор delete возвращает память выделенный оператором new, чтобы избежать утечки памяти.

pMas = new COLLABORATE [n];

delete [] pMas;

Практическая часть

Файл COLLABORATE. h

#ifndef COLLABORATE_H

#define COLLABORATE_H

#include

#include

#include

using namespace std;

class COLLABORATE

{

public:

char fio [15];

int dat;

char pol [15];

};

class FIRM

{

private:

int n;

COLLABORATE *pMas;

public:

FIRM (); // Конструктор

FIRM (int n); // Конструктор с параметром

FIRM (const FIRM& b); // Конструктор копирования

~FIRM (); // Деструктор

FIRM operator = (const FIRM & coll); // перегрузка оператора =

void Get_FIRM () const; // Функцию вывода данных из объекта класса на дисплей;

void Set_FIRM (); // Функцию ввvода данных в объект класса с клавиатуры (можно из файла);

FIRM ADD_FIRM (); // функцию добавления сотрудника в массив;

FIRM DEL_FIRM (); // функцию удаления сотрудника из массива;

int Get_FIRM_W (char *pol); // функцию подсчета количество женщин пенсионного возраста (возраст? 55 лет);

int Get_FIRM_M (char *pol); // функцию подсчета количество мужчин пенсионного возраста (возраст? 60 лет);

FIRM Get_FIRM_POL (); // функцию, формирующую массив сотрудников в зависимости от пола;

};

#endif

Файл COLLABORATE. cpp

#include «COLLABORATE. h»

// Конструктор

FIRM: FIRM ()

{

n = 0;

pMas = NULL;

}

// Конструктор с параметром

FIRM: FIRM (int n)

{

int i;

this->n = n;

pMas = new COLLABORATE [n];

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

{

pMas [i]. fio = 0;

pMas [i]. dat = 0;

pMas [i]. pol = 0;

}

}

// Конструктор копирования

FIRM: FIRM (const FIRM& b)

{

n = b. n;

pMas = new COLLABORATE [n];

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

pMas [i] = b. pMas [i];

}

// Деструктор

FIRM: ~FIRM ()

{

if (pMas)

delete [] pMas;

cout << «dectructor» << endl;

}

// перегрузка оператора =

FIRM FIRM: operator = (const FIRM & coll)

{

if (pMas)

delete [] pMas;

pMas = new COLLABORATE [n = coll. n];

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

pMas [i] = coll. pMas [i];

return *this;

}

// Вывод массива на экран

void FIRM: Get_FIRM () const

{

cout << «Вывод массива с клавиатуры: «<< endl;

cout << «—————————————-» << endl;

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

{

cout << pMas [i]. fio << ««;

cout << pMas [i]. dat <<" «;

cout << pMas [i]. pol << «» << endl;

}

cout<< endl << endl << endl;

}

// Ввод массива с клавиатуры

void FIRM: Set_FIRM ()

{

cout << «Ввод массива с клавиатуры: «<< endl;

cout << «—————————————» << endl;

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

{

cout << «Фамилия: «<< endl;

cin >> pMas [i]. fio;

cout << «Год рождения: «<< endl;

cin >> pMas [i]. dat;

cout << «Пол сотрудника: «<< endl;

cin >> pMas [i]. pol;

cout<< endl;

}

}

// функцию добавления сотрудника;

FIRM FIRM: ADD_FIRM ()

{

cout << «Добавление сотрудника: «<< endl;

cout << «———————————-» << endl;

FIRM c (*this);

if (pMas)

delete [] pMas;

n = n + 1;

pMas = new COLLABORATE [n];

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

pMas [i] = c. pMas [i];

cout << «Фамилия: «;

cin >> pMas [n-1]. fio;

cout << «Год рождения: «;

cin >> pMas [n-1]. dat;

cout << «Пол сотрудника: «;

cin >> pMas [n-1]. pol;

return *this;

}

// Функцию удаления сотрудника;

FIRM FIRM: DEL_FIRM ()

{

int i, p = - 1;

char kon [10];

cout << «Удаление сотрудника» << endl;

cin >> kon;

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

{

if (strcmp (pMas [i]. fio, kon) == 0)

p=i;

}

if (p == - 1)

return *this;

else

{

FIRM q (*this);

if (pMas)

delete [] pMas;

n = n — 1;

pMas = new COLLABORATE [n];

for (i = 0; i < p; i++)

pMas [i] = q. pMas [i];

for (i = p; i < n; i++)

pMas [i] = q. pMas [i+1];

return *this;

}

}

FIRM FIRM: Get_FIRM_POL ()

{

char pol [15];

cout << «Vvedite pol sotrudnika: n» ;

cin >> pol;

int i, k, n1=0;

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

if (strcmp (pMas [i]. pol, pol) ==0) n1++;

FIRM c (n1);

k=0;

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

if (strcmp (pMas [i]. pol, pol) ==0)

c. pMas [k++] =pMas [i];

return c;

}

// функцию подсчета количество женщин пенсионного возраста (возраст? 55 лет);

int FIRM: Get_FIRM_W (char *pol)

{

int i;

int kol=0;

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

{

if (strcmp (pMas [i]. pol, pol) ==0)

if (2014;pMas [i]. dat>=55)

kol++;

}

return kol;

}

// функцию подсчета количество мужчин пенсионного возраста (возраст? 60 лет);

int FIRM: Get_FIRM_M (char *pol)

{

int i;

int kol=0;

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

{

if (strcmp (pMas [i]. pol, pol) ==0)

if (2014;pMas [i]. dat>=60)

kol++;

}

return kol;

}

Файл Main. cpp

#include «COLLABORATE. h»

int main () {

setlocale (LC_ALL," RUS");

FIRM a (5);

a. Set_FIRM ();

a. Get_FIRM ();

a. ADD_FIRM ();

a. Get_FIRM ();

a. DEL_FIRM ();

a. Get_FIRM ();

FIRM b = a. Get_FIRM_POL ();

b. Get_FIRM ();

a. Get_FIRM ();

cout<<" Колличество женщин пенсионного возраста: «<<

cout<<" Колличество мужчин пенсионного возраста: «<<

_getch ();

return 0;

}

Результат выполнения программы

Заключение

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

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

В ходе выполнения курсовой работы мной были закреплены знания по созданию, разработке и оформлению классов в C++.

1. Язык программирования C++. Базовый курс, 5-е издание, Стенли Б. Липпман

2. С++ Программирование на языке высокого уровня. Учебник для вузов. Павловская Т.А.

Показать весь текст
Заполнить форму текущей работой