6 svar
175 visningar
Ahmad94 37
Postad: 7 mar 2023 05:02 Redigerad: 7 mar 2023 05:13

programmering 2 (Filer och Gui)

Hej 

Jag studerar programmering 2 och är nästen klar med kursen, så jag är ny I programmerings värld, och det är första gången som jag löser såna frågor (Filer och Giu), så därför tänkte fråga om hjälp .

jag har löst uppgiften men jag inte vet om lösningen stämmer med frågans krav, så min fråga är lösningen stämmer eller jag är ute och cyklar ?

 

Frågans beskrivningen :

I denna uppgift ska du bygga ut Joppes hundar (eller dartspelet) med funktionalitet för att skriva till textfil.

Du får alltså själv välja vilket program du ska utgå ifrån.

Filhanteringen innebär att du ska kunna skriva ut lämplig information i en textfil vid ett givet tillfälle. Förslagsvis att du skriver ut poängresultat för dart-spelet och att det för Joppes hundar finns en meny-möjlighet att skriva ut information om exempelvis då alla hundar.

Här redovisar du för vilken kod du byggt ut programmet med, det kompletta programmet samt en beskrivande text hur den nya koden fungerar.

 

Den vikitagste delen av min kod:

tack på förhänd för hjälpen :)

------------------------------

 

using System;
using System.Collections.Generic;
using System.IO;
using System.Security.Cryptography;


namespace Project116
{
    internal class Class1
    {
        public static void Main(string[] args)
        {
            NewMethod();
            List<string> lines = ReadTextFromFile("textfil.txt");
            foreach (string line in lines)
            {
                Console.WriteLine(line);
            }

        }
        private static List<string> ReadTextFromFile(string filename)
        {
            List<string> lines = new List<string>();
            using (StreamReader sr = new StreamReader(filename))
            {
                string line = sr.ReadLine();
                while (line != null)
                {
                    lines.Add(line);
                    line = sr.ReadLine();
                }
                sr.Close();
            }
            return lines;
        }
        private static void NewMethod()
        {
            WriteTextToFile("textfil.txt", $".Doggy som är 7 år gammal.Sin favorit mat är Kött, Doggy kommer från  Alaskan Klee Kai ras.");
            WriteTextToFile("textfil.txt", $".Puppy som är 11 månader gammal.Sin favorit mat är Kött, Puppy kommer från Alaskan Klee Kai  ras.");
            StreamReader streamReader = new StreamReader("textfil.txt");
            string line = streamReader.ReadLine();
            while (line != null)
            {
                Console.WriteLine(line);
                line = streamReader.ReadLine();
            }
            streamReader.Close();

            Petowner petowner = new Petowner();
            petowner.Menu();
        }

        public static void WriteTextToFile(string textfile, string text ) 
        {
        try
            {
                using (var streamerWriter = new StreamWriter(textfile, true))
                
                {
                streamerWriter.WriteLine(text); 
                    streamerWriter.Close();
                
                }
            } catch (Exception e) {

                Console.WriteLine(e.Message);
            }
        
        }


    }
        class Petowner
        {
            private int age_joppe { get; set; }
            private List<Animal> pets_list = new List<Animal>();
            private BALL ball { get; set; }

            public Petowner(int age = 0)
            {
                age = age_joppe;

                ball = new BALL("Röd", 10);

                pets_list.Add(new Cat());
                pets_list.Add(new Dog());
                pets_list.Add(new Puppy());
            }

          

            public void List_animals()
            {
                Console.WriteLine("");
                Console.WriteLine("Djuren som finns i detta program som Joppe har är :");
                Console.WriteLine("");

                foreach (var pet in pets_list)
                {
                    Console.WriteLine("\n" + pet);
                }
                Console.WriteLine("");
                Console.WriteLine("Tryck på random för att tillbaka meny...");
                Console.ReadLine();
                Console.Clear();
            }

            public void Menu()
            {
                int meny = 0;
                do
                {
                    Console.WriteLine("______________________________________________________");
                    Console.WriteLine("");
                    Console.WriteLine("Vällkommen till Joppes djur");
                    Console.WriteLine("");
                    Console.WriteLine("Du kan välja ett djur av listan nedan");
                    Console.WriteLine("----------------------------------------------------------");
                    Console.WriteLine("\n1. Lek med djuren ");
                    Console.WriteLine("\n2. Mata djuren");
                    Console.WriteLine("\n3. Lista alla djuren");
                    Console.WriteLine("\n4. check on ball");
                    Console.WriteLine("\n0. Tryck på noll för att logga ut av programmet");

                    do
                    {
                        if (!int.TryParse(Console.ReadLine(), out meny))
                        {
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.WriteLine("Snälla bara siffror");
                            Console.ResetColor();
                            meny = -1;
                        }
                    } while (meny < 0);

                    if (meny > 4)
                    {
                        Console.Clear();
                        Console.WriteLine("");
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("Snälla välj bara alternativen som nedan");
                        Console.ResetColor();
                    }
                    switch (meny)
                    {
                        case 1:
                            Console.Clear();
                            Fetch();
                            break;

                        case 2:
                            Feed();
                            break;

                        case 3:
                            Console.Clear();
                            List_animals();
                            break;

                        case 4:
                            Console.Clear();
                            Check_ball(ball);
                            break;

                        case 0:
                            Console.WriteLine();
                            break;

                    }
                } while (meny != 0);
            }

         
            public override string ToString()
            {
                return string.Format($"bollens kvalitet nu {ball.getQuality()}");
            }
        }


 
 
 

anders_k Online 234
Postad: 7 mar 2023 19:10 Redigerad: 7 mar 2023 19:11

Jag får intrycket att du inte har löst uppgiften.

Om du kollar i din meny verkar du inte ha ett alternativ
för att spara listan. Vad du gör är att när du startar
ditt program skriver du en lista som du sedan läser
direkt efter, inget annat.

Vad jag tror han som skrev uppgiften vill att du skall
göra är att du kör ditt spel, de djur som finns i din
PetOwner klass är de som skall sparas/läsas.

Så i PetOwner ändra så att istället för att
ha ett fixt antal djur, lägg till meny val för att lägga
till ett djur, som då läggs i pets_list sen ha någon ett
meny alternativ för att spara till text fil och ett för att
läsa från text filen.

Som överkurs kunde du i dina Animal klasser ha två metoder för
att serialisera och deserialera en Cat eller Dog osv från/till
filen så slipper du kladda med det. Filformatet kan vara något så enkelt
som att skriva djurets attribut som en sträng med komma mellan värdena, ett djur per rad i filen

// text fil
// Namn, Ålder, Favorit mat, Ras
Doggy, 7år, Kött, Alaskan Klee Kai
Puppy, 11mån, Kött, Alaskan Klee Kai

Ahmad94 37
Postad: 7 mar 2023 19:20
anders_k skrev:

Jag får intrycket att du inte har löst uppgiften.

Om du kollar i din meny verkar du inte ha ett alternativ
för att spara listan. Vad du gör är att när du startar
ditt program skriver du en lista som du sedan läser
direkt efter, inget annat.

Vad jag tror han som skrev uppgiften vill att du skall
göra är att du kör ditt spel, de djur som finns i din
PetOwner klass är de som skall sparas/läsas.

Så i PetOwner ändra så att istället för att
ha ett fixt antal djur, lägg till meny val för att lägga
till ett djur, som då läggs i pets_list sen ha någon ett
meny alternativ för att spara till text fil och ett för att
läsa från text filen.

Som överkurs kunde du i dina Animal klasser ha två metoder för
att serialisera och deserialera en Cat eller Dog osv från/till
filen så slipper du kladda med det. Filformatet kan vara något så enkelt
som att skriva djurets attribut som en sträng med komma mellan värdena, ett djur per rad i filen

// text fil
// Namn, Ålder, Favorit mat, Ras
Doggy, 7år, Kött, Alaskan Klee Kai
Puppy, 11mån, Kött, Alaskan Klee Kai

Jag förstår att jag måste skapa ett till val i menyn lista, i detta val jag måste anropa eller FLYTTA metoden WriteTextToFile, och detta val frågar användaren om han vill skriva djurens information på en fil, och sedan undvika att skriva över genom metod append. 

Stämmer så med frågans krav?

anders_k Online 234
Postad: 7 mar 2023 20:51
Ahmad94 skrev:

// text fil
// Namn, Ålder, Favorit mat, Ras
Doggy, 7år, Kött, Alaskan Klee Kai
Puppy, 11mån, Kött, Alaskan Klee Kai

Jag förstår att jag måste skapa ett till val i menyn lista, i detta val jag måste anropa eller FLYTTA metoden WriteTextToFile, och detta val frågar användaren om han vill skriva djurens information på en fil, och sedan undvika att skriva över genom metod append. 

Stämmer så med frågans krav?

Ja det låter så; skulle tro att det enklaste för dig är att läsa in hela filen i en lista/array, manipulera listan i minnet (ta bort, lägga till, sortera whatever) sen alltid antingen skriva eller läsa hela listan så blir det enklare filhantering för dig, speciellt om den är en liten fil som det verkar vara i detta fall.

Ahmad94 37
Postad: 7 mar 2023 20:54
anders_k skrev:
Ahmad94 skrev:

// text fil
// Namn, Ålder, Favorit mat, Ras
Doggy, 7år, Kött, Alaskan Klee Kai
Puppy, 11mån, Kött, Alaskan Klee Kai

Jag förstår att jag måste skapa ett till val i menyn lista, i detta val jag måste anropa eller FLYTTA metoden WriteTextToFile, och detta val frågar användaren om han vill skriva djurens information på en fil, och sedan undvika att skriva över genom metod append. 

Stämmer så med frågans krav?

Ja det låter så; skulle tro att det enklaste för dig är att läsa in hela filen i en lista/array, manipulera listan i minnet (ta bort, lägga till, sortera whatever) sen alltid antingen skriva eller läsa hela listan så blir det enklare filhantering för dig, speciellt om den är en liten fil som det verkar vara i detta fall.

Finns det sökord, som man kan googla och lära sig mer om filer i C sharp 

Tusen tack för hjälpen:)

anders_k Online 234
Postad: 7 mar 2023 20:55

https://www.w3schools.com/cs/cs_files.php brukar vara bra.

Ahmad94 37
Postad: 7 mar 2023 21:13
anders_k skrev:

https://www.w3schools.com/cs/cs_files.php brukar vara bra.

Tackar

Svara Avbryt
Close