Создание приложения "Подсчет частоты введенных слов в текстовом файле"
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
ия на Си: Хранение и обработка данных - Си, Проектирование программ - Си, Численные методы - Си, Целочисленные алгоритмы - Си, Динамические структуры данных - Си. 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);}
.}
.}