Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Композиция с явным объявлением объекта




ОСНОВЫ ПРОГРАММИРОВАНИЯ

 

Методические указания

к выполнению контрольных и курсовых работ

для студентов направления 09.03.04

и 10.05.03

 

Курган 2015

 

Кафедра: «Программное обеспечение автоматизированных систем»

 

Дисциплина: «Программная инженерия»

(направление 09.03.04).

«Информационная безопасность автоматизированных систем»

(направление 10.05.03)

 

Составил: канд. техн. наук, доцент А.М. Семахин.

 

 

Утверждены на заседании кафедры «30» января 2014 г.

 

 

Рекомендованы методическим советом университета

 

«»2015 г.

 

 

СОДЕРЖАНИЕ

 

СОДЕРЖАНИЕ 3

ВВЕДЕНИЕ 4

1. Композиция классов и объектов 4

1.1 Композиция с явным объявлением объекта 5

1.2 Композиция с объявлением объекта через указатель 7

1.3 Композиция с объявлением объекта через ссылку 8

1.4 Композиция для работы с объектами 9

1.5 Отношения между классами. Диаграмма классов UML 16

2. Контрольная работа 18

2.1 Назначение, цели и задачи контрольной работы 18

2.2 Требования к контрольной работе 18

2.2.1 Требования к функциональным характеристикам 19

2.2.2 Требования к эксплуатационным характеристика 19

2.2.3 Требования к программному обеспечению 19

2.2.4 Варианты контрольной работы “Композиция классов и

объектов” 20

3. Курсовая работа 29

3.1 Назначение, цели и задачи курсовой работы 29

3.2 Требования к курсовой работе 30

3.2.1 Требования к функциональным характеристикам 30

3.2.2 Требования к эксплуатационным характеристикам 30

3.2.3 Требования к программному обеспечению 30

3.2.4 Требования к содержанию курсовой работы 30

3.3 Варианты заданий курсовой работы 31

3.4 Концепция разработки программного обеспечения 34

3.4.1 Этап развитие. Варианты использования 35

3.4.2 Этап построение. Классы 36

3.5 Трехуровневая архитектура приложения 36

3.5.1 Интерфейс пользователя приложения 37

3.5.2 Уровень логики приложения

3.5.2.1 Расчет прогнозных данных

3.5.2.2 Оценка точности прогноза

3.5.2.3 Пример расчета прогнозных данных

3.5.3 Уровень данных приложения

ЗАКЛЮЧЕНИЕ

СПИСОК ЛИТЕРАТУРНЫХ ПЕРВОИСТОЧНИКОВ

Приложение А. Пример оформления курсовой работы 40

 

ВВЕДЕНИЕ

 

Язык программирования С++ является базовым языком для изучения основ программирования. В качестве среды программирования используется Microsoft Visual C++ 2010 Professional. Глубина теоретических знаний и практических навыков овладения языком С++ проверяется контрольной и курсовой работами, зачетом и экзаменом по дисциплинам «Основы программирования» и «Языки программирования».

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

 

Композиция классов и объектов

 

Между объектами существуют связи, поддерживающие взаимодействие.

Отношение – множество однотипных связей между объектами классов. Например, класс представляет целое, а другие классы – его части. Это отношение называется агрегацией. Графическое представление отношения целое/часть приведено на рисунке 1.1. Класс CWhole – целое, класс CPart – часть.

 

 

Рисунок 1.1 – Отношение целое/часть

 

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

Для включения объекта m_part класса CPart в класс CWhole используют два способа:

1. Явно объявляется данное – CPart m_part;

2. Объявляется указатель или ссылка на тип части – Cpart* m_p; или CPart& m_r;.

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

 

 

Композиция с явным объявлением объекта

 

Главная функция выведет результат, приведенный на рисунке 1.2. Первым выполняется конструктор по умолчанию класса CStation для создания поля класса CTrain с идентификатором m_sd. Затем конструктор по умолчанию класса CTrain, создающий объектt. Функция view() выводит состояние объекта t. Выделяется блок оперативной памяти для размещения объекта типа класса CTrain. Вызывается конструктор с параметром “Москва” класса CStation. Конструктор с параметрами класса CTrain завершает формирование объекта. Создается копия объекта, последовательно вызывая конструкторы копирования классов CStation и CTrain. Деструкторы классов разрушают объект.

 

 

Рисунок 1.2 – Результат работы программы композиции с явным объявлением части

 

 

Программный код композиции с явным объявлением объекта приведен в листинге 1.

Листинг 1. Композиция с явным объявлением части

//Train.h - спецификация класса CTrain

#pragma once

#include "Station.h"

class CTrain { // описание поезда

public:

int m_num; // номер поезда

CStation m_sd; // станция отправления

CTrain(); // конструктор по умолчанию

CTrain(int, char*); // конструктор с параметром

CTrain(CTrain&); // конструктор копирования

~CTrain(); // деструктор

};

// Спецификация класса CStation

#pragma once

class CStation { // описание железноорожной станции

public:

char* m_pName; // указатель на название станции

CStation(); // Конструктор по умолчанию

CStation(char*); // Конструктор с параметром

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

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

};

// Train.cpp. реализация класса CTrain

#include "stdafx.h"

#include "Train.h"

CTrain::CTrain(): m_num(0) { }

CTrain::CTrain(int num, char* p): m_num(num), m_sd(p){ }

CTrain::CTrain(CTrain& t): m_num(t.m_num), m_sd(t.m_sd) { }

CTrain::~CTrain() { }

//Station.cpp. Реализация класса CStation

#include "stdafx.h"

#include <string.h>

#include "Station.h"

CStation::CStation():m_pName(""){ }

CStation::CStation(char* pName):m_pName(pName){ }

CStation::CStation(CStation& s):m_pName(s.m_pName){ }

CStation::~CStation(){ }

// Compozition.cpp: Композиция с явным объявлением объекта

#include "stdafx.h"

#include <iostream>

#include "Train.h"

using namespace std;

void view(CTrain*); // просмотр состояния

int _tmain(int argc, _TCHAR* argv[])

{ setlocale(LC_ALL, "russian");

CTrain t; view(&t);

CTrain *p=new CTrain(2, "Москва"); view(p);

CTrain copy(*p); view(&copy);

delete p;

system("pause");

return 0;

}

void view(CTrain* p)

{ cout<<"Номер поезда:\t"<<(p->m_num)<<'\t';

cout<<"Станция отправления:\t"<<p->m_sd.m_pName<<endl;

}

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...