Difference between revisions of "Numerology with Methods"
m |
m |
||
Line 43: | Line 43: | ||
{ | { | ||
// calculate sum from name | // calculate sum from name | ||
− | + | public static int calculateString(String origName) | |
+ | { | ||
+ | String upperName = origName.toUpperCase(); | ||
+ | int sum = 0; | ||
+ | char curr = ' '; | ||
+ | |||
+ | for (int r = 0; r < upperName.length(); r++) | ||
{ | { | ||
− | + | curr = upperName.charAt(r); | |
− | + | ||
− | + | ||
− | + | if (curr == 'A' || curr == 'J' || curr == 'S') | |
− | + | sum += 1; | |
− | + | else if (curr == 'B' || curr == 'K' || curr == 'T') | |
− | + | sum += 2; | |
− | + | else if (curr == 'C' || curr == 'L' || curr == 'U') | |
− | + | sum += 3; | |
− | + | else if (curr == 'D' || curr == 'M' || curr == 'V') | |
− | + | sum += 4; | |
− | + | else if (curr == 'E' || curr == 'N' || curr == 'W') | |
− | + | sum += 5; | |
− | + | else if (curr == 'F' || curr == 'O' || curr == 'X') | |
− | + | sum += 6; | |
− | + | else if (curr == 'G' || curr == 'P' || curr == 'Y') | |
− | + | sum += 7; | |
− | + | else if (curr == 'H' || curr == 'Q' || curr == 'Z') | |
− | + | sum += 8; | |
− | + | else if (curr == 'I' || curr == 'R') | |
− | + | sum += 9; | |
− | + | } | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
return(sum); | return(sum); | ||
− | + | } | |
− | + | // collapse sum into destiny number | |
− | + | public static int collapseInt(int origNum) | |
+ | { | ||
+ | int result = 0; | ||
+ | int remaining = origNum; | ||
+ | |||
+ | while(remaining > 0) | ||
{ | { | ||
− | + | result += remaining % 10; | |
− | + | remaining /= 10; | |
+ | } | ||
− | + | return(result); | |
− | + | } | |
− | + | ||
− | + | ||
− | + | ||
− | + | // display destiny message | |
− | + | public static void displayDestiny(String name,int destiny) | |
− | + | { | |
− | + | if(destiny == 1) | |
− | + | System.out.println(name + " (1) is ambitious, independent, and self-sufficient."); | |
− | + | else if(destiny == 2) | |
− | + | System.out.println(name + " (2) is supportive, diplomatic, and analytica."); | |
− | + | else if(destiny == 3) | |
− | + | System.out.println(name + " (3) is enthusiastic, optimistic, and fun-lovin."); | |
− | + | else if(destiny == 4) | |
− | + | System.out.println(name + " (4) is practical, traditional, and serious."); | |
− | + | else if(destiny == 5) | |
− | + | System.out.println(name + " (5) is adventurous, mercurial, and sensual."); | |
− | + | else if(destiny == 6) | |
− | + | System.out.println(name + " (6) is responsible, careful, and domestic."); | |
− | + | else if(destiny == 7) | |
− | + | System.out.println(name + " (7) is spiritual, eccentric, and a bit of a loner."); | |
− | + | else if(destiny == 8) | |
− | + | System.out.println(name + " (8) is money-oriented, decisive, and stern."); | |
− | + | else if(destiny == 9) | |
− | + | System.out.println(name + " (9) is multi-talented, compassionate, and global."; | |
− | + | else | |
− | + | System.out.println(name + " (?) is nothing."); | |
− | + | } | |
− | + | ||
− | + | ||
− | + | ||
// main method | // main method | ||
− | + | public static void main(String [] args) | |
− | + | { | |
− | + | // declare and initialize variables | |
− | + | String name = ""; | |
− | + | int sum = 0; | |
− | + | int destiny = 0; | |
− | + | // read in user's name as a string | |
− | + | name = JOptionPane.showInputDialog("Please enter your name."); | |
− | + | // calculate sum from name | |
− | + | sum = calculateString(name); | |
− | + | // collapse sum into destiny number | |
− | + | destiny = collapseInt(sum); | |
− | + | while(destiny >= 10) | |
− | + | destiny = collapseInt(destiny); | |
− | + | // display destiny message | |
− | + | displayDestiny(name,destiny); | |
− | + | }// end main | |
}// end class | }// end class | ||
|SideSectionTitle=Numerology with Methods | |SideSectionTitle=Numerology with Methods |
Revision as of 13:03, 3 April 2011
Back to the Case Studies homepage
ProblemWrite a complete Java program, similar to the problem Numerology in Case Studies Level Two. If you have not completed the previous problem click here to view problem details. Your goal is to rewrite the solution to use methods.
In particular, you should at least have methods with the following headers: 1. Calculate String Method public static int calculateString (String name) This method will accept the name as a String and return the int which directly (i.e., without further collapsing)
2. Collapse Integer Method public static int collapseInt (int currentValue) This method totally collapses the integer parameter currentValue to a single-digit number. So if currentValue = 88,
3. Print Message Method public static void printMessage (String name, int magicNumber) This method should print the final message of the program. The magicNumber is between 1 and 9.
Remember to follow COMP 1010 coding standards. |
Numerology with Methods | |
---|---|---|
Solution | ||
Code |