-
Notifications
You must be signed in to change notification settings - Fork 0
/
vip.cpp
54 lines (49 loc) · 1.65 KB
/
vip.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
#include <iostream>
#include <fstream>
#include "vip.h"
ClienteVip::ClienteVip(int id, std::string nome, std::string endereco, double saldoDevedor){
_id = id;
_nome = nome;
_endereco = endereco;
_saldoDevedor = saldoDevedor;
_numeroDias = 2;
_valorPago = 1;
}
int ClienteVip::get_numeroDias(){
return _numeroDias * 2;
}
double ClienteVip::get_valorPago(){
return 0.5 * _valorPago * _numeroDias;
}
void ClienteVip::renovarEmprestimo(int idLivroEmp){
bool existe = false;
int id;
int idCliente;
int idLivro;
int idFuncionario;
int numeroDias;
double valorPago;
std::ifstream arquivo("emprestimo.txt");
if(!arquivo.is_open()){
std::cout<<"Falha ao abrir o arquivo!";
return;
}
std::ofstream temp("temp.txt");
while(arquivo>> id >> idCliente >> idLivro >> idFuncionario >> numeroDias >> valorPago){
if(idLivroEmp==idLivro && this->get_id()==idCliente){
existe = true;
temp << id << " " << idCliente << " " << idLivro << " " << idFuncionario << " " << numeroDias + this->get_numeroDias() << " " << valorPago + this->get_valorPago() << std::endl;
std::cout<<"\nLivro renovado com sucesso!"<< std::endl;
}
if(idLivroEmp!=idLivro || this->get_id()!=idCliente){
temp << id << " " << idCliente << " " << idLivro << " " << idFuncionario << " " << numeroDias << " " << valorPago << std::endl;
}
}
if(!existe){
std::cout<<"\nEmprestimo nao localizado para esse cliente!"<< std::endl;
}
arquivo.close();
temp.close();
remove("emprestimo.txt");
rename("temp.txt", "emprestimo.txt");
}