Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Studente : Scia Massimiliano
- Classe : 3IC
- Data : 14/05/12 15:44
- Nome del file : statistiche file, conta:
- -quanti numeri
- -quante cifre
- -quante frasi
- -quante lettere
- -quanti caratteri totali
- -il numero di parole
- -il numero di caratteri che ci sono di media per ogni parola
- -il numero di parole che ci sono di media per ogni frase
- -la frequenza di una parola
- */
- #include <iostream>
- #include <cmath>
- #include <ctime>
- #include <cstdlib>
- #include <cctype>
- #include <windows.h>
- #include <fstream>
- #include <time.h>
- #include <stdio.h>
- #define N 200
- using namespace std;
- void end(void){
- fflush(stdin);
- cout<<"\n\nPremere Invio per continuare.";
- getchar();
- }//end
- bool lettere(int &numlet){
- FILE* f;
- FILE* f1;
- f=fopen("prova.txt","r");
- f1=fopen("analisi.txt","w");
- if(f==NULL || f1==NULL)
- return 0;
- char c;
- char d[20];
- numlet=0;
- fputs("Il numero di lettere e`: ",f1);
- fseek(f,0,SEEK_SET);
- while(!feof(f)){
- c=fgetc(f);
- if(isalpha(c))
- numlet++;
- }//while
- itoa(numlet,d,10);
- fputs(d,f1);
- fputc('\n',f1);
- fputc('\n',f1);
- fclose(f);
- fclose(f1);
- return 1;
- }//lettere
- bool frasi(int &numfrasi){
- FILE* f;
- FILE* f1;
- f=fopen("prova.txt","r");
- f1=fopen("analisi.txt","a");
- if(f==NULL || f1==NULL)
- return 0;
- char c;
- char d[20];
- numfrasi=0;
- fputs("Il numero di frasi e`: ",f1);
- int i=0;
- while(!feof(f)){
- c=fgetc(f);
- if(c=='.')
- numfrasi++;
- }//while
- itoa(numfrasi,d,10);
- fputs(d,f1);
- fputc('\n',f1);
- fputc('\n',f1);
- fclose(f);
- fclose(f1);
- return 1;
- }//frasi
- bool cifre(){
- FILE* f;
- FILE* f1;
- f=fopen("prova.txt","r");
- f1=fopen("analisi.txt","a");
- if(f==NULL || f1==NULL)
- return 0;
- char c;
- char d[20];
- int cont=0;
- fputs("Il numero di cifre e`: ",f1);
- while(!feof(f)){
- c=fgetc(f);
- if(isdigit(c))
- cont++;
- }//while
- itoa(cont,d,10);
- fputs(d,f1);
- fputc('\n',f1);
- fputc('\n',f1);
- fclose(f);
- fclose(f1);
- return 1;
- }//cifre
- bool parole(int &numpar){
- FILE* f;
- FILE* f1;
- f=fopen("prova.txt","r");
- f1=fopen("analisi.txt","a");
- if(f==NULL || f1==NULL)
- return 0;
- char s;
- int j=0,i=0,k=0;
- while(!feof(f)){
- s=fgetc(f);
- if(isascii(s))
- j++;
- }//while
- char c;
- char d[20];
- char fff[20];
- numpar=0;
- fputs("Il numero di parole e`: ",f1);
- fseek(f,0,SEEK_SET);
- while(k<j){
- c=fgetc(f);
- if(isalpha(c)){
- if(i==0){
- numpar++;
- i++;
- }//if
- }//if
- else
- i=0;
- k++;
- }//while
- itoa(numpar,d,10);
- fputs(d,f1);
- fputc('\n',f1);
- fputc('\n',f1);
- fputs("Il numero di caratteri e`: ",f1);
- itoa(j,fff,10);
- fputs(fff,f1);
- fputc('\n',f1);
- fputc('\n',f1);
- fclose(f);
- fclose(f1);
- return 1;
- }//parole
- bool numeri(){
- FILE* f;
- FILE* f1;
- f=fopen("prova.txt","r");
- f1=fopen("analisi.txt","a");
- if(f==NULL || f1==NULL)
- return 0;
- char s;
- int j=0,i=0,k=0,cifre=0;
- while(!feof(f)){
- s=fgetc(f);
- if(isascii(s))
- j++;
- }//while
- char c;
- char qnt[20];
- fseek(f,0,SEEK_SET);
- while(k<j){
- c=fgetc(f);
- if(isdigit(c)){
- if(i==0){
- i++;
- cifre++;
- }//if
- }//if
- else
- i=0;
- k++;
- }//while
- fputs("Il totale di numeri e`: ",f1);
- itoa(cifre,qnt,10);
- fputs(qnt,f1);
- fputc('\n',f1);
- fputc('\n',f1);
- fclose(f);
- fclose(f1);
- return 1;
- }//numeri
- bool mediapar(int numpar, int numlet){
- FILE* f;
- FILE* f1;
- f=fopen("prova.txt","r");
- f1=fopen("analisi.txt","a");
- if(f==NULL || f1==NULL)
- return 0;
- int d[N];
- char m[20];
- fputs("La lunghezza media delle parole e`: ",f1);
- int med;//itoa accetta solo interi! maledizione..ed il cast non approssima :)
- med=numlet/numpar;
- itoa(med,m,10);
- fputs(m,f1);
- fputc('\n',f1);
- fputc('\n',f1);
- fclose(f);
- fclose(f1);
- return 1;
- }//mediapar
- bool mediaparfrase(int numpar, int numfrasi){
- FILE* f;
- FILE* f1;
- f=fopen("prova.txt","r");
- f1=fopen("analisi.txt","a");
- if(f==NULL || f1==NULL)
- return 0;
- int d[N];
- char m[20];
- fputs("La media delle parole per frase e`: ",f1);
- int med;
- if(numfrasi==0)
- numfrasi=1;
- med=numpar/numfrasi;
- itoa(med,m,10);
- fputs(m,f1);
- fputc('\n',f1);
- fputc('\n',f1);
- fclose(f);
- fclose(f1);
- return 1;
- }//mediapar
- bool trovapar(char* parola){
- FILE* f;
- FILE* f1;
- f=fopen("prova.txt","r");
- f1=fopen("analisi.txt","a");
- if(f==NULL || f1==NULL)
- return 0;
- char car;
- char m[N];
- int i=0,j=0,n=0;
- while(!feof(f)){
- car=fgetc(f);
- if(tolower(car)==tolower(parola[i])){
- j++;
- if(j==strlen(parola)-1)
- n++;
- }//if
- else
- j=0;
- i++;
- }//while
- fputs("La parola e` presente: ",f1);
- itoa(n,m,10);
- fputs(m,f1);
- fputs(" volte",f1);
- fputc('\n',f1);
- fputc('\n',f1);
- fclose(f);
- fclose(f1);
- return 1;
- }//trovapar
- int main(){
- int numpar,numlet,numfrasi;
- bool l=lettere(numlet);
- bool p=parole(numpar);
- bool f=frasi(numfrasi);
- bool c=cifre();
- bool n=numeri();
- bool m=mediapar(numpar,numlet);
- bool mf=mediaparfrase(numpar,numfrasi);
- cout<<"\nControlli eseguiti con successo!\n";
- cout<<"\nVuoi controlare quante volte compare una parola? (s/n)\n- ";
- char scelta;
- do{
- cin>>scelta;
- if(scelta!='s' && scelta!='n')
- cout<<"\nErrore!\n";
- }//do
- while(scelta!='s' && scelta!='n');
- if(scelta=='s'){
- char parola[26];//vedi: precipitevolissimevolmente
- cout<<"\nLa parola e`: ";
- fflush(stdin);
- cin.get(parola,26,'\n');
- fflush(stdin);
- bool t=trovapar(parola);
- end();
- }//if
- else
- end();
- return 0;
- }//main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement