Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace sodacrate
- {
- class Sodacrate
- {
- dryck[] flaskor;
- private int antal_flaskor = 0; //Håller reda på antal flaskor
- public Sodacrate()//Konstruktor
- {
- flaskor = new dryck[24];//Här skapas vektorn med antal positioner
- }
- public void Run() // Metod för att starta programmet
- {
- int menu = 0; //Sätter valet till 0
- Console.WriteLine("Welcome to the awesome Sodacrate-simulator"); // Skriv ut i konsolen
- do //Loop
- {
- Console.WriteLine(""); //Skrivs ut en meny i konsolen
- Console.WriteLine("1. Lägg till läsk");
- Console.WriteLine("2. visa innehåll i backen");
- Console.WriteLine("3. beräkna värdet");
- Console.WriteLine("4. Sök efter dryck i backen");
- Console.WriteLine("5. Sortera läsken efter namn");
- Console.WriteLine("6. Avsluta programmet");
- Console.WriteLine("");
- try //Testar det användaren skriver in
- {
- menu = Convert.ToInt32(Console.ReadLine()); //Anv. input
- }
- catch // Fångar felet
- {
- Console.WriteLine("");
- Console.WriteLine("Du måste skriva in en siffra"); //Skriv ut om det blir något fel
- continue;
- }
- switch (menu)
- {
- case 1:
- add_soda(); //Anropar metod
- break;
- case 2:
- print_crate(); //Anropar metod
- break;
- case 3:
- Console.Clear();
- Console.WriteLine("Det totala beloppet för alla drycker i backen är " + calc_total() + " kr"); // Skriv ut i konsolen plus anropar metoden "calc_total()" som räknar ut beloppet.
- break;
- case 4:
- find_soda(); //Anropar metod
- break;
- case 5:
- sort_soda(); //Anropar metod
- break;
- case 6:
- Console.WriteLine("Tryck på valfri knapp för att avsluta programmet");// Skriv ut i konsolen
- Console.ReadKey();
- Environment.Exit(0); //Stänger ner konsollen
- break;
- default:
- Console.WriteLine("Felaktig inmatning"); //Skrivs ut om anv. trycker på något annat val.
- break;
- }
- } while (menu != 4);
- }
- public void add_soda() // Metod för att lägga till läsk i vektorn
- {
- if (antal_flaskor == 24) // Om antal flaskor är 24 st
- {
- Console.WriteLine("Det är fullt i läskbacken"); // Det skrivs ut
- return;
- }
- Console.WriteLine(""); //Skrivs ut en meny
- Console.WriteLine("Vilken dryck vill du lägga till?");
- Console.WriteLine("1. Pepsi, 15 kr");
- Console.WriteLine("2. Coca-cola, 15 kr");
- Console.WriteLine("3. Fanta, 15 kr");
- Console.WriteLine("4. Festis, 17 kr");
- Console.WriteLine("5. lättöl, 20 kr");
- Console.WriteLine("6. Slumpa fram en valfri dryck");
- int selection = 0; //Deklarerar till 0
- Console.WriteLine("");
- string name = ""; //Deklarerar namn
- int price = 0; //Deklarerar till 0
- string typ = ""; //Deklarerar typ
- int amount = 0; //Deklarerar till 0
- do // Loop
- {
- try //Testar anv. input
- {
- selection = Convert.ToInt32(Console.ReadLine()); //Anv. input
- }
- catch // Om något är fel så skrivs detta ut
- {
- Console.WriteLine("Nu blev det något fel, det valet finns inte"); // Skriv ut i konsolen
- }
- if (selection == 6) // Om anv. input är 6
- {
- Random Randomn = new Random(); // Genererar ett slumpnummer mellan 1 - 5
- int number = Randomn.Next(1, 5);
- selection = number; // Då blir anv. input det slumpnummret som genererades
- }
- switch (selection)
- {
- case 1:
- name = "pepsi"; //Namnet sparas i name
- price = 15; // Priset sparas i price
- typ = "läsk"; // Typen dryck sparas i type
- Console.WriteLine("Du har valt Pepsi som kostar 15 kr"); // Skriv ut i konsolen
- break;
- case 2:
- name = "coca-cola";
- price = 15;
- typ = "läsk";
- Console.WriteLine("Du har valt Coca-cola som kostar 15 kr");
- break;
- case 3:
- name = "fanta";
- price = 15;
- typ = "läsk";
- Console.WriteLine("Du har valt Fanta som kostar 15 kr");
- break;
- case 4:
- name = "festis";
- price = 17;
- typ = "Dryck";
- Console.WriteLine("Du har valt Festis som kostar 17 kr");
- break;
- case 5:
- name = "lättöl";
- price = 20;
- typ = "Öl";
- Console.WriteLine("Du har valt Lättöl som kostar 20 kr");
- break;
- default:
- Console.WriteLine("Felaktig inmatning, försök igen");
- selection = 0; // avslutar loopen
- break;
- }
- } while (selection == 0);
- while (true) // Loopas så länge det är true
- {
- Console.WriteLine("Hur många av {0} vill du ha?", name); //skrivs ut i konsolen
- try
- {
- amount = Convert.ToInt32(Console.ReadLine()); // Anv. input
- }
- catch
- {
- Console.WriteLine("");
- Console.WriteLine("Du måste skriva in heltal"); //skrivs ut i konsolen
- continue;
- }
- if (antal_flaskor + amount <= flaskor.Length) // Om antal flaskor + vad anv. väljer är mindre eller lika med vektorn (24)
- {
- for (int i = 0; i < amount; i++) // Forloop
- {
- flaskor[antal_flaskor] = new dryck(name, price, typ); // sparas drycken i vektorn
- antal_flaskor++; // Antal_flaskor + 1 för varje varv i loopen
- continue;
- }
- }
- else if (antal_flaskor + amount > flaskor.Length) // annars om antal flaskor + vad anv. väljer är mer än vektorn (24)
- {
- Console.WriteLine("Det finns inte plats för att lägga till {0} styck {1}, det finns bara {2} platser kvar, Försök igen ", amount, name, flaskor.Length - antal_flaskor); // Skrivs ut i konsolen
- continue;
- }
- Console.Clear(); // Rensar text ifrån konsolen
- int left = flaskor.Length - antal_flaskor;
- Console.WriteLine("Du valde att lägga till {0} stycken {1}", amount, name);
- Console.WriteLine("{0} platser kvar i läskbacken", left);
- break;
- }
- }
- public void print_crate() // Metod för att skriva innehållet i vektorn
- {
- for (int i = 0; i < flaskor.Length; i++) // Loppar igenom vektorn
- {
- if (flaskor[i] != null) // Om något i vektorn inte är tom
- Console.WriteLine("(" + (i + 1) + "):" + flaskor[i]); // Då skriv detta ut
- else
- Console.WriteLine("(" + (i + 1) + "):" + "Tom plats"); //Annars det här
- }
- }
- public int calc_total() // metod för att räkna ut totala beloppet för läsken i vektorn
- {
- int total = 0; // Sätter total på noll
- foreach (var dryck in flaskor)
- {
- if (dryck != null) // Kolla så att platsen inte är tom
- total += dryck.get_price(); // Anropar get_price för att få beloppet
- }
- return total; // Returnera totalen
- }
- public void find_soda() // Metod för att söka efter dryck i vektorn
- {
- string search = ""; // Deklarerar search som sträng
- int hits = 0; // Sätter hits på noll
- Console.WriteLine("Skriv namn på dricka du söker"); // Skrivs ut i konsolen
- Console.WriteLine("");
- while (true) // Loop
- {
- try
- {
- search = Console.ReadLine().ToLower(); // Anv. input i små bokstäver bara
- }
- catch
- {
- Console.WriteLine("Något blev fel, försök igen"); // Skrivs ut i konsolen
- }
- for (var i = 0; i < antal_flaskor; i++) // Loop
- {
- if (flaskor[i].name == search) // Om anv. input är samma som något av namnen i vektorn
- {
- Console.WriteLine("{0} finns på position {1}", search, i + 1); // Skriv ut i konsolen
- hits++; // Hits + 1 för varje varv
- }
- }
- if (hits == 0) // Om hits är 0
- {
- Console.WriteLine("Ingan dryck med det namnet kunde hittas. Tryck på valfri tangent för att återgå till menyn."); // Skrivs ut i konsolen
- Console.WriteLine("");
- break; // avslutar loopen
- }
- else
- {
- Console.WriteLine(hits + " drycker hittades. Tryck på valfri tangent för att återgå till menyn."); // Skrivs ut i konsolen
- Console.WriteLine("");
- break; // avslutar loopen
- }
- }
- }
- public void sort_soda() // Metod för att sortering (bubble sort)
- {
- int max = flaskor.Length - 1;
- for (int i = 0; i < max; i++) //yttre loop som går igenom hela vektorn
- {
- int nrLeft = max - i;
- for (int j = 0; j < nrLeft; j++) //inre loop som går igenom hela vektorn
- {
- var bottle1 = flaskor[j];
- var bottle2 = flaskor[j + 1];
- if ((bottle1 == null) || (bottle2 == null))
- {
- continue;
- }
- if (bottle1.name.CompareTo(bottle2.name) == 1) // jämför namnen i vektorn
- {
- var temp = flaskor[j]; // Byter plats
- flaskor[j] = flaskor[j + 1];
- flaskor[j + 1] = temp;
- }
- }
- }
- for (int i = 0; i < flaskor.Length; i++) // Skriver ut namnen i konsolen
- Console.WriteLine(flaskor[i]);
- }
- }
- class dryck // Här skapas klassen dryck
- {
- public string name;
- public int price;
- string type;
- public dryck(string namn, int pris, string typ) //Konstruktor för Dryck
- {
- name = namn;
- price = pris;
- type = typ;
- }
- public string get_name() //Metod för att komma åt variabeln name
- {
- return name;
- }
- public int get_price() //Metod för att komma åt variabeln price
- {
- return price;
- }
- public override string ToString() //konverterar variabel till klassen string
- {
- return string.Format("{0}, den kostar {1} kronor och drycken är en {2}", name, price, type);
- }
- }
- class Program
- {
- public static void Main(string[] args)
- {
- //Skapar ett objekt av klassen Sodacrate som heter sodacrate
- var sodacrate = new Sodacrate();
- while (true)
- {
- sodacrate.Run();
- Console.ReadKey(true);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement