Hur ska man tilldela värdet på en variabel till en klass och sedan sortera efter den varabeln?

Permalänk

Hur ska man tilldela värdet på en variabel till en klass och sedan sortera efter den varabeln?

Jag ska skapa program där man kan skriva in uppgifter om olika säljare (Namn, Personnummer, Geografiskt distrikt de arbetar i och hur många artiklar de har sålt). Programmet ska sedan sortera olika säljare baserat på hur mycket artiklar de har sålt. Jag hittar ingen lösning på hur jag ska tilldela värdet på antalet artiklar från tbxAntalSåldaArtiklar till själva listan så att den sedan kan sorteras. Hur ska jag göra?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection.Emit;
using System.Runtime.ExceptionServices;
using System.Runtime.InteropServices;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel;

namespace Inlämmningsuppgift_2
{
public partial class Form1 : Form
{

List<Säljare> säljare = new List<Säljare>();

string namn = "";
string personnummer = "";
string distrikt = "";
int[] artiklar;

public Form1()
{
InitializeComponent();
}

public int Artiklar { get; private set; }

private void btnLäsIn_Click(object sender, EventArgs e)
{

string namn = tbxNamn.Text;// Gör om texten i tbxNamn till en string med namnet.
string personnummer = tbxPersonnummer.Text;// Gör om värdet i tbxPersonummer till en string som består av personnummret.
string distrikt = tbxDistrikt.Text; //Gör om texten i TbxDistrikt till en string med namnet på distriktet.
int artiklar2 = int.Parse(tbxAntalSåldaArtilkar.Text); // Gör om texten i tbxAntalSåldaArtilkar till ett heltal som kan användas.

Säljare.Add(Artiklar += artiklar2);
}

private void btnSkrivUT_Click(object sender, EventArgs e)
{

List<Säljare> säljare = new List<Säljare>();

//Sortera
SorteraInfogade(artiklar);
lbxResultat.Text = " Namn:" + "\n" + "Persnr:" + "\n" + "Distrikt:" + "\n" + "Antal:";

säljare.ElementAt(0);
for ( int i = 0; i > 0; i++ )
{
lbxResultat.Text = namn + "\n" + personnummer.ToString() + "\n" + distrikt + "\n" + artiklar[i];
}
}

void SorteraInfogade(int[] artiklar) //kod för att sortera listan efter antalet sålda artiklar.
{
int i, n;
int length = artiklar.Length; if (length < 2) return;
int temp;

for (n = 1; n < length; n++)
{
temp = artiklar[n];
i = n - 1;

while (i >= 0 && artiklar[i] > temp)
{
artiklar[i + 1] = artiklar[i];
i--;
}

artiklar[i + 1] = temp;
}
}

class Säljare //Det är här som datan för alla säljare largras.
{
private string namn = "";
private string personnummer = "";
private string distrikt = "";
private int artiklar = 0;

public Säljare ( string namn, string personnummer, string distrikt, int artiklar) // En class där säljarens variabler anges och vad de beror på.
{
Namn = namn;
Personnummer = personnummer;
Distrikt = distrikt;
Artiklar = artiklar;
}

public string Namn // En public string så så att Namn alltid finns tillgängligt och detsamma gäller för public string Personnummer, public string Distrikt och public int Artiklar
{
get { return namn; }
set { namn = value; }
}

public string Personnummer
{
get { return Personnummer; }
set { personnummer = value; }
}

public string Distrikt
{
get { return distrikt; }
set { distrikt = value; }
}

public int Artiklar
{
get { return Artiklar; }
set
{
if (value > 0 ) { Artiklar = value; }
}
}

}

}
}

Jag glömde att skriva en förklaring
Permalänk
Medlem

Du har en del att jobba på...

Börja med att redigera inlägget och lägga din kod i code-taggar:
[code]Din kod här[/code]
så att indenteringen finns kvar.

Jag gissar att koden inte kompilerar.

Du bör titta på btnLäsIn_Click och fundera på hur du ska använda konstruktorn i klassen Säljare för att skapa en ny Säljare. Lägg sedan Säljaren i listan säljare.

Klassen Säljare har några fel där get returnerar fel sak.

Se sedan till att koden kompilerar. Sätt en brytpunkt eller två och titta med debuggern på vad koden gör när den kör.

Du bör nog visa hur uppgiften är formulerad för att du ska få vettig hjälp. Att skriva sin egen sorteringsalgoritm kanske ingår i uppgiften, men om det inte gör det så är det en dålig ide att uppfinna hjulet igen. Du inkluderar Linq, vilket kan användas för att sortera List<T>, dvs listor med valfri typ av objekt i, till exempel en List<Säljare> på valfri property/egenskap, till exempel Artiklar.

Permalänk
Medlem

Kan vara snäll och komma med beskrivningen av uppgiften.

Syftet med denna inlämning är att du ska få träna på flera moment; algoritmbeskrivning,
inmatning, sortering och att skriva till en fil. Vidare ska programmet vara uppbyggt med
lämpliga metoder (funktioner). Hela lösningsförslaget ska också visas i ett flödesschema,
pseudokod eller annan metod för algoritmbeskrivning.

Skriv ett litet program som en Console Application eller en Windows Forms Application som
läser in uppgifter för ett antal säljare i en säljkår. Om du skriver en Console Application, så
kan du låta användaren mata in hur många säljare han vill registrera.
Indata till programmet är de uppgifter om säljare som matas in.
Om inte boken tar upp hur du bygger en Console Application så kan du googla på det samt
hur man gör för att läsa in värden från tangentbordet och skriva till skärmen samt till fil.

Så här kan det se ut på skärmen:
Namn:
Personnummer:
Distrikt:
Antal sålda artiklar:

Följande uppgifter ska alltså läsas in: namn, personnummer, vilket distrikt han/hon arbetar i,
hur många artiklar han/hon har sålt under perioden.
Detta för att man har ett bonussystem där viss del av lönen är fast och viss del rörlig. Den
rörliga baseras på antal sålda artiklar (ni behöver dock inte beräkna lön). Man vill sen se
statistik över försäljningen.

Det ska finnas följande fyra nivåer: under 50 artiklar, 50-99 artiklar, 100-199 artiklar samt en
nivå över 199 artiklar.

När man läst in alla säljare ska resultatet sorteras innan det skrivs ut. Sorteringen sker på antal
sålda artiklar. I utskriften ska alla resultat i sorterad ordning finnas med samt hur många
säljare som ligger inom varje nivå och hur många artiklar var och en har sålt.

Ex.
Namn Persnr Distrikt Antal
Kalle Anka 4503038990 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...

Observera att den sammanfattande informationen om hur många säljare som nått en viss nivå
ska kommer efter det att man räknat upp säljarna i den nivån, precis som i exemplet ovan. Inte
alla nivåantal sist.

Dold text

@Edvin Näsholm Glöm inte chatten på kurssidan. Kanske inte den bästa chatten, men den finns där för att användas

Visa signatur

www.fckdrm.com - DRM år 2024? Ha pyttsan.