Advertisement
Guest User

Untitled

a guest
Apr 19th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.14 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7.  
  8.  
  9. namespace sodacrate
  10. {
  11.  
  12. class Sodacrate
  13. {
  14. dryck[] flaskor;
  15. private int antal_flaskor = 0; //Håller reda på antal flaskor
  16.  
  17. public Sodacrate()//Konstruktor
  18. {
  19. flaskor = new dryck[24];//Här skapas vektorn med antal positioner
  20. }
  21. public void Run() // Metod för att starta programmet
  22. {
  23.  
  24. int menu = 0; //Sätter valet till 0
  25. Console.WriteLine("Welcome to the awesome Sodacrate-simulator"); // Skriv ut i konsolen
  26. do //Loop
  27. {
  28.  
  29. Console.WriteLine(""); //Skrivs ut en meny i konsolen
  30. Console.WriteLine("1. Lägg till läsk");
  31. Console.WriteLine("2. visa innehåll i backen");
  32. Console.WriteLine("3. beräkna värdet");
  33. Console.WriteLine("4. Sök efter dryck i backen");
  34. Console.WriteLine("5. Sortera läsken efter namn");
  35. Console.WriteLine("6. Avsluta programmet");
  36. Console.WriteLine("");
  37. try //Testar det användaren skriver in
  38. {
  39. menu = Convert.ToInt32(Console.ReadLine()); //Anv. input
  40. }
  41. catch // Fångar felet
  42. {
  43. Console.WriteLine("");
  44. Console.WriteLine("Du måste skriva in en siffra"); //Skriv ut om det blir något fel
  45. continue;
  46. }
  47.  
  48.  
  49. switch (menu)
  50. {
  51. case 1:
  52. add_soda(); //Anropar metod
  53. break;
  54. case 2:
  55. print_crate(); //Anropar metod
  56. break;
  57. case 3:
  58. Console.Clear();
  59. 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.
  60. break;
  61. case 4:
  62. find_soda(); //Anropar metod
  63. break;
  64. case 5:
  65. sort_soda(); //Anropar metod
  66. break;
  67. case 6:
  68.  
  69. Console.WriteLine("Tryck på valfri knapp för att avsluta programmet");// Skriv ut i konsolen
  70. Console.ReadKey();
  71. Environment.Exit(0); //Stänger ner konsollen
  72. break;
  73. default:
  74. Console.WriteLine("Felaktig inmatning"); //Skrivs ut om anv. trycker på något annat val.
  75. break;
  76. }
  77.  
  78. } while (menu != 4);
  79. }
  80. public void add_soda() // Metod för att lägga till läsk i vektorn
  81. {
  82. if (antal_flaskor == 24) // Om antal flaskor är 24 st
  83. {
  84. Console.WriteLine("Det är fullt i läskbacken"); // Det skrivs ut
  85. return;
  86. }
  87. Console.WriteLine(""); //Skrivs ut en meny
  88. Console.WriteLine("Vilken dryck vill du lägga till?");
  89. Console.WriteLine("1. Pepsi, 15 kr");
  90. Console.WriteLine("2. Coca-cola, 15 kr");
  91. Console.WriteLine("3. Fanta, 15 kr");
  92. Console.WriteLine("4. Festis, 17 kr");
  93. Console.WriteLine("5. lättöl, 20 kr");
  94. Console.WriteLine("6. Slumpa fram en valfri dryck");
  95.  
  96. int selection = 0; //Deklarerar till 0
  97. Console.WriteLine("");
  98. string name = ""; //Deklarerar namn
  99. int price = 0; //Deklarerar till 0
  100. string typ = ""; //Deklarerar typ
  101. int amount = 0; //Deklarerar till 0
  102.  
  103. do // Loop
  104. {
  105. try //Testar anv. input
  106. {
  107. selection = Convert.ToInt32(Console.ReadLine()); //Anv. input
  108. }
  109. catch // Om något är fel så skrivs detta ut
  110. {
  111. Console.WriteLine("Nu blev det något fel, det valet finns inte"); // Skriv ut i konsolen
  112. }
  113.  
  114. if (selection == 6) // Om anv. input är 6
  115. {
  116. Random Randomn = new Random(); // Genererar ett slumpnummer mellan 1 - 5
  117. int number = Randomn.Next(1, 5);
  118. selection = number; // Då blir anv. input det slumpnummret som genererades
  119. }
  120.  
  121.  
  122.  
  123. switch (selection)
  124. {
  125. case 1:
  126. name = "pepsi"; //Namnet sparas i name
  127. price = 15; // Priset sparas i price
  128. typ = "läsk"; // Typen dryck sparas i type
  129. Console.WriteLine("Du har valt Pepsi som kostar 15 kr"); // Skriv ut i konsolen
  130.  
  131. break;
  132. case 2:
  133. name = "coca-cola";
  134. price = 15;
  135. typ = "läsk";
  136. Console.WriteLine("Du har valt Coca-cola som kostar 15 kr");
  137. break;
  138. case 3:
  139. name = "fanta";
  140. price = 15;
  141. typ = "läsk";
  142. Console.WriteLine("Du har valt Fanta som kostar 15 kr");
  143. break;
  144. case 4:
  145. name = "festis";
  146. price = 17;
  147. typ = "Dryck";
  148. Console.WriteLine("Du har valt Festis som kostar 17 kr");
  149. break;
  150. case 5:
  151. name = "lättöl";
  152. price = 20;
  153. typ = "Öl";
  154. Console.WriteLine("Du har valt Lättöl som kostar 20 kr");
  155. break;
  156. default:
  157. Console.WriteLine("Felaktig inmatning, försök igen");
  158. selection = 0; // avslutar loopen
  159. break;
  160. }
  161.  
  162. } while (selection == 0);
  163.  
  164. while (true) // Loopas så länge det är true
  165. {
  166. Console.WriteLine("Hur många av {0} vill du ha?", name); //skrivs ut i konsolen
  167.  
  168. try
  169. {
  170. amount = Convert.ToInt32(Console.ReadLine()); // Anv. input
  171. }
  172. catch
  173. {
  174. Console.WriteLine("");
  175. Console.WriteLine("Du måste skriva in heltal"); //skrivs ut i konsolen
  176. continue;
  177. }
  178.  
  179. if (antal_flaskor + amount <= flaskor.Length) // Om antal flaskor + vad anv. väljer är mindre eller lika med vektorn (24)
  180. {
  181. for (int i = 0; i < amount; i++) // Forloop
  182. {
  183. flaskor[antal_flaskor] = new dryck(name, price, typ); // sparas drycken i vektorn
  184. antal_flaskor++; // Antal_flaskor + 1 för varje varv i loopen
  185. continue;
  186. }
  187. }
  188. else if (antal_flaskor + amount > flaskor.Length) // annars om antal flaskor + vad anv. väljer är mer än vektorn (24)
  189. {
  190. 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
  191. continue;
  192. }
  193. Console.Clear(); // Rensar text ifrån konsolen
  194. int left = flaskor.Length - antal_flaskor;
  195. Console.WriteLine("Du valde att lägga till {0} stycken {1}", amount, name);
  196. Console.WriteLine("{0} platser kvar i läskbacken", left);
  197. break;
  198. }
  199. }
  200. public void print_crate() // Metod för att skriva innehållet i vektorn
  201. {
  202. for (int i = 0; i < flaskor.Length; i++) // Loppar igenom vektorn
  203. {
  204. if (flaskor[i] != null) // Om något i vektorn inte är tom
  205. Console.WriteLine("(" + (i + 1) + "):" + flaskor[i]); // Då skriv detta ut
  206. else
  207.  
  208. Console.WriteLine("(" + (i + 1) + "):" + "Tom plats"); //Annars det här
  209. }
  210. }
  211. public int calc_total() // metod för att räkna ut totala beloppet för läsken i vektorn
  212. {
  213. int total = 0; // Sätter total på noll
  214.  
  215. foreach (var dryck in flaskor)
  216. {
  217.  
  218. if (dryck != null) // Kolla så att platsen inte är tom
  219. total += dryck.get_price(); // Anropar get_price för att få beloppet
  220. }
  221. return total; // Returnera totalen
  222. }
  223.  
  224. public void find_soda() // Metod för att söka efter dryck i vektorn
  225. {
  226. string search = ""; // Deklarerar search som sträng
  227. int hits = 0; // Sätter hits på noll
  228.  
  229. Console.WriteLine("Skriv namn på dricka du söker"); // Skrivs ut i konsolen
  230. Console.WriteLine("");
  231. while (true) // Loop
  232. {
  233. try
  234. {
  235. search = Console.ReadLine().ToLower(); // Anv. input i små bokstäver bara
  236.  
  237. }
  238. catch
  239. {
  240. Console.WriteLine("Något blev fel, försök igen"); // Skrivs ut i konsolen
  241. }
  242.  
  243. for (var i = 0; i < antal_flaskor; i++) // Loop
  244. {
  245. if (flaskor[i].name == search) // Om anv. input är samma som något av namnen i vektorn
  246. {
  247.  
  248. Console.WriteLine("{0} finns på position {1}", search, i + 1); // Skriv ut i konsolen
  249. hits++; // Hits + 1 för varje varv
  250. }
  251.  
  252. }
  253. if (hits == 0) // Om hits är 0
  254. {
  255. Console.WriteLine("Ingan dryck med det namnet kunde hittas. Tryck på valfri tangent för att återgå till menyn."); // Skrivs ut i konsolen
  256. Console.WriteLine("");
  257. break; // avslutar loopen
  258. }
  259. else
  260. {
  261. Console.WriteLine(hits + " drycker hittades. Tryck på valfri tangent för att återgå till menyn."); // Skrivs ut i konsolen
  262. Console.WriteLine("");
  263. break; // avslutar loopen
  264.  
  265. }
  266. }
  267. }
  268.  
  269.  
  270. public void sort_soda() // Metod för att sortering (bubble sort)
  271. {
  272.  
  273. int max = flaskor.Length - 1;
  274.  
  275.  
  276. for (int i = 0; i < max; i++) //yttre loop som går igenom hela vektorn
  277. {
  278. int nrLeft = max - i;
  279.  
  280. for (int j = 0; j < nrLeft; j++) //inre loop som går igenom hela vektorn
  281. {
  282. var bottle1 = flaskor[j];
  283. var bottle2 = flaskor[j + 1];
  284.  
  285. if ((bottle1 == null) || (bottle2 == null))
  286. {
  287. continue;
  288.  
  289. }
  290. if (bottle1.name.CompareTo(bottle2.name) == 1) // jämför namnen i vektorn
  291. {
  292. var temp = flaskor[j]; // Byter plats
  293. flaskor[j] = flaskor[j + 1];
  294. flaskor[j + 1] = temp;
  295. }
  296. }
  297. }
  298.  
  299. for (int i = 0; i < flaskor.Length; i++) // Skriver ut namnen i konsolen
  300. Console.WriteLine(flaskor[i]);
  301.  
  302. }
  303. }
  304. class dryck // Här skapas klassen dryck
  305. {
  306. public string name;
  307. public int price;
  308. string type;
  309.  
  310.  
  311. public dryck(string namn, int pris, string typ) //Konstruktor för Dryck
  312. {
  313. name = namn;
  314. price = pris;
  315. type = typ;
  316. }
  317.  
  318. public string get_name() //Metod för att komma åt variabeln name
  319. {
  320. return name;
  321. }
  322.  
  323. public int get_price() //Metod för att komma åt variabeln price
  324. {
  325. return price;
  326. }
  327. public override string ToString() //konverterar variabel till klassen string
  328. {
  329. return string.Format("{0}, den kostar {1} kronor och drycken är en {2}", name, price, type);
  330. }
  331. }
  332. class Program
  333. {
  334. public static void Main(string[] args)
  335. {
  336. //Skapar ett objekt av klassen Sodacrate som heter sodacrate
  337. var sodacrate = new Sodacrate();
  338. while (true)
  339. {
  340. sodacrate.Run();
  341. Console.ReadKey(true);
  342. }
  343.  
  344. }
  345. }
  346. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement