Solution
// Programmer: Jennifer Leopold Date: September 2, 2015
// File: hw2.cpp
// Purpose: Generate a 4-letter password where each letter is
// calculated based on user's input of brain weight,
// age, and whether s/he regularly eats glue.
//
// To compile: fg++ hw2.cpp -o hw2
//
// To execute: ./hw2
#include <iostream>
using namespace std;
int main()
{
const short HOMER_IQ = 26; // Homer's IQ
const short HOMER_DONUT_CONSUMPTION = 65; // Homer's daily donut consumption
const short AVG_GLUE_EATER_IQ = 32; // Avg IQ of people who regularly eat glue
const short K_FACTOR_INCREMENT = 100; // Amount to increment kFactor for each letter of password
short age, // user inputs
brainWeight,
regularlyEatsGlue;
bool isGlueEater; // true if regularlyEatsGlue is 1; otherwise, 0
int kFactor; // product of password const's, incremented for each letter in password
short asciiValue; // ascii value of a char
char letter; // single char of password
// Greeting
cout << "Welcome to the password generator!\n";
// Get user inputs
cout << " Enter your age: ";
cin >> age;
cout << " Enter the weight of your brain (lbs): ";
cin >> brainWeight;
cout << " Do you eat glue regularly? (1 = yes, 0 = no) ";
cin >> regularlyEatsGlue;
isGlueEater = regularlyEatsGlue == 1;
// Calculate and output each of the 4 letters of user's password
cout << "Your password is ";
kFactor = HOMER_IQ * HOMER_DONUT_CONSUMPTION * AVG_GLUE_EATER_IQ;
asciiValue = (static_cast<int>
(static_cast<float>(brainWeight) / age * kFactor) % HOMER_IQ) +
HOMER_DONUT_CONSUMPTION + (isGlueEater * AVG_GLUE_EATER_IQ);
letter = static_cast<char>(asciiValue);
cout << letter;
kFactor += K_FACTOR_INCREMENT;
asciiValue = (static_cast<int>
(static_cast<float>(brainWeight) / age * kFactor) % HOMER_IQ) +
HOMER_DONUT_CONSUMPTION + (isGlueEater * AVG_GLUE_EATER_IQ);
letter = static_cast<char>(asciiValue);
cout << letter;
kFactor += K_FACTOR_INCREMENT;
asciiValue = (static_cast<int>
(static_cast<float>(brainWeight) / age * kFactor) % HOMER_IQ) +
HOMER_DONUT_CONSUMPTION + (isGlueEater * AVG_GLUE_EATER_IQ);
letter = static_cast<char>(asciiValue);
cout << letter;
kFactor += K_FACTOR_INCREMENT;
asciiValue = (static_cast<int>
(static_cast<float>(brainWeight) / age * kFactor) % HOMER_IQ) +
HOMER_DONUT_CONSUMPTION + (isGlueEater * AVG_GLUE_EATER_IQ);
letter = static_cast<char>(asciiValue);
cout << letter;
// Sign-off
cout << "\n\nHave a nice day "
<< "and don't forget that password!\n";
return 0;
}