954,152 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

State abbreviations

C++ Help Please!!!!!!!!!!!

The Question is:

Write a program that asks a user to enter one of the following state abbreviations: NC, SC, GA, FL, or AL. The program should then display the name of the state that cooresponds with the abbreviation entered ( North Carolina, South Carolina, Georgia, Florida, or Alabama).

Input Validation: Accept abbreviations with both letters in uppercase or both in lowercase. Display an error message if an abbreviation other than what is listed is entered.

THANK YOU VERY MUCH!!!!!!!!!!!

jags
Newbie Poster
1 post since Oct 2004
Reputation Points: 10
Solved Threads: 0
 

Well, we don't blatantly do homework questions here. Show some effort and help us to help you. How far into this program have you gotten so far? Have you prompted the user to enter a state abbreviation? Have you done an error check to make sure the abbreviation entered was valid? What technique are you using to correspond a state abbreviation with a full state? Are you printing the full state name out to the screen? ;) *hint hint hint*

cscgal
The Queen of DaniWeb
Administrator
19,421 posts since Feb 2002
Reputation Points: 1,474
Solved Threads: 229
 

Hi,
We can help you by giving a pseudocode for ur programme
input : TWO Characters
OutPut: State Name
The aslgo goes like this
Ask the user to enter two chracters
store the characters in lets say variable ch,
now check if the input is valid or not by an if statement giving right parameters

if the input do not have right parameters i-e it is input is not valid , ask the user to give input again or simply quit the programme showing an error message

if the input is valid use if-else statements to show out put
e.g
*******************************************
if(ch=='NC' || ch == 'nc' )
cout<<"North Carolina\n";
else if(ch=='SC' || ch =='sc' )
cout<<"South Carolina\n";
else.......................

*******************************************

I hope this would help u , if still there are some ambiguities , feel free to ask again,,,but do try it by ur own b4 asking next question.....

Fahad

fahad
Light Poster
27 posts since Sep 2004
Reputation Points: 14
Solved Threads: 0
 

>now check if the input is valid or not by an if statement giving right parameters
This is okay if the OP is forced to use such a braindead approach. Otherwise a series of 50 if statements is silly, and a table driven approach is far better.

Narue
Bad Cop
Administrator
15,460 posts since Sep 2004
Reputation Points: 6,464
Solved Threads: 1,401
 
>now check if the input is valid or not by an if statement giving right parameters This is okay if the OP is forced to use such a braindead approach. Otherwise a series of 50 if statements is silly, and a table driven approach is far better.

actually i also will use if else.
how to use the table driven you mention above? can u teach me?

lara_
Newbie Poster
17 posts since Jul 2004
Reputation Points: 10
Solved Threads: 0
 

>actually i also will use if else.
Your loss. Have fun typing all of that.

>how to use the table driven you mention above?

#include <cctype>
#include <iostream>
#include <string>

struct {
  std::string abbr;
  std::string name;
} state[] = {
  "AL", "Alabama",
  "FL", "Florida",
  "GA", "Georgia",
};

const int nstates = 3;

std::string get_state ( std::string abbr )
{
  // Make abbr upper case
  for ( std::string::size_type i = 0; i < abbr.size(); i++ )
    abbr[i] = toupper ( (unsigned char)abbr[i] );

  for ( std::string::size_type i = 0; i < nstates; i++ ) {
    if ( abbr == state[i].abbr )
      return state[i].name;
  }

  return "NOT FOUND";
}

int main()
{
  std::cout<< get_state ( "GA" ) <<std::endl;
  std::cout<< get_state ( "ME" ) <<std::endl;
  std::cout<< get_state ( "fl" ) <<std::endl;
}

The best part is that the table can be filled from a file, thus keeping the code very short and easy to follow as opposed to your 50 if statements. And if the USA decides to grow, which is probable, you would have to figure out where to change your code, modify it, and then test it to make sure you didn't make a mistake I would only have to add a single quick entry to my input file.

Narue
Bad Cop
Administrator
15,460 posts since Sep 2004
Reputation Points: 6,464
Solved Threads: 1,401
 

Hi;
I actually assume that the person asking a question is a beginner ,so it will be difficult for him to keep hold of arrays or pointers ,, thats why I have suggested that if-else method otherwise no doubt this is a silly approach for bigger problems.

Fahad

fahad
Light Poster
27 posts since Sep 2004
Reputation Points: 14
Solved Threads: 0
 

> I actually assume that the person asking a question is a beginner
All the more reason to mention better alternatives. Even if they don't understand, they still learn that other options exist.

Narue
Bad Cop
Administrator
15,460 posts since Sep 2004
Reputation Points: 6,464
Solved Threads: 1,401
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You