/* Mike Riggio 9/23/2000 TA: 67-2 Lab3 ----------- Method: ----------- Testing: ----------- */ #include #include #include using namespace std; int getHouseNum(); string getHouseAve(); int calcCrossStreet(int, string); int calcFifth(int); main(){ //variables int houseNum; string houseAve; int crossStreet; houseNum = getHouseNum(); houseAve = getHouseAve(); crossStreet = calcCrossStreet(houseNum, houseAve); if(crossStreet != -1){ //display address and nearest cross street cout<>houseNum; return houseNum; } string getHouseAve(){ //prompts user for the house avenue string houseAve; cout<<"What is the house avenue? "; cin>>houseAve; return houseAve; } int calcCrossStreet(int houseNum, string houseAve){ int fifth; if(houseNum > 0){ switch(static_cast(houseAve)){ case 'a': case 'A': case 'b': case 'B': case 'c': case 'C': case 'd': case 'D': case '1': case '2': return ((houseNum / 10) / 2) + 3; case '3': return ((houseNum / 10) / 2) + 10; case '4': return ((houseNum / 10) / 2) + 8; case '5': fifth = calcFifth(houseNum); if(fifth != -1) return -1; else return fifth; case '6': return ((houseNum / 10) / 2) + 17; case '7': return ((houseNum / 10) / 2) + 3; case '8': return ((houseNum / 10) / 2) + 10; case '9': return ((houseNum / 10) / 2) + 13; case 't': case 'T': return ((houseNum / 10) / 2) + 14; default: return -1; }//end switch statement }else return -1; }//end calcCrossStreet int calcFifth(int houseNum){ if(houseNum <= 200) return ((houseNum / 10) / 2) + 13; else if(houseNum > 200 && houseNum <= 400) return ((houseNum / 10) / 2) + 16; else if(houseNum > 400 && houseNum <= 600) return ((houseNum / 10) / 2) + 18; else if(houseNum > 600 && houseNum <= 775) return ((houseNum / 10) / 2) + 20; else if(houseNum > 775 && houseNum <= 1286) return (houseNum / 10) - 13; else if(houseNum > 1286 && houseNum <= 1500) return ((houseNum / 10) / 2) + 45; else if(houseNum >= 2000) return ((houseNum / 10) / 2) + 24; else return -1; }