Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int size_str(char * str) {
- int size = 0;
- while (str[size] != 0) {
- size++;
- }
- return size;
- }
- int return_int_char_hz(char * num, int a, int b) {
- int chislo = 0;
- for (int i = 0; b >= a + i; i++) {
- chislo = chislo * 10 + (num[a + i] - 48);
- }
- return chislo;
- }
- int main() {
- char * card_num;
- char * next_card_num;
- int size_card_num;
- enter_card_number: ;
- card_num = new char[16];
- cout << "Enter card number: ";
- cin >> card_num;
- size_card_num = size_str(card_num);
- while(size_str(card_num) < 16) {
- next_card_num = new char[4];
- cin >> next_card_num;
- for(int i = 0; size_str(next_card_num) > i; i++) {
- card_num[size_card_num + i] = next_card_num[i];
- }
- size_card_num += size_str(next_card_num);
- delete next_card_num;
- }
- if (size_card_num > 16) {
- cout << "Invalid number card. Enter card number again.\n";
- delete card_num;
- goto enter_card_number;
- }
- for(int i = 0; i < 16; i++) {
- if (card_num[i] < 48 || 57 < card_num[i]) {
- cout << "Invalid number card. Enter card number again.\n";
- delete card_num;
- goto enter_card_number;
- }
- }
- // Payment system
- switch (card_num[0]) {
- case '2':
- cout << "Payment system: MIR" << endl;
- break;
- case '3':
- cout << "Payment system: American Express/Maestro/JCB International" << endl;
- break;
- case '4':
- cout << "Payment system: VISA" << endl;
- break;
- case '5':
- cout << "Payment system: MasterCard" << endl;
- break;
- case '6':
- cout << "Payment system: China UnionPay" << endl;
- break;
- case '7':
- cout << "Payment system: UEC" << endl;
- break;
- default:
- cout << "Payment system: undefined" << endl;
- break;
- }
- int num1 = return_int_char_hz(card_num, 1, 4);
- int num2 = return_int_char_hz(card_num, 1, 5);
- int ** banks = new int * [7];
- banks[0] = new int [7] {15428, 5841, 77964, 21178, 48601, 48673, 76371}; // alfabank
- banks[1] = new int [5] {27229, 47520, 27883, 6223, 2006}; // VTB24
- banks[2] = new int [6] {16792, 65204, 25744, 48265, 54373, 65203}; // MDM
- banks[3] = new int [4] {5870, 34146, 32301, 44573}; // otkritie
- banks[4] = new int [6] {47817, 47818, 76206, 76208, 54759, 20373}; // promsvyazbank
- banks[5] = new int [12] {4693, 3900, 7758, 27601, 27631, 27644, 27683, 27901, 4696, 4692, 4691, 2022}; // sberbank
- banks[6] = new int [11] {11900, 24553, 24554, 56515, 90986, 94343, 29047, 57808, 57809, 76642, 31318}; // trast
- int counts[7] = {7, 5, 6, 4, 6, 12, 11};
- int name_bank = -1;
- for (int i = 0; 7 > i; i++) {
- int count = counts[i];
- for (int j = 0; j < count; j++) {
- if (banks[i][j] == num1 || banks[i][j] == num2) {
- name_bank = i;
- }
- }
- }
- switch (name_bank) {
- case 0:
- cout << "Bank: Alfabank" << endl;
- break;
- case 1:
- cout << "Bank: VTB24" << endl;
- break;
- case 2:
- cout << "Bank: MDM" << endl;
- break;
- case 3:
- cout << "Bank: Otrkitie" << endl;
- break;
- case 4:
- cout << "Bank: Promsvyazbank" << endl;
- break;
- case 5:
- cout << "Bank: Sberbank" << endl;
- break;
- case 6:
- cout << "Bank: Trast" << endl;
- break;
- default:
- cout << "Bank: undefined" << endl;
- break;
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment