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

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

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

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

22.11.2012, 21:05. Просмотров 1012. Ответов 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;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2012, 21:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Класс Invoice (накладная) (C++):

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { friend class diagonal; ...

Класс таблиц баз данных и класс записей в таблице(реляционная таблица). Предусмотреть класс связей между таблицами - C++
Здравствуйте! Никак не могу продумать структуру этой программы. Проходим наследование, но я все равно не знаю, как его здесь применить. Как...

Отдельно класс данных, класс формул и главный класс - C++
Здравствуйте! У меня есть три вопроса. Первый вопрос. Скажите пожалуйста! Правильный ли это подход к созданию приложений :...

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

Класс, производный класс, паблик-класс - C++
Задание: Создать класс колесо, которое имеет радиус. Определить конструкторы и метод доступа. Создать класс машин, содержащий класс колесо....

Создать класс “Автомагазин”, состоящей из класса ”Марки машин”. Класс “Автомагазин ”:название магазина, адрес, телефон. Класс “ Марки машин ”: марка - C++
Создать класс “Автомагазин”, состоящей из класса ”Марки машин”. Класс “Автомагазин ”:название магазина, адрес, телефон. Класс “ Марки...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
bujlka
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 18
27.11.2012, 14:45  [ТС] #2
ну что же никто не может помочь ?!
0
Gibsonius
4 / 4 / 0
Регистрация: 26.09.2012
Сообщений: 27
02.07.2013, 16:45 #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;
}
1
System16v
3 / 3 / 0
Регистрация: 19.02.2014
Сообщений: 115
04.03.2015, 13:26 #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;
         }
0
Миниатюры
Класс Invoice (накладная)  
LemonMuffin
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 12
07.12.2016, 23:03 #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;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2016, 23:03
Привет! Вот еще темы с ответами:

Абстрактный класс CGraphicsObject, его наследник - базовый класс CPoint, и класс - наследник от CPoint - C++
Всем доброй ночи! Очень нужна помощь и по мере возможности разъяснения на темы: абстрактный класс в задании(что он из себя представляет и...

Класс домов и класс улиц для учета поступлений квартплаты. Массив - C++
Задание: вырезано Файл StdAfx.h #pragma once #include &quot;targetver.h&quot; #include &lt;stdio.h&gt;

Реализовать класс Goods используя для представления цены класс Money - C++
Реализовать класс Goods (пункт 1 ), используя для представления цены класс Money с пункта 2 Реализовать метод уценки товара, уменьшая цену...

Ошибка в выводе данных, класс выводит правильно, а класс в классе - нет - C++
Неизвестная для меня проблема. Класс выводит данные правильно из Consigment, а вот третий экземпляр класса, работает не верно, если...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.12.2016, 23:03
Ответ Создать тему
Опции темы

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