Форум программистов, компьютерный форум CyberForum.ru

Как правильно сделать методы создания и удаления объектов в классах SymbString и DecString - C++

Восстановить пароль Регистрация
 
ando
0 / 0 / 0
Регистрация: 13.08.2014
Сообщений: 15
13.08.2014, 11:52     Как правильно сделать методы создания и удаления объектов в классах SymbString и DecString #1
Задача:
Написать программу, демонстрирующую работу с объектами двух типов: SymbString и DecString,
для чего создать систему соответствующих классов. Каждый объект должен иметь
идентификатор (в виде произвольной строки символов) и одно или несколько полей
для хранения состояния объекта (один класс является потомком другого).
Клиенту (функции main) должны быть доступны следующие основные операции
(методы): создать объект, удалить объект, показать значение объекта и прочие
дополнительные операции (зависят от варианта). Операции по созданию и удалению
объектов инкапсулировать в классе Factory., Предусмотреть меню, позволяющее
продемонстрировать заданные операции.
При необходимости в разрабатываемые классы добавляются дополнительные
методы (например, конструктор копирования, операция присваивания и т. п.)
для обеспечения надлежащего функционирования этих классов.
Где:
SymbString - Символьная строка (произвольная строка символов)
DecString - Десятичная строка (изображение десятичного числа)
Только для DecString:
ShowBin() - Показать изображение двоичного значения объекта
ShowOct() - Показать изображение восьмеричного значения объекта
ShowHex() - Показать изображение шестнадцатеричного значения объекта
Как правильно сделать методы создания и удаления объектов в этом коде?

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
#include "stdafx.h"
#include <iostream>
#include <string>
 
using namespace std;
 
class Factory
{
    protected:
        string value;
 
    public: 
        Factory() {value = "";}
        long ShowBin();
        long ShowOct();
        string ShowHex();
    private:
        Factory(string a) { value = a; }
};
 
class SymbString : public Factory
{
    public:
        SymbString() { value = ""; }
        SymbString(string sym) { value = sym; };
};
 
class DecString : public Factory
{
    public:
        DecString() { value = ""; }
        DecString(string dec) { value = dec; };
};
 
long Factory::ShowBin() {
    char mem[30];
    itoa(atoi(value.c_str()), mem, 2);
    return atoi(mem);
}
 
long Factory::ShowOct() {
    char mem[30];
 
    itoa(atoi(value.c_str()), mem, 8);
    return atoi(mem);
}
string Factory::ShowHex() {
    char mem[30];
    itoa(atoi(value.c_str()), mem, 16);
    return (const char*) strupr(mem);
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
// подготовка
 
    SymbString symb;
    DecString decs;
    string sym, dec;
 
// меню
    int exit = 0;
    do {
    int q = 0;
    cout << endl << endl << "Выберите действие: "
         << endl << "1. Создать объект типа SymbString"
         << endl << "2. Создать объект типа DecString"
         << endl << "3. Удалить объект типа SymbString"
         << endl << "4. Удалить объект типа DecString"
         << endl << "5. ShowBin для DecString"
         << endl << "6. ShowOct для DecString"
         << endl << "7. ShowHex для DecString"
         << endl << "8. Выход" 
         << endl << "-> ";
    cin >> q;
 
 
    switch(q) {
    case 1: 
        cout << endl << endl << "Введите значение: ";
        cin >> sym;
        symb = SymbString(sym);
        cout << "Объект создан.";
            break;
    case 2: 
        cout << endl << endl << "Введите значение: ";
        cin >> dec;
        decs = DecString(dec);
        cout << "Объект создан.";
            break;
    case 3: 
        cout << endl << endl;
 
        cout << "Объект удален.";
            break;
    case 4: 
        cout << endl << endl;
 
        cout << "Объект удален.";
            break;
    case 5: 
        cout << endl << endl
            << "Двоичное представление:" << endl << "\t" << decs.ShowBin();
            break;
    case 6: 
        cout << endl << endl 
            << "Восьмиричное представление: " << endl << "\t" << decs.ShowOct();
            break;
    case 7: 
        cout << endl << endl  
            << "Шеснадцатиричное представление: " << endl << "\t" << decs.ShowHex();
            break;
    
    case 8: exit = 1; break;
    }
        } while (exit == 0);
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2014, 11:52     Как правильно сделать методы создания и удаления объектов в классах SymbString и DecString
Посмотрите здесь:

C++ Как описывать методы в классах?
объекты двух типов SymbString и DecString C++
C++ Как правильно массиву объектов присвоить ссылки на объекты.
передача объектов в функции и методы C++
Определить методы-итераторы в неабстрактных классах C++
C++ Как правильно объявить массив объектов
C++ Методы добавления, удаления объекта
Крестики-нолики (в классах) - Правильно ли структурно написана программа C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 09:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru