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;

}