Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

Hjälp med en uppgift i c#

Skapad av clark-kim, 2014-01-26 12:48 i Webbutveckling & Programmering

4 859
7 inlägg
0 poäng
clark-kim
Visningsbild
P 33 Luleå Hjälte 197 inlägg
0
Hej!

Jag har lite problem med att sortera mina arrays.

Jag håller på med en uppgift där man ska fylla in information för 6 st säljare.

Informationen är Namn, Personnummer, Distrikt och Antal sålda artiklar.

Sen ska jag sortera Säljarna. D.v.s den som sålt mest ska ligga högst upp på listan.

Det är nu jag får mitt problem, jag lyckas bara sortera antal sålda artiklar, men den andra informationen följer inte med.

Det här har jag kommit fram till än så länge:

Ett stycke c#-kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace Inlämningsuppgift2_L0002B
{
class Program
{

static void Main(string[] args)
{
// Deklarerar arrays
string[] name = new string[6];
string[] ssn = new string[6];
string[] district = new string[6];
int[] qty = new int[6];

// For loop för att kunna mata in 6 säljare
for (int i = 0; i <= 5; i++)
{
Console.Write("Namn: ");
name[i] = Console.ReadLine();

Console.Write("Personnummer: ");
ssn[i] = Console.ReadLine();

Console.Write("Distrikt: ");
district[i] = Console.ReadLine();

Console.Write("Antal sålda artiklar: ");
qty[i] = int.Parse(Console.ReadLine());

Console.WriteLine("
");
}

Console.WriteLine("
Namn: Personnummer: Distrikt: Antal artiklar:");

// Skriver ut säljare
for (int i = 0; i < name.Length; i++)
{
Array.Sort(qty);
Array.Reverse(qty);

Console.WriteLine(name[i] + " " + ssn[i] + " " + district[i] + " " + qty[i]);
Console.WriteLine("
");
//GetLevel(qty[i]);
}


// För att inte konsolen ska stängas
Console.ReadLine();
}

// Funktion som beräknar vilken nivå säljaren hamnar i
static void GetLevel(int qty)
{
if (qty < 50)
Console.WriteLine(" säljare har nått nivå 1: < 50 artiklar.");

if (qty >= 50 && qty < 100)
Console.WriteLine(" säljare har nått nivå 2: 50-99 artiklar.");

if (qty >= 100 && qty < 200)
Console.WriteLine(" säljare har nått nivå 3: 100-199 artiklar.");

if (qty > 200)
Console.WriteLine(" säljare har nått nivå 4: > 200 artiklar.");
}
}
}

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

-------
Visningsbild
P 29 Linköping Hjälte 4 577 inlägg
0

Svar till clark-kim [Gå till post]:
Det enklaste skulle nog vara att skriva din egen sorteringsfunktion istället för att använda Array.Sort(), så du kan hålla koll på alla arrayerna och flytta sammanhörande element samtidigt.

Hade du bara haft två arrayer så hade du kunnat skriva Array.Sort(qty, name) så hade båda arrayerna sorterats baserat på qty

Jag hette tidigare Ziron

gaminggirl
Visningsbild
F 38 Lund Hjälte 8 084 inlägg
0

Svar till clark-kim [Gå till post]:
Tror det är så illa att eftersom du vill sortera 4 arrays baserat på en måste du själv skriva din sorteringsalgoritm.

Ingen status

clark-kim
Visningsbild
P 33 Luleå Hjälte 197 inlägg
Trådskapare
0

Svar till gaminggirl [Gå till post]:
Kan man använda bubble sort till det tror du?

-------
Visningsbild
P 29 Linköping Hjälte 4 577 inlägg
0

Svar till clark-kim [Gå till post]:
Med bara 6 element så fungerar bubble sort bra

Jag hette tidigare Ziron

Tvillingen
Visningsbild
P 31 Hjälte 3 117 inlägg
0
Vore det inte enklare att göra ett klass som heter salesman och spara informationen där, sen slänga in alla i en lista och sortera den efter qty? Det borde fungera och du slipper skriva en egen sorteringsfunktion.

Här är ett litet exempel i Python och svårt att tro att det inte går att göra på liknande sätt i C# :)

Ett stycke PHP-kod:
class Salesman:
def __init__(self, name, ssn, district, qty):
self.name = name
self.ssn = ssn
self.district = district
self.qty = qty

sellers = [
Salesman('Foo', '1900-01-01 1234', 'Sverige', 20),
Salesman('Bar', '1901-02-02 1234', 'Danmark', 40),
Salesman('FooBar', '1902-03-03 1234', 'Norge', 30)
]
sellers = sorted(sellers, key=lambda x: x.qty, reverse=True)
for seller in sellers:
print(seller.qty))

Jag är ond!

wefoij123
Visningsbild
Hjälte 10 inlägg
0
Själv skulle jag, precis som Tvillingen sa, definiera min egen struct för försäljarna. Sen skulle jag sortera den struct:en med en specialgjord IComparer.

Forum » Datorer & IT » Webbutveckling & Programmering » Hjälp med en uppgift i c#

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

1 utloggad

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons
Annons