The important issue here is that the data needs to be input as a single string of chars, then parsed into two numbers and tested for reasonableness. Industrial strength input routines assume NOTHING about the sort of data that must be parsed, e.g. "0xF2/54".

once you have established the month as 1-12, it's easy to use that as an index into a table of 12 values like 0, 31, (31+28), (31 +28 + 30), ....etc, up to the december entry which should be about 334. Adding this number to the (validated) day-of-month gives you an absolute day-of-the year.

The day-of-the-year can be easily tested in a set of case or else-if statements, or tested against a second table of day-of-year ranges indexed to the sign string, to return the astrological sign. To be a real snot, the student might do a binary search on the second table, to reduce the number of tests to 3(?) at most.

This is a bad assignment for so many reasons...but mostly 'cause the prof is demanding user conformance in data entry (never happens) while ignoring the need to enforce the conformance by creating an input script that will only accept space, 0, and 1 in the first position, 0-9 (or 0-2 if first =1) in the second, only '/' in the third, 0-9 in the fourth, etc.

The assignment also ignores the complex special cases for date entry like leap years and centuries, supports pseudoscience, and (apparently) did not first discuss mechanisms for validating input or looking up table data. Seemslike you might just need that liquid courage to make it through this class ;-}