|Apr 19, 2011, 09:06 PM||#1|
Conceptual Question: using Arrays in C++
Yes, this is part of a hw problem for class but I just need help in understanding where to go with this, not actual code. I'm given a file that lists lat and long data for states, as well a line that indicates the state (sample shown). The goal is to create a program, using arrays only I believe (not structs), that asks a user to input the state in the command line and the program draws the outline of the state in a window based on the coordinates (drawing is done via a custom library they provide us). I understand the basics of inputing data into an array but I'm at a loss of how to go about dealing with the state labels, and how/if the labels are used selecting the correct data to draw with. Any help would be appreciated. thanks
WA 122750 49000 117000 49000 117000 46333 116866 46000 119000 46000 122666 45500 122916 46166 123916 46250 124166 47000 124666 48333 122833 48166 122666 47416 122583 47333 122416 47333 122750 49000 -1 -1 ID 117000 49000 116000 49000 116000 48000 114500 46500 ...
|Apr 19, 2011, 09:23 PM||#2|
Are you supposed to buffer up the whole file in memory, or search the file after the user inputs the state?
If you're buffering the whole thing an approach would be:
Or combine the coordinates:
float coordinates[MAXPOINTS]; //0 is for latitude, 1 is for longitude
Then when the user enters the abbreviation you find the position in the co-arrays then display based on that. Probably write a function that takes the coordinates for the one state to format for display.
Otherwise, just search the file and read into the float array(s).
Last edited by lee1210; Apr 19, 2011 at 09:29 PM.
|Apr 19, 2011, 09:32 PM||#3|
The "BF&I (Brute Force & Ignorant)" approach:
Read and ignore lines until the desired state abbreviation appears on a line by itself.
Read, parse, and draw lat/lon pairs until terminator appears (-1 -1).
The "Parallel Arrays" approach.
Read a line. Does it look like a state abbreviation or a lat/lon pair?
If a state abbreviation, store it in an array of state abbreviations,
then commence reading lat/lon pairs into an array of lat/lon coords
for this state, stopping at terminator.
Store that array into another parallel array.
"Parallel array" means an array with a different name and type than the state-name array, but whose items have the same index as the corresponding state name. So the name for AK is at index 0, and the array of coords for AK is also at index 0, but in a different array. (This is a BF&I approach to structuring data, when structs or objects are much clearer and more encapsulated. It's the kind of BS you'd do in old-school BASIC programs where the only composite data structure was an array.)
And I'm wondering what the data for Michigan looks like, or really any state with islands or discontiguous land areas.
|Apr 19, 2011, 09:43 PM||#4|
In the interests of KISS, I would recommended chown33's first BF&I approach, considering the state is one the command-line and the program won't have to make multiple lookups.
If the OP gets that to work, fork the code and try to the parallel arrays approach. Lee's given you the data structures for this. But really I wouldn't bother. For reals, you wouldn't do it this way.
|Thread Tools||Search this Thread|
|thread||Thread Starter||Forum||Replies||Last Post|
|OK to use Soft RAID array in another machine?||DeeEss||Mac Pro||4||Mar 10, 2011 10:51 AM|
|power question: using European Mac in Canada...||macchiato2009||Mac mini||1||May 7, 2010 06:54 AM|
|Array in array||nicoko||iPhone/iPad Programming||5||Jan 12, 2009 11:40 AM|
|Using variables in array size inits...legal ANSI C?||HiRez||Mac Programming||9||Nov 11, 2008 02:30 AM|
|trouble with 2 methods using arrays in java||macman2790||Mac Programming||0||Mar 2, 2007 02:49 AM|
All times are GMT -5. The time now is 11:46 AM.