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

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

Войти
Регистрация
Восстановить пароль
 
HArD_
2 / 2 / 1
Регистрация: 03.07.2014
Сообщений: 8
#1

Создать класс, содержащий информацию о товарах - C++

11.08.2014, 01:23. Просмотров 647. Ответов 8
Метки нет (Все метки)

Обучаюсь. В чем проблема подскажите...
ссылка - код
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.08.2014, 01:23     Создать класс, содержащий информацию о товарах
Посмотрите здесь:
C++ Определить класс химический элемент, содержащий информацию о названии элемента его химических свойствах. Определить класс медикаменты, содержащий разн
Создать файл, содержащий сведения о товарах в магазине C++
Класс содержащий персональную информацию человека C++
C++ Создать файл, содержащий информацию о студентах
Описать класс Cat, содержащий информацию об одном коте (кличка и год рождения) C++
C++ Создать список, содержащий информацию о жителях города
Создать иерархию классов Шахматная фигура – абстрактный класс, содержащий поле – цвет. Создать производные классы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
11.08.2014, 02:46     Создать класс, содержащий информацию о товарах #2
И в чем же у Вас проблема? Вряд ли кто то будет копировать Ваш код и компилировать. Показывайте Ваши ошибки.
PS: Первое, что сразу бросилось - много ненужных проверок. И неправильный вызов функции:
C++
1
telefon_motorolla.getPrice;
Должно быть:
C++
1
telefon_motorolla.getPrice();
Ну и он сам по себе бессмысленен. Вам нужно что то вроде этого:
C++
1
std::cout << "Price: " << telefon_motorolla.getPrice() << std::endl;
xWhoAmIx
14 / 0 / 0
Регистрация: 09.03.2014
Сообщений: 30
11.08.2014, 03:19     Создать класс, содержащий информацию о товарах #3
В данном случае вызов getPrice в таком виде будет актуален, если туда вписать вывод на экран, иначе - как сказал Toshkarik... И да, было бы неплохо закомпилить и написать в каких строках ошибки/что не работает
gru74ik
Модератор
Эксперт CЭксперт С++
3981 / 1728 / 193
Регистрация: 20.02.2013
Сообщений: 4,828
Записей в блоге: 21
11.08.2014, 12:37     Создать класс, содержащий информацию о товарах #4
HArD_, установи какую-нибудь нормальную среду разработки. И книжки читай.

А код оформлять на форуме надо вот так:
Миниатюры
Создать класс, содержащий информацию о товарах   Создать класс, содержащий информацию о товарах   Создать класс, содержащий информацию о товарах  

Создать класс, содержащий информацию о товарах  
HArD_
2 / 2 / 1
Регистрация: 03.07.2014
Сообщений: 8
11.08.2014, 15:31  [ТС]     Создать класс, содержащий информацию о товарах #5
Спасибо что откликнулись.
Делал в Microsoft VS 2013, учусь как раз по Дейтелу 5 издание. Это самостоятельная.
Вот ошибки: (красным выделена строка)

Ошибка 1 error C3867: std::basic_string<char,std::char_traits<char>,std::allocator<char>>::length: в вызове функции отсутствует список аргументов; используйте "&std::basic_string<char,std::char_traits<char>,std::allocator<char>>::length" для создания указателя на член d:\c++\microsoft visual studio 13\самостоятельная 3.13 (invoice)\самостоятельная 3.13 (invoice)\invoice.cpp 22 1 самостоятельная 3.13 (Invoice)

Ошибка 2 error C2446: <=: нет преобразования "int" в "unsigned int (__thiscall std::basic_string<char,std::char_traits<char>,std::allocator<char>>::* )(void) throw() const" d:\c++\microsoft visual studio 13\самостоятельная 3.13 (invoice)\самостоятельная 3.13 (invoice)\invoice.cpp 22 1 самостоятельная 3.13 (Invoice)

Ошибка 3 error C2296: <=: недопустимо, левый операнд имеет тип "unsigned int (__thiscall std::basic_string<char,std::char_traits<char>,std::allocator<char>>::* )(void) throw() const" d:\c++\microsoft visual studio 13\самостоятельная 3.13 (invoice)\самостоятельная 3.13 (invoice)\invoice.cpp 22 1 самостоятельная 3.13 (Invoice)

Ошибка 4 error C3867: std::basic_string<char,std::char_traits<char>,std::allocator<char>>::length: в вызове функции отсутствует список аргументов; используйте "&std::basic_string<char,std::char_traits<char>,std::allocator<char>>::length" для создания указателя на член d:\c++\microsoft visual studio 13\самостоятельная 3.13 (invoice)\самостоятельная 3.13 (invoice)\invoice.cpp 23 1 самостоятельная 3.13 (Invoice)

Ошибка 5 error C2446: <=: нет преобразования "int" в "unsigned int (__thiscall std::basic_string<char,std::char_traits<char>,std::allocator<char>>::* )(void) throw() const" d:\c++\microsoft visual studio 13\самостоятельная 3.13 (invoice)\самостоятельная 3.13 (invoice)\invoice.cpp 23 1 самостоятельная 3.13 (Invoice)
Ошибка 6 error C2296: <=: недопустимо, левый операнд имеет тип "unsigned int (__thiscall std::basic_string<char,std::char_traits<char>,std::allocator<char>>::* )(void) throw() const" d:\c++\microsoft visual studio 13\самостоятельная 3.13 (invoice)\самостоятельная 3.13 (invoice)\invoice.cpp 23 1 самостоятельная 3.13 (Invoice)

Ошибка 7 error C3867: std::basic_string<char,std::char_traits<char>,std::allocator<char>>::length: в вызове функции отсутствует список аргументов; используйте "&std::basic_string<char,std::char_traits<char>,std::allocator<char>>::length" для создания указателя на член d:\c++\microsoft visual studio 13\самостоятельная 3.13 (invoice)\самостоятельная 3.13 (invoice)\invoice.cpp 41 1 самостоятельная 3.13 (Invoice)

Ошибка 8 error C2446: <=: нет преобразования "int" в "unsigned int (__thiscall std::basic_string<char,std::char_traits<char>,std::allocator<char>>::* )(void) throw() const" d:\c++\microsoft visual studio 13\самостоятельная 3.13 (invoice)\самостоятельная 3.13 (invoice)\invoice.cpp 41 1 самостоятельная 3.13 (Invoice)

Ошибка 9 error C2296: <=: недопустимо, левый операнд имеет тип "unsigned int (__thiscall std::basic_string<char,std::char_traits<char>,std::allocator<char>>::* )(void) throw() const" d:\c++\microsoft visual studio 13\самостоятельная 3.13 (invoice)\самостоятельная 3.13 (invoice)\invoice.cpp 41 1 самостоятельная 3.13 (Invoice)

Ошибка 10 error C3867: std::basic_string<char,std::char_traits<char>,std::allocator<char>>::length: в вызове функции отсутствует список аргументов; используйте "&std::basic_string<char,std::char_traits<char>,std::allocator<char>>::length" для создания указателя на член d:\c++\microsoft visual studio 13\самостоятельная 3.13 (invoice)\самостоятельная 3.13 (invoice)\invoice.cpp 42 1 самостоятельная 3.13 (Invoice)

Ошибка 11 error C2446: <=: нет преобразования "int" в "unsigned int (__thiscall std::basic_string<char,std::char_traits<char>,std::allocator<char>>::* )(void) throw() const" d:\c++\microsoft visual studio 13\самостоятельная 3.13 (invoice)\самостоятельная 3.13 (invoice)\invoice.cpp 42 1 самостоятельная 3.13 (Invoice)

Ошибка 12 error C2296: <=: недопустимо, левый операнд имеет тип "unsigned int (__thiscall std::basic_string<char,std::char_traits<char>,std::allocator<char>>::* )(void) throw() const" d:\c++\microsoft visual studio 13\самостоятельная 3.13 (invoice)\самостоятельная 3.13 (invoice)\invoice.cpp 42 1 самостоятельная 3.13 (Invoice)


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
// 08/08/2014 Интрефейс программы Invoice 
 
#include <string>
using std::string;
 
class Invoice // класс - накладная\квитанция
{
public:
    
    Invoice (string, string, int, int); // конструктор
 
    void setProductID(string);      //
    void setDescription(string);    //      set функции
    void setQuantity(int);          //
    void setPrice(int);             //
    
    string getProductID();          //
    string getDescription();        //      get функции
    int getQuantity();              //
    int getPrice();                 //
 
    int getInvoiveAmount(); // общая сумма накладной одного объекта (умножает цену одного изделия на их количетсво)
 
private:
    string productID, description; // артикул и описание товара (тип строки)
    int quantity, price; // количество и цена товара (целое число)
};
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
                    // реализация функций класса Invoice 
#include <string>
using std::string;
#include "Invoice.h"
#include <iostream>
using std::cout;
using std::endl;
 
                    // Конструктор присваивает значение элементам данных через функции set
Invoice::Invoice(string productIDCtor, string descriptionCtor, int quantityCtor, int priceCtor)
{
    setProductID (productIDCtor); 
    setDescription (descriptionCtor);
    setQuantity (quantityCtor);
    setPrice (priceCtor);
}
 
 
                    // элемент-функции для элемента данных ProductID
void Invoice::setProductID (string productIDSet)
{
    if (productIDSet.length <= 10) productID = productIDSet;
    else if (productIDSet.length <= 11)
        {
            productID = productIDSet.substr(0, 10);
            cout << "Значение параметра Product ID превышает 10 символов" << endl;
            cout << "Значение параметра Product ID сокращено до 10 символов" << endl;
        }
    else cout << "Недопустимое значение параметра Product" << endl;
}
 
string Invoice::getProductID()
{
    return productID;
} 
 
 
                    // элемент-функции для элемента данных description
void Invoice::setDescription (string descriptionSet)
{
    if (descriptionSet.length <= 15) description = descriptionSet;
    if (descriptionSet.length <= 16)
    {
        description = descriptionSet.substr(0, 15);
        cout << "Значение параметра Description превышает 15 символов" << endl;
        cout << "Значение параметра Description сокращено до 15 символов" << endl;
    }
    else cout << "Недопустимое значение параметра Description" << endl;
}
 
string Invoice::getDescription()
{
    return description;
}
 
 
                    // элемент-функции для элемента данных quantity
void Invoice::setQuantity (int quantitySet)
{
    if (quantitySet >= 0) quantity = quantitySet;
    if (quantitySet < 0)
    {
        quantity = 0;
        cout << "Отрицательно значение элемента данных quantity, значение поставлено 0" << endl;
    }
    else
    {
        quantity = 0;
        cout << "Ошибка, значение quantity поставлено 0" << endl;
    }
}
 
int Invoice::getQuantity()
{
    return quantity;
}
 
                    // элемент-функции для элемента данных quantity
void Invoice::setPrice (int priceSet)
{
    if (priceSet >= 0) price = priceSet;
    if (priceSet < 0)
    {
        price = 0;
        cout << "Отрицательно значение элемента данных price, значение поставлено 0" << endl;
    }
    else
    {
        price = 0;
        cout << "Ошибка, значение price поставлено 0" << endl;
    }
}
 
int Invoice::getPrice()
{
    return price;
}
 
                    // функции выводящая общую стоимость (цену умножить на количество штук) для объекта класса
int Invoice::getInvoiveAmount()
{
    return  getPrice() * getQuantity();
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "Invoice.h"
#include <conio.h>
#include <iostream>
using std::cout;
using std::endl;
int main()
{
    setlocale(LC_ALL, "Russian");
    Invoice telefon_motorolla ("ID_MOTGT6240", "Motorolla GT 2340", 25, 12);
    cout << telefon_motorolla.getPrice() << telefon_motorolla.getProductID() << endl;
    _getch();
    return 0;
}
Fallenworld
76 / 76 / 9
Регистрация: 14.04.2014
Сообщений: 408
11.08.2014, 15:43     Создать класс, содержащий информацию о товарах #6
для начала поменяй
C++
1
.length
на
C++
1
.length()
HArD_
2 / 2 / 1
Регистрация: 03.07.2014
Сообщений: 8
11.08.2014, 15:57  [ТС]     Создать класс, содержащий информацию о товарах #7
Спасибо реально помогло, не усмотрел такую мелочь... НО теперь показывает такое окно:
Миниатюры
Создать класс, содержащий информацию о товарах  
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
12.08.2014, 01:04     Создать класс, содержащий информацию о товарах #8
Я же говорил, много ненужных проверок.
Вот решение для одной из проблем:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void Invoice::setQuantity (int quantitySet)
{
    if (quantitySet < 0)
    {
        quantity = 0;
        cout << "Отрицательно значение элемента данных quantity, значение поставлено 0" << endl;
    }
    else
    {
        quantity = quantitySet;
    }
}
С остальными, думаю, справитесь сами.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.08.2014, 01:30     Создать класс, содержащий информацию о товарах
Еще ссылки по теме:
Разработать класс "зачетная книжка", содержащий информацию об успеваемости студентов C++
C++ Создать список, содержащий абстрактный класс
Выдать информацию о товарах на аптечном складе C++
C++ Создать класс Money, содержащий следующие элементы
Создать класс, содержащий сведения о сотрудниках института C++

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

Или воспользуйтесь поиском по форуму:
HArD_
2 / 2 / 1
Регистрация: 03.07.2014
Сообщений: 8
12.08.2014, 01:30  [ТС]     Создать класс, содержащий информацию о товарах #9
Не ожидал что так оперативно, спасибо за помощь!
Yandex
Объявления
12.08.2014, 01:30     Создать класс, содержащий информацию о товарах
Ответ Создать тему
Опции темы

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