Sodacrate programmering 1 c#
Hej!
Jag håller (som säkert många andra) på med projektet Sodacrate/Läskbacken för kursen Programmering 1 med c#.
Jag har jobbat flera dagar med att komma till underfund med detta projekt, men jag har fastnat totalt...
Programmering är något helt nytt för mig och för mindre än 2 månader sedan hade jag aldrig ens hört talas om C# mm :-P...
Hoppas att någon kan hjälpa mig..
Projektet är som följande:
https://novo.hermods.se/pluginfile.php/292026/question/questi...
Jag har hunnit skrivit en del kod, och har även googlat en hel del hur jag skulle kunna lösa mina frågetecken...
Först och främst undrar jag :
* Hur kan jag lagra de valda dryckerna i metoden add_soda()?
* Varför körs valmenyn om igen istället för att metoden calc_total() körs när man valt "3" i menyn i metoden Run()?
Min kod ser ut så här än så länge:
namespace Sodacrate
{
class Program
{
public static void Main(string[] args)
{
Sodacrate backen = new Sodacrate();//Skapar ett objekt av klassen Sodacrate som heter backen
backen.Run();//Anroper metoden Run
backen.add_soda();//Anropar metoden add_soda
backen.print_crate();//Anropar metoden print_crate
Console.WriteLine("Det totala värdet av dryckerna i backen är {0} kronor", backen.calc_pris());
Console.Write("Tryck på valfri tangent för att avsluta. . . ");
Console.ReadKey(true);
}
}
class Sodacrate
{
Dryck[]drycker;//förbereder c# att vi ska skapa en vektor av typen Dryck
private int antal_flaskor = 0; //Håller reda på alla flaskor //Antal fack
public Sodacrate()//Konstruktor
{
drycker=new Dryck[24];//Här skapas vektorn med antal positioner
drycker[0]= new Dryck("CocaCola", 15 , "läsk");
drycker[1]= new Dryck("Redbull", 25, "Energidryck");
drycker[2]= new Dryck("SevenUp", 15 , "läsk");
drycker[3]= new Dryck("Loka" , 14, "kolsyratvatten");
drycker[4]= new Dryck("Ramlösa", 14, "kolsyratvatten");
drycker[5]= new Dryck("Redbull", 25, "Energidryck");
drycker[6]= new Dryck("CocaCola", 15 , "läsk");
drycker[7]= new Dryck("SevenUp", 15 , "läsk");
drycker[8]= new Dryck("Loka" , 14, "kolsyratvatten");
drycker[9]= new Dryck("Ramlösa", 14, "kolsyratvatten");
}
public void Run()//Metoden där menyn finns med olika möjligheter i programmet
{
int tal=0;
do
{
Console.WriteLine("Hej och välkommen, här finns olika möjligheter för dryckesbacken!");
Console.WriteLine(" ");
//Nedanför finns valmenyn som är kopplat till switch-satsen.
Console.WriteLine("1 Placera drycker i dryckesbacken");
Console.WriteLine("2 Titta vad som finns i backen");
Console.WriteLine("3 Beräkna det totala värdet av innehållet i backen");
Console.WriteLine("4 Sök en viss dryck i backen");
Console.WriteLine("5 Sortera dryckerna ");
Console.WriteLine("0 Avsluta programmet");
Console.WriteLine(" ");
Console.WriteLine("Välj en möjlighet genom att trycka på motsvarande siffrans tangent:");
tal=int.Parse(Console.ReadLine());
switch (tal)//Efter att användaren matat in vart i menyn han vill gå så dirigerar switch-satsen till den valda metoden.
{
case 1: add_soda();
break;
case 2: print_crate();
break;
case 3: calc_pris();
break;
case 4: find_soda();
break;
case 5: sort_soda();
break;
case 0: Console.WriteLine("Programmet avslutas...");
break;
default: Console.WriteLine("Felaktig inmatning");//används för att fånga upp någon annan inmatning än 1, 2, 3, 4, 5, 0.
break;
}
}while(tal!=0);
}
public void add_soda()//Metod för att lägga till drycker i dryckesbacken
{
if (antal_flaskor == 24)
{
Console.WriteLine("Backen är full, du kan inte lägga till flera flaskor!");
return;
}
int temp=0;
do
{
Console.WriteLine("Vilken dryck vill du lägga till i backen?: ");
Console.WriteLine(" 1. CocaCola");
Console.WriteLine(" 2. SevenUp");
Console.WriteLine(" 3. Loka");
Console.WriteLine(" 4. Ramlösa");
Console.WriteLine(" 5. Redbull");
Console.WriteLine(" 0. Ingen");
Console.WriteLine(" ");
temp=int.Parse(Console.ReadLine());
switch (temp)
{
case 1:
Console.WriteLine("Du har valt CocaCola");
break;
case 2:
Console.WriteLine("Du har valt SevenUp");
break;
case 3:
Console.WriteLine("Du har valt Loka");
break;
case 4:
Console.WriteLine("Du har valt Ramlösa");
break;
case 5:
Console.WriteLine("Du har valt Redbull");
break;
case 0:
Console.WriteLine("Du ville inte lägga till någon dryck i backen...");
Console.WriteLine(" ");
break;
default:
Console.WriteLine("Felaktig inmatning, mata in en siffra mellan 1-5");
break;
}
}while(temp!=0);
Console.WriteLine(" ");
Console.WriteLine("Tryck på enter för att komma tillbaka till valmenyn...");
Console.WriteLine(" ");
Console.WriteLine(" ");
Console.ReadKey();
}
public void print_crate() //Metod för att skriva ut vilket innehåll backen har
{
Console.WriteLine("Dessa drycker finns i backen:");
Console.WriteLine(" ");
foreach(var temp in drycker)//Loop för att skriva ut varenda objekt i vektorn
{
if (temp != null)
Console.WriteLine(temp);
else
Console.WriteLine("Tom plats");
}
Console.WriteLine(" ");
Console.WriteLine("Tryck på enter för att komma tillbaka till valmenyn...");
Console.WriteLine(" ");
Console.WriteLine(" ");
Console.ReadKey();
}
public int calc_pris()//Metod som ska räkna ihop värdet av alla drycker i backen
{
int pris = 0;
foreach(Dryck count in drycker)
{
if (count != null) //Fångar upp exception som uppstår vid tom index
{
pris += count.get_pris();
}
}
return pris;
}
public void find_soda()
{
}
public void sort_soda()
{
}
}
class Dryck
{
string namn;
int pris;
string typ;
public Dryck (string _namn, int _pris, string _typ) //Konstruktor för Dryck
{
namn = _namn;
pris = _pris;
typ = _typ;
}
public int get_pris()//Metod för att komma åt variabeln pris
{
return pris;
}
public override string ToString()//standard versionen för hur ett objekt skrivs ut ändras med denna metod
{
return string.Format("* {0}, den kostar {1} kronor och drycken är en {2}", namn, pris, typ);
}
}
}