diff --git a/Doc/Sd1/Ref/Video/currencyConverter.webm b/Doc/Sd1/Ref/Video/currencyConverter.webm new file mode 100644 index 0000000000000000000000000000000000000000..7eca9fc2256f3fd28b65172e2a845de9d726d93d Binary files /dev/null and b/Doc/Sd1/Ref/Video/currencyConverter.webm differ diff --git a/Doc/Sd1/appendix.xml b/Doc/Sd1/appendix.xml index 3d442a3d65e304af7b9c9b30684bb583609fc59b..31233e95377a6734f4a1360a545e9b613fed514f 100644 --- a/Doc/Sd1/appendix.xml +++ b/Doc/Sd1/appendix.xml @@ -348,6 +348,71 @@ <para>The following sections contain both the current and archived project propositions.</para> + <section xml:id="sd1BonusCurrency"> + <title>Currency converter, Summer 2017</title> + + <para>A set of predefined currencies shall be mutually converted. The + user will be able to choose both a <quote>buy</quote> and a + <quote>sell</quote> currency. The desired <quote>buy</quote> amount + shall than be converted into the corresponding <quote>sell</quote> + currency amount. The following video illustrates its intended + usage:</para> + + <figure xml:id="sd1FigCurrencyConverterVideo"> + <title>Running the currency converter terminal application.</title> + + <mediaobject> + <imageobject> + <imagedata fileref="Ref/Video/currencyConverter.webm"/> + </imageobject> + </mediaobject> + </figure> + + <para>You may follow the subsequent steps:</para> + + <orderedlist> + <listitem> + <para>Choose a suitable representation which allows for defining + currencies among with their corresponding conversion rates. A good + starting point is being provided by <link + xlink:href="https://en.wikipedia.org/wiki/Special_drawing_rights">IMF + SDR currency units</link> leading to <link + xlink:href="https://www.imf.org/external/np/fin/data/rms_mth.aspx?SelectDate=2017-03-31&reportType=CVSDR">flat + currency table structures</link>. These allow for a simple text file + representation e.g. <filename>currencies.txt</filename>:</para> + + <programlisting language="none">Chinese Yuan: 9.348070 +Euro: 1.264280 +Japanese Yen: 153.778000 +U.K. Pound Sterling: 1.102940 +U.S. Dollar: 1.356070 +Algerian Dinar: 148.618000 +...</programlisting> + + <para>The rates being provided here allow for converting each + currency to its <link + xlink:href="https://en.wikipedia.org/wiki/Special_drawing_rights">SDR</link> + value. Thus converting e.g. Euro to U.S. Dollar requires a + conversion to its <link + xlink:href="https://en.wikipedia.org/wiki/Special_drawing_rights">SDR</link> + value followed by a second conversion to U.S. Dollar.</para> + + <para>This way we only have to store a single rate for each currency + in question.</para> + </listitem> + + <listitem> + <para>Write a Class which reads the above table and stores all + currencies among with their rates in a suitable array.</para> + </listitem> + + <listitem> + <para>Provide user interface dialogs providing the »glue« between + user input and stored currency information.</para> + </listitem> + </orderedlist> + </section> + <section xml:id="sd1SectProjectAddressDatabase"> <title>An address database, Winter 2016</title>