C# Hjälp mig!!
Hej alla! Jag är väldigt ny på det här med programmering över huvud taget och går nu en C# grundkurs. Vi har fått i uppgift att slänga ihop ett program som sorterar säljare efter säljnivå. Inga problem så långt.
Nu är det så att när jag satt ihop den här uppgiften och skickat in så berättade läraren till min stora fasa att utdatan kommer i fel ordning.
Det som skrivs ut nu ser ut såhär:
Namn: Persnr: Distrikt: Antal:
Elin 8805137 Partille 95
Simon 8602257 V.Frölunda 99
Kalle 8601027 Mora 121
Berg 8405227 Göteborg 151
Natta 8905187 N.Hisingen 171
Anna 8902207 Mölndal 201
2 säljare har nått nivå 2: 50-99 artiklar.
3 säljare har nått nivå 3: 100-199 artiklar.
1 säljare har nått nivå 4: > 200 artiklar.
Och det är meningen att det ska se ut såhär:
Ex.
Namn Persnr Distrikt Antal
simon 450303899 Piteå 173
1 säljare har nått nivå 3: 100-199 artiklar
Musse Pigg 3502038964 Boden 202
Snobben 7805055673 Luleå 203
2 säljare har nått nivå 4: över 199 artiklar
Osv…
Jag är så sjukt trött på den här uppgiften och vill bara få klart skiten, men nu har jag mer eller mindre stirrat mig blind på koden så jag kommer ingenstans.
Skulle ni kunna hjälpa mig att sätta ihop skiten på rätt sätt lite fort, så jag kan lämna in!
Här är koden!
using System;
using System.IO;
namespace SorteringAvSäljare
{
public struct Saljare
{
public string namn;
public string persnr;
public string distrikt;
public int antal;
public string niva;
}
public class forsaljning
{
static Saljare[] saljare = new Saljare[6];
static void Main(string[] args)
{
for (int i = 0; i <= 5; i++) //Anger värde på i för varje sålänge i är lika med eller under 5+1
{
if (i == 0)
{
}
else //Om i är högre än 0, gäller nedanstående
{
Console.WriteLine();
}
Console.WriteLine("Säljare {0}:", ++i);
--i;
saljare[i] = ReadSaljare();
}
SortSaljare();
PrintSaljare();
Console.WriteLine();
Console.ReadLine();
}
static void SortSaljare() //Bubblesort för säljare
{
bool icke_sorterad = true;
int end = saljare.Length - 1;
while (icke_sorterad)
{
icke_sorterad = false;
for (int s = 0; s < end; s++)
{
if (saljare[s].antal > saljare[s + 1].antal)
{
Swap(saljare, s, s + 1);
icke_sorterad = true;
}
}
end--; //Slut på bubblesort
}
}
static void Swap(Saljare[] array, int a, int b)
{
Saljare q = array[a];
array[a] = array[b];
array[b] = q;
}
static void PrintSaljare()
{
StreamWriter forsaljning = new StreamWriter("Försäljning.txt", true); //Lagrar resultat i textfil genom streamwriter
Console.WriteLine("\nNamn:\tPersonnummer:\tDistrikt:\tAntal:");
forsaljning.WriteLine("\nNamn:\tPersonnummer:\tDistrikt:\tAntal:");
for (int i = 0; i <= 5; i++)
{
Console.WriteLine("\n" + saljare[i].namn + "\t" + saljare[i].persnr + "\t" + saljare[i].distrikt + "\t" + saljare[i].antal);
forsaljning.WriteLine("\n" + saljare[i].namn + "\t" + saljare[i].persnr + "\t" + saljare[i].distrikt + "\t" + saljare[i].antal);
}
string niva = "";
int nummer = 0;
foreach (Saljare u in saljare) //Anger tilldelning av u till säljare
{
if (niva != u.niva)
{
Console.WriteLine("\n{0}{1}\n", nummer, niva);
forsaljning.WriteLine("\n{0}{1}\n", nummer, niva);
nummer = 0;
niva = u.niva;
}
nummer++;
}
Console.WriteLine("\n{0}{1}\n", nummer, niva);
forsaljning.WriteLine("\n{0}{1}\n", nummer, niva);
forsaljning.Close(); //Avslut på lagring
}
static Saljare ReadSaljare()
{
Saljare u = new Saljare(); //Läser in info om säljare
Console.Write("Namn: ");
u.namn = Console.ReadLine();
Console.Write("Personnummer: ");
u.persnr = Console.ReadLine();
Console.Write("Distrikt: ");
u.distrikt = Console.ReadLine();
Console.Write("Antal sålda artiklar: ");
u.antal = int.Parse(Console.ReadLine());
u.niva = GetNiva(u);
return u;
}
static string GetNiva(Saljare u) //Hämtar nivå för säljare
{
if (u.antal < 50)
return " säljare har nått nivå 1: < 50 artiklar.";
if (u.antal >= 50 && u.antal < 100)
return " säljare har nått nivå 2: 50-99 artiklar.";
if (u.antal >= 100 && u.antal < 200)
return " säljare har nått nivå 3: 100-199 artiklar.";
return " säljare har nått nivå 4: > 200 artiklar.";
}
}
}