Решите задачку.... С++
Добавлено: 11 май 2010, 16:19
Всем привет!! )) У меня вот есть две программки, нужно их собрать в одну..
Чтобы программа выводила список файлов и для каждого наиболее встречающийся в нем символ и его процентное содержание...
Вот эта выводит список файлов в указанной директории и сортирует по названию...
[CPP]#include <stdafx.h>
#include <windows.h>
#include <string.h>
#include <iostream>
//#include <vcl.h>
#include <conio.h>
using namespace std;
#define len 100
void main()
{
char dir[256];
char temp[256];
char **mass;
int kol=-2,i,j,max;
WIN32_FIND_DATA FindData;
HANDLE MyFile;
cout << "\bInput directory: ";
cin >> dir;
if(!SetCurrentDirectory(dir))
{
cout << "\nNe ydayetsya nayti directoriyu.";
getch();
return;
}
MyFile = FindFirstFile ("*.*", &FindData);
if (MyFile != INVALID_HANDLE_VALUE)
{
do
{
kol++;
}
while (FindNextFile (MyFile, &FindData));
FindClose (MyFile);
}
mass = new char* [kol];
for(i=0;i<kol;i++)
mass = new char [255];
i=0;
MyFile = FindFirstFile ("*.*", &FindData);
FindNextFile (MyFile, &FindData);
FindNextFile (MyFile, &FindData);
do
{
strcpy(mass,FindData.cFileName);
i++;
}
while (FindNextFile (MyFile, &FindData));
FindClose (MyFile);
for (int k=0;k<kol;k++)
{
for(int u=0;u<kol;u++)
if(strcmp(mass[k],mass)<0)
{
strcpy(temp,mass[k]);
strcpy(mass[k],mass);
strcpy(mass,temp);
}
}
cout << endl;
for(i=0;i<kol;i++)
cout <<mass<<endl;
getch();
for(i=0;i<kol;i++)
delete []mass;
delete []mass;
}[/CPP]
И вот вторая - находит наиболее встречающийся символ в названии, выводит его и его процентное содержание...
[CPP]int CalculationSymbols()
{
char s[len];
fgets( s, len, stdin );
int p[256];
int i, num;
for (i = 0; i< 256; i++) p = 0;
for (i = 0; i < strlen(s); i++)
p[int(s)]++;
int max = 0;
for (i = 0; i < 256; i++)
if (p>max)
{
max = p;
num = i;
}
printf("Буква: %S\n\n", num);
double res;
double rez;
res=strlen(s);
rez=(max*100)/res;
printf("Процентное содержание: %f\n\n", rez);
getchar();
return 0;
}[/CPP]
Помогите пожалуйста!!! ))) Очень надо!!!
Надо за сегодняшнюю ночь!!! Чтоб ночью она готова была!! ))
По поводу цены лучше писать на сот. 89029198585
Чтобы программа выводила список файлов и для каждого наиболее встречающийся в нем символ и его процентное содержание...
Вот эта выводит список файлов в указанной директории и сортирует по названию...
[CPP]#include <stdafx.h>
#include <windows.h>
#include <string.h>
#include <iostream>
//#include <vcl.h>
#include <conio.h>
using namespace std;
#define len 100
void main()
{
char dir[256];
char temp[256];
char **mass;
int kol=-2,i,j,max;
WIN32_FIND_DATA FindData;
HANDLE MyFile;
cout << "\bInput directory: ";
cin >> dir;
if(!SetCurrentDirectory(dir))
{
cout << "\nNe ydayetsya nayti directoriyu.";
getch();
return;
}
MyFile = FindFirstFile ("*.*", &FindData);
if (MyFile != INVALID_HANDLE_VALUE)
{
do
{
kol++;
}
while (FindNextFile (MyFile, &FindData));
FindClose (MyFile);
}
mass = new char* [kol];
for(i=0;i<kol;i++)
mass = new char [255];
i=0;
MyFile = FindFirstFile ("*.*", &FindData);
FindNextFile (MyFile, &FindData);
FindNextFile (MyFile, &FindData);
do
{
strcpy(mass,FindData.cFileName);
i++;
}
while (FindNextFile (MyFile, &FindData));
FindClose (MyFile);
for (int k=0;k<kol;k++)
{
for(int u=0;u<kol;u++)
if(strcmp(mass[k],mass)<0)
{
strcpy(temp,mass[k]);
strcpy(mass[k],mass);
strcpy(mass,temp);
}
}
cout << endl;
for(i=0;i<kol;i++)
cout <<mass<<endl;
getch();
for(i=0;i<kol;i++)
delete []mass;
delete []mass;
}[/CPP]
И вот вторая - находит наиболее встречающийся символ в названии, выводит его и его процентное содержание...
[CPP]int CalculationSymbols()
{
char s[len];
fgets( s, len, stdin );
int p[256];
int i, num;
for (i = 0; i< 256; i++) p = 0;
for (i = 0; i < strlen(s); i++)
p[int(s)]++;
int max = 0;
for (i = 0; i < 256; i++)
if (p>max)
{
max = p;
num = i;
}
printf("Буква: %S\n\n", num);
double res;
double rez;
res=strlen(s);
rez=(max*100)/res;
printf("Процентное содержание: %f\n\n", rez);
getchar();
return 0;
}[/CPP]
Помогите пожалуйста!!! ))) Очень надо!!!
Надо за сегодняшнюю ночь!!! Чтоб ночью она готова была!! ))
По поводу цены лучше писать на сот. 89029198585