Solution
//Programmer: Bushra Anjum date: 2-5-15
//File: hw3.cpp
//Purpose: This file contains the main function for the program
// that will input information about a crime and two perps and
// output the most likely perp for that crime.
# include <iostream>
# include <string>
using namespace std;
int main()
{
//Constants and Variable Declaration
const int A_PARANOID_NARCISSISTIC_MURDER = 3,
A_PARANOID_NARCISSISTIC_ROBBERY = 12,
A_PARANOID_SADISTIC_MURDER = 4,
A_PARANOID_SADISTIC_ROBBERY = 1,
A_SCHIZOID_DEPRESSIVE_MURDER = 5,
A_SCHIZOID_DEPRESSIVE_ROBBERY = 3,
A_SCHIZOID_COMPULSIVE_MURDER = 3,
A_SCHIZOID_COMPULSIVE_ROBBERY = 7,
B_ANTISOCIAL_AVOIDANT_MURDER = 2,
B_ANTISOCIAL_AVOIDANT_ROBBERY = 8,
B_ANTISOCIAL_CREEPY_MURDER = 9,
B_ANTISOCIAL_CREEPY_ROBBERY = 3,
B_JUST_A_JERK_STUPID_MURDER = 12,
B_JUST_A_JERK_STUPID_ROBBERY = 22,
B_JUST_A_JERK_WEIRDO_MURDER = 33,
B_JUST_A_JERK_WEIRDO_ROBBERY = 45;
string name;
char crime;
char cluster1, personalityDisorder1, feature1;
char cluster2, personalityDisorder2, feature2;
int probabilityPerp1, probabilityPerp2;
//Greetings and Ask for Name
cout<<"\n\nHello there ... may I know your name: ";
cin>>name;
//Get crime name from user (Murder or Robbery)
cout<<"\n\nWelcome "<<name<<" what crime are you interested in?";
cout<<"\n\tFor Murder, enter 1\n\tFor Robbery, enter 2\n";
cin>>crime;
//Making sure correct crime number is entered (1 or 2)
while(crime!='1' && crime!='2')
{
cout<<"\n\nInvalid Entry, lets try again";
cout<<"\n\tFor Murder, enter 1\n\tFor Robbery, enter 2\n";
cin>>crime;
}
//Get input for perp 1 (cluster, disorder, feature)
cout<<"\n\nLets get some information on the first perp\n";
cout<<"\n\tFor Odd Disorders, enter A\n\tFor Dramato-Erratic, enter B\n";
cin>>cluster1;
//Making sure correct cluster name is entered (A or B)
while(cluster1!='A' && cluster1!='B')
{
cout<<"\n\nInvalid Entry, lets try again";
cout<<"\n\tFor Odd Disorders, enter A\n\tFor Dramato-Erratic, enter B\n";
cin>>cluster1;
}
//Based on cluster, get information on Personality Disorder
if(cluster1 == 'A')
{
cout<<"\n\tFor Paranoid, enter 1\n\tFor Schizoid, enter 2\n";
cin>>personalityDisorder1;
//Making sure correct personalityDisorder number is entered (1 or 2)
while(personalityDisorder1!='1' && personalityDisorder1!='2')
{
cout<<"\n\nInvalid Entry, lets try again";
cout<<"\n\tFor Paranoid, enter 1\n\tFor Schizoid, enter 2\n";
cin>>personalityDisorder1;
}
if(personalityDisorder1=='1')//Paranoid
{
cout<<"\n\tFor Narcissistic, enter 1\n\tFor Sadistic, enter 2\n";
cin>>feature1;
//Making sure correct feature number is entered (1 or 2)
while(feature1!='1' && feature1!='2')
{
cout<<"\n\nInvalid Entry, lets try again";
cout<<"\n\tFor Narcissistic, enter 1\n\tFor Sadistic, enter 2\n";
cin>>feature1;
}
//Store Crime Probability for Perp1
if(feature1=='1' && crime=='1')
probabilityPerp1 = A_PARANOID_NARCISSISTIC_MURDER;
else if(feature1=='1' && crime=='2')
probabilityPerp1 = A_PARANOID_NARCISSISTIC_ROBBERY;
else if(feature1=='2' && crime=='1')
probabilityPerp1 = A_PARANOID_SADISTIC_MURDER;
else
probabilityPerp1 = A_PARANOID_SADISTIC_ROBBERY;
}
else//Schizoid
{
cout<<"\n\tFor Depressive, enter 1\n\tFor Compulsive, enter 2\n";
cin>>feature1;
//Making sure correct feature number is entered (1 or 2)
while(feature1!='1' && feature1!='2')
{
cout<<"\n\nInvalid Entry, lets try again";
cout<<"\n\tFor Depressive, enter 1\n\tFor Compulsive, enter 2\n";
cin>>feature1;
}
//Store Crime Probability for Perp1
if(feature1=='1' && crime=='1')
probabilityPerp1 = A_SCHIZOID_DEPRESSIVE_MURDER;
else if(feature1=='1' && crime=='2')
probabilityPerp1 = A_SCHIZOID_DEPRESSIVE_ROBBERY;
else if(feature1=='2' && crime=='1')
probabilityPerp1 = A_SCHIZOID_COMPULSIVE_MURDER;
else
probabilityPerp1 = A_SCHIZOID_COMPULSIVE_ROBBERY;
}
}
else//cluster B
{
cout<<"\n\tFor Antisocial, enter 1\n\tFor Just A Jerk, enter 2\n";
cin>>personalityDisorder1;
//Making sure correct personalityDisorder number is entered (1 or 2)
while(personalityDisorder1!='1' && personalityDisorder1!='2')
{
cout<<"\n\nInvalid Entry, lets try again";
cout<<"\n\tFor Antisocial, enter 1\n\tFor Just A Jerk, enter 2\n";
cin>>personalityDisorder1;
}
if(personalityDisorder1=='1')//Antisocial
{
cout<<"\n\tFor Avoidant, enter 1\n\tFor Creepy, enter 2\n";
cin>>feature1;
//Making sure correct feature number is entered (1 or 2)
while(feature1!='1' && feature1!='2')
{
cout<<"\n\nInvalid Entry, lets try again";
cout<<"\n\tFor Avoidant, enter 1\n\tFor Creepy, enter 2\n";
cin>>feature1;
}
//Store Crime Probability for Perp1
if(feature1=='1' && crime=='1')
probabilityPerp1 = B_ANTISOCIAL_AVOIDANT_MURDER;
else if(feature1=='1' && crime=='2')
probabilityPerp1 = B_ANTISOCIAL_AVOIDANT_ROBBERY;
else if(feature1=='2' && crime=='1')
probabilityPerp1 = B_ANTISOCIAL_CREEPY_MURDER;
else
probabilityPerp1 = B_ANTISOCIAL_CREEPY_ROBBERY;
}
else//Just a Jerk
{
cout<<"\n\tFor Stupid, enter 1\n\tFor Weirdo, enter 2\n";
cin>>feature1;
//Making sure correct feature number is entered (1 or 2)
while(feature1!='1' && feature1!='2')
{
cout<<"\n\nInvalid Entry, lets try again";
cout<<"\n\tFor Stupid, enter 1\n\tFor Weirdo, enter 2\n";
cin>>feature1;
}
//Store Crime Probability for Perp1
if(feature1=='1' && crime=='1')
probabilityPerp1 = B_JUST_A_JERK_STUPID_MURDER;
else if(feature1=='1' && crime=='2')
probabilityPerp1 = B_JUST_A_JERK_STUPID_ROBBERY;
else if(feature1=='2' && crime=='1')
probabilityPerp1 = B_JUST_A_JERK_WEIRDO_MURDER;
else
probabilityPerp1 = B_JUST_A_JERK_WEIRDO_ROBBERY;
}
}
//Get input for perp 2 (cluster, disorder, feature)
cout<<"\n\nLets get some information on the second perp\n";
cout<<"\n\tFor Odd Disorders, enter A\n\tFor Dramato-Erratic, enter B\n";
cin>>cluster2;
//Making sure correct cluster name is entered (A or B)
while(cluster2!='A' && cluster2!='B')
{
cout<<"\n\nInvalid Entry, lets try again";
cout<<"\n\tFor Odd Disorders, enter A\n\tFor Dramato-Erratic, enter B\n";
cin>>cluster2;
}
//Based on cluster, get information on Personality Disorder
if(cluster2 == 'A')
{
cout<<"\n\tFor Paranoid, enter 1\n\tFor Schizoid, enter 2\n";
cin>>personalityDisorder2;
//Making sure correct personalityDisorder number is entered (1 or 2)
while(personalityDisorder2!='1' && personalityDisorder2!='2')
{
cout<<"\n\nInvalid Entry, lets try again";
cout<<"\n\tFor Paranoid, enter 1\n\tFor Schizoid, enter 2\n";
cin>>personalityDisorder2;
}
if(personalityDisorder2=='1')//Paranoid
{
cout<<"\n\tFor Narcissistic, enter 1\n\tFor Sadistic, enter 2\n";
cin>>feature2;
//Making sure correct feature number is entered (1 or 2)
while(feature2!='1' && feature2!='2')
{
cout<<"\n\nInvalid Entry, lets try again";
cout<<"\n\tFor Narcissistic, enter 1\n\tFor Sadistic, enter 2\n";
cin>>feature2;
}
//Store Crime Probability for Perp1
if(feature2=='1' && crime=='1')
probabilityPerp2 = A_PARANOID_NARCISSISTIC_MURDER;
else if(feature2=='1' && crime=='2')
probabilityPerp2 = A_PARANOID_NARCISSISTIC_ROBBERY;
else if(feature2=='2' && crime=='1')
probabilityPerp2 = A_PARANOID_SADISTIC_MURDER;
else
probabilityPerp2 = A_PARANOID_SADISTIC_ROBBERY;
}
else//Schizoid
{
cout<<"\n\tFor Depressive, enter 1\n\tFor Compulsive, enter 2\n";
cin>>feature2;
//Making sure correct feature number is entered (1 or 2)
while(feature2!='1' && feature2!='2')
{
cout<<"\n\nInvalid Entry, lets try again";
cout<<"\n\tFor Depressive, enter 1\n\tFor Compulsive, enter 2\n";
cin>>feature2;
}
//Store Crime Probability for Perp1
if(feature2=='1' && crime=='1')
probabilityPerp2 = A_SCHIZOID_DEPRESSIVE_MURDER;
else if(feature2=='1' && crime=='2')
probabilityPerp2 = A_SCHIZOID_DEPRESSIVE_ROBBERY;
else if(feature2=='2' && crime=='1')
probabilityPerp2 = A_SCHIZOID_COMPULSIVE_MURDER;
else
probabilityPerp2 = A_SCHIZOID_COMPULSIVE_ROBBERY;
}
}
else//cluster B
{
cout<<"\n\tFor Antisocial, enter 1\n\tFor Just A Jerk, enter 2\n";
cin>>personalityDisorder2;
//Making sure correct personalityDisorder number is entered (1 or 2)
while(personalityDisorder2!='1' && personalityDisorder2!='2')
{
cout<<"\n\nInvalid Entry, lets try again";
cout<<"\n\tFor Antisocial, enter 1\n\tFor Just A Jerk, enter 2\n";
cin>>personalityDisorder2;
}
if(personalityDisorder2=='1')//Antisocial
{
cout<<"\n\tFor Avoidant, enter 1\n\tFor Creepy, enter 2\n";
cin>>feature2;
//Making sure correct feature number is entered (1 or 2)
while(feature2!='1' && feature2!='2')
{
cout<<"\n\nInvalid Entry, lets try again";
cout<<"\n\tFor Avoidant, enter 1\n\tFor Creepy, enter 2\n";
cin>>feature2;
}
//Store Crime Probability for Perp2
if(feature2=='1' && crime=='1')
probabilityPerp2 = B_ANTISOCIAL_AVOIDANT_MURDER;
else if(feature2=='1' && crime=='2')
probabilityPerp2 = B_ANTISOCIAL_AVOIDANT_ROBBERY;
else if(feature2=='2' && crime=='1')
probabilityPerp2 = B_ANTISOCIAL_CREEPY_MURDER;
else
probabilityPerp2 = B_ANTISOCIAL_CREEPY_ROBBERY;
}
else//Just a Jerk
{
cout<<"\n\tFor Stupid, enter 1\n\tFor Weirdo, enter 2\n";
cin>>feature2;
//Making sure correct feature number is entered (1 or 2)
while(feature2!='1' && feature2!='2')
{
cout<<"\n\nInvalid Entry, lets try again";
cout<<"\n\tFor Stupid, enter 1\n\tFor Weirdo, enter 2\n";
cin>>feature2;
}
//Store Crime Probability for Perp2
if(feature2=='1' && crime=='1')
probabilityPerp2 = B_JUST_A_JERK_STUPID_MURDER;
else if(feature2=='1' && crime=='2')
probabilityPerp2 = B_JUST_A_JERK_STUPID_ROBBERY;
else if(feature2=='2' && crime=='1')
probabilityPerp2 = B_JUST_A_JERK_WEIRDO_MURDER;
else
probabilityPerp2 = B_JUST_A_JERK_WEIRDO_ROBBERY;
}
}
//Display output to the user
cout<<"\n\nBased on Extensive Analysis and Calculations, the Probabilities are";
cout<<"\n\tPerp 1 is guilty: "<<probabilityPerp1<<"%";
cout<<"\n\tPerp 2 is guilty: "<<probabilityPerp2<<"%";
if(probabilityPerp1>probabilityPerp2)
{
cout<<"\nPerp1 is the guy who did it!!!\n\n";
}
else
{
cout<<"\nPerp2 is the guy who did it!!!\n\n";
}
cout<<"\n\nSigning off now ... \n";
return 0;
}