Advertisement
Guest User

Untitled

a guest
Nov 20th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. #include <iostream>
  2. #include <ctime>
  3. #include <time.h>
  4. #include <ctime>
  5. #include <string>
  6. #include <cstring>
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include <iterator>
  10.  
  11. /*
  12. Rodné číslo v1.0 - aktuální rok získaný ze systému
  13. - Vývojové prostředí: Code::Blocks, Dev-C++.
  14. */
  15.  
  16. using namespace std;
  17. string jmeno;
  18. string prijmeni;
  19. char rodneCisloCHAR[12];
  20. int rcint[11];
  21. string pohlavi;
  22. int suda, licha;
  23. int charlenght;
  24. int nowYear;
  25. string mesice[12] = { "leden", "únor", "březen", "duben", "květen", "červen", "červenec", "srpen", "září", "říjen", "listopad", "prosinec", };
  26.  
  27. int main() {
  28. void vypisText(void);
  29. void prubeh(void);
  30. bool opakovac = true;
  31.  
  32. char odpoved;
  33. while (opakovac) {
  34. prubeh();
  35.  
  36. cout << "\n\nChceš opakovat? (Y/N)\nvolba: ";
  37. cin >> odpoved;
  38. toupper(odpoved);
  39. opakovac = odpoved == 'y' ? true : false;
  40. }
  41.  
  42. return 0;
  43. }
  44.  
  45. void vypisText() {
  46. system("cls");
  47. setlocale(LC_ALL, "");
  48. cout << "*******************************\n";
  49. cout << " Práce z rodným číslem \n";
  50. cout << "*******************************\n";
  51. cout << " \n";
  52. cout << " \n";
  53. }
  54.  
  55. void prubeh() {
  56. jmeno = " ";
  57. prijmeni = " ";
  58. pohlavi = " ";
  59. suda = 0;
  60. licha = 0;
  61. charlenght = 0;
  62. void vypisText(void);
  63. int count(char[]);
  64. time_t theTime = time(NULL);
  65. struct tm *aTime = localtime(&theTime);
  66. nowYear = aTime->tm_year + 1900;
  67.  
  68. vypisText();
  69. cout << "Zadej svoje jméno: ";
  70. cin >> jmeno;
  71. vypisText();
  72. cout << "Zadej svoje příjmení: ";
  73. cin >> prijmeni;
  74.  
  75. vypisText();
  76. bool opakovat = true;
  77. back:
  78. for (int i = 0; i < 10; i++) {
  79. rcint[i] = 0;
  80. rodneCisloCHAR[i] = '0';
  81. }
  82. while (opakovat) {
  83. vypisText();
  84. cout << "Jaké je tvoje rodné číslo: ";
  85. cin >> rodneCisloCHAR;
  86. charlenght = count(rodneCisloCHAR);
  87. if ((charlenght == 11) && (rodneCisloCHAR[6] == '/')) {
  88. for (int i = 0; i < 10; i++) {
  89. if (i > 5) rcint[i] = rodneCisloCHAR[i + 1] - 48;
  90. else rcint[i] = rodneCisloCHAR[i] - 48;
  91. }
  92. }
  93. else if (charlenght == 10) {
  94. for (int i = 0; i < 10; i++)
  95. rcint[i] = rodneCisloCHAR[i] - 48;
  96. }
  97. else goto back;
  98.  
  99. for (int i = 0; i < 10; i++)
  100. (i % 2) == 0 ? suda += rcint[i] : licha += rcint[i];
  101.  
  102.  
  103. if (((suda % licha) == 0) || ((licha % suda) == 0)) break;
  104. else goto back;
  105. }
  106. opakovat = true;
  107.  
  108. int rok = ((rcint[0] * 10) + rcint[1]) + 2000;
  109. if (rok > nowYear) rok = (rok - 2000) + 1900;
  110. int den = (rcint[4] * 10) + rcint[5];
  111. int mesic = (rcint[2] * 10) + rcint[3];
  112. mesic > 12 ? pohlavi = "žena" : pohlavi = "muž";
  113. if (pohlavi == "žena") mesic = mesic - 50;
  114.  
  115. vypisText();
  116. cout << "Jméno: " << jmeno << "\n";
  117. cout << "Příjmení: " << prijmeni << "\n";
  118. cout << "Datum narození: " << den << ". " << mesice[mesic - 1] << ", " << rok << "\n";
  119. cout << "Pohlaví: " << pohlavi << "\n";
  120. cout << "Aktuální věk: " << nowYear - rok << " \n";
  121. }
  122.  
  123. int count(char arr[]) {
  124. int i = 0;
  125. while (arr[i]) i++;
  126. return i;
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement