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

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

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

Класс Invoice (накладная) - C++

22.11.2012, 21:05. Просмотров 950. Ответов 4
Метки нет (Все метки)

Вообщем проблема в том , что я не могу разобрать что и куда , подобного класса в полном описании найти не могу сама задача вбивает меня в ступор , если у кого будет время прошу помогите кодом с коментами.
Собственно задача


Создайте класс Invoice (накладная), который мог бы использоваться на складе хозяйственных товаров для представления накладных на товары, отпускаемые со склада. Класс должен включать шесть полей в качестве элементов данных: идентификационный номер изделия (тип целых чисел), артикул изделия (строковый тип), описание изделия (строковый тип), число отпускаемых единиц изделия (тип целых чисел), цена за одно изделие (тип целых чисел) и дату оформления. Класс должен иметь конструктор, инициализирующий шесть элементов данных. Для каждого элемента реализовать set- и get-функции. Предусмотреть функцию getInvoiceAmount(), вычисляющую общую сумму накладной (умножает цену одного изделия на число изделий) и возвращает ее как целое число. Если число изделий не положительно, оно должно устанавливаться равным 0. Разработать программу, в которой создается массив объектов данного класса. В программе организовать:
- добавление изделия на склад хозяйственных товаров;
- удаление изделия со склада хозяйственных товаров;
- поиск изделия по идентификационному номеру;

P.S. это не халява и прочее , просто действительно не могу дойти до этого
Вообщем не могу дальше и говорить нечего не понимаю и все хз что это
вот что имеем
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
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
 
class Invoice
{
public:
void setPartNumber (string number)
{
product = number;
}
string getPartNumber()
{
return product;
}
void setPartDescription (string desc)
{
description = desc;
}
string getPartDescription()
{
return description;
}
void setPartArtikul (string art)
{
Artikul = art;
}
string getPartArtikul()
{
return Artikul;
}
 
 
void setQuantityPurchased (int amount)
{
quantity = amount;
}
int getQuantityPurchased()
{
return quantity;
}
void setPriceItem (float price)
{
prices = price;
}
float getPriceItem()
{
return prices;
}
void getInvoiceAmount()
{
float total = quantity * prices;
cout << "Artikul tovara:" << getPartArtikul()<< "\nProdukt#: " << getPartNumber() << "\nopisanie: " << getPartDescription() << "\nKol-vo: " << getQuantityPurchased() << "\nCena: " << getPriceItem() << "\nego obshaya: " << total << endl;
}
private:
int quantity;
float prices;
string product;
string description;
string Artikul;
};
 
 
int main()
{
Invoice invoice1;
Invoice invoice2;
 
invoice1.setPartDescription("Plombir");
invoice1.setPartArtikul("12.210.1");
invoice1.setPartNumber("12345");
invoice1.setPriceItem(4.99);
invoice1.setQuantityPurchased(5);
 
invoice1.getInvoiceAmount();
 
invoice2.setPartDescription("Spichki");
invoice2.setPartArtikul("21.11.126");
invoice2.setPartNumber("111");
invoice2.setPriceItem(.99);
invoice2.setQuantityPurchased(75);
 
invoice2.getInvoiceAmount();
system("pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2012, 21:05     Класс Invoice (накладная)
Посмотрите здесь:

C++ Создать Класс Coins (монеты). Класс сохраняет массив из 3 монет ...
Иерархия геометрических объектов: клас точка->класс квадрат->класс прямоугольник C++
Создать класс Pair(пара чисел) и класс-наследник Fraction C++
C++ Класс таблиц баз данных и класс записей в таблице(реляционная таблица). Предусмотреть класс связей между таблицами
C++ Класс домов и класс улиц для учета поступлений квартплаты. Массив
Класс, производный класс, паблик-класс C++
C++ Создать класс “Автомагазин”, состоящей из класса ”Марки машин”. Класс “Автомагазин ”:название магазина, адрес, телефон. Класс “ Марки машин ”: марка
Реализовать класс Goods используя для представления цены класс Money C++
C++ Ошибка в выводе данных, класс выводит правильно, а класс в классе - нет
Отдельно класс данных, класс формул и главный класс C++
C++ Создать класс Элемент списка (Node), а затем класс Список (List)
C++ Абстрактный класс CGraphicsObject, его наследник - базовый класс CPoint, и класс - наследник от CPoint

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bujlka
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 18
27.11.2012, 14:45  [ТС]     Класс Invoice (накладная) #2
ну что же никто не может помочь ?!
Gibsonius
4 / 4 / 0
Регистрация: 26.09.2012
Сообщений: 27
02.07.2013, 16:45     Класс Invoice (накладная) #3
Может кому-нибудь пригодится:
Кликните здесь для просмотра всего текста
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
// заголовочный файл Invoice.h
#include <iostream>
#include <string>
 
using std:: cout;
using std:: endl;
using std:: string;
 
// создать класс invoice
class Invoice
{
    // элементы данных
private:
    string articul; // артикул изделия
    string opisanie; // описание изделения
    int izdelia; // количество выпускаемых изделий
    int cost; // стоимость изделия
    
public:
    Invoice( string, string, int, int  ); // конструктор всех элементов данных
    void setArticulName( string ); // элемент - функция инициализирует элемент данных articul
    void setOpisanieName( string );
    void setIzdelia( int );
    void setCost( int );
    string getArticulName();// элемент - функция просматривает значения элемент данных articul
    string getOpisanieName();
    int getIzdelia();
    int getCost();
    int getInvoiceAmount();// элемент - функция вычисляет общую сумму накладной и возращает её как целое число 
};
 
// файл исходного кода Invoice.cpp
#include <iostream>
#include <string>
#include "Invoice.h"
 
using std:: cout;
using std:: endl;
using std:: string;
 
Invoice::Invoice( string name, string name2, int colichestvo, int stoimost) // конструктор инициализирует элементы данных
{
    setArticulName( name ); // инициализируется вызовом set функции
    setOpisanieName( name2 );
    setIzdelia( colichestvo );
    setCost( stoimost );
}
 
// функция для установки названия артикула
void Invoice::setArticulName( string name )
{
    articul = name; // сохранить название артикула в объекте
}
 
void Invoice::setOpisanieName( string name2 )
{
    opisanie = name2;
}
 
void Invoice::setIzdelia( int colichestvo )
{
    izdelia = colichestvo;
}
 
void Invoice::setCost( int stoimost )
{
    cost = stoimost;
}
 
// функция для получения названия артикула
string Invoice::getArticulName()
{
    return articul; // возвратить артикул объекта
}
 
string Invoice::getOpisanieName()
{
    return opisanie;
}
 
int Invoice::getIzdelia()
{
    return izdelia;
}
 
int Invoice::getCost()
{
    return cost;
}
 
// элемент функция, которая вычисляет общую сумму накладной
int Invoice::getInvoiceAmount()
{
    int summ;
 
    if ( izdelia < 0 )
        izdelia = 0;
 
    summ = cost * izdelia;
 
    return summ;
}
 
 
// main.cpp
#include <iostream>
#include <string>
#include <conio.h>
#include "Invoice.h"
 
using std::cout;
using std::endl;
using std:: string;
 
int main ()
{
    setlocale ( LC_ALL, "Russian" );
 
    Invoice myInvoice( "0156 ", "Гелевая ручка ", 10, 120 );
    myInvoice.getArticulName();
    myInvoice.getOpisanieName();
    myInvoice.getIzdelia();
    myInvoice.getCost();
    myInvoice.getInvoiceAmount();
    
    cout <<"Артикул: "<< myInvoice.getArticulName() << endl;
    cout <<"Название товара: "<< myInvoice.getOpisanieName() << endl;
    cout <<"Количество (шт): "<< myInvoice.getIzdelia() << endl;
    cout <<"Стоимость (одной штуки): "<< myInvoice.getCost() << endl;
    cout << "Общая сумма = " << myInvoice.getInvoiceAmount() << endl;
 
    getch();
    return 0;
}
System16v
3 / 3 / 0
Регистрация: 19.02.2014
Сообщений: 115
04.03.2015, 13:26     Класс Invoice (накладная) #4
А может кто помочь просто объяснить.Изучаю книгу и там тоже задание только нет последних 3ех пунктов (хотя я их в коде что выше выложен тоже не наблюдаю,ну да ладно). Сам то код у меня получилось написать,он конечно не такой как выше,может кто объяснить есть ли существенная разница между моим и эти кодом,имею ввиду например в коде выше конструктор используется с параметрами,а у меня похоже по умолчанию.Как лучше писать программу? В виде как выше предоставлен код(в отличии от моего,ну и почему)?Или существенной разницы нет?Извиняюсь если вопрос глупый,я только начинающий...и еще учусь
Вот мой код:
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
//---------------------------------------------------------------------------
#include <vcl.h>
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
 
class Invoice
{
        private:
         string articule, opisanie;
         int chislo, cena;
        public:
        Invoice()
        {
        articule="-";
        opisanie="-";
        chislo=0;
        cena=0;
cout << "Vsem dannim prosvoeni nachalnie znacheniya: \narticule: " << articule <<endl;
cout << "opisanie: " << opisanie <<endl;
cout << "chislo: " << chislo <<endl;
cout << "cena: " << cena <<endl;
        }
                void setArticule()
                {
                cout << "\nVvedite articule: " <<endl;
                cin >> articule;
                }
                void setOpisanie()
                {
                cin.ignore();
                cout << "Vvedite opisanie: " <<endl;
                getline (cin,opisanie);
                }
                void setChislo()
                {
                cout << "Vvedite chislo izdelii: " <<endl;
                cin >> chislo;
                }
                void setCena()
                {
                cout << "Vvedite ceny: " <<endl;
                cin  >> cena;
                }
                void getArticule()
                {
                cout << "\nArticule= " << articule <<endl;
                }
                void getOpisanie()
                {
                cout << "Opisanie= " << opisanie <<endl;
                }
                void getChislo()
                {
                cout << "Chislo izdelii= " << chislo <<endl;
                }
                void getCena()
                {
                cout << "Cena= " << cena <<endl;
                }
                void getInvoiceAmount()
                {
                int a;
                if ((chislo)*(cena)>=0)
                {
                a=(chislo)*(cena);
                cout << "Symma deneg za izdeliya= " << a <<endl;
                }
                else if (chislo<0)
                {
                a=0;
                cout << "Symma deneg za izdeliya= " << a <<endl;
                }
                }
};
        int main()
        {
                Invoice sklad;
                sklad.setArticule();
                sklad.setOpisanie();
                sklad.setChislo();
                sklad.setCena();
                sklad.getArticule();
                sklad.getOpisanie();
                sklad.getChislo();
                sklad.getCena();
                sklad.getInvoiceAmount();
                system("pause");
                return 0;
         }
Миниатюры
Класс Invoice (накладная)  
LemonMuffin
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 12
07.12.2016, 23:03     Класс Invoice (накладная) #5
С какой целью в мэйн добавлены данные строки? Имхо они там не нужны.
C++
1
2
3
4
5
myInvoice.getArticulName();
    myInvoice.getOpisanieName();
    myInvoice.getIzdelia();
    myInvoice.getCost();
    myInvoice.getInvoiceAmount();

Данную элемент-функцию

C++
1
2
3
4
5
6
7
8
9
10
11
12
// элемент функция, которая вычисляет общую сумму накладной
int Invoice::getInvoiceAmount()
{
    int summ;
 
    if ( izdelia < 0 )
        izdelia = 0;
 
    summ = cost * izdelia;
 
    return summ;
}
предлагаю заменить на
C++
1
2
3
4
5
6
int InvoiceH::getInvoiceAmount()
    {
 
        return (izdelia*cost);
 
    }

,а проверку воткнуть всё-таки в конструктор, чтобы на выводе мы не получали отрицательных значений не только в сумме. У меня это выглядело так:

C++
1
2
3
4
5
6
7
8
9
10
InvoiceH::InvoiceH(string articul1, string about1, int kolvo1, int cena1)
{
        articul=articul1;
        about=about1;
        cena=cena1;
        if (kolvo1<0)
            kolvo=0;
        if (kolvo>=0)
            kolvo=kolvo1;
}
Yandex
Объявления
07.12.2016, 23:03     Класс Invoice (накладная)
Ответ Создать тему
Опции темы

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