2022-10-21, 02:04
  #1
Medlem
Hej! Har en uppgift som lyder såhär "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."

Jag ska även läsa in resultaten till en fil. "Resultatet ska visas både på skärmen och skrivas till en fil.
Ange endast filnamnet då du definierar filen. Alltså ange inte någon sökväg. Då hamnar filen
där .exe-filen ligger vilket ju är praktiskt."

Har googlat runt lite och browsat forum men hittar inte hur jag ska göra. Finns det någon här som hade kunnat hjälpa mig med detta.

Min kod ser ut såhär:

Kod:
// Variablerna för klassen "saljare"
public class Saljare
{
    public string namn;
    public string personnummer;
    public string distrikt;
    public int antalartiklar;

    public Saljare(string namn, string personnummer, string distrikt, int antalartiklar)
    {
        this.namn = namn;
        this.personnummer = personnummer;
        this.distrikt = distrikt;
        this.antalartiklar = antalartiklar;
    }
}


public class Program
{

    static void PrintSalesSorted(int level, IEnumerable<Saljare> salespersons)
    {
        if (!salespersons.Any())
        {
            return;
        }

        Console.WriteLine("-----------------------------");
        Console.WriteLine($"Antal Säljare på nivå {level}: {salespersons.Count()}");
        Console.WriteLine("");

        // Detta printas i slutet när man lagt in alla säljarna. Det skrivs i console baserat på antalet sälj. 
        foreach (var p in salespersons.OrderBy(n => n.antalartiklar))
        {
            Console.WriteLine("Namn: " + p.namn);
            Console.WriteLine("Personnummer: " + p.personnummer);
            Console.WriteLine("Distrikt: " + p.distrikt);
            Console.WriteLine("Antal sälj: " + p.antalartiklar);
            Console.WriteLine("Sälj nivå: " + level);
            Console.WriteLine("-----------------------------");
        }
    }

    // Början av koden som visas i console.
    static void Main(string[] args)
    {
        Console.WriteLine("Klass för säljare och resultat: ");
        Console.WriteLine("-------------------------------");
        Console.Write("Antal säljare som ska registreras: ");
        int num = int.Parse(Console.ReadLine() ?? "0");

        List<Saljare> salesmen = new List<Saljare>();

       // En for loop som loopas antalet gånger som man valt att registrerar säljare. Här skriver man in infon om säljarna man vill registrera.
        for (int i = 0; i < num; i++)
        {
            Console.WriteLine();
            Console.Write("Ange information för säljare " + (i + 1));
            Console.WriteLine();
            Console.WriteLine();
            Console.Write("Ange Namn: ");
            var name = Console.ReadLine() ?? "";
            Console.Write("Ange Personnummer: ");
            var pnr = Console.ReadLine() ?? "";
            Console.Write("Ange Distrikt: ");
            var district = Console.ReadLine() ?? "";
            Console.Write("Ange antal Artiklar: ");
            var antalArtiklar = int.Parse(Console.ReadLine() ?? "0");
            Console.WriteLine();

            var saljare = new Saljare(name, pnr, district, antalArtiklar);
            salesmen.Add(saljare);
        }

        // De olika nivåerna för säljarna baserat på antalet artiklar. Här sorteras det också efter antalet sälj.
        var level1 = salesmen.Where(n => n.antalartiklar < 50);
        PrintSalesSorted(1, level1);

        var level2 = salesmen.Where(n => n.antalartiklar >= 50 && n.antalartiklar < 100);
        PrintSalesSorted(2, level2);

        var level3 = salesmen.Where(n => n.antalartiklar >= 100 && n.antalartiklar < 200);
        PrintSalesSorted(3, level3);

        var level4 = salesmen.Where(n => n.antalartiklar > 200);
        PrintSalesSorted(4, level4);

        Console.ReadLine();
    }
}
Citera
2022-10-21, 10:14
  #2
Medlem
Protons avatar
Citat:
Ursprungligen postat av Saaand
Hej! Har en uppgift som lyder såhär "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."

Jag ska även läsa in resultaten till en fil. "Resultatet ska visas både på skärmen och skrivas till en fil.
Ange endast filnamnet då du definierar filen. Alltså ange inte någon sökväg. Då hamnar filen
där .exe-filen ligger vilket ju är praktiskt."

Har googlat runt lite och browsat forum men hittar inte hur jag ska göra. Finns det någon här som hade kunnat hjälpa mig med detta.

Min kod ser ut såhär:

Kod:
// Variablerna för klassen "saljare"
public class Saljare
{
    public string namn;
    public string personnummer;
    public string distrikt;
    public int antalartiklar;

    public Saljare(string namn, string personnummer, string distrikt, int antalartiklar)
    {
        this.namn = namn;
        this.personnummer = personnummer;
        this.distrikt = distrikt;
        this.antalartiklar = antalartiklar;
    }
}


public class Program
{

    static void PrintSalesSorted(int level, IEnumerable<Saljare> salespersons)
    {
        if (!salespersons.Any())
        {
            return;
        }

        Console.WriteLine("-----------------------------");
        Console.WriteLine($"Antal Säljare på nivå {level}: {salespersons.Count()}");
        Console.WriteLine("");

        // Detta printas i slutet när man lagt in alla säljarna. Det skrivs i console baserat på antalet sälj. 
        foreach (var p in salespersons.OrderBy(n => n.antalartiklar))
        {
            Console.WriteLine("Namn: " + p.namn);
            Console.WriteLine("Personnummer: " + p.personnummer);
            Console.WriteLine("Distrikt: " + p.distrikt);
            Console.WriteLine("Antal sälj: " + p.antalartiklar);
            Console.WriteLine("Sälj nivå: " + level);
            Console.WriteLine("-----------------------------");
        }
    }

    // Början av koden som visas i console.
    static void Main(string[] args)
    {
        Console.WriteLine("Klass för säljare och resultat: ");
        Console.WriteLine("-------------------------------");
        Console.Write("Antal säljare som ska registreras: ");
        int num = int.Parse(Console.ReadLine() ?? "0");

        List<Saljare> salesmen = new List<Saljare>();

       // En for loop som loopas antalet gånger som man valt att registrerar säljare. Här skriver man in infon om säljarna man vill registrera.
        for (int i = 0; i < num; i++)
        {
            Console.WriteLine();
            Console.Write("Ange information för säljare " + (i + 1));
            Console.WriteLine();
            Console.WriteLine();
            Console.Write("Ange Namn: ");
            var name = Console.ReadLine() ?? "";
            Console.Write("Ange Personnummer: ");
            var pnr = Console.ReadLine() ?? "";
            Console.Write("Ange Distrikt: ");
            var district = Console.ReadLine() ?? "";
            Console.Write("Ange antal Artiklar: ");
            var antalArtiklar = int.Parse(Console.ReadLine() ?? "0");
            Console.WriteLine();

            var saljare = new Saljare(name, pnr, district, antalArtiklar);
            salesmen.Add(saljare);
        }

        // De olika nivåerna för säljarna baserat på antalet artiklar. Här sorteras det också efter antalet sälj.
        var level1 = salesmen.Where(n => n.antalartiklar < 50);
        PrintSalesSorted(1, level1);

        var level2 = salesmen.Where(n => n.antalartiklar >= 50 && n.antalartiklar < 100);
        PrintSalesSorted(2, level2);

        var level3 = salesmen.Where(n => n.antalartiklar >= 100 && n.antalartiklar < 200);
        PrintSalesSorted(3, level3);

        var level4 = salesmen.Where(n => n.antalartiklar > 200);
        PrintSalesSorted(4, level4);

        Console.ReadLine();
    }
}
Vari ligger problemet då?
Är det hur man gör för att få tag på en filreferens, är det för att skriva data till filen, annat?

Varför måste du blanda in en streamwriter btw, du bör väl kunna skriva in klartext i filen.
Här är ett exempel på när man gjort precis det:
https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/file-system/how-to-write-to-a-text-file
(första träffen på google med sökningen "file writeline c#")
Citera
2022-10-21, 10:23
  #3
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av Saaand
Hej! Har en uppgift som lyder såhär "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."

Jag ska även läsa in resultaten till en fil. "Resultatet ska visas både på skärmen och skrivas till en fil.
Ange endast filnamnet då du definierar filen. Alltså ange inte någon sökväg. Då hamnar filen
där .exe-filen ligger vilket ju är praktiskt."

Har googlat runt lite och browsat forum men hittar inte hur jag ska göra. Finns det någon här som hade kunnat hjälpa mig med detta.

Min kod ser ut såhär:

Kod:
// Variablerna för klassen "saljare"
public class Saljare
{
    public string namn;
    public string personnummer;
    public string distrikt;
    public int antalartiklar;

    public Saljare(string namn, string personnummer, string distrikt, int antalartiklar)
    {
        this.namn = namn;
        this.personnummer = personnummer;
        this.distrikt = distrikt;
        this.antalartiklar = antalartiklar;
    }
}


public class Program
{

    static void PrintSalesSorted(int level, IEnumerable<Saljare> salespersons)
    {
        if (!salespersons.Any())
        {
            return;
        }

        Console.WriteLine("-----------------------------");
        Console.WriteLine($"Antal Säljare på nivå {level}: {salespersons.Count()}");
        Console.WriteLine("");

        // Detta printas i slutet när man lagt in alla säljarna. Det skrivs i console baserat på antalet sälj. 
        foreach (var p in salespersons.OrderBy(n => n.antalartiklar))
        {
            Console.WriteLine("Namn: " + p.namn);
            Console.WriteLine("Personnummer: " + p.personnummer);
            Console.WriteLine("Distrikt: " + p.distrikt);
            Console.WriteLine("Antal sälj: " + p.antalartiklar);
            Console.WriteLine("Sälj nivå: " + level);
            Console.WriteLine("-----------------------------");
        }
    }

    // Början av koden som visas i console.
    static void Main(string[] args)
    {
        Console.WriteLine("Klass för säljare och resultat: ");
        Console.WriteLine("-------------------------------");
        Console.Write("Antal säljare som ska registreras: ");
        int num = int.Parse(Console.ReadLine() ?? "0");

        List<Saljare> salesmen = new List<Saljare>();

       // En for loop som loopas antalet gånger som man valt att registrerar säljare. Här skriver man in infon om säljarna man vill registrera.
        for (int i = 0; i < num; i++)
        {
            Console.WriteLine();
            Console.Write("Ange information för säljare " + (i + 1));
            Console.WriteLine();
            Console.WriteLine();
            Console.Write("Ange Namn: ");
            var name = Console.ReadLine() ?? "";
            Console.Write("Ange Personnummer: ");
            var pnr = Console.ReadLine() ?? "";
            Console.Write("Ange Distrikt: ");
            var district = Console.ReadLine() ?? "";
            Console.Write("Ange antal Artiklar: ");
            var antalArtiklar = int.Parse(Console.ReadLine() ?? "0");
            Console.WriteLine();

            var saljare = new Saljare(name, pnr, district, antalArtiklar);
            salesmen.Add(saljare);
        }

        // De olika nivåerna för säljarna baserat på antalet artiklar. Här sorteras det också efter antalet sälj.
        var level1 = salesmen.Where(n => n.antalartiklar < 50);
        PrintSalesSorted(1, level1);

        var level2 = salesmen.Where(n => n.antalartiklar >= 50 && n.antalartiklar < 100);
        PrintSalesSorted(2, level2);

        var level3 = salesmen.Where(n => n.antalartiklar >= 100 && n.antalartiklar < 200);
        PrintSalesSorted(3, level3);

        var level4 = salesmen.Where(n => n.antalartiklar > 200);
        PrintSalesSorted(4, level4);

        Console.ReadLine();
    }
}
Du har ju en obesvarad fråga sedan tidigare. Det är ingen idé att du läser en programmeringskurs om du inte själv sätter dig in i ämnet. Att låta Flashback lösa dina uppgifter, som du själv inte verkar ha den blekaste aning om, kommer inte vara en bra idé.

Du ska skapa en textfil. Att du inte hittar hur man gör det trots att "ha googlat runt" visar att du inte ansträngt dig för fem öre. Det finns mycket goda beskrivningar lätt tillgängliga på nätet om hur man skapar en textfil.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in