Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
URGENTE - TRABALHO DE FACULDADE (Linguagem C)
29-11-2013, 00:56
Mensagem: #1
URGENTE - TRABALHO DE FACULDADE (Linguagem C)
Boa noite pessoal, estou com algumas dificuldades em desenvolver este código onde é suposto eu ir a um ficheiro com um milhão de linhas de código , onde cada linha se apresenta desta forma: 961401167;912304579;14/12/2010;14h 5m 40s; 15h 30m 10s; 0; 1;
onde o primeiro valor é o numero que efectua uma chamada, o segundo o numero que recebe essa chamada, o terceiro a data, o quinto as horas minutos e segundos a que a chamada é feita, o sexto as horas os minutos e os segundos a que a chamada termina e o roaming inicial e final respectivamente.
Nesta função que vos apresento é suposto eu colocar um numero utilizando um scanf, que supostamente é o numero que efectua a chamada e depois a função deve ir ao ficheiro procurar esse numero e caso esse numero exista ele devolve me as linhas em que esse numero aparece (a realizar a chamada) e o numero de occorrencias. Estou com algumas dificuldades e não percebo o que tenho de errado no código, se me poderem ajudar agradeço... Obrigado e boa noite

typedef struct dia {

int Dia;
int Mes;
int Ano;

} dia;

typedef struct hora {
int Hora;
int Minuto;
int Segundo;

} hora;

typedef struct chamada {
char NumI;
char NumF;
int RoamI;
int RoamF;
hora HoraI, HoraF;
dia data;

} chamada;

void mostrar_chamada () {

int i;
char op[15];
chamada a;
unsigned long int contador=0;
printf ("Write a number: ");
scanf ("%s", &op);
FILE *fp=fopen("db.txt", "r");



if(fp==NULL) {
printf ("Erro na abertura do ficheiro.\n");
exit(1);
}
else

while ((fscanf (fp, "%s;%s;%d/%d/%d;%dh %dm %ds;%dh %dm %ds;%d;%d;\n",
a.NumI, a.NumF, &a.data.Dia, &a.data.Mes, &a.data.Ano, &a.HoraI.Hora, &a.HoraI.Minuto,
&a.HoraI.Segundo, &a.HoraF.Hora, &a.HoraF.Minuto, &a.HoraF.Segundo, &a.RoamI, &a.RoamF))!=EOF) {
if ((strcmp(op, "a.NumI"))!=0) {
printf ("%s;%s;%d/%d/%d;%dh %dm %ds;%dh %dm %ds;%d;%d;\n",
a.NumI, a.NumF, a.data.Dia, a.data.Mes, a.data.Ano, a.HoraI.Hora, a.HoraI.Minuto,
a.HoraI.Segundo, a.HoraF.Hora, a.HoraF.Minuto, a.HoraF.Segundo, a.RoamI, a.RoamF);
contador++;
i++;
}
}

printf ("The number you choose has: %ld occurrences\n", contador);

if((strcmp(op, "a.NumI"))==0) {
printf ("The number you choose doesn't exist\n");
}

fclose (fp);
}

void menu () {

int op;

printf (" Call Analysis\n");
printf ("0 - Exit the program\n");
printf ("1 - Show calls performed by a number\n");
printf ("2 - Write the calls received by a number in a file\n");
printf ("3 - Total conversation time initiated by a number\n\n");
printf ("4 - Calls performed by a telephone and cost of one of them\n");
printf ("5 - Histogram of the calls of a telephone by hour\n\n");
printf ("6 - Total cost of calls by a telephone\n");
printf ("7 - Histogram of the calls made by a telephone\n\n");
printf ("Choose one option: ");
scanf ("%d", &op);

switch (op) {
case 0: printf ("It was a pleasure!\n");
exit (1);
case 1: mostrar_chamada ();
default: exit(1);
}

}

main () {

menu ();

}
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Mensagem neste Tópico
URGENTE - TRABALHO DE FACULDADE (Linguagem C) - aeurte - 29-11-2013 00:56

Saltar Fórum:


Utilizadores a ver este tópico: 1 Visitante(s)