Advertisement
Guest User

proga

a guest
Jan 24th, 2020
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <cstring>
  4. #include <string>
  5. #include <fstream>
  6. #pragma warning(disable : 4996)
  7. using namespace std;
  8.  
  9. class vector {
  10. public:
  11. int cap;
  12. int size;
  13. char* data;
  14. vector() {
  15. cap = 32;
  16. size = 0;
  17. data = new char[cap];
  18. }
  19. void push(char key[]) {
  20. if (cap == size || size>cap) {
  21. cap += strlen(key);
  22. char* temp = new char[cap];
  23. memcpy(temp, data, sizeof(char)*size);
  24. delete data;
  25. data = temp;
  26. }
  27. if (data[0] == '0') {
  28. strcpy(data, key);
  29. size += strlen(key);
  30. }
  31. strcat(data,key);
  32. size+=strlen(key);
  33. }
  34. void readfile() {
  35. char temp[32];
  36. ifstream fout("data.txt");
  37. fout >> temp;
  38. push(temp);
  39. fout.close();
  40. }
  41. };
  42. class User {
  43. public:
  44. char name[32];
  45. char pass[32];
  46. bool sn = true;
  47. User() {
  48. strcpy(name, "Person");
  49. readfile();
  50. }
  51. static User* getinstance() {
  52. static User* p_instance = nullptr;
  53. if (!p_instance) {
  54. p_instance = new User();
  55. }
  56. return p_instance;
  57. }
  58. void changepass(char temp[]) {
  59. strcpy(pass, temp);
  60. recordfile();
  61. }
  62. static bool comparison(char word1[], char word2[]) {
  63. return strcmp(word1, word2);
  64. }
  65. static bool menucomp(char temp[]) {
  66. return strcmp(temp, "0");
  67. }
  68. void recordfile() {
  69. ofstream fin("data.txt");
  70. fin << pass;
  71. fin.close();
  72. }
  73. void readfile() {
  74. ifstream fout("data.txt");
  75. fout >> pass;
  76. fout.close();
  77. }
  78. ~User() {
  79. delete getinstance();
  80. }
  81. };
  82.  
  83. int main()
  84. {
  85. User* obj = User::getinstance();
  86. vector vec;
  87. bool sign1 = true;
  88.  
  89. if (obj->sn) {
  90. cout << "Create name: ";
  91. char temp[32];
  92. cin >> temp;
  93. strcpy(obj->name, temp);
  94. cout << "Create password: ";
  95. char temp2[32];
  96. cin >> temp2;
  97. strcpy(obj->pass, temp2);
  98. obj->recordfile();
  99. obj->sn = false;
  100. }
  101. while (sign1) {
  102. cout << "Press 0 to exit\nPassword can consist only numbers\n";
  103. cout << "User:" << obj->name << endl;
  104. cout << "Enter password: ";
  105. char temp[32] = " ";
  106. cin >> temp;
  107. vec.readfile();
  108. if (!User::menucomp(temp)) {
  109. return 0;
  110. }
  111. if (!User::comparison(vec.data, temp)) {
  112. cout << endl;
  113. cout << "Now you can change password" << endl;
  114. cout << "Press 0 to exit, 1 to change password\n";
  115. int n1 = 0;
  116. cin >> n1;
  117. bool sign2 = true;
  118. while (sign2) {
  119. switch (n1) {
  120. case 0: {
  121. sign2 = false;
  122. sign1 = false;
  123. break;
  124. }
  125. case 1: {
  126. cout << "Enter new password\n After you will press enter, programm will close\n";
  127. char temp2[32] = " ";
  128. cin >> temp2;
  129. obj->changepass(temp2);
  130. sign1 = false;
  131. sign2 = false;
  132. break;
  133. }
  134. default: {
  135. cout << "You entered wrong command" << endl;
  136. }
  137. }
  138. }
  139. }
  140. else {
  141. cout << "You entered wrong password" << endl;
  142. }
  143. }
  144. return 0;
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement