Programación General > C/C++
Ayuuudaa en este error
(1/1)
o.ficu:
Hola a todos, espero alguien pueda ayudarme, en el siguiente programa que les dejo, me presenta el siguiente error: "request for member 'numTlf' in 'llam', which is of non-class type 'llamada[100]' " este error me marca en la llamada consumo(usuarios,n,llam.numTlf,f.mes); Gracias de antemano por su ayuda.
El código del header es:
--- Código: C ---#ifndef LLAMADA_H#define LLAMADA_H struct fecha{int dia,mes,anio;}; struct llamada{ fecha f; char numTlf[14]; // numero al cual se llama float tiempo; // linea control }llam[100]; #endif Y el programa:
--- Código: C ---#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){ fflush(stdin); 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); system("PAUSE"); return 0;}
Navegación
Ir a la versión completa