Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- #include <cstring>
- #include <string>
- #include <fstream>
- #pragma warning(disable : 4996)
- using namespace std;
- class vector {
- public:
- int cap;
- int size;
- char* data;
- vector() {
- cap = 32;
- size = 0;
- data = new char[cap];
- }
- void push(char key[]) {
- if (cap == size || size>cap) {
- cap += strlen(key);
- char* temp = new char[cap];
- memcpy(temp, data, sizeof(char)*size);
- delete data;
- data = temp;
- }
- if (data[0] == '0') {
- strcpy(data, key);
- size += strlen(key);
- }
- strcat(data,key);
- size+=strlen(key);
- }
- void readfile() {
- char temp[32];
- ifstream fout("data.txt");
- fout >> temp;
- push(temp);
- fout.close();
- }
- };
- class User {
- public:
- char name[32];
- char pass[32];
- bool sn = true;
- User() {
- strcpy(name, "Person");
- readfile();
- }
- static User* getinstance() {
- static User* p_instance = nullptr;
- if (!p_instance) {
- p_instance = new User();
- }
- return p_instance;
- }
- void changepass(char temp[]) {
- strcpy(pass, temp);
- recordfile();
- }
- static bool comparison(char word1[], char word2[]) {
- return strcmp(word1, word2);
- }
- static bool menucomp(char temp[]) {
- return strcmp(temp, "0");
- }
- void recordfile() {
- ofstream fin("data.txt");
- fin << pass;
- fin.close();
- }
- void readfile() {
- ifstream fout("data.txt");
- fout >> pass;
- fout.close();
- }
- ~User() {
- delete getinstance();
- }
- };
- int main()
- {
- User* obj = User::getinstance();
- vector vec;
- bool sign1 = true;
- if (obj->sn) {
- cout << "Create name: ";
- char temp[32];
- cin >> temp;
- strcpy(obj->name, temp);
- cout << "Create password: ";
- char temp2[32];
- cin >> temp2;
- strcpy(obj->pass, temp2);
- obj->recordfile();
- obj->sn = false;
- }
- while (sign1) {
- cout << "Press 0 to exit\nPassword can consist only numbers\n";
- cout << "User:" << obj->name << endl;
- cout << "Enter password: ";
- char temp[32] = " ";
- cin >> temp;
- vec.readfile();
- if (!User::menucomp(temp)) {
- return 0;
- }
- if (!User::comparison(vec.data, temp)) {
- cout << endl;
- cout << "Now you can change password" << endl;
- cout << "Press 0 to exit, 1 to change password\n";
- int n1 = 0;
- cin >> n1;
- bool sign2 = true;
- while (sign2) {
- switch (n1) {
- case 0: {
- sign2 = false;
- sign1 = false;
- break;
- }
- case 1: {
- cout << "Enter new password\n After you will press enter, programm will close\n";
- char temp2[32] = " ";
- cin >> temp2;
- obj->changepass(temp2);
- sign1 = false;
- sign2 = false;
- break;
- }
- default: {
- cout << "You entered wrong command" << endl;
- }
- }
- }
- }
- else {
- cout << "You entered wrong password" << endl;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement