-
Notifications
You must be signed in to change notification settings - Fork 0
/
nyting.cpp
154 lines (132 loc) · 3.5 KB
/
nyting.cpp
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
/**
* Fil for innmaten av public funksjoner av classen NyTing
*
* @file nyting.cpp
* @author Mathilde, Oliver og Ulrik, NTNU
*/
#include "nyting.h"
#include "const.h"
#include "kunder.h"
#include "kunde.h"
#include "LesData3.h"
#include <iostream>
#include <fstream>
using namespace std;
extern Kunder gKundebase;
/**
* Constructor for klassen NyTing uten parameter som brukes ved opprettelse av ting
* når data leses fra fil.
*
* @param inn - Filstrømmen data leses fra
*/
NyTing::NyTing(ifstream & inn){
int tingNr, selgerensNr, antallAvTingen, prisen;
string navnet, beskrivelsen;
inn >> tingNr; inn.ignore(1);
inn >> selgerensNr; inn.ignore(1);
inn >> antallAvTingen; inn.ignore(1);
inn >> prisen; inn.ignore();
getline(inn, navnet);
getline(inn, beskrivelsen);
navn = navnet;
beskrivelse = beskrivelsen;
nr = tingNr;
selgerNr = selgerensNr;
pris = prisen;
antallTilSalgs = antallAvTingen;
}
/**
* Skriver data for NyTing til fil
*
* @param ut - Filstrømmen som data skrives til
*/
void NyTing::skrivTilFil(ofstream & ut){
ut << nr << " " << selgerNr << " " << antallTilSalgs << " " << pris << "\n"
<< navn << "\n"
<< beskrivelse << "\n";
}
/**
* Constructor for opprettelse av et objekt av klassen NyTing
*
* @param tingNr - Tingens unike nummer
* @param selgerensNr - Selgerens unike kundenummer
*/
NyTing::NyTing(int tingNr, int selgerensNr){
nr = tingNr;
selgerNr = selgerensNr;
};
/**
* Leser data for objektet av klassen NyTing etter opprettelsen
*/
void NyTing::lesData(){
cout << "\nNavn p\x8F gjenstand: "; getline(cin, navn);
cout << "\nBeskrivelse av gjenstand: "; getline(cin, beskrivelse);
pris = lesInt("\nPris p\x8F gjenstand", MINPRIS, MAKSPRIS);
antallTilSalgs = lesInt("\nAntall til salgs", 1, MAKSANTALL);
}
/**
* Skriver data om et objekt av klassen NyTing
*/
void NyTing::skrivData() const{
cout << "Produkt nummer: " << nr << endl
<< "\tNavn: " << navn << endl
<< "\tPris: " << pris << endl
<< "\tAntall til salgs: " << antallTilSalgs << endl
<< "\tBeskrivelse: " << beskrivelse << endl;
};
/**
* Skriver at tingen er ny
*/
void NyTing::skrivTilstand() const {
cout << "NY ";
}
/**
* Skriver tallet 1 til fil fordi gjenstanden er ny
*
* @return int - Tallet som representerer at tingen er ny
*/
int NyTing::skrivNyEllerBrukt() const {
return 1;
}
/**
* Henter det unike nummeret til tingen
*
* @return int - Det unike nummeret til gjenstanden
*/
int NyTing::hentNr(){
return nr;
}
/**
* Henter selgerens unike kundenummer
*
* @return int - Selgerens unike kundenummer
*/
int NyTing::hentSelgerNr(){
return selgerNr;
}
/**
* Henter antall til salgs av tingen
*
* @return int - antall av tingen som er til salgs
*/
int NyTing::hentAntallAvTing(){
return antallTilSalgs;
}
/**
* hendelser:
* - Kjøperens antallTingKjopt økes med én
* - Selgerens antallTingSolgt økes med én
*
* - Antall av tingen minker med én (evt slettes helt hvis det er 0 igjen)
* - Dersom tingen slettes helt, så minker antallTingTilSalgs for selgeren også
*
* Registrerer salget for kunde og selger
*
* @param kjoperensNummer - Kjøperens unike kundenummer
* @param selgerensNummer - Selgerens unike kundenummer
* @see Kunder::salg(...)
*/
void NyTing::salg(int kjoperensNummer, int selgerensNummer){
gKundebase.salg(kjoperensNummer, selgerensNummer, antallTilSalgs-1);
antallTilSalgs--;
}