Создание приложения "Подсчет частоты введенных слов в текстовом файле"

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

ия на Си: Хранение и обработка данных - Си, Проектирование программ - Си, Численные методы - Си, Целочисленные алгоритмы - Си, Динамические структуры данных - Си. 2008-2009.

5.www.cyberforum.ru. Электронный ресурс.

6...">www.stackoverflow.com . Электронный ресурс.

Приложение

 

Листинг программы

1.#include

.#include

.#include

.#include

.#include

6.int t=0,e,g,n;

.char words[700000][50],name1[50];

.typedef struct Count{

.char word[50];

.int num;

.}CNT;

.CNT V[700000];

13.void SravnNum(char prov[50],int*ok)

.{

.int i,j;

.char numbers[]="0123456789";

.*ok=0;

.for(i=0;prov[i]!=\0;i++) {

.for(j=0;numbers[j]!=\0;j++) {

.if (prov[i]==numbers[j]) {

.*ok=1; break;}}}}

22.void SravnAlp(char prov[50],int*ok)

.{

.int i,j,p=0,d=0,mass[50][100];

.char alphabet[]="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

.*ok=0;

.for(i=0;prov[i]!=\0;i++) {

.for(j=0;alphabet[j]!=\0;j++) {

.if (prov[i]==alphabet[j]) {

.p=1; break;}}}

.if (p==1)

.{for(i=0;prov[i]!=\0;i++) {

.for(j=0;alphabet[j]!=\0;j++) {

.if (prov[i]==alphabet[j]) {

.d++;}}}

.if (d!=i) {*ok=1;}

.}}

38.void Read(int*j)

.{

.int i,ok=0,ok1=0;

.FILE *book;

.clrscr();

.printf("Vvedite nazvanie faila i put k nemy\n");

.scanf("%s",&name1);

.if ((book=fopen(name1,"r"))==NULL)

.{printf("Fail nevojmojno otkryt\n");

.getch();}

.else {

.printf("Vvedite minalnyu dliny slova\n");

.scanf("%d",&n);

.printf("Obrabotka...");

.for(i=0;!feof(book);) {

.fscanf(book,"%s",&words[i]);

.if (strlen(words[i])<n)

.{continue;}

.else SravnNum(words[i],&ok);

.SravnAlp(words[i],&ok1);

.if (ok==0 && ok1==0) {i++;}}

.fclose(book);

.*j=i;

.t=1;}

.}

63.int Scan(CNT*V,int*i)

.{

.int j,d,s,q=0;

.char vyvod[50],prov[]="::null::";

.for(j=0;j!=*i;j++) {

.d=0;

.if (strcmp(words[j],prov)==0) {continue;}

.else {

.strcpy(vyvod,words[j]);

.for(s=0;s!=*i;s++) {

.if (strcmp(vyvod,words[s])==0) {d++; strcpy(words[s],prov);}}

.strcpy(V[q].word,vyvod); V[q].num=d; q++;}}

.if (t=1){

.printf("\a\a\a");}

.return q;

.}

79.void Delete(int*i)

.{

.char spr[]="!:,.?;";

.int k,r,j,d;

.for(d=0;d!=*i;d++) {

.for(k=0;spr[k]!=\0;k++) {

.for(r=j=0;words[d][r]!=\0;r++)

.if (words[d][r]!=spr[k])

.{words[d][j++]=words[d][r];}

.words[d][j]=\0;}

.}

.}

91.void Output(CNT*V,int*i,int q)

.{

.int j;

.if (t!=1) {

.clrscr();

.printf("Snachala nyjno prochitat fail\n");

.printf("Press any key to escape for menu");}

.else{

.clrscr();

.for(j=0;j!=q;j++) {

.printf("slovo %s - kol-vo: %d\n",V[j].word,V[j].num);}

.printf("Vsego slov - %d\n",*i);

.printf("Unikalnyh slov - %d",q);}

.getch();

.}

106.void Write(CNT*V,int*i,int q)

.{

.int j;

.char name[50];

.FILE *book;

.clrscr();

.if (t!=1) {

.printf("Snachala nyjno prochitat fail\n");

.printf("Press any key to escape for menu");}

.else{

.printf("Vvedite nazvanie faila i put k nemy\n");

.scanf("%s",&name);

.book=fopen(name,"wt");

.fprintf(book,"imya vhodnogo faila: %s\n",name1);

.fprintf(book,"minimalnaya dlina slov: %d\n",n);

.for(j=0;j!=q;j++) {

.fprintf(book,"slovo %s\t kol-vo: %d\n",V[j].word,V[j].num);}

.fprintf(book,"Vsego slov\t %d\n",*i);

.fprintf(book,"Unikalnyh slov\t %d",q);

.fclose(book);}

.getch();

.}

128.void Sort(CNT*V,int q)

.{

.int i,j,a;

.char b[50];

.for(i=0; i<q-1; i++){

.for(j=i+1; j<q; j++){

.if(strcmpi(V[i].word,V[j].word)>0){

.strcpy(b,V[i].word);

.strcpy(V[i].word,V[j].word);

.strcpy(V[j].word,b);

.a=V[i].num;

.V[i].num=V[j].num;

.V[j].num=a;}}}

.}

142.int main()

.{

.int w;

.setlocale(LC_ALL,"Russian");

.while(1){

.clrscr();

.printf("=============================\n");

.printf(" Kursovoi proekt\n");

.printf("Vypolnil student gryppy 12-94\n");

.printf(" Romanov A.S.\n");

.printf("=============================\n");

153.printf(" M E N U\n");

154.printf("1:Read from file\n");

.printf("2:Rezult\n");

.printf("3:Write in file\n");

.printf("4:Exit\n");

.scanf("%d",&w);

.switch(w) {

.case 1: Read(&e); Delete(&e); g=Scan(V,&e); break;

.case 2: Sort(V,g); Output(V,&e,g); break;

.case 3: Sort(V,g); Write(V,&e,g); break;

163.case 4: exit(0);}

.}

.}