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

Занесение в отображение пользовательских обьектов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ прошу знатаков найти ошибку http://www.cyberforum.ru/cpp-beginners/thread975352.html
вот текст задания для понимания что я понаписал ЛАБОРАТОРНАЯ РАБОТА № 2 РЕАЛИЗАЦИЯ РЕГУЛЯРНЫХ ЦИКЛОВ СРЕДСТВАМИ ЯЗЫКА С++ Цель работы: Составление алгоритмов и написание многомодульных...
C++ Сказали некрасиво пишу изучаю с++ почти 2 месяц , пишу програму она работает но препод говорит что иногда не красиво пишу ((( пишу так class Time { private: int hour; int minute; int second; int tmp_sec; int... http://www.cyberforum.ru/cpp-beginners/thread975323.html
Таблицы прямого доступа в С++ C++
Здравствуйте ! Нужно разобраться с таблицами прямого доступа . После прочтения теории я понял немногое: например , вот мы создаём массив и 5-ти значенийint A={5,12,3,724,9} дальше нужно создать...
Продолжить програму C++
В среде С++ реализовать консольное приложение использующее заданный фрагмент кода. Описания переменных добавить самостоятельно. cin>>a; cin>>b; cin>>c; if (a > b) d = a; else d = b; if (c...
C++ В чем ошибка? http://www.cyberforum.ru/cpp-beginners/thread975299.html
Никак не найду ошибку error C2061: syntax error : identifier 'cout' #include "stdafx.h" #include <iostream> #include"conio.h" #include <math.h> #include <iomanip> using namespace std;
C++ Задача "Три Буквы" На доске в одну строку написано решение примера на сложение двух целых чисел. Cлева от знака равенства «=» записаны два целых числа, разделенных символом «+», справа записано целое число являющееся... подробнее

Показать сообщение отдельно
o33ik
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228

Занесение в отображение пользовательских обьектов - C++

12.10.2013, 12:11. Просмотров 293. Ответов 6
Метки (Все метки)

Пробую занести в отображение пользовательские обьекты. потом ввожу нужное имя, и мне должно вывести нужный обьект. В книжке Лафоре нашел только реализацию отображения для стандартных типов. Попробовал переделать для своего класса, но работает не правильно. в конце выводит насколько я понял какието адрессы.

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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
//#pragma warning (disable:4786)
#include <iostream>
#include <map>
#include <string>
#include <vector>
#include <algorithm>
 
using namespace std;
 
const int current_уear = 2013;
const int arr_size = 3;
class Date
{
    int dd;
    int mm;
    int yy;
public:
    Date::Date()
    {
        dd = 0;
        mm = 0;
        yy = 0;
    }
    Date::Date(int _dd, int _mm, int _yy)
    {
        dd = _dd;
        mm = _mm;
        yy = _mm;
    }
    void setDate()
    {
        int _dd, _mm, _yy;
        bool B=true;
        while(B)
        {
            cout << "\nEnter new date: ";
            cin >> _dd  >> _mm >> _yy;
            if(_dd > 31 || _mm > 12 || _yy < current_уear-5 || _yy > current_уear+1)
            {
                cout <<  "\nInvalid date. Try again.";
                system("pause");
                system("cls");
                continue;
            }
            if(_mm == 4 || _mm == 6 || _mm == 9 || _mm == 11 && _dd>30)
            {
                cout << "\nInvalid date. Entered month haven`t more 30 days.";
                system("pause");
                system("cls");
                continue;
            }
            if(_mm == 2 && _dd>29)
            {
                cout << "\nInvalid date. Entered month haven`t more 29  days.";
                system("pause");
                system("cls");
                continue;
            }
            else 
            {
                dd = _dd; mm = _mm; yy = _yy;
                B = false;
            }
        }
    }
    void show_date()
    {
        cout << "Date: " << dd << '.' << mm << '.' << yy;
    }
};
 
class Good
{
    string name;
    Date date;
    double price;
    int count;
    int number;
public:
    Good::Good()
    {
    }
    void input()
    {
        cout << "\nEnter name: ";
        cin.sync();
        getline (cin, name);
        system("cls");
        date.setDate();
        system("cls");
        cout << "\nEnter price: ";
        cin >> price;
        system("cls");
        cout << "\nEnter count: ";
        cin >> count;
        system("cls");
        cout << "\nEnter number: ";
        cin >> number;
        system("cls");
    }
    void output()
    {
        cout << "\nName: " << name << endl;
        date.show_date();
        cout << "\nPrice: " << price;
        cout << "\nCount: " << count;
        cout << "\nCost: " << calculate_cost();
        cout << "\nNumber: " << number;
        system("pause");
        system("cls");  
    }
    void set_price()
    {
        cout << "\nEnter new price: ";
        cin >> price;
        system("cls");
    }
    void change_count()
    {
        cout <<"\nAdd or subtract?";
        string choise;
        bool B = true;
        while(B)
        {
            cin >> choise;
            if(choise != "add" || choise != "subtract")
                cout << "\nInvalid choise. Try again(add of subtract).";
            else B = false;
            system("cls");
        }
        cout << "\nEnter value:";
        int value;
        cin >> value;
        if (choise == "add")
            count =+value;
        if (choise == "subtract")
            count=-value;
        cout << "\nNew count: " << count;
        system("cls");
    }
    double calculate_cost()
    {
        return count*price;
    }
    void toString()
    {
        cout << "\nCost = " << calculate_cost();
 
    }
    string returnName()
    {
        return name;
    }
};
 
void main()
{
    Good arr[arr_size];
    for (int i=0;i<arr_size; i++)
    {
        arr[i].input();
    }
    string name; 
    Good obj;
    map<string, Good, less<string> > MapGoods;
    for(int j = 0; j < arr_size; j++)       
    {       
        name = arr[j].returnName();    
        obj = arr[j];       
        MapGoods[name] = obj;   
    }
    cout << "\nFind. Enter name: ";
    cin >> name;
    obj = MapGoods[name];
    obj.output();
    system("pause");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru