Part 1: Converting Currencies

Write a program that converts between Dollars, Euros and Pounds. The program reads input from the user in the following format: Convert amount currency_1 to currency_2 and prints results in the obvious way. Here are a couple of sample runs:
Command: Convert 3.50 Euros to Dollars
Command: Convert 3.50 Euros to Pounds
Here are the conversion rates you'll need: 1.00 Dollar is Euros and 1.00 Dollar is Pounds.

Part 2: More Currencies

Extend your program from Part 1 to allow for Canadian dollars as well (1.00 Dollar US is Dollars Canadian). Now the user can't simply put "Dollar" in the input, it must be either "Dollar US" or "Dollar Canadian". Here are a couple of sample runs:
Command: Convert 3.50 Euros to Dollars Canadian
Command: Convert 11.72 Dollars US to Dollars Canadian

Part 3: Going further, Creating output for a spreadsheet

It's often nice to write programs that produce output that's intended for other programs. You will write a program that reads in three points from the user and prints output that the user can cut-and-paste into a spreadsheet, usually Excel on Windows, on Linux we will use Libreoffice Calc, to produce a plot showing the triangle defined by the three user-input points along with its bounding box, i.e. the smallest rectangle aligned with the coordinate axes that contains the triangle.
You should probably look at this info on using Excel to plot points. More or less the same thing works for Libreoffice Calc.
Here's a sample run of the program:

And here's the plot that is produced by Excel with that data:

Part 4: Going even further, a challenge for those who finish fast

There are two common ways of classifying triangles:

This is an acute isosceles triangle.
  1. By describing its interior angles
  2. By describing the lengths of the sides in relation to each other
A well known property of all triangles is that the sum of any two sides will always be greater than the third. Given a set of three lengths it is possible to determine if they can form a triangle by adding two lengths together and comparing them to the third. Given the three lengths of the sides of a triangle, a, b and c, it is also possible to calculate the area of a triangle using Heron's formula. $$ \Delta = \sqrt{s(s-a)(s-b)(s-c)} \mbox{, where } s = \frac{1}{2}(a + b + c) $$
The cmath library has a function asin() that computes the arcsine of an angle. Enter man asin on the command line for documentation. We have a bit of a problem in that for any positive angle $\theta$ less than $\pi/2$, we have that $\sin(\theta) = \sin(\pi - \theta)$. Thus, when we use $\theta$ = asin(w) for positive w, we don't know whether we really want the angle $\theta$ or $\pi - \theta$. In our triangle case, we cans fix things like this: if the three angles we calculate (A, B and C) sum up to a lot less than $\pi$ (in fact, we should probably check that the sum is less than 3), we replace the angle opposite the longest side with $\pi$ minus that angle. So, for example, if $A$ is opposite the longest side, then we replace $A$ with $\pi - A$.

BTW: as long as you're including cmath, the constant M_PI gives you a high-precision double representation of $\pi$.

Also: the function sqrt( ) computes square roots.
Also, from the side lengths $a$, $b$ and $c$, it is possible to calculate the three interior angles, $A$, $B$ and $C$, of the triangle using the law of sines: $$ \frac{sin{A}}{a} = \frac{sin{B}}{b} = \frac{sin{C}}{c} = \frac{2\Delta}{abc}. $$ Your job: write a program that reads three lengths from the user displays the type of triangle is formed by the input according to both kinds of classification. I.e. "This is a obtuse scalene triangle"