Angående C# projekt

Tags:    c#

Hey alle sammen
Jeg er i gang med et projekt i programmering og det er ikke det fag jeg er skarpest i…
Vi bruger Microsoft Visual Studio, C#. Vi er blevet stillet til opgave at lave en eller anden form for sodavands automat. Jeg har prøvet at kigge rundt på internettet efter tutorials eller lignende som jeg kunne bruge til inspiration, dog fandt jeg intet kode jeg kunne bruge, men et billede med en sodavandsautomat som så rigtig god ud, da den var lige til at finde ud af (for brugeren). Dog kunne jeg ikke gennemskue hvordan personen bag billedet havde programmeret programmet, da han havde lavet programmet på hollandsk ^^. Jeg kunne godt tænke mig at programmet blev som den på billedet (samt dets funktioner) og jeg er kommet frem til følgende kode:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Vending_Machine
{
public interface IDrinkable
{
string Name { get; }
decimal Price { get; }
}

public class Coca_Cola : IDrinkable
{
public string Name
{
get
{
return "Coca Cola";
}
}
public decimal Pris
{
get
{
return "16 KR.";
}
}
}

public class Fanta : IDrinkable
{
public string Name
{
get
{
return "Fanta";
}
}
public decimal Pris
{
get
{
return "16 KR.";
}
}
}

public class Faxe_Kondi : IDrinkable
{
public string Name
{
get
{
return "Faxe Kondi";
}
}
public decimal Pris
{
get
{
return "16 KR.";
}
}
}

public class Kildevand : IDrinkable
{
public string Name
{
get
{
return "Kildevand";
}
}
public decimal Pris
{
get
{
return "16 KR.";
}
}
}

public class RedBull : IDrinkable
{
public string Name
{
get
{
return "RedBull";
}
}
public decimal Pris
{
get
{
return "16 KR.";
}
}
}

public class Cocio : IDrinkable
{
public string Name
{
get
{
return "Cocio";
}
}
public decimal Pris
{
get
{
return "16 KR.";
}
}
}

public enum Drinks
{
Coca_Cola, Fanta, Faxe_Kondi, Kildevand, RedBull, Cocio
}

public static class DrinkFactory
{
public static IDrinkable GetDrink (Drinks drink)
{
if (drink == null)
switch (drink)
{
case Drinks.Coca_Cola:
return new Coca_Cola();
//decide on a default return item.
}
}
}

private void btnkoffie_Click(object sender, RoutedEventArgs else)
{
IDrinkable drink = DrinkFactory.GetDrink(Drinks.Coca_Cola);
total += drink.Price;
}

Dog kan jeg hverken komme videre eller se hvad der er galt med denne kode, dog viser Microsoft Visual Studio at der er en masse problemer i min kode…
Håber at i vil hjælpe, med venlig hilsen Niclas.

PS. billedet kan ses i følgende link: http://img338.imageshack.us/img338/5613/softdrinkvend.jpg



3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 8 karma
Sorter efter stemmer Sorter efter dato
Der ikke nogen grund til at hver drink har sin egen klasse.

Lav en klasse, hvor du kan sætte og hente: navnet, prisen og antallet.

Giv din vending en metode så du kan fylde drinks på den (instanser af den forgående klasse), husk at teste om den pågældende drink allerede er i maskine så skal du kun opdatere dens antal.

Giv din vending en metode til at få en liste af de drinks der er i den.

Sæt dit ui/vending til at gennemløbe den omtalte liste og auto genere en knap for hver drink.

Giv din vending maskine en liste af mønt beholdere (klasse), med get/set af mønttype og antal.

Sæt dit ui/vending til at gennemløbe den omtalte liste og auto genere en knap for hver mønttype.

Giv din vending masking en metode til at indsætte en ny mønt beholder, eller fylde mønter i en eksisterende beholder.


Når der fyldes en mønt i af brugere:
Giv din vending maskine en metode til at acceptere mønter, hold styr på den samlede værdig af modtaget mønter, husk at lægge 1 mønt til de før omtalte mønt beholdere.


Når der trykkes på en drinks knap:
Find objektet få den pågældende drink, findes den ikke returnere brugeres mønter og træk dem fra mønt beholderne.

Findes den tjek at der er lagt nok mønter i, er der ikke returnerer mønterne eller bed om flere.

Er der den præcise pris træk en drink fra maskinens beholdning af de drinks og nulstil det indbetalte pris.

Er der mere end den præcise pris, test om du kan returnere det overskydende. Hvis du kan gær det og gør derefter det du gjorde ved den præcise pris. Kan du ikke betale tilbage give kundens hans penge tilbage.











Som tidligere skrevet så er jeg ikke nogen haj til at programmere. Derfor vil jeg hører om du eventuelt kunne skrive eksempler på nogen af de kommandoer som du har lavet ovenstående eller bare skrive links så jeg kan finde koden til dem på internettet, det ville være til en stor hjælp...

Med venlig hilsen Niclas.



Niclas... Næste gang, så hver venlig at indsætte koden i en kodeboks, da det hjælper lidt på læsningen af koden.



t