Godisautomat 2#

Den här uppgiften går ut på att skriva en del av mjukvaran i en större godisautomat.

Bedömningsmatris

Planering

Förmågor E C A
Aktivitetsdiagram och pseudokod Du använder pseudokod och/eller aktivitetsdiagram för att planera dina uppgifter utifrån exempel, eller i samråd med utbildaren. Som för E, men utan exempel eller handledning

Syntax och Teori

Förmågor E C A
Grundläggande syntax Du kan redogöra för och använda programmeringsspråkets grundläggande syntax
Villkor och IF-satser Du kan redogöra för och använda villkor och IF-satser

Kodning och kodningsstil

Förmågor E C A
Komplexitet Du kan skriva enkla program Du kan skriva lite mer avancerade program Du kan skriva komplexa program
Sekventiell- & funktionsbaserad programmering Du använder dig av sekventiell programmering och fördefinerade funktioner Du skapar och använder enkla funktioner Du skapar mer komplexa funktioner
Struktur Du skriver kod som är delvis strukturerad, har en konsekvent kodningsstil och tydlig namngivning Som för E, men du skriver kod som är helt strukturerad
Felsökning Du felsöker på egen hand enkla syntaxfel Som för E, men systematiskt, och dessutom även körtidsfel och programmeringslogiska fel Som för C, men med effektivitet

Uppgiftsbeskrivning

Du har fått i uppdrag att skriva ett program som returnerar rätt vara i en godisautomat, beroende på val.

Som du vet väljer man ett nummer och stoppar i mynt till rätt värde, om nummret finns och pengar räcker leveras varan i form av en sträng. ex "Choklad"

Räcker inte pengarna till vald vara returnas strängen "Tyvörr för lite pengar" Om du har matat in för mycket pengar, lägger automaten till "Tack,Tack"

Aktuella varor lagras i en fil vending_storage.csv, med just nu följande varor.

Nr Vara Pris
1 Choklad 10 kr
2 Festis 8 kr
3 Käck 5 kr
4 Bilar 15 kr

Skriv en funktion handla som tar en vara och antal kronor som argument, och returnerar rätt vara.

Genomförande

Versionshantering

Gör en fork av repot. Klona sen ner till din dator

Flödesschema

Innan du börjar koda ska du skapa ett flödesschema för programmet. När du känner att du har ett fungerande flödesschema, be läraren att kolla på det.

Kodning

Programmet skall utvecklas med hjälp av testerna.

Ruby

Skapa funktionen handla i lib/vending_machine.rb.rb

Testerna finns i spec/article_spec.rb.

Kör rspec för att köra testerna.

Python

Skapa funktionen handla i lib/godisautomat.py

Testerna finns i test/test_godisautomat.py.py

Kör nosetests --rednose test/test_godisautomat.py för att köra testerna.

Tips och länkar

  • Om du inte kan beskriva lösningen i ord kommer det vara så gott som omöjligt att skapa ett flödesschema
  • Fundera på vilka variabler som behövs
  • Testa flödesschemat med hjälp av penna och papper

Ruby

Läs mer om villkor och if-satser i övning 27-30 i Learn Ruby the Hard Way

Python

Läs mer om villkor och if-satser i övning 27-30 i Learn Python the Hard Way