|
C M S C 2 1 4 C o m p u t e r S c i e n c e I I S p r i n g 2 0 0 3 |
Project #5 will be primarily grading on output - using "diff -bwi". In particular a number of test inputs and outputs (using the provided "schedule.txt" and modified "schedule.txt" files) will be run and if your output matches they will pass those tests and if it does not diff then it will not pass those tests. Thus you need to be certain that your output conforms to the provided BNF's and is according to the specifications. Additionally your code will be visually inspected to see how well it was written and the standard points may be deducted (as in other projects - comments, indentation, good usage of code, ...)
We will not (as we can not) test your addEdge, shortestPath, ... or any other functions (because you didn't even have to write them).
Additionally remember - the Code of Academic Integrity still applies
on project #5 as it does all other projects this semester (and future
semesters unless specified otherwise). Generally the highest number
of violations (of the Honor Code) occur on the final project of the
semester.
At this point in time all of the details regarding the project description
have been posted in the description itself, FAQ and sample inputs and outputs.
ANY further email regarding the project description or technical help will not
be answered - see the Course Syllabus for
more details. You are still welcome to see someone in office hours for
assistance, however no more project questions will be answered via email
regardless of the question. Email, for the appropriate reasons (see syllabus),
will be answered in due time.
Note that there may just come a time when not enough information is provided
to you. And when that arises what should you do? First attempt to get more
information - but there may just come a time (or maybe many times) when you
can't get more information (like now with the project description - note 95+%
of the needed information is there). So then what? One option is to make
an educated guess and do the best you can within reason - it may turn out that
you make the wrong decision and such may be the case from time to time -
hopefully it won't result in "dire consequences". How you choose to handle the
situation will have an impact, and if you do make the wrong decision, that
doesn't mean it will
end up with dire consequences - in fact you should attempt to do so (make a
decision even if it is the wrong one) in a manner that 1) solves the problem
as best as possible (educated "guess") and 2) doesn't result in dire
consequences (for a real world problem of course, as there aren't any
direct dire consequences involved in almost any academic exercise).
The project was a little ambiguous in this case so however you handle this
(within the specs provided) is fine - meaning you should print out reasonable
output (or as reasonable as is possible). Note however, the project
description did specify the cost would be 0 and that at least one
[entry] will be output (per the output BNF and in particular the
[actualStops] portion of the BNF - so there is only one possible
set of reasonable output - the only variable part is the bus
that is taken from stop X to stop X (and any valid bus that passes
through that stop is fine and 100% correct) For choice 3 it's a little
less obvious and the two reasonable answers would be 1) time of 0 and any
bus (that passes through the stop), or 2) (kinda more reasonable) time of ?
and the bus would be the first one to arrive and the time would be the wait
time for that bus to arrive - either way you handle this for choice 3 is
acceptable.
Nope - it was originally incorrect for choice 3 because the hard.output
stated that the bus ride from AAG to ABC starting at 7:50am took a total
of 1 hour and 5 minutes however this was incorrect and it should have
been (and is now corrected) 1 hour and 30 minutes (01:30).
In particular the person arrives at stop AAG at 7:50am and has to wait
until 8:15am (25 minutes) to catch the next bus that passes through AAG
to AAF and then waits a short bit and transfers to another bus and
eventually gets to AAC and then waits for the final bus which leaves
AAC at 9:07am and arrives at ABC at 9:20am.
Yes and this is a good idea to do so. You can make modifications as you see
fit. So an edge would then have a weight field and a bus field and a vertex
field.
As the message states, you should first attempt to get choice 1 and 2
working before working on the harder parts. You can think about
parts 3 and 4 when designing the code for the first two parts but
you should not attempt testing part 3 and 4 until you have completed
and have working code that handles the first two parts.
In fact, once you have choices 1 and 2 working you should submit what
you have and then begin working on the other choices.
For choice 3 it is important that you reread the "Input File" portion of the
project description and especially the sections after the main input BNF -
the part about [numRuns] and [interval]. In the "Hard" example for choice 3
the person arrives at the AAG bus stop at 7:50am but the next bus (which
happens to be an A-2 bus) doesn't come by until 8:15am and then starts its
journey (thus 25 minutes were spent just waiting for the A-2 bus to arrive
and this is included in the total time) ...
This is the extent of the details that will be provided in print regarding
this aspect (choices 3 and 4) of the project - all the details necessary have
been specified and thus part of the aspect of solving the problem is reading
the description and determining what needs to be solved. As always you are
welcome to seek assistance from the instructional staff in office hours.
One aspect that wasn't addressed explicitly for case 4 is what if a person
specifies they are starting on bus A-2 at stop AAF but immediately switch
to bus C-41 (or any other bus besides A-2) before leaving AAF, is this
considered a transfer? The answer is YES and it turns out that this is
explicitly covered by the definition of TRANSFER found on the project
description.
A single example of choice 3 and choice 4 has been provided in the
posting account and should provide at the very least a minimum test
for these options - the files are in the "Hard" directory.
Due to the fact that some people may have (and have had) confusion
about this (although the time was clear) the project is now due at
11pm on Tuesday, May 13th. To repeat the project is now due at 11pm on
Tuesday, May 13th. Also you may write your own .h files if you so
desire and do not have to be constrained by the two provided.
The checklist on project #5 has been updated and submit is now
accepting project #5.
No. You can not use the STL Graph class and should write a graph
class yourself - as that is the primary reason for this project.
So you should create Vertices and Edges and a Graph class which
can be used to process them.
There was a question about blank lines that appear in the
schedule.txt but possibly not appearing in the BNF on the
project description - it turns out that the schedule.txt file
DOES match the BNF - in particular upon close inspection of
the BNF it turns out that anywhere a single piece of
whitespace occurs (blank, tab or newline) a very large number
of pieces of whitespace may occur - you generally should almost
always make this assumption as it is very easy to handle unless
it is absolutely necessary to read and count blank spaces.
A "lighter" set of input files has been posted in the class posting
account - which you can use for your first round of testing.
The provided Graph class uses the STL map
class. To find out how this class works see the class textbook index
and look up Map and in particular pages 610-618. Also you can try to
do a web search on something like "Map Container Class STL C++" and
you'd find pages like the following:
The primary input/output have been posted along with a schedule and
some pictures of the graph (with and without weights). Also the
recommended graph.h file has been posted for you to use - NOTE you may
have to add some code/member functions to this class to complete the
project and you are allowed to do so and to add functions, remove
functions, create other classes, ... your main program should compile
with no warnings and you should have a makefile which when make is
typed it will create p5 which runs and generates the primary
output when given the primary input. DO NOT HARDCODE YOUR RESULTS.
The project has been posted (at 12noon) and there are 3-4 pieces
of information missing which will be posted by tomorrow. In
particular there is plenty of information available to begin reading
and thinking about the assignment. The 3 main items still missing
are 1) the classes (.h files) required to use, 2) the checklist for
submitting the project and 3) a primary input and output (and
possibly secondaries) and a sample schedule.txt file.
Project #5 is due by 4pm on Tuesday, May 13th, 2003.
http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=379
Basically the map in the Graph class is used to map a bus stop "string"
like AAA to its adjacency list.
|
See the class syllabus for policies concerning email Last Modified: Mon May 12 15:37:33 EDT 2003 |
|
|
|
|
|