35 719 besökare online
1 095 829 medlemmar • 57 115 315 inlägg
Användarnamn 
Lösenord
Flashback Forum Dator och IT Systemutveckling C#, VB.NET och .NET Framework
Svara på ämne
Ämnesverktyg
cellplast
Medlem
Jag rekommenderar starkt att använda engelska symbolnamn och bara använda svenska i utskrifter avsedda för användaren.
 
Lelles90
Medlem
Lelles90s avatar
Kod:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Läskbacken2 { } class Läskbacken { private string[] flaskor = new string[24]; //JObbar ni med struct (ev betyg C) eller klass för soda (betyg A) så är det inte "string" som är datatyp här private int antal_flaskor = 0; //Håller reda på antal flaskor public int dyr = 0; public int billig = 0; public int totalpris = 0; public string dryck; public int vilkendryck = 0; private bool huvudMeny = true; //(Betyg A): En konstruktor kan ni använda för Sodacrate men det är inget krav. //(Betyg A): Däremot ska ni använda en konstruktor för klassen "Soda" public void Run() { Console.WriteLine("Varmt välkommen till läskbacken!"); while (huvudMeny) { Console.WriteLine("Välj något av följande alternativ:"); Console.WriteLine("1. Lägg till dryck."); Console.WriteLine("2. Visa backens innehåll."); Console.WriteLine("3. Visa backens värde."); Console.WriteLine("4. Avsluta programmet."); Console.WriteLine(); switch (Console.ReadLine()) { case "1": add_dricka(); break; case "2": print_flaskor(); break; case "3": summa(); break; case "4": huvudMeny = false; break; default: Console.WriteLine("Felaktig inmatning"); Console.WriteLine(); break; } //Här ska menyn ligga för att göra saker //Jag rekommenderar switch och case här med en loop //I del 1 av filmerna för slutprojektet kodar jag en switch case } } public void add_dricka() { Console.WriteLine("Välj en dryck:"); Console.WriteLine("1. Loka 5kr"); Console.WriteLine("2. Fanta 5kr"); Console.WriteLine("3. Cola 5kr"); Console.WriteLine("4. Lättöl 10kr"); Console.WriteLine("5. Cider 10kr"); for (int i = 0; i < flaskor.Length; i++) { flaskor[i] = dryck; //vilkendryck++; } dryck = Console.ReadLine(); switch (dryck) { case "Loka": Console.WriteLine("Loka"); Console.WriteLine(); // flaskor[vilkendryck] = "Loka"; billig++; break; case "2": Console.WriteLine("Fanta"); Console.WriteLine(); //flaskor[vilkendryck] = Fanta; billig++; break; case "3": Console.WriteLine("Cola"); Console.WriteLine(); //flaskor[vilkendryck] = "Cola"; billig++; break; case "4": Console.WriteLine("Lättöl"); Console.WriteLine(); //flaskor[vilkendryck] = "Lättöl"; dyr++; break; case "5": Console.WriteLine("Cider"); Console.WriteLine(); //flaskor[vilkendryck] = "Cider"; dyr++; break; default: Console.WriteLine("Felaktig inmatning"); Console.WriteLine(); break; } for (int j = 0; j < flaskor.Length; j++) { if (antal_flaskor == 24) { Console.WriteLine("Din back är full."); Console.WriteLine(); } else { antal_flaskor++; break; /*Metod för att lägga till en läskflaska Om ni har information om både pris, läsktyp och namn kan det vara läge att presentera en meny här där man kan välja på förutbestämda läskflaskor. Då kan man också rätt enkelt göra ett val för att fylla läskbacken med slumpade flaskor */ } } } public void print_flaskor() { Console.WriteLine("Antalet drycker i din back är " + antal_flaskor, flaskor.Length); Console.WriteLine(); for (int i = 0; i < flaskor.Length; i++) { Console.WriteLine(flaskor[i]); } /* { for (int i = 0; i < flaskor.Count(); i++) { if (flaskor[i].Length > 0) //annars != null Console.WriteLine("Dryck i fack {0} är en {1}", i, flaskor[i]); else Console.WriteLine("Dryckfack {0} är tom.", i); } } /*foreach (var dricka in flaskor) { if (dricka != null) Console.WriteLine(dricka); else Console.WriteLine("Tom plats"); } */ //kod här //Missa inte hjälpkoden som finns i projektbeskrivningen //Där beskrivs hur man löser det med tomma positioner i vektorn } public void summa() { int total = 0; for (int k = 0; k < flaskor.Length; k++) totalpris = antal_flaskor * 10; { Console.WriteLine("Din Läskback kostar " + totalpris + " kronor"); Console.WriteLine(); } { total = (billig * 5) + (dyr * 10); Console.WriteLine("Din Läskback kostar " + total + " kronor "); } //kod här //Tänk på att inte räkna med tomma positioner i vektorn } public void find_soda() { //Betyg C //Beskrivs i läroboken på sidan 147 och framåt (kodexempel på sidan 149) //Man ska kunna söka efter ett namn //Man kan använda string-metoderna ToLower() eller ToUpper() } public void sort_sodas() { //Betyg A-C //Beskrivs i läroboken på sidan 147 och framåt (kodexempel på sidan 159) //Man ska kunna sortera vektorn med flaskor och med bubble sort //Det är mycket svårt att sortera efter bokstavsordning - är inte flaskorna egna objekt utan bara strängar... //... går det bra att sortera efter längden på namnet istället. } } class Program { public static void Main(string[] args) { //Skapar ett objekt av klassen Sodacrate som heter sodacrate var sodacrate = new Läskbacken(); sodacrate.Run(); Console.Write("Press any key to continue . . . "); Console.ReadKey(true); } }

Kortfattat så vill jag ha hjälp med att jag ska lagra varje läsk i vektorn.
när jag vill skriva in backens innehåll får jag bara fram siffror. Vill kunna lagra så att plats 1 i vektorn är Loka och inte någon siffra?
hur ska jag gå till väga?
 
Oscillation
Medlem
Citat:
 Ursprungligen postat av Lelles90
Kod:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Läskbacken2 { } class Läskbacken { private string[] flaskor = new string[24]; //JObbar ni med struct (ev betyg C) eller klass för soda (betyg A) så är det inte "string" som är datatyp här private int antal_flaskor = 0; //Håller reda på antal flaskor public int dyr = 0; public int billig = 0; public int totalpris = 0; public string dryck; public int vilkendryck = 0; private bool huvudMeny = true; //(Betyg A): En konstruktor kan ni använda för Sodacrate men det är inget krav. //(Betyg A): Däremot ska ni använda en konstruktor för klassen "Soda" public void Run() { Console.WriteLine("Varmt välkommen till läskbacken!"); while (huvudMeny) { Console.WriteLine("Välj något av följande alternativ:"); Console.WriteLine("1. Lägg till dryck."); Console.WriteLine("2. Visa backens innehåll."); Console.WriteLine("3. Visa backens värde."); Console.WriteLine("4. Avsluta programmet."); Console.WriteLine(); switch (Console.ReadLine()) { case "1": add_dricka(); break; case "2": print_flaskor(); break; case "3": summa(); break; case "4": huvudMeny = false; break; default: Console.WriteLine("Felaktig inmatning"); Console.WriteLine(); break; } //Här ska menyn ligga för att göra saker //Jag rekommenderar switch och case här med en loop //I del 1 av filmerna för slutprojektet kodar jag en switch case } } public void add_dricka() { Console.WriteLine("Välj en dryck:"); Console.WriteLine("1. Loka 5kr"); Console.WriteLine("2. Fanta 5kr"); Console.WriteLine("3. Cola 5kr"); Console.WriteLine("4. Lättöl 10kr"); Console.WriteLine("5. Cider 10kr"); for (int i = 0; i < flaskor.Length; i++) { flaskor[i] = dryck; //vilkendryck++; } dryck = Console.ReadLine(); switch (dryck) { case "Loka": Console.WriteLine("Loka"); Console.WriteLine(); // flaskor[vilkendryck] = "Loka"; billig++; break; case "2": Console.WriteLine("Fanta"); Console.WriteLine(); //flaskor[vilkendryck] = Fanta; billig++; break; case "3": Console.WriteLine("Cola"); Console.WriteLine(); //flaskor[vilkendryck] = "Cola"; billig++; break; case "4": Console.WriteLine("Lättöl"); Console.WriteLine(); //flaskor[vilkendryck] = "Lättöl"; dyr++; break; case "5": Console.WriteLine("Cider"); Console.WriteLine(); //flaskor[vilkendryck] = "Cider"; dyr++; break; default: Console.WriteLine("Felaktig inmatning"); Console.WriteLine(); break; } for (int j = 0; j < flaskor.Length; j++) { if (antal_flaskor == 24) { Console.WriteLine("Din back är full."); Console.WriteLine(); } else { antal_flaskor++; break; /*Metod för att lägga till en läskflaska Om ni har information om både pris, läsktyp och namn kan det vara läge att presentera en meny här där man kan välja på förutbestämda läskflaskor. Då kan man också rätt enkelt göra ett val för att fylla läskbacken med slumpade flaskor */ } } } public void print_flaskor() { Console.WriteLine("Antalet drycker i din back är " + antal_flaskor, flaskor.Length); Console.WriteLine(); for (int i = 0; i < flaskor.Length; i++) { Console.WriteLine(flaskor[i]); } /* { for (int i = 0; i < flaskor.Count(); i++) { if (flaskor[i].Length > 0) //annars != null Console.WriteLine("Dryck i fack {0} är en {1}", i, flaskor[i]); else Console.WriteLine("Dryckfack {0} är tom.", i); } } /*foreach (var dricka in flaskor) { if (dricka != null) Console.WriteLine(dricka); else Console.WriteLine("Tom plats"); } */ //kod här //Missa inte hjälpkoden som finns i projektbeskrivningen //Där beskrivs hur man löser det med tomma positioner i vektorn } public void summa() { int total = 0; for (int k = 0; k < flaskor.Length; k++) totalpris = antal_flaskor * 10; { Console.WriteLine("Din Läskback kostar " + totalpris + " kronor"); Console.WriteLine(); } { total = (billig * 5) + (dyr * 10); Console.WriteLine("Din Läskback kostar " + total + " kronor "); } //kod här //Tänk på att inte räkna med tomma positioner i vektorn } public void find_soda() { //Betyg C //Beskrivs i läroboken på sidan 147 och framåt (kodexempel på sidan 149) //Man ska kunna söka efter ett namn //Man kan använda string-metoderna ToLower() eller ToUpper() } public void sort_sodas() { //Betyg A-C //Beskrivs i läroboken på sidan 147 och framåt (kodexempel på sidan 159) //Man ska kunna sortera vektorn med flaskor och med bubble sort //Det är mycket svårt att sortera efter bokstavsordning - är inte flaskorna egna objekt utan bara strängar... //... går det bra att sortera efter längden på namnet istället. } } class Program { public static void Main(string[] args) { //Skapar ett objekt av klassen Sodacrate som heter sodacrate var sodacrate = new Läskbacken(); sodacrate.Run(); Console.Write("Press any key to continue . . . "); Console.ReadKey(true); } }

Kortfattat så vill jag ha hjälp med att jag ska lagra varje läsk i vektorn.
när jag vill skriva in backens innehåll får jag bara fram siffror. Vill kunna lagra så att plats 1 i vektorn är Loka och inte någon siffra?
hur ska jag gå till väga?
Läs igenom din add_dricka funktion, den ser lite konstig ut

vad gör denna loop?
for (int i = 0; i < flaskor.Length; i++)
{
flaskor[i] = dryck;

//vilkendryck++;
}


och vad ska dessa uttryck göra?

case "Loka":
Console.WriteLine("Loka");
Console.WriteLine();
// flaskor[vilkendryck] = "Loka";
billig++;
break;
 
Lelles90
Medlem
Lelles90s avatar
Citat:
 Ursprungligen postat av Oscillation
Läs igenom din add_dricka funktion, den ser lite konstig ut

vad gör denna loop?
for (int i = 0; i < flaskor.Length; i++)
{
flaskor[i] = dryck;

//vilkendryck++;
}


och vad ska dessa uttryck göra?

case "Loka":
Console.WriteLine("1");
Console.WriteLine();
billig++;
break;

Oj det var jag som har testat lite men
Kod:
case "1": Console.WriteLine("Loka"); Console.WriteLine(); billig++; break;
så ser den ut och loopen innan är det som jag funderar på om det är fel på?
känns ju som att den inte läser in sjävla namnet på läsken utan bara siffran, hur ska jag göra?
 
Oscillation
Medlem
Citat:
 Ursprungligen postat av Lelles90
Oj det var jag som har testat lite men
Kod:
case "1": Console.WriteLine("Loka"); Console.WriteLine(); billig++; break;
så ser den ut och loopen innan är det som jag funderar på om det är fel på?
känns ju som att den inte läser in sjävla namnet på läsken utan bara siffran, hur ska jag göra?
Jo, men det är väl du som skrivit det där, vad är det du försöker åstadkomma med det där?
Om en person väljer att lägga till Loka, vad borde ske då? Vill du bara skriva ut Loka i terminalen, öka en variabel som heter billig med 1, och sedan vara klar?
Och syftet med den första loopen förstår jag verkligen inte
 
cellplast
Medlem
Citat:
 Ursprungligen postat av Lelles90
Oj det var jag som har testat lite men
Kod:
case "1": Console.WriteLine("Loka"); Console.WriteLine(); billig++; break;
så ser den ut och loopen innan är det som jag funderar på om det är fel på?
känns ju som att den inte läser in sjävla namnet på läsken utan bara siffran, hur ska jag göra?
Om du ber användaren knappa in en siffra 1..5 för olika dricka så är det ju uppenbarligen så att det svar du normalt får borde vara en sträng som innehåller "1", ..., "5".

Ganska smart om du skriver en funktion som du kan anropa som tar ett nummer mellan 1 och 5 som inparameter och returnerar en sträng tillbaka. Så "Loka" om inparametern var 1. Får du 0 borde du kunna returnera t ex "-" och så lagrar du värdet 0 för tom slot. Får du okänt nummer in får du t ex returnera "???".

Med sådan funktion behöver du inte extra special för att printa innehåll - låt funktionen göra namnuppslag utifrån numret du lagrat i arrayen.

Du kan ju även göra en likadan funktion som returnerar priset på en viss typ av dricka i stället för att returnera namnet på drickan. Då kan du loopa igenom backen och ackumulera priser. Kan t om göra ytterligare en funktion som separat ackumulerar pant för de drickatyper som har det.
 
Lelles90
Medlem
Lelles90s avatar
Jag har ny skickat allt jag gjorde innan och gjort om hela programmet.
Men nu har jag ett nytt problem.
Jag har en case meny där det finns 4 alternativ och det är en av alternativen jag har problem med och det är att jag ska lagra objekt i en vektor. Jag får det inte att fungera. Jag vill att om man väljer alternativ 2 och sen vilket objekt som ska in i vektorn så vill jag att nästa objekt jag lägger in ska vara på plats 2. Som jag får det nu så skriver den över objekten som jag har lagrat innan!
 
Gottisborgen
Medlem
Citat:
 Ursprungligen postat av Lelles90
Jag har ny skickat allt jag gjorde innan och gjort om hela programmet.
Men nu har jag ett nytt problem.
Jag har en case meny där det finns 4 alternativ och det är en av alternativen jag har problem med och det är att jag ska lagra objekt i en vektor. Jag får det inte att fungera. Jag vill att om man väljer alternativ 2 och sen vilket objekt som ska in i vektorn så vill jag att nästa objekt jag lägger in ska vara på plats 2. Som jag får det nu så skriver den över objekten som jag har lagrat innan!


Har du en array behöver du specifiera vart i det möjliga intervallet du ska lägga till objektet. enklast genom att spara undan ett index utanför metoden där du plussar den med ett efter varje inlägg.
Har du en lista läggs varje nytt inlägg till i slutet.
 
Tangmannen2
Medlem
I en tvådimensionell lista, hur skriver man en for loop att den ska kolla varje index men bara ett visst element i varje index och jämföra ifall värdet i det elementet stämmer överens med ett specifikt värde man anger.

["hej", 2414, 1]
["svej", 5215, 4]
["kneg", 551, 8]

Kod:
int ID = 4; for (int i = 0; i < list.Count; i++) { if (list[i] == ID) ******** { console.writeline(ID); }

Vid *****, jag tänker att man ska kunna skriva t.ex (list[i][2] == ID) Eller (list[i,2] == ID) om man vill att for loopen ska jämföra varje index's 2a element med ett värde? Men inget jag provar funkar, har googlat mig förståndslös snart.
 
Gottisborgen
Medlem
Citat:
 Ursprungligen postat av Tangmannen2
I en tvådimensionell lista, hur skriver man en for loop att den ska kolla varje index men bara ett visst element i varje index och jämföra ifall värdet i det elementet stämmer överens med ett specifikt värde man anger.

["hej", 2414, 1]
["svej", 5215, 4]
["kneg", 551, 8]

Kod:
int ID = 4; for (int i = 0; i < list.Count; i++) { if (list[i] == ID) ******** { console.writeline(ID); }

Vid *****, jag tänker att man ska kunna skriva t.ex (list[i][2] == ID) Eller (list[i,2] == ID) om man vill att for loopen ska jämföra varje index's 2a element med ett värde? Men inget jag provar funkar, har googlat mig förståndslös snart.

Ställ dig frågan, varför använder du en tredimensionell array? Är ett oerhört dåligt sätt att lagra lite information på.
Kan du göra samma sak med en class/struct?
 
Svara på ämne
Svara Topp Dela