// Name Generator пашет криво но пашет
// недоделана
#include <iostream>
#include <math.h>
#include <time.h>
#include <cstdlib>
#include <string>
using namespace std;
class namegen
{
public:
string name; // само имя в результате.
unsigned int kolslog;// количество слогов
unsigned int konec; // окончание на согласную или гласную
unsigned int uklon; //уклон в гласность или согласность
string s;
string generator()
{
for (unsigned int i=0; i<(kolslog); i++)
{
unsigned int a=rand()%25;
if (a<6) //определяем согласная или гласная первая буква слога
{//если гласная то следующая согласная
name=name+s[a]+s[rand()%6+19];
}
else //если согласная, то вторая может быть любой
{
name=name+s[a];
a=rand()%25;
if (a<6) // если гласная
{
name=name+s[a];
a=rand()%6+19;
name=name+s[a];
}
else // если согласная то третья только гласная
{
name=name+s[a];
a=rand()%5;
name=name+s[a];
}
}
}
return name;
}
protected:
string slog;// слог
int a;// номер буквы в модифицированном алфавите.
};
int main()
{
string si="aeiouybcdfghjklmnpqrstvwxz";
namegen n;
cout << "Введите количество слогов=";
cin>>n.kolslog;
cout<<endl<< "Введите тип окончания гл-0 или согл-1 : ";
cin>>n.konec;
cout<<"Укажите уклон в гласность или согласность 0 или 1 : ";
cin >>n.uklon;
for (int i=0; i<25; i++)
{
n.s[i]=si[i];
}
srand (time(NULL));
int a=0;
while (a<10) // выдаём список из десяти имён
{
n.generator();
cout<<n.name<<endl;
n.name.clear();
//n.name="";
cout<<n.name[2]; // для отладки строки чтоб видеть удалилась ли она
a++;
}
return 0;
}