Permalänk

C# Hjälp!

Hej igen gott folk! Här sitter jag idag på inlämningsdagen med ett projekt som är alldeles för stort för att jag ska kunna få ordning på det idag. Missade helt den andra(största) av de TVÅ inlämningsuppgifter som ska in idag.
Men gjort är gjort!

Uppgiften är att göra någon typ av virtuell läskback där du ska kunna lägga till läsk, räkna ut värde av back och se vad som finns i backen.
Jag har fått lite hjälp av en vän som knappt är bättre än mig på programmering och även läst och stulit lite på nätet.

Programmet funkar kanske till 60%, max. Värdet går att avläsa och man kan typ lägga till läsk.
Men när jag vill se vad som finns i backen blir allt knas, jag har gjort något fel och de vill sig inte i mitt huvud längre.

Så har ni något tips eller kan peka mig åt rätt håll hade jag uppskattat det så enormt!

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace sodacrate { } class Sodacrate { 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 expensive = 0; public int cheap = 0; public int totalamount = 0; public string bevrage; private bool mainMenu = 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("Welcome to the awesome Sodacrate-simulator"); while (mainMenu) { Console.WriteLine("Please pick one of the options beneath:"); Console.WriteLine("1. Add a bevrage"); Console.WriteLine("2. See what's in the crate"); Console.WriteLine("3. Total worth of crate"); Console.WriteLine("4. Exit the program"); switch (Console.ReadLine()) { case "1": add_soda(); break; case "2": print_crate(); break; case "3": calc_total(); break; case "4": mainMenu = false; break; default: Console.WriteLine("Something went wrong"); Console.WriteLine(); Console.WriteLine("===================="); break; } } } public void add_soda() { Console.WriteLine("Choose a bevrage:"); Console.WriteLine("1. Irn Bru 5kr"); Console.WriteLine("2. Pepsi 5kr"); Console.WriteLine("3. Pepsi twist 5kr"); Console.WriteLine("4. Monster energy 10kr"); Console.WriteLine("5. Indian pale ale 10kr"); for (int i = 0; i < flaskor.Length; i++) { flaskor[i] = bevrage; } bevrage = Console.ReadLine(); switch (bevrage) { case "1": Console.WriteLine("Irn Bru"); cheap++; break; case "2": Console.WriteLine("Pepsi"); cheap++; break; case "3": Console.WriteLine("Pepsi twist"); cheap++; break; case "4": Console.WriteLine("Monster energy"); expensive++; break; case "5": Console.WriteLine("Indian pale ale"); expensive++; break; default: Console.WriteLine("Something went wrong here!"); Console.WriteLine("=========================="); break; } for (int j = 0; j < flaskor.Length; j++) { if (antal_flaskor == 24) { Console.WriteLine("The crate is full!"); Console.WriteLine(); } else { antal_flaskor++; break; } } } public void print_crate() { Console.WriteLine("The ammount of bottles in your crate is " + 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) Console.WriteLine("Bevrages in {0} is a {1}", i, flaskor[i]); else Console.WriteLine("Place {0} is empty.", i); } } foreach (var bevrage in flaskor) { if (bevrage != null) Console.WriteLine(bevrage); else Console.WriteLine("Empty space"); } //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 calc_total() { int total = 0; for (int k = 0; k < flaskor.Length; k++) totalamount = antal_flaskor * 10; { total = (cheap * 5) + (expensive * 10); Console.WriteLine("your crate is worth " + 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 Sodacrate(); sodacrate.Run(); Console.Write("Press any key to continue . . . "); Console.ReadKey(true); } }

Fixade code-taggarna //Mod
Permalänk
Hedersmedlem

Snyggade till dina code-taggar. Det ska alltså inte vara några mellanslag i dem.

Exempel:
[code]
printf("Hello world");
[/code]

Kommer se ut såhär:

printf("Hello world");

Det syns inte första gången för jag gjorde såhär:
[noparse]
[code]
printf("Hello world");
[/code]
[/noparse]

Permalänk
Medlem

Kolla in denna biten:

public void add_soda() { Console.WriteLine("Choose a bevrage:"); Console.WriteLine("1. Irn Bru 5kr"); Console.WriteLine("2. Pepsi 5kr"); Console.WriteLine("3. Pepsi twist 5kr"); Console.WriteLine("4. Monster energy 10kr"); Console.WriteLine("5. Indian pale ale 10kr"); // Vad händer här? och varför? for (int i = 0; i < flaskor.Length; i++) { flaskor[i] = bevrage; } bevrage = Console.ReadLine(); switch (bevrage) { case "1": // Här skriver du ut vad användaren väljer, men du sparar inte det någonstans? Console.WriteLine("Irn Bru"); // Här ökar du värdet på backen innan vi vet om det finns plats! cheap++; break; case "2": Console.WriteLine("Pepsi"); cheap++; break; case "3": Console.WriteLine("Pepsi twist"); cheap++; break; case "4": Console.WriteLine("Monster energy"); expensive++; break; case "5": Console.WriteLine("Indian pale ale"); expensive++; break; default: Console.WriteLine("Something went wrong here!"); Console.WriteLine("=========================="); break; } // Varför loopar du igenom backen? for (int j = 0; j < flaskor.Length; j++) { // Här kollar du ju om det finns 24 flaskor, bra if (antal_flaskor == 24) { Console.WriteLine("The crate is full!"); Console.WriteLine(); } else { // Här ökar du antalet flaskor, bra! // men... du lägger inte till någon flaska i backen // Här är ju också ett bra ställe att öka värdet på backen antal_flaskor++; break; } } }

Här är ett förslag på pseudokod som ska funka:
1. skriv ut valen
2. spar drycken som användaren väljer
3. Kolla om det finns en tom plats i backen
3.1 Det finns en tom plats
3.1.1 stoppa i drycken på platsen
3.1.2 öka värdet på backen
3.1.3 öka antalet flaskor i backen
3.2 Det finns ingen tom plats
3.2.1 Meddela användaren om att backen är full

Kolla lite på kommentarerna i koden och fundera över pseudokoden

Visa signatur

Oldschool [å:ldsku:l] adj. Användandet av datorprodukter som är äldre än 3 månader.

Permalänk
Medlem

Vad hjälper det dig om vi visar hur du ska koda? Du måste ju kunna förstå koden när läraren frågar. Plagiat är allvarligt inom alla ämnen i skolan, inte bara historieuppsatser.

Om han ber dig förklara ett visst stycke så kommer du sitta där tyst o se dum ut. Bespara dig skammen och LÄR dig istället. Börja om från början i din lärobok.

Skickades från m.sweclockers.com

Visa signatur

Processor: Motorola 68000 | Klockfrekvens: 7,09 Mhz (PAL) | Minne: 256 kB ROM / 512 kB RAM | Bussbredd: 24 bit | Joystick: Tac2 | Operativsystem: Amiga OS 1.3

Permalänk
Medlem
Skrivet av mjolkbollen:

Så har ni något tips eller kan peka mig åt rätt håll hade jag uppskattat det så enormt!

Jag tolkar det som att han vill ha tips och råd, inte kod. Men jag kan ju ha missuppfattat...

Visa signatur

Oldschool [å:ldsku:l] adj. Användandet av datorprodukter som är äldre än 3 månader.

Permalänk
Skrivet av kundun:

Kolla in denna biten:

public void add_soda() { Console.WriteLine("Choose a bevrage:"); Console.WriteLine("1. Irn Bru 5kr"); Console.WriteLine("2. Pepsi 5kr"); Console.WriteLine("3. Pepsi twist 5kr"); Console.WriteLine("4. Monster energy 10kr"); Console.WriteLine("5. Indian pale ale 10kr"); // Vad händer här? och varför? for (int i = 0; i < flaskor.Length; i++) { flaskor[i] = bevrage; } bevrage = Console.ReadLine(); switch (bevrage) { case "1": // Här skriver du ut vad användaren väljer, men du sparar inte det någonstans? Console.WriteLine("Irn Bru"); // Här ökar du värdet på backen innan vi vet om det finns plats! cheap++; break; case "2": Console.WriteLine("Pepsi"); cheap++; break; case "3": Console.WriteLine("Pepsi twist"); cheap++; break; case "4": Console.WriteLine("Monster energy"); expensive++; break; case "5": Console.WriteLine("Indian pale ale"); expensive++; break; default: Console.WriteLine("Something went wrong here!"); Console.WriteLine("=========================="); break; } // Varför loopar du igenom backen? for (int j = 0; j < flaskor.Length; j++) { // Här kollar du ju om det finns 24 flaskor, bra if (antal_flaskor == 24) { Console.WriteLine("The crate is full!"); Console.WriteLine(); } else { // Här ökar du antalet flaskor, bra! // men... du lägger inte till någon flaska i backen // Här är ju också ett bra ställe att öka värdet på backen antal_flaskor++; break; } } }

Här är ett förslag på pseudokod som ska funka:
1. skriv ut valen
2. spar drycken som användaren väljer
3. Kolla om det finns en tom plats i backen
3.1 Det finns en tom plats
3.1.1 stoppa i drycken på platsen
3.1.2 öka värdet på backen
3.1.3 öka antalet flaskor i backen
3.2 Det finns ingen tom plats
3.2.1 Meddela användaren om att backen är full

Kolla lite på kommentarerna i koden och fundera över pseudokoden

Grymt,tack! ska hem och kolla efter jobbet! Uppskattas stort!

Skrivet av talonmas:

Vad hjälper det dig om vi visar hur du ska koda? Du måste ju kunna förstå koden när läraren frågar. Plagiat är allvarligt inom alla ämnen i skolan, inte bara historieuppsatser.

Om han ber dig förklara ett visst stycke så kommer du sitta där tyst o se dum ut. Bespara dig skammen och LÄR dig istället. Börja om från början i din lärobok.

Skickades från m.sweclockers.com

Bad aldrig någon att lösa det för mig, utan bad om lite tips och att någon skulle peka mig åt rätt håll så att säga, precis som personen över dig gjorde!

Skrivet av kundun:

Jag tolkar det som att han vill ha tips och råd, inte kod. Men jag kan ju ha missuppfattat...

Precis!