Professional Documents
Culture Documents
#include <cmath>
#include <cassert>
using namespace std;
void test_authorize_user ( );
bool authorize_user (int);
void decode_line( );
char compute_key();
char decode_word(int, char, char, char, char);
int main ( )
{
int ID_number;
// test_authorize_user( );
\
if (authorize_user(ID_number))
{
cout << endl << "Welcome, " << ID_number << endl;
cout << "*** Ready to decode messages ***" << endl;
decode_line ();
cout << endl;
decode_line ();
cout << endl;
// cout << endl;
\
}
else
{
cout << endl << "Sorry, " << ID_number << " is not valid." << endl;
cout << "You are not authorized to use this program." << endl;
}
return 0;
}
//******************************************************************
\
void decode_line ( )
{
//cout << "decode_line stub -- coming soon" << endl;
compute_key();
//decode_word ();
return;
}
//******************************************************************
\
char compute_key()
{
char first_letter;
char first_integer;
char second_letter;
char second_integer;
char third_letter;
char third_integer;
char fourth_letter;
int key_three_digits;
int key_three_digits_cubed;
int key_fifth_sixth_decimal_digits;
int key_fifth_sixth_digits;
int key_fifth_digit;
int key_sixth_digit;
int key;
// ASCII - 48
int ascii_one;
int ascii_two;
int ascii_three;
char letters;
cin >> first_letter >> first_integer >> second_letter >> second_integer >>
third_letter >> third_integer >> fourth_letter;
return letters;
}
char final_first_letter;
char final_second_letter;
char final_third_letter;
char final_fourth_letter;
char all;
final_first_letter = (static_cast<char>(ascii_first_letter));
final_second_letter = (static_cast<char>(ascii_second_letter));
final_third_letter = (static_cast<char>(ascii_third_letter));
final_fourth_letter = (static_cast<char>(ascii_fourth_letter));
return all;
}
int seventh_digit;
int remaining_six_digits;
int sixth_digit;
int remaining_five_digits;
int fifth_digit;
int remaining_four_digits;
int middle_digits;
int remaining_two_digits;
int second_digit;
int first_digit;
int total;
int check_digit;
seventh_digit = ID / 1000000;
remaining_six_digits = ID % 1000000;
sixth_digit = remaining_six_digits / 100000;
remaining_five_digits = remaining_six_digits % 100000;
fifth_digit = remaining_five_digits / 10000;
remaining_four_digits = remaining_five_digits % 10000;
middle_digits = remaining_four_digits / 100;
remaining_two_digits = remaining_four_digits % 100;
second_digit = remaining_two_digits / 10;
first_digit = remaining_two_digits % 10;
}
else
{
correct_user = true;
}
return correct_user;
}
//******************************************************************
\
void test_authorize_user ( )
{
cout << "ID = " << 7327185 << " is not valid *** authorize_user says:"
<< endl;
assert (authorize_user (7327185) == false);
cout << "\t\tinvalid - Test passed" << endl;
cout << "ID = " << 7237185 << " is valid *** authorize_user says:" << endl;
assert (authorize_user (7237185) == true);
cout << "\t\tvalid - Test passed" << endl;
cout << "ID = " << 111111 << " is not valid *** authorize_user says:"
<< endl;
assert (authorize_user (111111) == false);
cout << "\t\tinvalid - Test passed" << endl;
cout << "ID = " << 123456789 << " is not valid *** authorize_user says:"
<< endl;
assert (authorize_user (123456789) == false);
cout << "\t\tinvalid - Test passed" << endl;
cout << "ID = " << 10111118 << " is not valid *** authorize_user says:"
<< endl;
assert (authorize_user (10111118) == false);
cout << "\t\tinvalid - Test passed" << endl;
cout << "ID = " << 3111111 << " is valid *** authorize_user says:" << endl;
assert (authorize_user (3111111) == true);
cout << "\t\tvalid - Test passed" << endl;
return;
}