Exámenes Resueltos FP - Primer Semestre
Para uso exclusivo con fines de estudio. Se prohíbe su uso para entregas calificables y/o uso comercial.
This commit is contained in:
@ -0,0 +1,282 @@
|
||||
//Examen Febrero 2018 - Grupos C, G e I
|
||||
//Fernando M<>ndez Torrubiano
|
||||
//Versi<73>n 2
|
||||
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <fstream>
|
||||
#include <iomanip>
|
||||
using namespace std;
|
||||
|
||||
//Constantes:
|
||||
const int MAX_NAV = 24;
|
||||
|
||||
//Tipos:
|
||||
typedef struct tNavio {
|
||||
string nombre;
|
||||
string empresa;
|
||||
float eslora;
|
||||
float toneladas;
|
||||
bool peaje;
|
||||
};
|
||||
typedef tNavio tNavios[MAX_NAV];
|
||||
typedef struct tListaNavios {
|
||||
tNavios navio;
|
||||
int contador;
|
||||
};
|
||||
|
||||
//Funciones:
|
||||
void inicializa(tListaNavios&);
|
||||
bool cargar(tListaNavios&);
|
||||
void muestraNavios(tListaNavios&);
|
||||
bool crearNavio(tListaNavios&);
|
||||
bool insertarNavio(tListaNavios&, tNavio&);
|
||||
bool cobrarNavio(tListaNavios&, const string&);
|
||||
float peajeNavio(tListaNavios&, const int&);
|
||||
float peajePagado(tListaNavios&);
|
||||
void ejecutarMenu(tListaNavios&);
|
||||
int menu();
|
||||
bool guardar(tListaNavios&);
|
||||
|
||||
|
||||
int main() {
|
||||
tListaNavios navios;
|
||||
|
||||
if (cargar(navios)) {
|
||||
ejecutarMenu(navios);
|
||||
if (guardar(navios)) {
|
||||
cout << "Guardado correctamente." << endl;
|
||||
}
|
||||
else {
|
||||
cout << "Error al guardar el archivo." << endl;
|
||||
}
|
||||
}
|
||||
else {
|
||||
cout << "Fin del programa." << endl;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void inicializa(tListaNavios& navios) {
|
||||
navios.contador = 0;
|
||||
for (int i = 0; i < MAX_NAV; i++){
|
||||
navios.navio[i].nombre = "";
|
||||
navios.navio[i].empresa = "";
|
||||
navios.navio[i].eslora = 0;
|
||||
navios.navio[i].toneladas = 0;
|
||||
navios.navio[i].peaje = false;
|
||||
}
|
||||
}
|
||||
|
||||
bool cargar(tListaNavios& navios) {
|
||||
bool cargado = false;
|
||||
ifstream archivo;
|
||||
string aux = "";
|
||||
|
||||
inicializa(navios);
|
||||
archivo.open("navios.txt");
|
||||
if(!archivo.is_open()){
|
||||
cout << "No se ha podido cargar el archivo." << endl;
|
||||
cargado = false;
|
||||
}
|
||||
else {
|
||||
archivo >> navios.navio[navios.contador].nombre;
|
||||
while ((navios.navio[navios.contador].nombre != "XXX") && (navios.contador < MAX_NAV)) {
|
||||
archivo >> navios.navio[navios.contador].empresa;
|
||||
archivo >> navios.navio[navios.contador].eslora;
|
||||
archivo >> navios.navio[navios.contador].toneladas;
|
||||
archivo >> aux;
|
||||
if (aux == "true") {
|
||||
navios.navio[navios.contador].peaje = true;
|
||||
}
|
||||
else {
|
||||
navios.navio[navios.contador].peaje = false;
|
||||
}
|
||||
navios.contador++;
|
||||
archivo >> navios.navio[navios.contador].nombre;
|
||||
}
|
||||
cargado = true;
|
||||
}
|
||||
archivo.close();
|
||||
|
||||
return cargado;
|
||||
}
|
||||
|
||||
void muestraNavios(tListaNavios& navios) {
|
||||
cout << setw(15) << right << "NOMBRE"
|
||||
<< setw(20) << "EMPRESA"
|
||||
<< setw(10) << "ESLORA"
|
||||
<< setw(15) << "TONELADAS"
|
||||
<< setw(25) << "PEAJE" << endl;
|
||||
cout << setw(100) << setfill('=') << "\n" << setfill(char(0));
|
||||
for (int i = 0; i < navios.contador; i++){
|
||||
cout << setw(15) << right << navios.navio[i].nombre
|
||||
<< setw(20) << navios.navio[i].empresa
|
||||
<< setw(10) << fixed << setprecision(2) << navios.navio[i].eslora
|
||||
<< setw(15) << setprecision(2) << navios.navio[i].toneladas;
|
||||
cout << setw(10) << peajeNavio(navios, i) << "$" << setw(12);
|
||||
if (navios.navio[i].peaje == true) {
|
||||
cout << "PAGADO." << endl;
|
||||
}
|
||||
else {
|
||||
cout << "NO PAGADO." << endl;
|
||||
}
|
||||
}
|
||||
cout << setw(100) << setfill('=') << "\n" << setfill(char(0));
|
||||
cout << "Total pagado: " << peajePagado(navios) << endl;
|
||||
}
|
||||
|
||||
bool crearNavio(tListaNavios& navios) {
|
||||
tNavio nuevoNavio;
|
||||
|
||||
cout << "Introduzca nombre del navio: ";
|
||||
cin >> nuevoNavio.nombre;
|
||||
cout << "Introduzca empressa fabricante: ";
|
||||
cin >> nuevoNavio.empresa;
|
||||
cout << "Introduzca eslora (en metros): ";
|
||||
cin >> nuevoNavio.eslora;
|
||||
cout << "Introduzca toneladas de carga: ";
|
||||
cin >> nuevoNavio.toneladas;
|
||||
nuevoNavio.peaje = false;
|
||||
|
||||
return insertarNavio(navios, nuevoNavio);
|
||||
}
|
||||
|
||||
bool insertarNavio(tListaNavios& navios, tNavio& nuevoNavio) {
|
||||
|
||||
if (navios.contador < MAX_NAV){
|
||||
navios.navio[navios.contador].nombre = nuevoNavio.nombre;
|
||||
navios.navio[navios.contador].empresa = nuevoNavio.empresa;
|
||||
navios.navio[navios.contador].eslora = nuevoNavio.eslora;
|
||||
navios.navio[navios.contador].toneladas = nuevoNavio.toneladas;
|
||||
navios.navio[navios.contador].peaje = nuevoNavio.peaje;
|
||||
navios.contador++;
|
||||
}
|
||||
|
||||
return (navios.contador < MAX_NAV) ? true : false;
|
||||
}
|
||||
|
||||
bool cobrarNavio(tListaNavios& navios, const string& nombre) {
|
||||
int i = 0;
|
||||
bool encontrado = false;
|
||||
|
||||
while ((!encontrado) && (i <= navios.contador)) {
|
||||
if (navios.navio[i].nombre == nombre) {
|
||||
navios.navio[i].peaje = true;
|
||||
encontrado = true;
|
||||
}
|
||||
else {
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
return (navios.navio[i].nombre == nombre) ? true : false;
|
||||
}
|
||||
|
||||
float peajeNavio(tListaNavios& navios, const int& pos) {
|
||||
float pago = 0;
|
||||
|
||||
if (navios.navio[pos].eslora <= 100) {
|
||||
pago = navios.navio[pos].toneladas * 2;
|
||||
}
|
||||
else {
|
||||
pago = navios.navio[pos].toneladas * 3;
|
||||
}
|
||||
|
||||
return pago;
|
||||
}
|
||||
|
||||
float peajePagado(tListaNavios& navios) {
|
||||
float total = 0;
|
||||
|
||||
for (int i = 0; i < navios.contador; i++){
|
||||
if (navios.navio[i].peaje == true) {
|
||||
total += peajeNavio(navios, i);
|
||||
}
|
||||
}
|
||||
|
||||
return total;
|
||||
}
|
||||
|
||||
void ejecutarMenu(tListaNavios& navios) {
|
||||
int opc = 1;
|
||||
string nombre;
|
||||
|
||||
while (opc != 0){
|
||||
opc = menu();
|
||||
switch (opc){
|
||||
case 0: break;
|
||||
case 1: muestraNavios(navios); break;
|
||||
case 2:
|
||||
if (crearNavio(navios)) {
|
||||
cout << "Insertado correctamente." << endl;
|
||||
}
|
||||
else {
|
||||
cout << "Error al insertar." << endl;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
cout << "Introduzca el nombre del navio a cobrar: ";
|
||||
cin >> nombre;
|
||||
if (cobrarNavio(navios, nombre)) {
|
||||
cout << "Cobrado." << endl;
|
||||
}
|
||||
else {
|
||||
cout << "Navio no encontrado." << endl;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
system("PAUSE");
|
||||
system("cls");
|
||||
}
|
||||
}
|
||||
|
||||
int menu() {
|
||||
int opc = 0;
|
||||
|
||||
cout << setw(20) << setfill('=') << "MENU" << setw(20) << "\n" << setfill(char(0));
|
||||
cout << "1.-Mostrar navios." << endl;
|
||||
cout << "2.-Insertar nuevo navio." << endl;
|
||||
cout << "3.-Realizar pago." << endl;
|
||||
cout << setw(40) << setfill('=') << "\n" << setfill(char(0));
|
||||
|
||||
do {
|
||||
cout << "Introduzca una opcion: ";
|
||||
cin >> opc;
|
||||
} while (opc < 0 || opc > 4);
|
||||
|
||||
return opc;
|
||||
}
|
||||
|
||||
bool guardar(tListaNavios& navios) {
|
||||
bool guardado = false;
|
||||
ofstream archivo;
|
||||
|
||||
archivo.open("navios.txt");
|
||||
if(!archivo.is_open()){
|
||||
cout << "Error al guardar." << endl;
|
||||
guardado = false;
|
||||
}
|
||||
else {
|
||||
for (int i = 0; i < navios.contador; i++){
|
||||
archivo << navios.navio[i].nombre << " "
|
||||
<< navios.navio[i].empresa << " "
|
||||
<< navios.navio[i].eslora << " "
|
||||
<< navios.navio[i].toneladas << " ";
|
||||
if (navios.navio[i].peaje == true) {
|
||||
archivo << "true" << endl;
|
||||
}
|
||||
else {
|
||||
archivo << "false" << endl;
|
||||
}
|
||||
}
|
||||
archivo << "XXX";
|
||||
guardado = true;
|
||||
}
|
||||
archivo.close();
|
||||
|
||||
return guardado;
|
||||
}
|
@ -0,0 +1,215 @@
|
||||
/*
|
||||
Apellidos: Verd<72> Rodr<64>guez
|
||||
Nombre: Eva
|
||||
DNI: 51220965B
|
||||
Puesto: 15
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <string>
|
||||
#include <iomanip>
|
||||
using namespace std;
|
||||
|
||||
//Constantes:
|
||||
const int MAX_NAV = 24;
|
||||
const string CENT = "XXX";
|
||||
|
||||
typedef struct tNavios{
|
||||
string nom;
|
||||
string empr;
|
||||
float esl;
|
||||
float ton;
|
||||
string pag;
|
||||
};
|
||||
|
||||
typedef tNavios tListaNav[MAX_NAV];
|
||||
|
||||
typedef struct tListaNavios {
|
||||
tListaNav lista;
|
||||
int cont;
|
||||
};
|
||||
|
||||
//Funciones:
|
||||
int menu();
|
||||
bool cargar(tListaNavios & lista); //Carga el archivo.
|
||||
void muestraNavios(const tListaNavios lista);
|
||||
float peajeNavio(const tNavios navio);
|
||||
float peajePagado(const tListaNavios lista);
|
||||
void crearNavio(tListaNavios & lista);
|
||||
bool insertaNavio(const tNavios navio, tListaNavios & lista);
|
||||
bool cobrarNavio(tListaNavios & lista, string name);
|
||||
|
||||
|
||||
int main() {
|
||||
tListaNavios lista;
|
||||
string name;
|
||||
bool cobrar = true;
|
||||
bool ok = cargar(lista);
|
||||
int opc=0;
|
||||
if (ok) {
|
||||
do{
|
||||
opc = menu();
|
||||
switch (opc) {
|
||||
case 1:
|
||||
muestraNavios(lista);
|
||||
break;
|
||||
case 2:
|
||||
crearNavio(lista);
|
||||
break;
|
||||
case 3:
|
||||
cout << "Introduce Nombre del Navio: ";
|
||||
cin >> name;
|
||||
cobrar = cobrarNavio(lista , name);
|
||||
if (!cobrar) {
|
||||
cout << "Error. Barco no encontrado" << endl;
|
||||
}
|
||||
break;
|
||||
}
|
||||
} while (opc != 0);
|
||||
}
|
||||
else {
|
||||
cout << "Error al abrir el archivo" << endl;
|
||||
}
|
||||
system("pause");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int menu() {
|
||||
int opc;
|
||||
cout << "---------------------------------" << endl;
|
||||
cout << "Elige una opcion: " << endl;
|
||||
cout << "1 - Muestra la lista" << endl;
|
||||
cout << "2 - Nuevo navio" << endl;
|
||||
cout << "3 - Pagar navio" << endl;
|
||||
cout << "0 - Salir" << endl;
|
||||
cout << "---------------------------------" << endl;
|
||||
cin >> opc;
|
||||
while (opc < 0 || opc > 3) {
|
||||
cout << "Error. Ponga un valor entre 0 y 3." << endl;
|
||||
}
|
||||
return opc;
|
||||
}
|
||||
|
||||
bool cargar(tListaNavios & lista){
|
||||
bool ok = true;
|
||||
string aux;
|
||||
ifstream archivo;
|
||||
lista.cont = 0;
|
||||
|
||||
archivo.open("navios.txt");
|
||||
if (archivo.is_open()) {
|
||||
archivo >> lista.lista[lista.cont].nom;
|
||||
while((lista.lista[lista.cont].nom != CENT) && (lista.cont < MAX_NAV)) {
|
||||
archivo >> lista.lista[lista.cont].empr;
|
||||
archivo >> lista.lista[lista.cont].esl;
|
||||
archivo >> lista.lista[lista.cont].ton;
|
||||
archivo >> lista.lista[lista.cont].pag;
|
||||
lista.cont++;
|
||||
archivo >> lista.lista[lista.cont].nom;
|
||||
}
|
||||
archivo.close();
|
||||
}
|
||||
else {
|
||||
ok = false;
|
||||
}
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
void muestraNavios(const tListaNavios lista) {
|
||||
int i = 0;
|
||||
float peaje = 0;
|
||||
cout << "Navio" << setw(20) << "Empresa" << setw(20) << "Eslora" << setw(20) << "Toneladas" << setw(20) << "Peaje" << setw(20) << endl;
|
||||
cout << setw(100) << setfill('=') << "\n";
|
||||
cout << setw(100) << setfill(' ') << "\n";
|
||||
for (int i = 0; i < lista.cont; i++){
|
||||
cout << setw(20) << left << lista.lista[i].nom;
|
||||
cout << setw(20) << lista.lista[i].empr;
|
||||
cout << fixed << setprecision(2) << setw(15) << lista.lista[i].esl;
|
||||
cout << setw(15) << lista.lista[i].ton;
|
||||
peaje = peajeNavio(lista.lista[i]);
|
||||
if (lista.lista[i].pag == "true") {
|
||||
cout << setw(10) << right << peaje << " Pagado" << endl;
|
||||
}
|
||||
else {
|
||||
cout << setw(10) << right << peaje << " No Pagado" << endl;
|
||||
}
|
||||
}
|
||||
cout << setw(100) << setfill('=') << '\n';
|
||||
float total = peajePagado(lista);
|
||||
cout << "Precio total: " << total << endl;
|
||||
cout << setw(100) << setfill(' ') << '\n';
|
||||
}
|
||||
|
||||
float peajeNavio(const tNavios navio) {
|
||||
float peaje;
|
||||
if (navio.esl < 100) {
|
||||
peaje = navio.ton * 2;
|
||||
}
|
||||
else {
|
||||
peaje = navio.ton * 3;
|
||||
}
|
||||
return peaje;
|
||||
}
|
||||
|
||||
float peajePagado(const tListaNavios lista) {
|
||||
float total = 0;
|
||||
for (int i = 0; i < lista.cont; i++){
|
||||
if (lista.lista[i].pag == "true") {
|
||||
float peaje = peajeNavio(lista.lista[i]);
|
||||
total += peaje;
|
||||
}
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
void crearNavio(tListaNavios & lista) {
|
||||
tNavios navio;
|
||||
cout << "Introduzca nombre: ";
|
||||
cin >> navio.nom;
|
||||
cout << "Introduzca compa<70>ia: ";
|
||||
cin >> navio.empr;
|
||||
cout << "Introduzca eslora: ";
|
||||
cin >> navio.esl;
|
||||
cout << "Introduzca tonaledas: ";
|
||||
cin >> navio.ton;
|
||||
navio.pag = "false";
|
||||
if (insertaNavio(navio, lista)) {
|
||||
cout << "Se ha insertado correctamente" << endl;
|
||||
cout << setw(100) << setfill(' ') << '\n';
|
||||
}
|
||||
else {
|
||||
cout << "No se pudo introducir" << endl;
|
||||
cout << setw(100) << setfill(' ') << '\n';
|
||||
}
|
||||
}
|
||||
|
||||
bool insertaNavio(const tNavios navio, tListaNavios & lista) {
|
||||
bool insertar = true;;
|
||||
if (lista.cont < MAX_NAV) {
|
||||
lista.lista[lista.cont].nom = navio.nom;
|
||||
lista.lista[lista.cont].empr = navio.empr;
|
||||
lista.lista[lista.cont].esl = navio.esl;
|
||||
lista.lista[lista.cont].ton = navio.ton;
|
||||
lista.lista[lista.cont].pag = navio.pag;
|
||||
lista.cont++;
|
||||
}
|
||||
else {
|
||||
insertar = false;
|
||||
}
|
||||
return insertar;
|
||||
}
|
||||
|
||||
bool cobrarNavio(tListaNavios & lista, string name) {
|
||||
bool cobrar = false;
|
||||
int i = 0;
|
||||
while (!cobrar && i < lista.cont ) {
|
||||
if (lista.lista[i].nom == name) {
|
||||
lista.lista[i].pag = "true";
|
||||
cobrar = true;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
return cobrar;
|
||||
}
|
@ -0,0 +1,262 @@
|
||||
//Examen Febreo 2018
|
||||
//Fernando M<>ndez Torrubiano
|
||||
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <fstream>
|
||||
#include <iomanip>
|
||||
using namespace std;
|
||||
|
||||
//Constantes:
|
||||
const int MAX_NAV = 24;
|
||||
|
||||
//Tipos:
|
||||
typedef string tNombres[MAX_NAV];
|
||||
typedef float tMedidas[MAX_NAV];
|
||||
|
||||
typedef struct tNavios {
|
||||
tNombres nombre;
|
||||
tNombres empresa;
|
||||
tMedidas eslora;
|
||||
tMedidas toneladas;
|
||||
tNombres peaje;
|
||||
int contador;
|
||||
};
|
||||
|
||||
//Funciones:
|
||||
void inicializa(tNavios&, tNavios&);
|
||||
bool cargar(tNavios&);
|
||||
void ejecutarMenu(tNavios&, tNavios&);
|
||||
int menu();
|
||||
void muestraNavios(tNavios&);
|
||||
void crearNavio(tNavios&);
|
||||
bool insertarNavio(tNavios&, tNavios&);
|
||||
bool cobrarNavio(tNavios&);
|
||||
float peajeNavio(tNavios&, const int pos);
|
||||
float peajePagado(tNavios&);
|
||||
void guardar(tNavios&);
|
||||
|
||||
int main() {
|
||||
tNavios nave;
|
||||
tNavios nuevo;
|
||||
bool carga = false;
|
||||
|
||||
inicializa(nave, nuevo);
|
||||
carga = cargar(nave);
|
||||
if (carga) {
|
||||
ejecutarMenu(nave, nuevo);
|
||||
}
|
||||
else {
|
||||
system("PAUSE");
|
||||
}
|
||||
guardar(nave);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void inicializa(tNavios& nave, tNavios& nuevo) {
|
||||
|
||||
for (int i = 0; i < MAX_NAV; i++) {
|
||||
nave.nombre[i] = "";
|
||||
nave.empresa[i] = "";
|
||||
nave.eslora[i] = 0;
|
||||
nave.toneladas [i]= 0;
|
||||
nave.peaje[i] = "";
|
||||
}
|
||||
nave.contador = 0;
|
||||
nuevo.contador = 0;
|
||||
}
|
||||
|
||||
bool cargar(tNavios& nave) {
|
||||
ifstream archivo;
|
||||
bool carga = false;
|
||||
|
||||
archivo.open("navios.txt");
|
||||
if (!archivo.is_open()) {
|
||||
cout << "Error al cargar el archivo." << endl;
|
||||
carga = false;
|
||||
}
|
||||
else {
|
||||
archivo >> nave.nombre[nave.contador];
|
||||
while ((nave.nombre[nave.contador] != "XXX") && (nave.contador < MAX_NAV)) {
|
||||
archivo >> nave.empresa[nave.contador];
|
||||
archivo >> nave.eslora[nave.contador];
|
||||
archivo >> nave.toneladas[nave.contador];
|
||||
archivo >> nave.peaje[nave.contador];
|
||||
nave.contador++;
|
||||
archivo >> nave.nombre[nave.contador];
|
||||
}
|
||||
carga = true;
|
||||
}
|
||||
archivo.close();
|
||||
|
||||
return carga;
|
||||
}
|
||||
|
||||
void ejecutarMenu(tNavios& nave, tNavios& nuevo) {
|
||||
int opc = 1;
|
||||
bool insertado = false;
|
||||
|
||||
while (opc != 0) {
|
||||
system("cls");
|
||||
opc = menu();
|
||||
switch (opc){
|
||||
case 1: muestraNavios(nave); break;
|
||||
case 2: crearNavio(nuevo);
|
||||
insertado = insertarNavio(nave, nuevo);
|
||||
if (!insertado) {
|
||||
cout << "No se ha podido a<>adir un nuevo navio." << endl;
|
||||
system("PAUSE");
|
||||
}
|
||||
else{
|
||||
cout << "Navio insertado correctamente." << endl;
|
||||
system("PAUSE");
|
||||
}
|
||||
break;
|
||||
case 3: cobrarNavio(nave); break;
|
||||
case 0: break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int menu() {
|
||||
int opc = 0;
|
||||
|
||||
//cout << setfill('-') << setw(25) << "\n";
|
||||
cout << "1.-VER LISTA DE NAVIOS." << "\n";
|
||||
cout << "2.-AGREGAR NAVIO." << "\n";
|
||||
cout << "3.-COBRAR PEAJE." << "\n";
|
||||
cout << "0.-SALIR." << "\n";
|
||||
//cout << setfill('-') << setw(25) << "\n";
|
||||
|
||||
do{
|
||||
cout << "\n Intruduzca una opcion: ";
|
||||
cin >> opc;
|
||||
} while ((opc < 0) || (opc > 3));
|
||||
|
||||
return opc;
|
||||
}
|
||||
|
||||
void muestraNavios(tNavios& nave) {
|
||||
cout << setfill(char(0)) << setw(15)
|
||||
<< left << "NOMBRE" << setw(15)
|
||||
<< left << "EMPRESA" << setw(15)
|
||||
<< left << "ESLORA" << setw(20)
|
||||
<< left << "DESPLAZAMIENTO" << setw(20)
|
||||
<< left << "PEAJE";
|
||||
|
||||
cout << setw(85) << setfill('=') << "\n" << setfill(char(0)) << endl;
|
||||
for (int i = 0; i < nave.contador; i++) {
|
||||
cout << setw(15) << left << nave.nombre[i] << setw(15)
|
||||
<< left << nave.empresa[i] << setw(15)
|
||||
<< left << fixed << setprecision(2) << nave.eslora[i] << setw(20)
|
||||
<< left << nave.toneladas[i] << setw(10);
|
||||
if (nave.peaje[i] == "true") {
|
||||
cout << peajeNavio(nave, i) << "PAGADO\n";
|
||||
}
|
||||
else {
|
||||
cout << peajeNavio(nave, i) << "NO PAGADO\n";
|
||||
}
|
||||
}
|
||||
cout << setw(85) << setfill('=') << "\n";
|
||||
cout << setw(0) << setfill(char(0)) << "\n";
|
||||
system("PAUSE");
|
||||
}
|
||||
|
||||
void crearNavio(tNavios& nuevo) {
|
||||
string nombre;
|
||||
|
||||
nuevo.contador++;
|
||||
cout << "Introduzca NOMBRE del navio: ";
|
||||
cin >> nuevo.nombre[nuevo.contador];
|
||||
cout << "Introduzca EMPRESA fabricante: ";
|
||||
cin >> nuevo.empresa[nuevo.contador];
|
||||
cout << "Introduzca ESLORA del navio: ";
|
||||
cin >> nuevo.eslora[nuevo.contador];
|
||||
cout << "Introduzca TONELADAS del navio: ";
|
||||
cin >> nuevo.toneladas[nuevo.contador];
|
||||
cout << "Introduzca PEAJE (true/false): ";
|
||||
cin >> nuevo.peaje[nuevo.contador];
|
||||
|
||||
}
|
||||
|
||||
bool insertarNavio(tNavios& nave, tNavios& nuevo) {
|
||||
bool insertado = false;
|
||||
|
||||
if (nave.contador < MAX_NAV) {
|
||||
nave.nombre[nave.contador] = nuevo.nombre[nuevo.contador];
|
||||
nave.empresa[nave.contador] = nuevo.empresa[nuevo.contador];
|
||||
nave.eslora[nave.contador] = nuevo.eslora[nuevo.contador];
|
||||
nave.toneladas[nave.contador] = nuevo.toneladas[nuevo.contador];
|
||||
nave.peaje[nave.contador] = nuevo.peaje[nuevo.contador];
|
||||
nave.contador++;
|
||||
insertado = true;
|
||||
}
|
||||
else {
|
||||
insertado = false;
|
||||
}
|
||||
|
||||
return insertado;
|
||||
}
|
||||
|
||||
bool cobrarNavio(tNavios& nave) {
|
||||
bool encontrado = false;
|
||||
string nom;
|
||||
int i = 0;
|
||||
|
||||
cout << "Introduzca el nombre del navio que quiere pagar: ";
|
||||
cin >> nom;
|
||||
|
||||
while ((i < nave.contador) && (!encontrado)) {
|
||||
if (nave.nombre[i] == nom) {
|
||||
nave.peaje[i] = "true";
|
||||
encontrado = true;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
return encontrado;
|
||||
}
|
||||
|
||||
float peajeNavio(tNavios& nave, const int pos) {
|
||||
float precio = 0;
|
||||
|
||||
if (nave.eslora[pos] <= 100) {
|
||||
precio = nave.toneladas[pos] * 2;
|
||||
}
|
||||
else {
|
||||
precio = nave.toneladas[pos] * 3;
|
||||
}
|
||||
|
||||
return precio;
|
||||
}
|
||||
|
||||
float peajePagado(tNavios& nave) {
|
||||
float pagos = 0;
|
||||
|
||||
for (int i = 0; i < nave.contador; i++) {
|
||||
if (nave.peaje[i] == "true") {
|
||||
pagos += peajeNavio(nave, i);
|
||||
}
|
||||
}
|
||||
|
||||
return pagos;
|
||||
}
|
||||
|
||||
void guardar(tNavios& nave) {
|
||||
ofstream archivo;
|
||||
|
||||
archivo.open("navios.txt");
|
||||
if(archivo.is_open()){
|
||||
for (int i = 0; i < nave.contador; i++) {
|
||||
archivo << nave.nombre[i] << " ";
|
||||
archivo << nave.empresa[i] << " ";
|
||||
archivo << nave.eslora[i] << " ";
|
||||
archivo << nave.toneladas[i] << " ";
|
||||
archivo << nave.peaje[i] << " " << endl;
|
||||
}
|
||||
archivo << "XXX";
|
||||
}
|
||||
archivo.close();
|
||||
}
|
Binary file not shown.
@ -0,0 +1,6 @@
|
||||
Prestill pocoImporta 90 2634 true
|
||||
Pluton CAMPSA 104.2 2852 false
|
||||
CostaArrecife Costa 337 183900 false
|
||||
USSuranus UnitedFruit 82.14 3348 true
|
||||
Dedalo ArmadaEspanola 190 13000 false
|
||||
XXX
|
Reference in New Issue
Block a user