Probing notoriety

Galatrax is a tourism company, in an obscure region of an obscure arm of an obscure spiral galaxy. They offer probing tours of backwater planets. Soil probing, weather probing, and other kinds of probing.

Galatrax is concerned about their notoriety on one planet, Grobo. If their notoriety levels get too high, Groboian authorities might start paying attention. That normally wouldn't concern Galatrax, except that the locals are so primitive that they have nuclear weapons. They'll kill themselves eventually, of course, but Galatrax doesn't want to hasten their apocalypse with an alien scare, and lose a fun tourist destination.

Make a workbook to help Galatrax estimate the notoriety levels generated by a tour. It should start like this:

Empty worksheet

There are three tour levels: gold, silver, and bronze. Each tour can have up to 20 regular probes, and 10 long probes. Check that user input is valid. Error messages should be in red text, next to the appropriate input cell. E.g.:

Errors

Check that the level is valid. Case of the level doesn't matter, so Silver and silver are both correct. Spaces before and after the level are OK.

The probe counts should be numeric, zero or more, but no more than the maximum allowed for that probe type.

Show all error messages at the same time. If there are input errors, there should be no output.

Here's another example:

Errors

Output the notoriety estimate for the tour, and a text interpretation. Here's an example:

Output

For a gold tour, each regular probe adds 12 to the notoriety score. Each long probe adds 22.

For a silver tour, each regular probe adds 9 to the notoriety score. Each long probe adds 15.

For a bronze tour, each regular probe adds 7 to the notoriety score. Each long probe adds 11.

Here's another output example:

Output

There are rules for the text interpretation. If the notoriety score is below 210, output "Low level" in green. If the notoriety score is 210 or more, but below 370, output "Warning: medium level" in magenta. If the notoriety score is 370 or more, output "Warning: high level" in red.

You must use the flag pattern.

You do not have to use subroutines, though you can if you want.

The usual coding standards apply.

Add your code to the starting worksheet. Upload your solution to this site.

(If you were logged in as a student, you could submit an exercise solution, and get some feedback.)

Referenced in: 
Attachments: