#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include "header.h"
using namespace std;
const int N=1000;
struct LineaControl{
char numero[14];
char usuario[40];
int nllam; //numero de llamadas
llamada llam[100]; //array de llamadas
}usuarios[N];
void IngresaDatos(LineaControl usuarios[],int &n);
void ImprimeDatos(LineaControl usuarios[],int &n);
void BuscaPersona(LineaControl usuarios[],int &n);
void consumo(LineaControl usuarios[],int &n,char numTlf,int mes);
void IngresaDatos(LineaControl usuarios[],int &n)
{
cout
<<"tttIngrese el numero de telefono del "<<n
<<" cliente: "; gets(usuarios
[n
].
numero);fflush(stdin
);cout
<<endl
<<endl
; cout
<<"Ingrese el nombre del cliente: "; gets(usuarios
[n
].
usuario);fflush(stdin
); cout
<<"Ingrese cantidad de llamadas que realizo el cliente: "; cin
>>usuarios
[n
].
nllam;fflush(stdin
); cout<<endl;
cout<<"Ingreso de datos de llamadas que realizo el cliente "<<usuarios[n].usuario<<endl;
for(int i=1;i<=usuarios[n].nllam;i++)
{ cout
<<"Ingrese el "<<i
<<" numero: "; gets(usuarios
[n
].
llam[i
].
numTlf); fflush(stdin
); cout
<<"Ingrese la duracion de la llamada: "; cin
>>usuarios
[n
].
llam[i
].
tiempo; fflush(stdin
); cout
<<endl
<<"Ingrese la fecha que se realizo la llamada dd/mm/aaaa: "; cin
>>usuarios
[n
].
llam[i
].
f.
dia>>usuarios
[n
].
llam[i
].
f.
mes>>usuarios
[n
].
llam[i
].
f.
anio;fflush(stdin
); cout<<endl;
}
n++;
}
void ImprimeDatos(LineaControl usuarios[],int &n)
{
cout<<"Los datos ingresados fueron: "<<endl<<endl;
for(int i=1;i<n;i++)
{
cout<<"..................................................."<<endl;
cout<<"numero del cliente: "<<usuarios[i].numero; cout<<endl<<endl;
cout<<"nombre del cliente: "<<usuarios[i].usuario;cout<<endl;
cout<<"datos de llamadas que realizo el cliente "<<usuarios[i].usuario<<endl;
for(int j=1;j<=usuarios[i].nllam;j++)
{ cout<<usuarios[i].llam[j].numTlf<<endl;
cout<<"duracion de la llamada: "<<usuarios[i].llam[j].tiempo<<endl;
cout<<"fecha que se realizo la llamada dd/mm/aaaa: "<<usuarios[i].llam[j].f.dia<<" "<<usuarios[i].llam[j].f.mes<<" "<<usuarios[i].llam[j].f.anio;
cout<<endl<<endl;
}
cout<<"..................................................."<<endl;
}
cout<<endl<<endl;
}
void consumo(LineaControl usuarios[],int &n,char numTlf,int mes)
{
int posic;
for(int i=1;i<n;i++)
{ float mayor=0;
for(int j=1;j<=usuarios[i].nllam;j++) //busco quien tiene el tiempo mayor
{ if(usuarios[i].llam[j].tiempo>mayor)
{mayor=usuarios[i].llam[j].tiempo;}
}
for(int j=1;j<=usuarios[i].nllam;j++) //busco a quien le pertenece el numero mayor
{ if(mayor==usuarios[i].llam[j].tiempo)
{posic=j;} //marco la posicion
}
cout<<"La llamada mas larga que realizo "<<usuarios[i].usuario<<" fue al numero: "<<usuarios[i].llam[posic].numTlf<<" y duro: "<<usuarios[i].llam[posic].tiempo<<" en el mes de "<<usuarios[i].llam[posic].f.mes<<endl;
}
}
void BuscaPersona(LineaControl usuarios[],int &n)
{ int i,j,pos=-1;
char busca[30],k;
cout
<<"Ingrese el nombre de la persona a buscar: "; gets(busca
); for(i=0;i<n;i++)
{ if(strcmp(busca
,usuarios
[i
].
usuario)==0) { cout<<"ttDatos de la persona"<<endl;
cout<<"Nombre: "<<usuarios[i].usuario<<endl;
cout<<"Numero: "<<usuarios[i].numero<<endl;
pos=i;
}
}
if(pos==-1)
{ cout<<"No se encontro persona"<<endl;}
cout<<"desea buscar otra persona s/n: "; cin>>k;
}
void BorraPersona(LineaControl usuarios[],int &n)
{ int pos=-1,i;
char elimina[30];
cout
<<"Ingrese el nombre de la persona a eliminar: "; gets(elimina
); for(i=0;i<n;i++)
{ if(strcmp(elimina
,usuarios
[i
].
usuario)==0) { pos=i;break;}
}
if(pos==-1)
cout<<"ttNo se encontro a la persona"<<endl;
else
for(i=pos+1;i<n;i++)
{ usuarios[i-1]=usuarios[i];}
n--;
}
int main()
{ int personas,i,n=1;
fecha f;
cout<<"Ingrese la cantidad de personas a procesar: "; cin>>personas;
for(i=1;i<=personas;i++)
{ IngresaDatos(usuarios,n);
}
ImprimeDatos(usuarios,n);
BuscaPersona(usuarios,n);
consumo(usuarios,n,llam.numTlf,f.mes);
return 0;
}