Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Scorpiom
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 12
#1

Дописать класс "Коллекция" - C++

04.06.2013, 16:49. Просмотров 347. Ответов 0
Метки нет (Все метки)

Помогите дописать класс коллекция, который должен иметь методы для изменения количества объектов: добавление в конец,вставка, усечение, удаление из середины. При обращении к элементам с несуществующем индексом или при некорректном изменении количества должно выбрасывать исключение(необязательно)
Вот код к котрому нужен класс
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include "stdafx.h"
#include <iostream>
using namespace std;
class Figura
{
public:
    virtual void Print() = 0;
    virtual void Read() = 0;
    virtual double Perimetr () = 0;
    virtual double Surface () = 0;
};
class Romb : public Figura
{
protected:
    double a,h;
public:
    Romb(double _a = 0, double _h = 0){a = _a;h = _h;} //Конструктор
    Romb(const Romb &ob){ a = ob.a;h = ob.h;}          //Конструктор копирования
   void Read()
{
    cout << "Введите значение стороны ромба: "; 
    cin >> a;
    cout << "Введите значение высоты ромба: ";
    cin >> h;
}
double Perimetr ()
{
    return abs(a*4);
}
double Surface ()
{return  abs(a*h);}
void Print()
{
    if ((a == 0)||(h==0)){
        printf("Такого ромба не существует\n");
        return;
    }
    cout << "Ромб \n";
    cout << "Периметр = " << Perimetr() <<"\n";
    cout << "Площадь = " << Surface();
}
};
class Parallelepiped : public Figura
{
protected:
    double a,b,c;
public:
    Parallelepiped(double _a = 0, double _b = 0, double _c = 0){ a = _a;b = _b; c = _c;}
    Parallelepiped(const Parallelepiped &ob){ a = ob.a;b = ob.b;c = ob.c;}
    void Read()
{
    cout << "Введите значение первой стороны параллелепипеда :";
    cin >> a;
    cout << "Введите значение второй стороны параллелепипеда :";
    cin >> b;
    cout << "Введите значение третьей стороны параллелепипеда :";
    cin >> c;
}
double Perimetr ()
{
    return abs(4*a)+abs(4*b)+abs(4*c);
}
double Surface ()
{
    return 2*(abs(a*b)+abs(b*c)+abs(a*c));
}
void Print()
{
    cout << "Параллелепипед \n";
    cout << "Периметр = " << Perimetr() << "\n";;
    cout << "Площадь = " << Surface();
}
};
class Ellips : public Figura
{
protected:
    double a, b;
public:
    Ellips(double _a= 0, double _b = 0){ a = _a; b = _b;}
    Ellips(const Ellips &ob){ a = ob.a; b = ob.b;}
    void Read()
{
    cout << "Введите значение большей полуоси эллипса :";
    cin >> a;
    cout << "\nВведите значение малой полуоси эллипса :";
    cin >> b;
}
double Surface ()
{
    return abs(3.14*a*b);
}
double Perimetr ()
{
    return 4*((abs(3.14*a*b)+(a*a-abs(2*a*b)+b*b))/(abs(a)+abs(b)));
}
void Print()
{
    cout << "Эллипс \n";
    cout << "Периметр = " << Perimetr();
    cout << "\nПлощадь = " << Surface();
}
};
void vopros()
{
cout << "\n1 - Ромб\n2 - Параллелепипед\n3 - Эллипс\n0 - Выход\n";
 
    Figura* u = NULL;
    int c = 0;
    do 
    {
        scanf_s("%d", &c); 
        switch(c)
        {
        case 1: u = new Romb;
            break;
        case 2: u = new Parallelepiped; 
            break;
        case 3: u = new Ellips;
            break;
        case 0: return;
        }
        if(u!=NULL)
        {
            u->Read();
            u->Print();
            delete u;
            u=NULL;
        }
cout << "\n1 - Ромб\n2 - Параллелепипед\n3 - Эллипс\n0 - Выход\n";
    }
    while(c!=0);
 
    return;
}
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Rus");
    printf("Написать программу, в котрой написана иерархия классов:геометрические фигуры(Ромб, параллелепипел, эллипс). Реализовать методы вычисления периметра и площади фигуры. Продемонстрировать работу всех методов класса, пердоставив\nпользователю выбор типа фигуры для демонстрации.\n");
    vopros();
    return 0;
}
Добавлено через 20 часов 6 минут
Хотя бы помогите написать класс кторый взаимодействует с другими классами, добавляет, удаляет элементы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2013, 16:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дописать класс "Коллекция" (C++):

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс &quot;вентилятор&quot; содержащий в себе классы:...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Реализовать класс родительский класс "Пара чисел" и класс-наследник "Комплексное число" - C++
Ткма работы создать класс pair (пара чисел); определить метод перемножения полей и операцию сложения пар (a,b)+(c,d) =(a+b,c+d)...

Создать класс комплексных чисел и ввести операции: "+", "-", "*", "/". - C++
пожалуйста-помогите написатьпрограмму!!! сижу на экзамене!!! вот само задание: создать класс комплексных чисел и ввести операции: &quot;+&quot;,...

Наследуемым классом для комплексного числа объявить класс "радиус-вектор", имеющий данные "длина" и "угол" - C++
кто то напишите пожалуйста, вот программа: наследуемым классом для комплексного числа объявить класс &quot;радиус-вектор&quot;, имеющий данные...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2013, 16:49
Привет! Вот еще темы с ответами:

Класс "Графический объект", от которого будут наследоваться классы "круг" и "квадрат" - C++
Реализовать класс Графический объект от которого будут наследоваться классы &quot;круг&quot; и &quot;квадрат&quot;. Собственно, сам код, который был написан...

Создать иерархию классов: родительский класс "Транспорт", класс-потомок "Техосмотр транспорта" - C++
Помогите пожалуйста написать программу Родительский класс &quot;Транспорт&quot;. Поля класса: тип транспорта, гос.номер, марка, Ф.И.О владельца,...

Базовый класс "Источник напряжения", производные классы "Цепь" и "Аккумулятор" - C++
Дали задачу по программированию: составить класс &quot;Источник напряжения&quot;, для которого нужно реализовать два производных класса: &quot;Цепь&quot; и...

Создать класс "Шар", заданный радиусом, и определить производный класс "Окружность" - C++
Создать класс шар, заданный радиусом. Определить производный класс окружности. Предусмотреть виртуальную функцию для вычисления площади...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru