Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<string.h>
- #define NMAX 5
- typedef struct {
- char nome[30];
- char famiglia[30];
- float prezzo;
- } TPiante;
- void Lettura(TPiante v[], int *n);
- void Ordinamento(TPiante v[], int n);
- float Massimo(TPiante v[], int n);
- void Visualizza(TPiante v[], int n);
- void Scrittura(TPiante v[], int n);
- void Scrittura2(TPiante v[], int n);
- void main(){
- TPiante v[NMAX];
- int n;
- float maxp;
- Lettura(v, &n);
- Ordinamento(v, n);
- maxp = Massimo(v, n);
- Visualizza(v, n);
- Scrittura(v, n);
- Scrittura2(v, n);
- }
- void Lettura(TPiante v[], int *n){
- FILE *f = fopen("piante.txt", "r");
- char string[100];
- char no[30],fa[30],pr[30];
- int i;
- *n=0;
- while(!feof(f)){
- fgets(string,100,f);
- sscanf(string,"%[^'-']-%[^'-']-%[^'\n']",no,fa,pr);
- strcpy(v[*n].nome, no);
- strcpy(v[*n].famiglia, fa);
- v[*n].prezzo=atoi(pr);
- (*n)++;
- }
- fclose(f);
- }
- void Ordinamento(TPiante v[],int n){
- int i,j;
- char nom[30],fam[30];
- float pre;
- for(i=0;i<n-1;i++){
- for(j=0;j<n-1;j++){
- if(v[j].famiglia > v[j+1].famiglia){
- strcpy(nom, v[j].nome);
- strcpy(v[j].nome,v[j+1].nome);
- strcpy(v[j+1].nome,nom);
- strcpy(fam, v[j].famiglia);
- strcpy(v[j].famiglia,v[j+1].famiglia);
- strcpy(v[j+1].famiglia,fam);
- pre=v[j].prezzo;
- v[j].prezzo=v[j+1].prezzo;
- v[j+1].prezzo=pre;
- }
- }
- }
- }
- float Massimo(TPiante v[],int n){
- int i;
- float max=0;
- for(i=0;i<n;i++){
- if(v[i].prezzo>max){
- max=v[i].prezzo;
- }
- }
- return max;
- }
- void Visualizza(TPiante v[],int n){
- int i;
- char scelta[10];
- int t=0;
- printf("Inserire la famiglia botanica : ");
- fflush(stdin);
- fgets(scelta,10,stdin);
- for(i=0;i<n;i++){
- if(strcmp(v[i].famiglia, scelta) == 0){
- printf("\nNome : %s\n",v[i].nome);
- printf("Famiglia : %s\n",v[i].famiglia);
- printf("Prezzo : %f\n\n",v[i].prezzo);
- t=1;
- printf("\n--------------------------\n");
- }
- }
- if(t==0){
- printf("\nFamiglia non trovata!\n\n",scelta);
- }
- }
- void Scrittura(TPiante v[], int n){
- FILE *f;
- char string[100];
- int i;
- f=fopen("piante_minori.txt","w");
- for(i=0;i<n;i++){
- if(v[i].prezzo<50){
- fprintf(f,"%f\n",v[i].prezzo);
- fprintf(f,"%s",v[i].famiglia);
- fprintf(f,"%s\n",v[i].nome);
- }
- }
- fclose(f);
- }
- void Scrittura2(TPiante v[], int n){
- FILE *f;
- char string[100];
- int i;
- f=fopen("prova.txt","w");
- for(i=0;i<n;i++){
- fprintf(f,"%s",v[i].nome);
- fprintf(f,"%s",v[i].famiglia);
- fprintf(f,"%f\n",v[i].prezzo);
- }
- fclose(f);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement