fork download
  1. // Name Generator пашет криво но пашет
  2. // недоделана
  3. #include <iostream>
  4. #include <math.h>
  5. #include <time.h>
  6. #include <cstdlib>
  7. #include <string>
  8. using namespace std;
  9. class namegen
  10. {
  11. public:
  12. string name; // само имя в результате.
  13. unsigned int kolslog;// количество слогов
  14. unsigned int konec; // окончание на согласную или гласную
  15. unsigned int uklon; //уклон в гласность или согласность
  16. string s;
  17. string generator()
  18. {
  19.  
  20. for (unsigned int i=0; i<(kolslog); i++)
  21. {
  22. unsigned int a=rand()%25;
  23. if (a<6) //определяем согласная или гласная первая буква слога
  24. {//если гласная то следующая согласная
  25. name=name+s[a]+s[rand()%6+19];
  26.  
  27. }
  28. else //если согласная, то вторая может быть любой
  29. {
  30. name=name+s[a];
  31. a=rand()%25;
  32. if (a<6) // если гласная
  33. {
  34. name=name+s[a];
  35. a=rand()%6+19;
  36. name=name+s[a];
  37. }
  38. else // если согласная то третья только гласная
  39. {
  40. name=name+s[a];
  41. a=rand()%5;
  42. name=name+s[a];
  43. }
  44. }
  45.  
  46. }
  47.  
  48.  
  49. return name;
  50. }
  51. protected:
  52. string slog;// слог
  53. int a;// номер буквы в модифицированном алфавите.
  54. };
  55. int main()
  56. {
  57. string si="aeiouybcdfghjklmnpqrstvwxz";
  58. namegen n;
  59. cout << "Введите количество слогов=";
  60. cin>>n.kolslog;
  61. cout<<endl<< "Введите тип окончания гл-0 или согл-1 : ";
  62. cin>>n.konec;
  63. cout<<"Укажите уклон в гласность или согласность 0 или 1 : ";
  64. cin >>n.uklon;
  65. for (int i=0; i<25; i++)
  66. {
  67. n.s[i]=si[i];
  68. }
  69. srand (time(NULL));
  70. int a=0;
  71. while (a<10) // выдаём список из десяти имён
  72. {
  73. n.generator();
  74. cout<<n.name<<endl;
  75. n.name.clear();
  76. //n.name="";
  77. cout<<n.name[2]; // для отладки строки чтоб видеть удалилась ли она
  78. a++;
  79. }
  80. return 0;
  81. }
  82.  
Time limit exceeded #stdin #stdout 5s 4116KB
stdin
Standard input is empty
stdout
Введите количество слогов=