-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStation.cpp
More file actions
88 lines (68 loc) · 1.83 KB
/
Copy pathStation.cpp
File metadata and controls
88 lines (68 loc) · 1.83 KB
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
#include <iostream>
#include <iomanip>
#include <string>
#include "Utilities.h"
#include "Station.h"
using namespace std;
namespace sdds
{
size_t Station::m_widthField = 0u;
size_t Station::m_id_generator = 0u;
Station::Station(const std::string& line)
{
Utilities temp_utility{};
size_t pos = 0u;
bool more = false;
m_id_generator++;
m_Station_id = m_id_generator;
m_item_name = temp_utility.extractToken(line, pos, more);
m_item_Serialnum = std::stoul(temp_utility.extractToken(line, pos, more));
m_item_Instock = std::stoul(temp_utility.extractToken(line, pos, more));
if (Station::m_widthField < temp_utility.getFieldWidth())
{
m_widthField = temp_utility.getFieldWidth();
}
m_Station_desc = temp_utility.extractToken(line, pos, more);
}
const std::string& Station::getItemName() const
{
return m_item_name;
}
size_t Station::getNextSerialNumber()
{
return m_item_Serialnum++;
}
size_t Station::getQuantity() const
{
return m_item_Instock;
}
void Station::updateQuantity()
{
if (m_item_Instock > 0)
--m_item_Instock;
}
void Station::display(std::ostream& out, bool full) const
{
int width = 6;
int width2 = 3;
//[ID] Item NAME[SERIAL] Quantity: QTY Description : DESCRIPTION
//
//[ID]
out << "[" << setfill('0') << setw(width2) << right << m_Station_id << "] ";
//Item NAME
out << "Item: " << setfill(' ') << setw(m_widthField) << left << m_item_name;
//[SERIAL]
out << " [" << setfill('0') << setw(width) << right << m_item_Serialnum << "]";
if (full)
{
//Quantity: QTY
out << " Quantity: " << setfill(' ') << left << setw(m_widthField) << m_item_Instock;
//Description
out << " Description: " << m_Station_desc << endl;
}
else
{
out << endl;
}
}
}