//---------------------------------------------FILE .CPP----------------------------------------
#include "Agenda.h"
#include<string.h>
#include<fstream>
#include<iostream>
#include<cstdio>
#include<stdio.h>
#include<string>
//COSTRUTTORE BASE
//-----------------------------------------------COSTRUTTORI------------------------------------------------------
Agenda::Agenda()
{
std::cout<<"verifica-primo costruttore vuoto"<<std::endl;
}
//COSTRUTTORE INIZIALIZZATO A ZERO
Agenda::Agenda(std::string _nombre, std::string _apellidos, std::string _direccion, std::string _poblacion, std::string _provincia, std::string _codigo_postal, std::string _prefijo_tel, std::string _telefono)
//: nombre{_nombre}, apellidos{_apellidos}, direccion{_direccion}, poblacion{_poblacion}, provincia{_provincia}, codigo_postal {_codigo_postal}, prefijo_tel {_prefijo_tel}, telefono {_telefono} {}
{
//Agenda::Nuevo_Contacto();
nombre = _nombre;
apellidos = _apellidos;
direccion = _direccion;
poblacion = _poblacion;
provincia = _provincia;
codigo_postal = _codigo_postal;
prefijo_tel = _prefijo_tel;
telefono = _telefono;
}
//-------------------------------------------------METODI PUBLICI------------------------------------------------------------------------
//METODO MENU - INIZIO DEL PROGRAMMA, RICHIAMA OGNI METODO, SI FA RETURN SEMPRE QUI, FINO ALLA CHIUSURA DEL PROGRAMMA
void Agenda::Menu(void){
int opc;
do
{
std::cout<<"\nElige una opcion"<<std::endl;
std::cout<<"\n1 - Nuovo Contatto"<<std::endl;
std::cout<<"\n2 - Actualizacion de contactos"<<std::endl;
std::cout<<"\n3 - Buscar Contacto con \"Apellido\"" <<std::endl;
std::cout<<"\n4 - Imprimir datos"<<std::endl;
std::cout<<"\n9 - Terminar Programa"<<std::endl;
std::cin>>opc;
std::fflush(stdin);
switch(opc)
{
case 1: Nuevo_Contacto();
break;
case 2: Actualizaciones();
break;
case 3: Busca_Apellidos();
break;
case 4: Imprimir_Agenda();
break;
}
}
while(opc!=9);
}
//METODO PER CERCARE UN CONTATTO, DAL COGNOME
void Agenda::Busca_Apellidos(void){
//OGGETTO PER CERCARE
std::string target;
std::cout<<"\nIntroduce el Apellido a buscar:\t";
std::cin>>target;
//APERTURA FILE TXT
std::ifstream Cercatore("AgendaProgettoCipsa.txt",std::ios_base::binary | std::ios_base::in | std::ios_base::app);
std::string leggi="";
std::string s;
int i=0;
while( !Cercatore.eof())
{
Cercatore>>leggi;
if(leggi == target)
{
Cercatore.seekg((-30),std::ios_base::cur);
while (i < 8)
{
std::getline(Cercatore, leggi);
std::cout<<leggi<<std::endl;
i++;
}
}
Cercatore.close();
}
//METODO PARA STAMPARE A VIDEO
void Agenda::Imprimir_Agenda(void){
std::ifstream Cercatore("AgendaProgettoCipsa.txt",std::ios_base::binary | std::ios_base::in | std::ios_base::app);
//FILE* fp1 = fopen("AgendaProgettoCipsa.txt", "a+" );
std::string leggi="";
std::string s;
while( !Cercatore.eof())
{
//Cercatore>>leggi;
std::getline(Cercatore, leggi);
std::cout<<leggi<<std::endl;
};
}
//METODO PER CREARE UN NUOVO CONTATTO
void Agenda::Nuevo_Contacto(void){
//CREAZIONE OGGETTO PER FSTREAM E CREAZIONE FILE DI TESTO PER SALVARE CONTATTI,
//EVENTUALMENTE, CREAZIONE DI SECONDO OGGETTO FSTREAM, PER CONCATENARE INDEX????.
std::fstream contattoXMLT, contattoTXT;
//INIZIO DELLA CREAZIONE DEL NUOVO CONTATTO
//INSERIMENTO VARIABILE _NOME
std::cout<<"\nInserire Nome:\t"<<std::endl;
std::cin>>_nombre;
std::fflush(stdin);
//INSERIMENTO VARIABILE _APELLIDO
std::cout<<"\nInserire Cognome:\t"<<std::endl;
std::cin>>_apellidos;
std::fflush(stdin);
//INSERIMENTO VARIABILE _DIRECCION
std::cout<<"\nInserire Direccion:\t"<<std::endl;
std::cin>>_direccion;
std::fflush(stdin);
//INSERIMENTO POBLACION
std::cout<<"\nInserire Poblacion:\t"<<std::endl;
std::cin>>_poblacion;
std::fflush(stdin);
//INSERIMENTO PROVINCIA
std::cout<<"\nInserire Provincia:\t"<<std::endl;
std::cin>>_provincia;
std::fflush(stdin);
//INSERIMENTO CODIGO POSTAL
std::cout<<"\nInserire Codigo Postal:\t"<<std::endl;
std::cin>>_codigo_postal;
std::fflush(stdin);
//INSERIMENTO PREFIJO
std::cout<<"\nInserire Prefijo:\t"<<std::endl;
std::cin>>_prefijo_tel;
std::fflush(stdin);
//INSERIMENTO TELEFONO
std::cout<<"\nInserire Telefono:\t"<<std::endl;
std::cin>>_telefono;
std::fflush(stdin);
//----------------------------SCRITTURA SU FILE DEL NUOVO CONTATTO-----------------------------------
//APERTURA FILE HMLT SI SALVA E AGGIUNGE A FINE FILE
contattoXMLT.open("AgendaProgettoCipsa.html", std::ios_base::out | std::ios_base::app);
//FORMA FILE HTML
contattoXMLT<< "<table> \n";
contattoXMLT<< "<tr><td>NOME</td><td>COGNOME</td><td>DIRECCION</td><td>POBLACION</td><td>PROVINCIA</td><td>CODIGO POSTAL</td><td>PREFIJO</td><td>TELEFONO</td></tr> \n";
contattoXMLT<< "<tr><td>"<<_nombre<<"</td><td>"<<_apellidos<<"</td><td>"<<_direccion<<"</td><td>"<<_poblacion<<"</td><td>"<<_provincia<<"</td><td>"<<_codigo_postal<<"</td><td>"<<_prefijo_tel<<"</td><td>"<<_telefono<<"</td></tr> \n";
contattoXMLT<< "</table> \n";
//CHIUSURA FILE HTML
contattoXMLT.close();
//APERTURA FILE TXT
contattoTXT.open("AgendaProgettoCipsa.txt", std::ios_base::out | std::ios_base::app);
//INIZIO RECORD VARIABILI FILE TXT
contattoTXT<<"\nNome:\t";
contattoTXT<<_nombre;
std::fflush(stdin);
//INSERIMENTO VARIABILE _APELLIDO
contattoTXT<<"\nCognome:\t";
contattoTXT<<_apellidos;
std::fflush(stdin);
//INSERIMENTO VARIABILE _DIRECCION
contattoTXT<<"\nDireccion:\t";
contattoTXT<<_direccion;
std::fflush(stdin);
//INSERIMENTO POBLACION
contattoTXT<<"\nPoblacion:\t";
contattoTXT<<_poblacion;
std::fflush(stdin);
//INSERIMENTO PROVINCIA
contattoTXT<<"\nProvincia:\t";
contattoTXT<<_provincia;
std::fflush(stdin);
//INSERIMENTO CODIGO POSTAL
contattoTXT<<"\nCodigo Postal:\t";
contattoTXT<<_codigo_postal;
std::fflush(stdin);
//INSERIMENTO PREFIJO
contattoTXT<<"\nPrefijo:\t";
contattoTXT<<_prefijo_tel;
std::fflush(stdin);
//INSERIMENTO TELEFONO
contattoTXT<<"\nTelefono:\t";
contattoTXT<<_telefono;
std::fflush(stdin);
//CHIUSURA FILE TXT
contattoTXT.close();
//CHIUSURA FILE
return;
}
chiedo scusa per il tag, non sapevo come si faceva..
ho omesso dei pezzi non fondamentali, ad ogni modo nel main, ce solo un oggetto della classe, che richiama il metodo Menu().
grazie mille per l'aiuto