Creare un programma che, attraverso la dichiarazione di una struttura opportuna, permetta di
gestire i dati relativi a giocatori di calcio. Ogni struttura comprenderà valori relativi a nome,
numero di titoli conseguiti, percentuale di realizzazione. Il programma deve permettere di:
Inserire un nuovo giocatore
Stampare i dati in ordine di immissione
Calcolare il numero medio di titoli per i giocatori immessi
Salvare su un file tutte i giocatori con percentuale maggiore di una soglia<<--
Leggere i dati da file<<--
Allego il codice di seguito,di fatto il programma non da errori e compila a dovere,tuttavia non mi stampa nel file.txt i valori che superano una certa 'soglia'(vedi codice)-->
gestire i dati relativi a giocatori di calcio. Ogni struttura comprenderà valori relativi a nome,
numero di titoli conseguiti, percentuale di realizzazione. Il programma deve permettere di:
Inserire un nuovo giocatore
Stampare i dati in ordine di immissione
C:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define V_DIM 1000
#define MAXLEN 255
struct calciatore{
char nome[MAXLEN];
int titoli, soglia;
float goal;
};
void print_calc(struct calciatore c);
void salva_su_file(struct calciatore nuovo_calc[V_DIM],int n_calc,char file_name[]);
int main(){
struct calciatore nuovo_calc[V_DIM];
int n_calc=0, count=0;
float media;
FILE *fp;
char my_line[100];
while(1)
{
printf("Inserisci il nome: ");
scanf("%s",nuovo_calc[n_calc].nome);
if(strcmp(nuovo_calc[n_calc].nome,"fine")==0)
break;
printf("Inserisci il numero di titoli vinti: ");
scanf("%d",&nuovo_calc[n_calc].titoli);
printf("Inserisci la percentuale di realizzazione in goal: ");
scanf("%f",&nuovo_calc[n_calc].goal);
print_calc(nuovo_calc[n_calc]);
float soglia=nuovo_calc[n_calc].goal;
if(soglia>= 8)
{
salva_su_file(nuovo_calc,n_calc,"file_calc.txt");
}
count+=nuovo_calc[n_calc].titoli;
n_calc++;
if(n_calc==V_DIM)
break;
}
fp = fopen("file_calc.txt","r");
while (fscanf(fp, "%s", my_line)>0)
{
printf("%s\n", my_line);
}
fclose(fp);
media=(float)count/n_calc;
printf("La media dei titoli vinti e':%.3f\n",media);
return 0;
}
void print_calc(struct calciatore c)
{
printf("%s\t",c.nome);
printf("%d\t",c.titoli);
printf("%.3f\t\n",c.goal);
}
void salva_su_file(struct calciatore nuovo_calc[V_DIM],int n_calc,char file_name[])
{
FILE *fp;
int i;
fp=fopen(file_name,"w");
if(fp==NULL)
{
printf("Impossibile aprire il file %s\n",file_name);
return;
}
for(i=0;i<n_calc;i++)
{
fprintf(fp, "%s %d %f\n",nuovo_calc[i].nome,nuovo_calc[i].titoli,nuovo_calc[i].goal);
}
fclose(fp);
}
Salvare su un file tutte i giocatori con percentuale maggiore di una soglia<<--
Leggere i dati da file<<--
Allego il codice di seguito,di fatto il programma non da errori e compila a dovere,tuttavia non mi stampa nel file.txt i valori che superano una certa 'soglia'(vedi codice)-->