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 (); } |
|||
« Mais Antigo | Mais Recente »
|
Mensagem neste Tópico |
URGENTE - TRABALHO DE FACULDADE (Linguagem C) - aeurte - 29-11-2013 00:56
RE: URGENTE - TRABALHO DE FACULDADE (Linguagem C) - Corvus - 29-11-2013, 10:02
RE: URGENTE - TRABALHO DE FACULDADE (Linguagem C) - damnation - 29-11-2013, 11:39
RE: URGENTE - TRABALHO DE FACULDADE (Linguagem C) - Corvus - 29-11-2013, 11:43
RE: URGENTE - TRABALHO DE FACULDADE (Linguagem C) - damnation - 30-11-2013, 12:29
RE: URGENTE - TRABALHO DE FACULDADE (Linguagem C) - xupista - 30-11-2013, 18:29
|
Utilizadores a ver este tópico: 1 Visitante(s)