Lektion 13 (28 sep)

Felhantering och filhantering

Läsanvisningar

Instruktioner

För att lägga till en textfil i projektet som senare kan användas från ert program genom en relativ sökväg, följ dessa steg:

  1. Om fönstret Solution Explorer inte är öppet, öppna det med View > Solution Explorer.
  2. Högerklicka på projektnamnet i trädet inuti Solution Explorer (borde vara ConsoleApp följt av en siffra och stå i fetstil) och välj Add > New Item....
  3. Välj Text File, ange valfritt filnamn och klicka på Add.
  4. Högerklicka på den nya filen i Solution Explorer och välj Properties.
  5. I fönstret Properties, välj värdet Copy always på alternativet Copy to Output Directory.

Övningar

Lösningsförslag

Felhantering och filhantering går att lägga med i många av de stående övningarna. Utöver dessa finns också följande övningar:

  1. Utöka er lösning på inlämningsuppgift 1 så att variabeln cart fylls på genom att programmet läser in en textfil med informationen om produkterna och till slut skriver totalpriset till konsolen. (I samband med detta kan ni också byta datatypen på cart från Product[] till List<Product>.) Textfilen ska använda följande format (eller liknande):

    1. mjölk,8.5
    2. TV,5000
    3. skor,700

    Om ni har gjort utökningen med skrymmande eller miljömärkta produkter, se även till att denna egenskap finns med i textfilen (lämpligtvis i form av ordet true eller false i slutet av raden).

    Om något värde saknas på en rad så ska den produkten inte tas med i beställningen och ett varningsmeddelande ska skrivas ut, men resten av produkterna ska läggas till och programmet ska fortfarande fungera i övrigt.

  2. Gör en utökning av ert program från förra övningen. Användaren ska nu mata in en rabattkod via konsolen och programmet ska kontrollera om denna är giltig genom att leta efter koden i en textfil som innehåller samtliga giltiga rabattkoder. Om rabattkoden inte är giltig ska ett felmeddelande skrivas ut och användaren ska få skriva in en ny kod tills den är giltig, eller bara trycka Enter för att gå vidare utan rabattkod.
  3. Gör en utökning av ert program från förra övningen. Information om produkter ska nu läsas in från två ställen:

    1. De produkter som finns tillgängliga i butiken ska läsas in från en textfil, som i övning 1.
    2. De produkter som användaren vill köpa ska läsas in en efter en via konsolen. Användaren ska välja produkt genom att mata in enbart dess namn (inte dess pris eller något annat) via konsolen och trycka Enter. Om användaren anger en produkt som inte finns i butiken (hämtad från textfilen i föregående punkt) så ska ett varningsmeddelande skrivas ut och användaren ska få skriva in en ny produkt. Om användaren trycker Enter utan att mata in ett produktnamn ska detta innebära att beställningen är färdig och programmet ska fortsätta (till att be om en rabattkod och slutligen skriva ut totalsumman).

    Programmet ska alltså kunna se ut ungefär så här när det körs:

    1. Välkommen till butiken!
    2. Mata in en produkt: mjölk
    3. "mjölk" har lagts till
    4. Mata in en produkt: TV
    5. "TV" har lagts till
    6. Mata in en produkt: kaffe
    7. "kaffe" finns inte i databasen
    8. Mata in en produkt: [användaren trycker Enter]
    9. Mata in en rabattkod: A1234Z
    10. Summa: 4006.8

    Tänk på att användaren ska kunna mata in samma produktnamn två gånger och då få två exemplar av produkten i sin beställning.